Страница 1 из 1
					
				Выгрузка данных из ARD
				Добавлено: 19 окт 2004, 13:17
				 Syte
				Всем привет 

Проблема в том, что нужно дать возможность пользователю САМОСТОЯТЕЛЬНО выгружать данные из таблы в текстовый файл. В SQL'е это просто - добавляется to txt <имя_файла>. Но ни в ARD ни в VIP это не прокатывает 

пытался обойти написанием фейсов, но столкнулся с такими траблами - в форме нельзя открыть файл на запись, а в фейсе - нельзя организовать цикл по ЛОГИЧЕСКИМ таблицам (по view). Вызывать фейс по каждой записи из формы - смешно. И долго. У кого-нибудь есть опыт решения такой задачи?
 
			 
			
					
				Re: Выгрузка данных из ARD
				Добавлено: 19 окт 2004, 13:36
				 edward_K
				страно слышать что в фейсе нельзя делать цикл по логической табле.
самое простое в форме - logstrtofile(file,message) 
еще fileextst и deletefile
другой набор
file_openfile(id,file,stcreate)
file_writeln(id,mes)
file_closefile(id) 

 
			 
			
					
				Re: Выгрузка данных из ARD
				Добавлено: 19 окт 2004, 14:42
				 Syte
				ок, но id в этих функциях определяется методом handle. который может быть использован в VIP'е, но не в форме. или я не прав?
logstrtofile в форме не работает, но и не выдаёт никаких ошибок.
и к вопросу о логических таблицах в VIP'е - я могу не знать элементарных операторов, согласен. но тогда вопрос - как задать в фейсе цикл по логической таблице?
			 
			
					
				Re: Выгрузка данных из ARD
				Добавлено: 19 окт 2004, 15:49
				 Maverick
				>>но тогда вопрос - как задать в фейсе цикл по логической таблице?
Элементарно.
В Create View As Select * From ... 
Where 
((
...
));
ты определяешь объем данных, необходимых тебе (кстати и пассивная сортировка тоже задается - по ключам индексов в подцепке)
а в нужном месте юзаешь цикл
1 способ
If GetFirst MyTable = tsOk
Do
{
...
}
While GetNext MyTable;
2 способ
_Loop MyTable
{
...
};
Причем и в первом и во втором случае - каждая запись попадает под ограничения описанные во вьюхе
			 
			
					
				Re: Выгрузка данных из ARD
				Добавлено: 19 окт 2004, 17:24
				 JackVn
				Даже в присоединеке можно все сделать, не говоря уже об ARD. 
.LinkForm 'MAINBOOK_J1111' Prototype is 'MainBook'
.Group '......'
.NameInList '......'
.p 80
.var
  ...... 
  Handle:LongInt
  Scheto:String
  Schetk:String
  SumOb :Double
  DatOb :Date
.endvar
.Create view Tp as
select ......
from ......;
.fields
  CommonFormHeader
  c0p1
 .......
.endfields
......
.begin
 Handle:=DBFOpen('gk.dbf', stCreate);
 If Handle=0 Message('....!!');
 If DbfAddField(Handle, 'Podr', dbChar,10,0)<>0 Message('.....!!');
 Datob:=StrToDate(c0p3,'DD/MM/YYYY')
 ......
end.
 ^
.if OKFILMBOOK
.{
.{
.}
.}
.else
.end
.{
.[H
.]H
 ^ : ^
.begin
end.
.{
.{?internal; SUBSTR(TRIM(c2p1),1,2)<>ss
 @@@ @@               &#'&&&&&&&&&&&&&&.&& &#'&&&&&&&&&&&&&&.&&
.begin
 ......
end.
.{table 'Tp'
.begin
 If Sumob<>0  If DBFPutFieldValue(Handle, 'Scheto',Scheto )<>0 Message('....');
   .........
 If Sumob<>0  DBFInsertRecord(Handle);
end.
.}
			 
			
					
				Re: Выгрузка данных из ARD
				Добавлено: 19 окт 2004, 20:57
				 Syte
				2 Maverick
я так пробовал (_loop), но цикл не заводится, проверено. пробовал выдавать месс непосредственно перед _loop и сразу после. до цикла месс есть, а дальше - тишина. может быть проблемы в том, что нужная мне таблица слишком большая? это oborot и весит она 7 GB. сразу же могу сказать, что там - проводки за 3 года, 2-ч предприятий (наше производство и московский офис) я пытался уговорить бухов на то, чтобы выгрузить прошлые периоды в архив, но добро на это не дали...
2 JackVen
спасибо, мне кажется, что это именно то, что нужно 

 попробую чуть позже, а то батарейки уже садятся, а ехать еще 3 часа...
 
			 
			
					
				Re: Выгрузка данных из ARD
				Добавлено: 19 окт 2004, 21:53
				 Deinis
				Все должно работать, как и писал Маверик. Приведи здесь кусок фейса, а именно:
разделы From, Where - где ты описываешь циклы по таблицам, а также кусок непосредственно с циклом.
			 
			
					
				Re: Выгрузка данных из ARD
				Добавлено: 20 окт 2004, 03:00
				 Syte
				2Деинис
Ну нельзя цеплять к нубуку большой монитор 

) создается ощущение, что работаешь в общей базе, а не в локальной...
локальная актуальна на середину августа, а я пробовал выгрузить сентябрьские проводки. Коих нет, естесственно. потому и цикл не заводился, он просто был пустым 

Спасибо.
Но способ JackVen'а мне больше подходит, сейчас проверю его работу.
 
			 
			
					
				Re: Выгрузка данных из ARD
				Добавлено: 21 окт 2004, 06:47
				 ira
				Syte, logstrtofile в форме работает!!!
			 
			
					
				Re: Выгрузка данных из ARD
				Добавлено: 26 окт 2004, 15:11
				 Syte
				ВСЁ работает. И logstrtofile, и циклы в VIP'е и DBFInsertRecord. всем огромное спасибо 

 
			 
			
					
				Re: Выгрузка данных из ARD
				Добавлено: 26 окт 2004, 15:31
				 Max_Fin
				Правда?  .`)