N
nikka
Имеються два предложения, которые работают с базой данных Paradox. Отдельно они работают нормально. В первом приложении идет рассчет НДС, но т.к. используемый НДС разный, он считает все по одному, тот что указан в первой строке. Нужно чтобы первое приложение считало так же... Не могу никак сделать, выдает всегда ошибку Answer не найден.
текст 1й:
второй:
текст 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