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

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

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

    nikka Гость

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

    Код (Text):
    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

    второй:

    Код (Text):
    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
     
Загрузка...
Статус темы:
Закрыта.

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