Главная
Новый форум
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

После переходе с BMOD 10.05 на ВIN 12.01/5 пересталоработать

 
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4
View previous topic :: View next topic  
Author Message
Яков



Joined: 04 Mar 2002
Posts: 618
Location: Яков
Occupation: Экстремальная терапия бизнеса
Interests: Владивосток

PostPosted: 28 Nov 2005 05:09    Post subject: После переходе с BMOD 10.05 на ВIN 12.01/5 пересталоработать Reply with quote

При переходе с 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
View user's profile Send private message Send e-mail Visit poster's website
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 28 Nov 2005 15:03    Post subject: Reply with quote

Сделайте из него hrb файл
Back to top
View user's profile Send private message Send e-mail
Яков



Joined: 04 Mar 2002
Posts: 618
Location: Яков
Occupation: Экстремальная терапия бизнеса
Interests: Владивосток

PostPosted: 29 Nov 2005 02:56    Post subject: Reply with quote

Компиляция проходит, но при запуске аналогичные проблемы.
(запускаю и при записи складского документа и по требованию)
Программу вышибает вместе с БЭСТом.


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
View user's profile Send private message Send e-mail Visit poster's website
shura_k



Joined: 10 Oct 2003
Posts: 342
Location: Александр
Occupation: Специалист
Interests: Калининград

PostPosted: 29 Nov 2005 11:55    Post subject: Reply with quote

Так сделайте просто в начале
Function MAIN ()
в конце
Return
Back to top
View user's profile Send private message
Яков



Joined: 04 Mar 2002
Posts: 618
Location: Яков
Occupation: Экстремальная терапия бизнеса
Interests: Владивосток

PostPosted: 29 Nov 2005 12:15    Post subject: Reply with quote

Сделал:
Function MAIN ()
..........
Return

Стало веселее.
Программа уже начала спрашивать процент наценки, но потом обратно вылетает
Back to top
View user's profile Send private message Send e-mail Visit poster's website
shura_k



Joined: 10 Oct 2003
Posts: 342
Location: Александр
Occupation: Специалист
Interests: Калининград

PostPosted: 29 Nov 2005 13:02    Post subject: Reply with quote

Логи или сообщения об ошибках в студию.
Back to top
View user's profile Send private message
Яков



Joined: 04 Mar 2002
Posts: 618
Location: Яков
Occupation: Экстремальная терапия бизнеса
Interests: Владивосток

PostPosted: 29 Nov 2005 13:06    Post subject: Reply with quote

Двумя темами выше уже опубликовал

А БЭСТ вылетает со следующими словами.
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
View user's profile Send private message Send e-mail Visit poster's website
shura_k



Joined: 10 Oct 2003
Posts: 342
Location: Александр
Occupation: Специалист
Interests: Калининград

PostPosted: 29 Nov 2005 13:15    Post subject: Reply with quote

попробуйте заменить
F_DBUNLOCK
на DBUNLOCK
Back to top
View user's profile Send private message
Яков



Joined: 04 Mar 2002
Posts: 618
Location: Яков
Occupation: Экстремальная терапия бизнеса
Interests: Владивосток

PostPosted: 29 Nov 2005 13:32    Post subject: Reply with quote

shura_k wrote:
попробуйте заменить
F_DBUNLOCK
на DBUNLOCK

Не помогл
Back to top
View user's profile Send private message Send e-mail Visit poster's website
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 29 Nov 2005 17:06    Post subject: Reply with quote

Откомипилируйте плз с отладчиком.
Через F8 и точки останова определите строку на которой ошибка.
И еще уберите вообще просто RECLOCK()
F_DBUNLOCK() они ни к чему абсолютно
Если не сможете понять дайте новый текст и номер строки плз
Back to top
View user's profile Send private message Send e-mail
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 29 Nov 2005 17:18    Post subject: Reply with quote

Сан Саныч обратил мое внимание что вы используете реляцию в DBPUSH
ее лучше убрать и запись в mlabel искать через DBSEEK()
Дело в том что последние два параметра DBPUSH() в харборе не поддерживаются для реляции - они вообще не документированные
при реляции почему-то у меня вообще не получается писать в харборе - ошибку дает то ли при блокировки записи связанной таблицы - не помню а точнее просто слетает
Если кто-то найдет время и детально проанализирует данный факт буду признателен.
Сан Саныч уверяет что при реляции работать должно и я ошибаю
Back to top
View user's profile Send private message Send e-mail
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 30 Nov 2005 09:50    Post subject: Re: После переходе с BMOD 10.05 на ВIN 12.01/5 пересталорабо Reply with quote

Простейшее решение

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
View user's profile Send private message Send e-mail
shura_k



Joined: 10 Oct 2003
Posts: 342
Location: Александр
Occupation: Специалист
Interests: Калининград

PostPosted: 30 Nov 2005 12:27    Post subject: Reply with quote

а можно обратить внимание общественности на то что изменилось?
Back to top
View user's profile Send private message
Яков



Joined: 04 Mar 2002
Posts: 618
Location: Яков
Occupation: Экстремальная терапия бизнеса
Interests: Владивосток

PostPosted: 30 Nov 2005 12:36    Post subject: Reply with quote

Большое спасибо.
Вроде заработало.
Завтра с утра буду опробывать в деле.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 30 Nov 2005 14:00    Post subject: Reply with quote

shura_k wrote:
а можно обратить внимание общественности на то что изменилось?

Да никаких проблем
1. DBPUSH()
2. Добавлен DBSEEK()
3. Убран ненужный RECLOCK() и F_DBUNLOCK()
4. Добавлен DBCOMMIT()
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4 All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group

Rambler
Rambler's Top100 Рейтинг@Mail.ru