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

Не могу написать FileEval

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



Joined: 24 May 2004
Posts: 317
Location: Andre
Occupation: albumin (programmer)
Interests: Новосибирск

PostPosted: 22 Sep 2005 15:46    Post subject: Не могу написать FileEval Reply with quote

здрасти всем,
пишу Евал
задача = Есть такая формы Ос-1б.
в ней имеется поле "Организация-сдатчик"
мне нужно в одном поле указать= наим.банка+КПП+БИК+ИНН...
вопросы.
1.как сослаться на базу партнер, не прибегая к исп. ф-ии
DBUSEAREA(.T.,"",lcPth+"partner","partner",.T.), хотелось бы поюзать
dbPush("partner","code","",{lcMyCode}), но говорит не такого алиаса!? ...

....блин....пока писал 1й вопрос=забыл второй
****
во....

как узнать какие алиасы открыты в данном арме...
****
своял вот чего
[code]
PRIVATE lcPth, lcMyCode, lcMyName
lcMyCode := aPars[1]
lcPth := "e:\bst\dbase\alb\"
//
//
dbPush("partner","code","",{"lcMyCode"})
dbseek(lcMyCode)
lcMyName := alltrim(partner2->shortname)
DBPOP()

ругается на вызов DBPush
****
почему для закрытия алиаса не подходит ф-ии!!!!!
Код:

partner2->(F_DBUNLOCK())
partner2->(dbCloseArea())




неужели ни кто не знает!
****
почему-то даже ета программа не работает!!!!!

PRIVATE lcMyName
DBPUSH()
lcMyName := 'sasasasas'
DBPOP()
Back to top
View user's profile Send private message
nordk



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

PostPosted: 22 Sep 2005 16:24    Post subject: Reply with quote

Вам нужен HFileEval
В 12 версии по ctrl-F5 и далее F11 создать программу, затем откомпилировать с отладчиком, стартовать задачу в нужном месте и в отладчике увидите все что Вас интересует
Back to top
View user's profile Send private message Send e-mail
nordk



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

PostPosted: 22 Sep 2005 16:30    Post subject: Re: Не могу написать FileEval Reply with quote

andre19 wrote:

пишу Евал
почему-то даже ета программа не работает!!!!!

PRIVATE lcMyName
DBPUSH()
lcMyName := 'sasasasas'
DBPOP()


PRIVATE lcMyName
DBPUSH()
lcMyName := 'sasasasas'
DBPOP()
""
В обычном FileEval работает без пробле
Back to top
View user's profile Send private message Send e-mail
andre19



Joined: 24 May 2004
Posts: 317
Location: Andre
Occupation: albumin (programmer)
Interests: Новосибирск

PostPosted: 23 Sep 2005 06:12    Post subject: Reply with quote

как понять- в обычном?
своего "уродца" я вызываю в отчете, в АРМе ОС.
может все из-за того что он у меня в папке extension...хотя с чего ради, но попробую переписать его в папку print
Back to top
View user's profile Send private message
andre19



Joined: 24 May 2004
Posts: 317
Location: Andre
Occupation: albumin (programmer)
Interests: Новосибирск

PostPosted: 23 Sep 2005 06:32    Post subject: Reply with quote

причем при использовании ф-ии DBPUSH или DBCLOSEARA
ругается на ф-ию TRANSFORM? посмотрел ее описание...не могу понять!какое отношение она имеет к выгрузки базы.

версия у меня 11.03 SP15
Back to top
View user's profile Send private message
andre19



Joined: 24 May 2004
Posts: 317
Location: Andre
Occupation: albumin (programmer)
Interests: Новосибирск

PostPosted: 23 Sep 2005 08:04    Post subject: Reply with quote

nordk wrote:
Вам нужен HFileEval
В 12 версии по ctrl-F5 и далее F11 создать программу, затем откомпилировать с отладчиком, стартовать задачу в нужном месте и в отладчике увидите все что Вас интересует


по ctrl-F5...ничего не происходит, мне ведь нужно добавить в шаблон форму FileEval в ОС, похоже для этого арма нет такой возможност
Back to top
View user's profile Send private message
nordk



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

PostPosted: 23 Sep 2005 09:35    Post subject: Reply with quote

Для FileEval надо складывать программки в папку PRINT\OC
Extensns для HFileEval.

Ваш пример из модуля ОС c моей поправкой у меня работает

Рекомендация: Возьмите 12 версию, после CTRL-F5 нажмите F11 и пишите там. Напишите там где он вызывается а потом откомпилированную программу используйте там где Вам нужно посредством запуска HFileEval("*.hrb",{})
Back to top
View user's profile Send private message Send e-mail
andre19



Joined: 24 May 2004
Posts: 317
Location: Andre
Occupation: albumin (programmer)
Interests: Новосибирск

PostPosted: 23 Sep 2005 10:32    Post subject: Reply with quote

Quote:
Рекомендация: Возьмите 12 версию, после CTRL-F5 нажмите F11 и пишите там. Напишите там где он вызывается а потом откомпилированную программу используйте там где Вам нужно посредством запуска HFileEval("*.hrb",{})


я пока не могу перейти на 12-ю версию, слишком рано в ней есть еще недоработки.

Quote:
Ваш пример из модуля ОС c моей поправкой у меня работает


с какой доработкой?
Back to top
View user's profile Send private message
andre19



Joined: 24 May 2004
Posts: 317
Location: Andre
Occupation: albumin (programmer)
Interests: Новосибирск

PostPosted: 23 Sep 2005 10:41    Post subject: Reply with quote


Костя, вот мой код, который чечас не работает, что ни так? в чем ошибка понять не могу.
Лежит в каталоге
Code:
PRO\PLUGINS\PRINT\OC\

вызывается на исполнение в "Шаблона док-та движения" фразой вычислить по формуле
Code:
FileEval("MainAtr.prg",{CodePred,CodePart})


Code:

PRIVATE lcMyCode, lcPartCode, lRes, lcPth, lcMyName, lcPartName
lcMyCode := (aPars[1])
lcPartCode := (aPars[2])
lcPth := LoadPath()
//sayandwait(LoadPath())

DBPUSH()
//dbPush("partner2","code","",{"partner->code",lcMyCode})
DBUSEAREA(.T.,"",lcPth+"partner","partner2",.T.)
partner2->(DBSETINDEX("partner"))
partner2->(ORDSETFOCUS("code"))
//1
dbseek(lcMyCode)
lcMyName := alltrim(partner2->Shortname)
//2
dbseek(lcPartCode)
lcPartName := alltrim(partner2->Shortname)
// RESULT!
lRes := lcMyName+' '+lcPartName
//partner2->(F_DBUNLOCK())
//partner2->(dbCloseArea())
DBPOP()


в таком варианте выдает ошибку
Code:

Error BASE/1122 Не верный аргумент : Transform Arguments :
            ( [1] = Type U [ 2] = Type: C Val
9999999999999999999999999999999999999999999999999999
                        9999)
Back to top
View user's profile Send private message
nordk



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

PostPosted: 23 Sep 2005 11:05    Post subject: Reply with quote

DBUSEAREA(.T.,"",lcPth+"partner","partner2",.T.)
partner2->(DBSETINDEX("partner"))

В 4+ в FileEval категорично не работает DBUSEAREA()

Используй NetUse()
DBSETINDEX не нужна вообще

И еще все-таки давай в HFileEval - там пошагово по кнопке F8 встанешь на строку с ошибкой и дальше я и не нужен буд
Back to top
View user's profile Send private message Send e-mail
Behemoth



Joined: 15 Mar 2002
Posts: 155
Location: Новиков Алексей Юрьевич
Occupation: ПБОЮЛ
Interests: Пермь

PostPosted: 23 Sep 2005 11:13    Post subject: Reply with quote

Добрый день.

to andre19
Добавьте в конце Вашей программы такую строчку:
''
Вы используете fileeval в печатной форме, значит результат выполнения вашей программы должен быть отображен этой формой.
Результатом выполнения fileeval является результат выполнения последней "команды". В Вашем случае это dppop(). dbpop() всегда возвращает nil. Получив этот nil генератор печатной формы не может преобразовать его в строку текста, которая по его мнению должна быть выведена. Именно об этом информирует Вас приведенная Вами ошибка.
После добавления в конце программы '', результатом станет текстовая строка нулевой длины. И ошибки не будет.
_________________
С уважением, Новиков Алексей.
Back to top
View user's profile Send private message Send e-mail
nordk



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

PostPosted: 23 Sep 2005 11:42    Post subject: Reply with quote

Я уже писал вроде как про ''
Back to top
View user's profile Send private message Send e-mail
andre19



Joined: 24 May 2004
Posts: 317
Location: Andre
Occupation: albumin (programmer)
Interests: Новосибирск

PostPosted: 23 Sep 2005 11:43    Post subject: Reply with quote

Behemoth wrote:
Добрый день.

to andre19
Добавьте в конце Вашей программы такую строчку:
''
Вы используете fileeval в печатной форме, значит результат выполнения вашей программы должен быть отображен этой формой.
Результатом выполнения fileeval является результат выполнения последней "команды". В Вашем случае это dppop(). dbpop() всегда возвращает nil. Получив этот nil генератор печатной формы не может преобразовать его в строку текста, которая по его мнению должна быть выведена. Именно об этом информирует Вас приведенная Вами ошибка.
После добавления в конце программы '', результатом станет текстовая строка нулевой длины. И ошибки не будет.





скажим так!
'' не помогли, вернее как, помогли, но Евал возвращал пистое значение, в общем код теперь выглядит вот так

Code:

PRIVATE lcMyCode, lcPartCode, lRes, lcPth, lcMyName, lcPartName
lcMyCode := (aPars[1])
lcPartCode := (aPars[2])
lcPth := LoadPath()
//sayandwait(LoadPath())

DBPUSH()
//dbPush("partner2","code","",{"partner->code",lcMyCode})
DBUSEAREA(.T.,"",lcPth+"partner","partner2",.T.)
partner2->(DBSETINDEX("partner"))
partner2->(ORDSETFOCUS("code"))
//1
dbseek(lcMyCode)
lcMyName := alltrim(partner2->Shortname)
//2
dbseek(lcPartCode)
lcPartName := alltrim(partner2->Shortname)
//partner2->(F_DBUNLOCK())
//partner2->(dbCloseArea())
DBPOP()
// RESULT!
lRes := lcMyName+' '+lcPartName


но вот, хоть убейте не знал, что DBPOP() это ф-ия присваивания!!! и какого черта ее рез. пихается в ретурн! ну да ладно.....


Behemoth тебе гиганское спасибище!!!!
Back to top
View user's profile Send private message
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