Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Foxpro/Clipper/Dbase > Использование введенных значений несколько раз


Автор: BobiKK 7.7.2006, 08:47
Суть такова.
Имеется форма с textbox'ами. ControlSource у них dateForm1, dateForm2 и т.д. И имеется кнопочка Calculate, на event click которой навешано такое:
Код

PROCEDURE Click
    
    IF empty(dateForm1) OR empty(dateForm2) OR empty(per_cent);
        OR empty(first_amount) OR dateForm2 < dateForm1;
         OR VAL(per_cent) <= 0;
            OR VAL(first_amount) <= 0 OR dateForm1 = dateForm2
        =MESSAGEBOX("Wrong date or per cent value", 16, "Error")
    ELSE
        CREATE TABLE report_table;
         (day_num N(5), mydate D, amount N(13,4) )
        count = dateForm2 - dateForm1
        result_array(3) = VAL(first_amount)
        per_cent =VAL(per_cent)
        FOR i = 0 TO count
             result_array(1) = i + 1
             result_array(2) = dateForm1 + i
             result_array(3) = result_array(3) + (per_cent/100 *;
                        result_array(3))
            APPEND FROM ARRAY result_array
        ENDFOR
        myForm.HIDE
        _SCREEN.WindowState = 2
        difference = result_array(3) - VAL(first_amount)
        difference = ROUND(difference, 2)
        result_array(3) = ROUND(result_array(3), 2)
        REPORT FORM calc_report TO PRINTER PROMPT PREVIEW
        STORE 0 TO result_array
        myForm.Refresh
        myForm.SHOW
        _SCREEN.Width = 187
        _SCREEN.Height = 221
    ENDIF             

Первый раз все работает отлично. Однако, если закрыть репорт и снова нажать на кнопочку Calculate выдает такое: "Недопустимое значение, тип или число аргументов". Жму продолжить, и тогда выскакивает мой MESSAGEBOX с результатом неудачнйо проверки введенных данных из формы.
Вопрос: что делать и как дальше жить?
 

Автор: Artiom 7.7.2006, 09:13
у тебя идет присваивание per_cent =VAL(per_cent), а при следующем запуске - снова проверка VAL(per_cent) <=0. А VAL() кажется принимает на вход только строку. 

Автор: BobiKK 7.7.2006, 09:19
Ну да, логично до безобразия. Спасибо

P.S. Пошел искать стену 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)