Как я могу взять значение из текста элемента в блоке данных и вставить его в другой текст элемента другого блока данных?PL / sql оракул формы 10 г - PullRequest
0 голосов
/ 16 декабря 2018

, чтобы никого не смущать, мой вопрос: я спрашиваю, является ли это правильным способом вызвать значение текста элемента и вставить его в другое значение другого текста элемента (в другом блоке)?

для меня я думаю, что чего-то не хватает, я не знаю, где

У меня есть два блока данных в одной форме

один блок был создан вручную (неттаблица связана с) named (block15), еще один блок был построен мастером данных (назван как имя таблицы БД (CRI_AV_VIEW), это «таблица представления».

хорошо этоэто pl / SQL-код триггера кнопки when_button_pressed (кнопка находится под пунктами block15)

  --before you just start, suppose the inputs is like these - 
  --down bellow
  --don't worry, all of them are exists and true.

    --x1= 1005003000
    --x2= 6492 3684 3827 7890 (without spaces)
    --x3= 461 
    --x4= 4
    --x5= 200
    --x6= 4Y9MH
DECLARE
  x1         NUMBER(10):= :block15.item16;
  x2         NUMBER(16):= :block15.item20;
  x3         NUMBER(3):= :block15.item21;
  x4         NUMBER(3):= :block15.item32;
  x5         NUMBER(12,2):= :cri_av_view.cost_per_day;
  x6         VARCHAR2(32):= :cri_av_view.car_id;
  v_count1   NUMBER;
  v_count2   NUMBER;
  v_count3   NUMBER;
  time_1     DATE;
  time_2     DATE;
BEGIN
---FIRST---
  SELECT COUNT(*)
  INTO v_count1
  FROM citizens_lic
  WHERE id = x1;

  SELECT SYSDATE
  INTO time_1
  FROM dual;

---FIRST IF-----    
  IF(v_count1 = 1)THEN
---SEOND---
    SELECT COUNT(*)
    INTO v_count2
    FROM citizens_lic
    WHERE id = x1
          AND work_status NOT IN(
      'STUDENT'
    );

----SECOND IF -----
    IF(v_count2 = 1)THEN
      SELECT COUNT(*)
      INTO v_count3
      FROM client_accounts ca
      WHERE ca.card_num = x2
            AND ca.cvc = x3
            AND(exp_date > time_1)-- all of them are in date datatype
            AND(balance >(x4 * x5));--once the operation reached here, something wired is happened, x5 is like something big while in fact, it is less, this condition based on the given must be true and gives back only 1, (SQL plus command proved that for me)!

      IF(v_count3 = 1)THEN
---------- PRE-APPROVING THE TIME AND DATE FOR THE ORDER ------
        SELECT SYSDATE
        INTO time_2
        FROM dual;          

----------------- INSERT THE ORDER--------           
        INSERT INTO car_rent_orders(
          car_id,
          end_rent,
          customer_id,
          card_num,
          cvc
        )VALUES(
          x6,
          (time_2 + x4),
          x1,
          x2,
          x3
        );

        UPDATE car_rent_inv
        SET
          car_status = 0
        WHERE car_id = x6;

        message('THANK YOU FOR RENTING WITH US, PLEASE WAIT TO PRINT YOU COPY OF THE ORDER!');
        COMMIT;
      ELSE
        message('INSUFFCENT AMMOUNT IN YOUR CARD!');
        COMMIT;
      END IF;

    ELSE
      message('SORRY, YOUR WORK STATUS WON''T ALLOW YOU TO RENT A CAR!');
      COMMIT;
    END IF;

  ELSE
    message('SORRY, SEEMS LIKE YOU ARE NOT HAVING A CITIZENS'' LICENCE !');
    COMMIT;
  END IF;
END;

хорошо, хотя код уже compiled, работает нормально, но этовнутри x5 вроде ничеговозможно, я ошибся в том, как я создал оба блока, или, возможно, у блока CRI_AV_VIEW есть table view, поэтому он не даст мне никакого значения, или я не знаю, как принять значение item textbox ивбить это в другое значение другого item box?

пожалуйста, направьте меня со своим мнением мы мигрируемспаси день!или мы можем сложить поток!

...