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

  • Автор темы nikka
  • Дата начала
Статус
Закрыто для дальнейших ответов.
N

nikka

Гость
#1
Имеються два предложения, которые работают с базой данных 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
 
Статус
Закрыто для дальнейших ответов.