FoxPro8

         

Проверка удовлетворения введенных значений заданному условию


В данном примере определим условие проверки достоверности ввода данных для таблицы ordsaied, содержащей информацию о заказе. Например, при формировании накладной отпуска товара в кредит необходимо сравнивать итоговую сумму заказываемых товаров с максимально допустимым кредитом для данного клиента, содержащимся в таблице customer. Проверку будем осуществлять при вводе каждой позиции заказа.

  • Откройте окно проекта sales.
  • Выберите в окне проекта таблицу ordsaied и нажмите кнопку Modify (Модифицировать).
  • Для определения свойств таблицы перейдите на вкладку Table (Таблица).
  • В поле ввода Rule (Условие) области Record validation (Проверка правильности ввода записи) задайте вызов функции checkMaxCredit о, которая сравнивает итоговую сумму заказа с максимально допустимым кредитом клиента.
  • В поле Message (Сообщение) области Record validation введите текст сообщения (рис. 14.5) "Превышена допустимая сумма кредита клиента".
  • Рис. 14.5. Определение условия достоверности данных

  • Определим функцию CheckMaxCredit как свойство базы данных, поэтому создадим ее в виде хранимой процедуры.
  • Для создания хранимой процедуры checkMaxCredit в окне редактирования хранимых процедур, которое содержит ранее созданные программы. введите следующий текст:

    procedure CheckMaxCredit

    nCdOrder=Ordsaled.icdOrder ыь номер текущего заказа

    *вычисляем сумму всех введенных позиций заказа

    SELECT SUM(Ordsaled.nQuant*Ordsaled.nUnitPrice);

    FROM Ordsalem, Ordsaied;

    WHERE Ordsalem.icdOrder = Ordsaied.icdOrder;

    AND Ordsaied.icdOrder=nCdOrder; INTO ARRAY nSum

    * определяем максимальный кредит клиента из таблицы Customer

    SELECT Customer

    SEEK Ordsalem.icdCustomer

    * если запись о данном покупателе в таблице Customer есть, возвращаем

    * результат сравнения суммы заказа с максимальным кредитом

    IF FOUND()

    RETURN nSum(l) < CUSTOMER.yCreditLimit

    ELSE

    RETURN .F.

    ENDIF

    RETURN



    Содержание раздела