1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Помогите с решением задачи

Тема в разделе "Базы данных и администрирование", создана пользователем nikka, 9 мар 2007.

Статус темы:
Закрыта.
  1. nikka

    nikka Гость

    Репутация:
    0
    Имеються два предложения, которые работают с базой данных Paradox. Отдельно они работают нормально. В первом приложении идет рассчет НДС, но т.к. используемый НДС разный, он считает все по одному, тот что указан в первой строке. Нужно чтобы первое приложение считало так же... Не могу никак сделать, выдает всегда ошибку Answer не найден.
    текст 1й:

    Код:
    PROC SF_pr()
    PRIVATE BL
    SHOWPULLDOWN
    ENDMENU
    if sf_ot() then
    
    VIEW "ARCH"
    MOVETO [N_SF]
    LOCATE NSF
    IF NOT RETVAL THEN
    CLEARALL 
    Query
    
    Glav | N_СДЕЛ | N_КЛИЕНТ | ДАТА | ТИП  | СТОИМОСТЬ | 
    | _N!	| _K	  | Check | Check | Check	 | 
    
    Glav | N_АВТ |  ФО  |	ОПЛ	 | КОР_СЧ | 
    | Check | Check | Check ~NSF | Check | 
    
    Sdelka | N_СДЕЛ | НАИМЕНОВАНИЕ | КОЛ-ВО |		  ЦЕНА			| 
    | _N	 | Check _NA	| Check | Check CALC BLANK AS "ТОВ" | 
    
    Sdelka | 
    | 
    
    Klient | N_КЛИЕНТ | ИМЯ  | ИНН  | АДРЕС | ТЕЛ  | 
    | _K	  | Check | Check | Check | Check | 
    
    Endquery
    DO_IT!
    IF ISEMPTY("ANSWER") THEN
    
    BEEP 
    MESSAGE " Неправильный номер счета-фактуры. Проверьте ввод"
    SLEEP 3000
    MESSAGE ""
    MAINMENU()
    RETURN
    ENDIF
    ;IF [ТИП]="ОТГ.ПР" OR [ТИП]="СЕКЦИИ" THEN
    CLEARALL
    Query
    
    Answer | ДАТА | ТИП  | СТОИМОСТЬ | N_АВТ |  ФО  | ОПЛ  | 
    | Check | Check | Check	 | Check | Check | Check | 
    
    Answer | КОР_СЧ | НАИМЕНОВАНИЕ | КОЛ-ВО | ЦЕНА | ИМЯ  | ИНН  | 
    | Check | Check _NA!  | Check | Check | Check | Check | 
    
    Answer | АДРЕС | ТЕЛ  |	  ТОВ			| 
    | Check | Check | CALC BLANK AS "ТОВ" | 
    
    Fruct | НАИМЕНОВАНИЕ | СТРАНА | N_DEKL | 
    | _NA		 | Check | Check | 
    
    Endquery
    do_it!
    IF [ТИП]="ОТГ.ПР" OR [ТИП]="СЕКЦИИ" THEN
    CLEARALL
    Query
    
    Answer | ОПЛ | НАИМЕНОВАНИЕ | 
    | _N | _NA		 | 
    
    Answer | СТРАНА | N_DEKL | 
    | _S	 | _ND	| 
    
    Arch | N_SF | НАИМЕНОВАНИЕ | СТРАНА | N_DEKL | 
    INSERT | _N  | _NA		 | _S	 | _ND	| 
    
    Endquery
    DO_IT!
    CLEARALL
    Query
    
    Arch |	 N_НАКЛ	 |	N_SF		| 
    | _K,CHANGETO _NA | _N ,NOT BLANK | 
    
    Glav | N_НАКЛ |	 ОПЛ	 | 
    | _NA	| _N ,NOT BLANK | 
    
    Endquery
    DO_IT!
    ENDIF
    CLEARALL
    VIEW "ANSWER"
    ELSE
    Query
    
    Glav | N_СДЕЛ | N_КЛИЕНТ | ДАТА | ТИП  | СТОИМОСТЬ | 
    | _N!	| _K	  | Check | Check | Check	 | 
    
    Glav | N_АВТ |  ФО  |	ОПЛ	 | КОР_СЧ | 
    | Check | Check | Check ~NSF | Check | 
    
    Sdelka | N_СДЕЛ | НАИМЕНОВАНИЕ | КОЛ-ВО |		  ЦЕНА			| 
    | _N	 | Check		| Check | Check CALC BLANK AS "ТОВ" | 
    
    Sdelka | 
    | 
    
    Klient | N_КЛИЕНТ | ИМЯ  | ИНН  | АДРЕС | ТЕЛ  | 
    | _K	  | Check | Check | Check | Check | 
    
    Endquery
    DO_IT!
    RENAME "ANSWER" "TEMP1"
    CLEARALL
    Query
    
    Arch | N_SF | НАИМЕНОВАНИЕ | СТРАНА | N_DEKL | 
    | ~NSF | Check		| Check | Check | 
    
    Endquery
    DO_IT!
    CLEARALL
    Query
    
    Temp1 | ДАТА | ТИП  | СТОИМОСТЬ | N_АВТ |  ФО  | ОПЛ  | 
    | Check | Check | Check	 | Check | Check | Check | 
    
    Temp1 | КОР_СЧ | НАИМЕНОВАНИЕ | КОЛ-ВО | ЦЕНА | ИМЯ  | ИНН  | 
    | Check | Check _NA!  | Check | Check | Check | Check | 
    
    Temp1 | АДРЕС | ТЕЛ  |		 ТОВ		 | 
    | Check | Check | CALC BLANK AS "ТОВ" | 
    
    Answer | НАИМЕНОВАНИЕ | СТРАНА | N_DEKL | 
    | _NA		 | Check | Check | 
    
    Endquery
    DO_IT!
    ENDIF
    EDITKEY
    IF [ДАТА]<=26.02.2000 THEN
    SCAN
    [СТРАНА]=""
    [N_DEKL]=""
    ENDSCAN
    ENDIF
    DO_IT!
    ;DEBUG
    IF ISEMPTY("ANSWER") THEN
    
    BEEP 
    MESSAGE " Неправильный номер счета-фактуры. Проверьте ввод"
    SLEEP 3000
    MESSAGE ""
    MAINMENU()
    RETURN
    ENDIF
    SWITCH
    CASE ([ТИП]="СЕКЦИИ" OR [ТИП]="ОТГ.ПР"):
    IF [КОР_СЧ]=1 THEN
    EDITKEY
    MOVETO [ЦЕНА]
    SCAN
    [ОПЛ]=[]
    []=ROUND([]/((1+NDSF)*(1+NPR)),2)
    [ТОВ]=ROUND([ЦЕНА]*[КОЛ-ВО]*NDSF,2)
    ENDSCAN
    DO_IT!
    COPYREPORT "T360" 7 "ANSWER" 1
    MAKEREP()
    MAKEREP()
    ELSE
    EDITKEY
    MOVETO [ЦЕНА]
    SCAN
    A=[]
    []=IIF([ФО]="ФРУКТЫ",ROUND([]/(1+ndsf),2),ROUND([]/(1+ndso),2))
    [ТОВ]=[КОЛ-ВО]*(A-[ЦЕНА])
    ENDSCAN
    do_it!
    COPYREPORT "T360" 6 "ANSWER" 1
    MAKEREP()
    MAKEREP()
    ENDIF
    CASE [ТИП]="ТАРИФ":
    if pert() then
    COPYREPORT "T360" 2 "ANSWER" 1
    MAKEREP()
    MAKEREP()
    endif
    CASE [ТИП]="ВОЗНАГ":
    if pert() then
    COPYREPORT "T360" 3 "ANSWER" 1
    MAKEREP()
    MAKEREP()
    endif
    CASE [ТИП]="ПРЕДОП":
    COPYREPORT "T360" 4 "ANSWER" 1
    MAKEREP()
    MAKEREP()
    ENDSWITCH
    
    ENDIF
    clearall
    echo normal
    echo off
    MAINMENU()
    ENDPROC

    второй:

    Код:
    PROC SF_TEP()
    PRIVATE NF,NO,A1,A2,NDSF,NDSO,CC,S_PR
    SHOWPULLDOWN
    ENDMENU
    NF=18
    NO=10
    if na_ot() then
    MESSAGE "Wait,please... Происходит формирование накладной "
    
    Query
    
    Glav | N_СДЕЛ | ДАТА | СТОИМОСТЬ | N_НАКЛ  | ОПЛ  | 
    | _N	 | Check | Check	 | Check ~NA | Check | 
    
    Glav | 
    | 
    
    Sdelka | N_СДЕЛ | НАИМЕНОВАНИЕ | КОЛ-ВО | ЦЕНА | 
    | _N	 | Check _K	 | Check | Check | 
    
    Fruct | НАИМЕНОВАНИЕ | СТРАНА | N_DEKL |  FO  | 
    | _K		  | Check | Check | Check | 
    
    Endquery
    DO_IT!
    IF ISEMPTY("ANSWER") THEN
    BEEP 
    MESSAGE " Неправильный номер накладной. Проверьте ввод."
    SLEEP 3000
    MESSAGE ""
    MAINMENU()
    RETURN
    ENDIF
    Query
    
    Answer | ДАТА | СТОИМОСТЬ |											 N_НАКЛ											 | 
    | Check | Check	 | Check _N, CALC _N*0 AS CEN1, CALC _N*0 AS S1, CALC _N*0 AS ST, CALC _N*0 AS SN,CALC _N*0 AS SO | 
    
    Answer | ОПЛ  | НАИМЕНОВАНИЕ | КОЛ-ВО | ЦЕНА | СТРАНА | N_DEKL | 
    | Check | Check		| Check | Check | Check | Check | 
    
    Answer |  FO  | 
    | Check | 
    
    Endquery
    DO_IT!
    CLEARALL
    EDIT "ANSWER"
    SCAN
    [ST]=IIF([FO]="Ф",NF,NO)
    [CEN1]=ROUND([ЦЕНА]/([ST]/100+1),2)
    [S1]=ROUND([ЦЕНА]*[КОЛ-ВО]/([ST]/100+1),2)
    [SN]=ROUND([ЦЕНА]*[КОЛ-ВО]/([ST]/100+1)*[ST]/100,2)
    [SO]=ROUND([ЦЕНА]*[КОЛ-ВО],2)
    ENDSCAN
    DO_IT!
    COPY "ANSWER" "TEMP"
    VIEW "ANSWER"
    CC=[ANSWER->СТОИМОСТЬ]
    PEREV(CC)
    S_PR=PR
    CLEARALL
    ;debug
    Query
    
    Temp | FO |		SN		| 
    | Ф | CALC SUM AS NDSF | 
    
    Temp | 
    | 
    
    Endquery
    DO_IT!
    IF ISEMPTY("answer") THEN NDSF="" ELSE
    a1=int([ndsf])
    a2=round(100*([ndsf]-int([ndsf])),2)
    ndsf="НДС 18%-"+ strval(a1)+" руб."+ IIF(A2=0, "00",strval(a2))+" коп."
    ENDIF
    CLEARALL
    Query
    
    Temp | FO |		SN		| 
    | О | CALC SUM AS NDSO | 
    
    Temp | 
    | 
    
    Endquery
    DO_IT!
    IF ISEMPTY("answer") THEN NDSO="" ELSE
    a1=int([ndso])
    a2=round(100*([ndso]-int([ndso])),2)
    ndso="НДС 10%-"+ strval(a1)+" руб."+ IIF(A2=0, "00",strval(a2))+" коп."
    ENDIF
    clearall
    copy "temp" "answer"
    
    MESSAGE ""
    COPYREPORT "T302" 1 "ANSWER" 1
    MAKEREP()
    CLEARALL
    MESSAGE "Wait,please... Происходит формирование счета-фактуры. "
    SLEEP 500
    MESSAGE ""
    COPYREPORT "T302" 3 "ANSWER" 1
    MAKEREP()
    ENDIF
    clearall
    echo normal
    echo off
    MAINMENU()
    ENDPROC
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей