| View previous topic :: View next topic | 
	
	
		| Author | Message | 
	
		| andre19 
 
  
 Joined: 24 May 2004
 Posts: 317
 Location: Andre
 Occupation: albumin (programmer)
 Interests: Новосибирск
 
 | 
			
				|  Posted: 22 Sep 2005 15:46    Post subject: Не могу написать  FileEval |   |  
				| 
 |  
				| здрасти всем, пишу Евал
 задача = Есть такая формы Ос-1б.
 в ней имеется поле "Организация-сдатчик"
 мне нужно в одном поле указать= наим.банка+КПП+БИК+ИНН...
 вопросы.
 1.как сослаться на базу партнер, не прибегая к исп. ф-ии
 DBUSEAREA(.T.,"",lcPth+"partner","partner",.T.), хотелось бы поюзать
 dbPush("partner","code","",{lcMyCode}), но говорит не такого алиаса!?  ...
 
 ....блин....пока писал 1й вопрос=забыл второй
 ****
 во....
 2й
 как узнать какие алиасы открыты в данном арме...
 ****
 своял вот чего
 [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 |  | 
	
		|  | 
	
		| nordk 
 
 
 Joined: 27 Jun 2005
 Posts: 1000
 Location: Горбунов Константин
 Occupation: БЭСТ-Партнер
 Interests: СПб
 
 | 
			
				|  Posted: 22 Sep 2005 16:24    Post subject: |   |  
				| 
 |  
				| Вам нужен HFileEval В 12 версии по ctrl-F5 и далее F11 создать программу, затем откомпилировать с отладчиком, стартовать задачу в нужном месте и в отладчике увидите все что Вас интересует
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| nordk 
 
 
 Joined: 27 Jun 2005
 Posts: 1000
 Location: Горбунов Константин
 Occupation: БЭСТ-Партнер
 Interests: СПб
 
 | 
			
				|  Posted: 22 Sep 2005 16:30    Post subject: Re: Не могу написать  FileEval |   |  
				| 
 |  
				|  	  | andre19 wrote: |  	  | пишу Евал
 почему-то даже ета программа не работает!!!!!
 
 PRIVATE lcMyName
 DBPUSH()
 lcMyName := 'sasasasas'
 DBPOP()
 | 
 
 PRIVATE lcMyName
 DBPUSH()
 lcMyName := 'sasasasas'
 DBPOP()
 ""
 В обычном FileEval работает без пробле
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| andre19 
 
  
 Joined: 24 May 2004
 Posts: 317
 Location: Andre
 Occupation: albumin (programmer)
 Interests: Новосибирск
 
 | 
			
				|  Posted: 23 Sep 2005 06:12    Post subject: |   |  
				| 
 |  
				| как понять- в обычном? своего "уродца" я вызываю в отчете, в АРМе ОС.
 может все из-за того что он у меня в папке extension...хотя с чего ради, но попробую переписать его в папку print
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| andre19 
 
  
 Joined: 24 May 2004
 Posts: 317
 Location: Andre
 Occupation: albumin (programmer)
 Interests: Новосибирск
 
 | 
			
				|  Posted: 23 Sep 2005 06:32    Post subject: |   |  
				| 
 |  
				| причем при использовании ф-ии DBPUSH или DBCLOSEARA ругается на ф-ию TRANSFORM? посмотрел ее описание...не могу понять!какое отношение она имеет к выгрузки базы.
 
 версия у меня 11.03 SP15
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| andre19 
 
  
 Joined: 24 May 2004
 Posts: 317
 Location: Andre
 Occupation: albumin (programmer)
 Interests: Новосибирск
 
 | 
			
				|  Posted: 23 Sep 2005 08:04    Post subject: |   |  
				| 
 |  
				|  	  | nordk wrote: |  	  | Вам нужен HFileEval В 12 версии по ctrl-F5 и далее F11 создать программу, затем откомпилировать с отладчиком, стартовать задачу в нужном месте и в отладчике увидите все что Вас интересует
 | 
 
 по ctrl-F5...ничего не происходит, мне ведь нужно добавить в шаблон форму FileEval в ОС, похоже для этого арма нет такой возможност
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| nordk 
 
 
 Joined: 27 Jun 2005
 Posts: 1000
 Location: Горбунов Константин
 Occupation: БЭСТ-Партнер
 Interests: СПб
 
 | 
			
				|  Posted: 23 Sep 2005 09:35    Post subject: |   |  
				| 
 |  
				| Для FileEval надо складывать программки в папку PRINT\OC Extensns для HFileEval.
 
 Ваш пример из модуля ОС c моей поправкой у меня работает
 
 Рекомендация: Возьмите 12 версию, после CTRL-F5 нажмите F11 и пишите там. Напишите там где он вызывается а потом откомпилированную программу используйте там где Вам нужно посредством запуска HFileEval("*.hrb",{})
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| andre19 
 
  
 Joined: 24 May 2004
 Posts: 317
 Location: Andre
 Occupation: albumin (programmer)
 Interests: Новосибирск
 
 | 
			
				|  Posted: 23 Sep 2005 10:32    Post subject: |   |  
				| 
 |  
				|  	  | Quote: |  	  | Рекомендация: Возьмите 12 версию, после CTRL-F5 нажмите F11 и пишите там. Напишите там где он вызывается а потом откомпилированную программу используйте там где Вам нужно посредством запуска HFileEval("*.hrb",{}) | 
 
 я пока не могу перейти на 12-ю версию, слишком рано в ней есть еще недоработки.
 
 
  	  | Quote: |  	  | Ваш пример из модуля ОС c моей поправкой у меня работает | 
 
 с какой доработкой?
  |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| andre19 
 
  
 Joined: 24 May 2004
 Posts: 317
 Location: Andre
 Occupation: albumin (programmer)
 Interests: Новосибирск
 
 | 
			
				|  Posted: 23 Sep 2005 10:41    Post subject: |   |  
				| 
 |  
				|   Костя, вот мой код, который чечас не работает, что ни так? в чем ошибка понять не могу.
 Лежит в каталоге
 
  	  | 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 |  | 
	
		|  | 
	
		| nordk 
 
 
 Joined: 27 Jun 2005
 Posts: 1000
 Location: Горбунов Константин
 Occupation: БЭСТ-Партнер
 Interests: СПб
 
 | 
			
				|  Posted: 23 Sep 2005 11:05    Post subject: |   |  
				| 
 |  
				| DBUSEAREA(.T.,"",lcPth+"partner","partner2",.T.) partner2->(DBSETINDEX("partner"))
 
 В 4+ в FileEval категорично не работает DBUSEAREA()
 
 Используй NetUse()
 DBSETINDEX не нужна вообще
 
 И еще все-таки давай в HFileEval - там пошагово по кнопке F8 встанешь на строку с ошибкой и дальше я и не нужен буд
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Behemoth 
 
  
 Joined: 15 Mar 2002
 Posts: 155
 Location: Новиков Алексей Юрьевич
 Occupation: ПБОЮЛ
 Interests: Пермь
 
 | 
			
				|  Posted: 23 Sep 2005 11:13    Post subject: |   |  
				| 
 |  
				| Добрый день. 
 to andre19
 Добавьте в конце Вашей программы такую строчку:
 ''
 Вы используете fileeval  в печатной форме, значит результат выполнения вашей программы должен быть отображен этой формой.
 Результатом выполнения fileeval является результат выполнения последней "команды". В Вашем случае это dppop(). dbpop() всегда возвращает nil. Получив этот nil генератор печатной формы не может преобразовать его в строку текста, которая по его мнению должна быть выведена. Именно об этом информирует Вас приведенная Вами ошибка.
 После добавления в конце программы '', результатом станет текстовая строка нулевой длины. И ошибки не будет.
 _________________
 С уважением, Новиков Алексей.
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| nordk 
 
 
 Joined: 27 Jun 2005
 Posts: 1000
 Location: Горбунов Константин
 Occupation: БЭСТ-Партнер
 Interests: СПб
 
 | 
			
				|  Posted: 23 Sep 2005 11:42    Post subject: |   |  
				| 
 |  
				| Я уже писал вроде как про '' |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| andre19 
 
  
 Joined: 24 May 2004
 Posts: 317
 Location: Andre
 Occupation: albumin (programmer)
 Interests: Новосибирск
 
 | 
			
				|  Posted: 23 Sep 2005 11:43    Post subject: |   |  
				| 
 |  
				|  	  | 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 |  | 
	
		|  | 
	
		|  |