Страница 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
Правда? .`)