View previous topic :: View next topic |
Author |
Message |
Яков
Joined: 04 Mar 2002 Posts: 618 Location: Яков Occupation: Экстремальная терапия бизнеса Interests: Владивосток
|
Posted: 28 Nov 2005 05:09 Post subject: После переходе с BMOD 10.05 на ВIN 12.01/5 пересталоработать |
|
|
При переходе с BMOD 10.05 на ВIN 12.01/5 перестал работать плагин
ПОдскажите пожалуйста, что в нем надо подправить?
Code: | //версия 2 30/07/02
//исправл. 10/09/02 процент наценки
PRIVATE cena,cenna,p1,p2,p3,procent,Flag
cena:=0
cenna:=0
p1:=0
p2:="Неправильно разнесена отпускная цена"
Flag:=0
//новая 10.09.02
//спросить процент для прихода
procent:=0
DBPUSH("MDOCM","MDOCM","",{"UPPER(Sclad+Vid+Type+CodeDoc+NumDoc)",MDOC->(UPPER(Sclad+Vid+Type+CodeDoc+NumDoc)),,.F.,{"MDOCM"}},"UPPER(Grup+NNum)","MLABEL")
DBGOTOP()
DO WHILE !EOF()
Reclock()
mlabel->(RECLOCK())
if (mlabel->koef==0.00)
if (procent==0).and.(mlabel->marka<>"999")
procent:=DIALOG("Введите процент наценки : ","99",20)
endif
cena:=round(mlabel->cena0*(1+val(substr(mlabel->grup,4,2))/100)*(1+procent/100),0)
//cena:=round(mlabel->ocena0*(1+procent/100),0)
mlabel->koef:=cena
endif
mlabel->(F_DBUNLOCK())
F_DBUNLOCK()
DBSKIP()
ENDDO
DBPOP()
DBPUSH("MDOCM","MDOCM","",{"UPPER(Sclad+Vid+Type+CodeDoc+NumDoc)",MDOC->(UPPER(Sclad+Vid+Type+CodeDoc+NumDoc)),,.F.,{"MDOCM"}},"UPPER(Grup+NNum)","MLABEL")
DBGOTOP()
DO WHILE !EOF()
Reclock()
mlabel->(RECLOCK())
//Отпускная - устанавливается вручную
cena:=Mlabel->koef
mlabel->OCENA2:=cena
cena:=mlabel->cena0
//НДС=cenna
cenna:=val(substr(mlabel->grup,4,2))
mlabel->ocena1:=round(cena*(1+cenna/100),1)
mlabel->profil:=mdoc->agentname
mlabel->razmer:=dtoc(mdoc->date)
//отпускная цена 2 не должна быть меньше цены 1 (учетн+НДС)
//проверка цен в случае выполнения условия цена 2 обнуляется
p1:=round(cena*(1+cenna/100),2)
cena:=Mlabel->koef
mlabel->ocena3:=round(p1*1.1,1)
mlabel->ocena4:=round(p1*1.15,1)
p3:=p2+" "+mlabel->name
if (cena<p1)
mlabel->OCENA2:=0
sayandwait(p3)
endif
if (cena<(p1*1.01))
p3:="Наценка слишком мала "+mlabel->name
sayandwait(p3)
endif
mlabel->(F_DBUNLOCK())
F_DBUNLOCK()
DBSKIP()
ENDDO
DBPOP() |
|
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 28 Nov 2005 15:03 Post subject: |
|
|
Сделайте из него hrb файл |
|
Back to top |
|
|
Яков
Joined: 04 Mar 2002 Posts: 618 Location: Яков Occupation: Экстремальная терапия бизнеса Interests: Владивосток
|
Posted: 29 Nov 2005 02:56 Post subject: |
|
|
Компиляция проходит, но при запуске аналогичные проблемы.
(запускаю и при записи складского документа и по требованию)
Программу вышибает вместе с БЭСТом.
herror1.log
Code: | xHarbour Compiler build 0.99.1 (SimpLex)
Copyright 1999-2004, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'PRO\PLUGINS\SOURCE\SCLAD\prkoop0.prg'...
Lines 80, Functions/Procedures 1
Generating Harbour Portable Object output to 'PRO\PLUGINS\EXTENSNS\SCLAD\prkoop0.hrb'... Done.
|
herror.log
Code: | xHarbour Compiler build 0.99.1 (SimpLex)
Copyright 1999-2004, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'PRO\PLUGINS\SOURCE\SCLAD\prkoop0.prg'...
PRO\PLUGINS\SOURCE\SCLAD\prkoop0.prg(3) Error E0001 Statement not allowed outside of procedure or function
................................................................................
PRO\PLUGINS\SOURCE\SCLAD\prkoop0.prg(77) Error E0001 Statement not allowed outside of procedure or function
50 errors
No code generated
|
error.log
Code: | Couldn't create Error object in hb_errNew() |
|
|
Back to top |
|
|
shura_k
Joined: 10 Oct 2003 Posts: 342 Location: Александр Occupation: Специалист Interests: Калининград
|
Posted: 29 Nov 2005 11:55 Post subject: |
|
|
Так сделайте просто в начале
Function MAIN ()
в конце
Return |
|
Back to top |
|
|
Яков
Joined: 04 Mar 2002 Posts: 618 Location: Яков Occupation: Экстремальная терапия бизнеса Interests: Владивосток
|
Posted: 29 Nov 2005 12:15 Post subject: |
|
|
Сделал:
Function MAIN ()
..........
Return
Стало веселее.
Программа уже начала спрашивать процент наценки, но потом обратно вылетает |
|
Back to top |
|
|
shura_k
Joined: 10 Oct 2003 Posts: 342 Location: Александр Occupation: Специалист Interests: Калининград
|
Posted: 29 Nov 2005 13:02 Post subject: |
|
|
Логи или сообщения об ошибках в студию. |
|
Back to top |
|
|
Яков
Joined: 04 Mar 2002 Posts: 618 Location: Яков Occupation: Экстремальная терапия бизнеса Interests: Владивосток
|
Posted: 29 Nov 2005 13:06 Post subject: |
|
|
Двумя темами выше уже опубликовал
А БЭСТ вылетает со следующими словами.
Code: | Неисправимая ошибка 9000: Couldn't create Error object in hb_errNew()
Called from MAIN(0)
Called from __HRBDO(0)
Called from HFILEEVAL(585)
Called from FUNEVAL(340)
Called from EVAL(252)
Called from INITLIST(710)
Called from F_EVAL(269)
Called from EVAL(1269)
Called from INITLIST(710)
Called from DOC(1281)
Called from EVAL(287)
Called from QMENU(287)
Called from MYRUN(494)
Called from MAIN(22) |
|
|
Back to top |
|
|
shura_k
Joined: 10 Oct 2003 Posts: 342 Location: Александр Occupation: Специалист Interests: Калининград
|
Posted: 29 Nov 2005 13:15 Post subject: |
|
|
попробуйте заменить
F_DBUNLOCK
на DBUNLOCK |
|
Back to top |
|
|
Яков
Joined: 04 Mar 2002 Posts: 618 Location: Яков Occupation: Экстремальная терапия бизнеса Interests: Владивосток
|
Posted: 29 Nov 2005 13:32 Post subject: |
|
|
shura_k wrote: | попробуйте заменить
F_DBUNLOCK
на DBUNLOCK |
Не помогл |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 29 Nov 2005 17:06 Post subject: |
|
|
Откомипилируйте плз с отладчиком.
Через F8 и точки останова определите строку на которой ошибка.
И еще уберите вообще просто RECLOCK()
F_DBUNLOCK() они ни к чему абсолютно
Если не сможете понять дайте новый текст и номер строки плз |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 29 Nov 2005 17:18 Post subject: |
|
|
Сан Саныч обратил мое внимание что вы используете реляцию в DBPUSH
ее лучше убрать и запись в mlabel искать через DBSEEK()
Дело в том что последние два параметра DBPUSH() в харборе не поддерживаются для реляции - они вообще не документированные
при реляции почему-то у меня вообще не получается писать в харборе - ошибку дает то ли при блокировки записи связанной таблицы - не помню а точнее просто слетает
Если кто-то найдет время и детально проанализирует данный факт буду признателен.
Сан Саныч уверяет что при реляции работать должно и я ошибаю |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 30 Nov 2005 09:50 Post subject: Re: После переходе с BMOD 10.05 на ВIN 12.01/5 пересталорабо |
|
|
Простейшее решение
Code: | //версия 2 30/07/02
//исправл. 10/09/02 процент наценки
PRIVATE cena,cenna,p1,p2,p3,procent,Flag
cena:=0
cenna:=0
p1:=0
p2:="Неправильно разнесена отпускная цена"
Flag:=0
//новая 10.09.02
//спросить процент для прихода
procent:=0
DBPUSH("MDOCM","MDOCM","",{"UPPER(Sclad+Vid+Type+CodeDoc+NumDoc)",MDOC->(UPPER(Sclad+Vid+Type+CodeDoc+NumDoc)),,.F.,{"MDOCM"}})
DBGOTOP()
DO WHILE !EOF()
mlabel->( DBSEEK(UPPER(MDOCM->GRUP+MDOCM->NNUM)) )
mlabel->(RECLOCK())
if (mlabel->koef==0.00)
if (procent==0).and.(mlabel->marka<>"999")
procent:=DIALOG("Введите процент наценки : ","99",20)
endif
cena:=round(mlabel->cena0*(1+val(substr(mlabel->grup,4,2))/100)*(1+procent/100),0)
//cena:=round(mlabel->ocena0*(1+procent/100),0)
mlabel->koef:=cena
endif
mlabel->(F_DBUNLOCK())
DBSKIP()
ENDDO
mlabel->( DBCOMMIT() )
DBPOP()
DBPUSH("MDOCM","MDOCM","",{"UPPER(Sclad+Vid+Type+CodeDoc+NumDoc)",MDOC->(UPPER(Sclad+Vid+Type+CodeDoc+NumDoc)),,.F.,{"MDOCM"}})
DBGOTOP()
DO WHILE !EOF()
mlabel->( DBSEEK(UPPER(mdocm->GRUP+mdocm->NNUM)) )
mlabel->(RECLOCK())
//Отпускная - устанавливается вручную
cena:=Mlabel->koef
mlabel->OCENA2:=cena
cena:=mlabel->cena0
//НДС=cenna
cenna:=val(substr(mlabel->grup,4,2))
mlabel->ocena1:=round(cena*(1+cenna/100),1)
mlabel->profil:=mdoc->agentname
mlabel->razmer:=dtoc(mdoc->date)
//отпускная цена 2 не должна быть меньше цены 1 (учетн+НДС)
//проверка цен в случае выполнения условия цена 2 обнуляется
p1:=round(cena*(1+cenna/100),2)
cena:=Mlabel->koef
mlabel->ocena3:=round(p1*1.1,1)
mlabel->ocena4:=round(p1*1.15,1)
p3:=p2+" "+mlabel->name
if (cena<p1)
mlabel->OCENA2:=0
sayandwait(p3)
endif
if (cena<(p1*1.01))
p3:="Наценка слишком мала "+mlabel->name
sayandwait(p3)
endif
mlabel->(F_DBUNLOCK())
DBSKIP()
ENDDO
mlabel->( DBCOMMIT() )
DBPOP() | [/quote] |
|
Back to top |
|
|
shura_k
Joined: 10 Oct 2003 Posts: 342 Location: Александр Occupation: Специалист Interests: Калининград
|
Posted: 30 Nov 2005 12:27 Post subject: |
|
|
а можно обратить внимание общественности на то что изменилось? |
|
Back to top |
|
|
Яков
Joined: 04 Mar 2002 Posts: 618 Location: Яков Occupation: Экстремальная терапия бизнеса Interests: Владивосток
|
Posted: 30 Nov 2005 12:36 Post subject: |
|
|
Большое спасибо.
Вроде заработало.
Завтра с утра буду опробывать в деле. |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 30 Nov 2005 14:00 Post subject: |
|
|
shura_k wrote: | а можно обратить внимание общественности на то что изменилось? |
Да никаких проблем
1. DBPUSH()
2. Добавлен DBSEEK()
3. Убран ненужный RECLOCK() и F_DBUNLOCK()
4. Добавлен DBCOMMIT() |
|
Back to top |
|
|
|