Выгрузка данных из ARD

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Syte
Посетитель
Сообщения: 39
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Волгоград Sealed Air
Контактная информация:

Выгрузка данных из ARD

Сообщение Syte »

Всем привет :)
Проблема в том, что нужно дать возможность пользователю САМОСТОЯТЕЛЬНО выгружать данные из таблы в текстовый файл. В SQL'е это просто - добавляется to txt <имя_файла>. Но ни в ARD ни в VIP это не прокатывает :(
пытался обойти написанием фейсов, но столкнулся с такими траблами - в форме нельзя открыть файл на запись, а в фейсе - нельзя организовать цикл по ЛОГИЧЕСКИМ таблицам (по view). Вызывать фейс по каждой записи из формы - смешно. И долго. У кого-нибудь есть опыт решения такой задачи?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Выгрузка данных из ARD

Сообщение edward_K »

страно слышать что в фейсе нельзя делать цикл по логической табле.
самое простое в форме - logstrtofile(file,message)
еще fileextst и deletefile
другой набор
file_openfile(id,file,stcreate)
file_writeln(id,mes)
file_closefile(id) :)
Syte
Посетитель
Сообщения: 39
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Волгоград Sealed Air
Контактная информация:

Re: Выгрузка данных из ARD

Сообщение Syte »

ок, но id в этих функциях определяется методом handle. который может быть использован в VIP'е, но не в форме. или я не прав?
logstrtofile в форме не работает, но и не выдаёт никаких ошибок.
и к вопросу о логических таблицах в VIP'е - я могу не знать элементарных операторов, согласен. но тогда вопрос - как задать в фейсе цикл по логической таблице?
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Re: Выгрузка данных из ARD

Сообщение Maverick »

>>но тогда вопрос - как задать в фейсе цикл по логической таблице?

Элементарно.
В Create View As Select * From ...
Where
((
...
));
ты определяешь объем данных, необходимых тебе (кстати и пассивная сортировка тоже задается - по ключам индексов в подцепке)

а в нужном месте юзаешь цикл
1 способ
If GetFirst MyTable = tsOk
Do
{
...
}
While GetNext MyTable;
2 способ
_Loop MyTable
{
...
};

Причем и в первом и во втором случае - каждая запись попадает под ограничения описанные во вьюхе
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
JackVn
Постоянный гость
Сообщения: 82
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва, Минск
Контактная информация:

Re: Выгрузка данных из ARD

Сообщение 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.
.}
Syte
Посетитель
Сообщения: 39
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Волгоград Sealed Air
Контактная информация:

Re: Выгрузка данных из ARD

Сообщение Syte »

2 Maverick
я так пробовал (_loop), но цикл не заводится, проверено. пробовал выдавать месс непосредственно перед _loop и сразу после. до цикла месс есть, а дальше - тишина. может быть проблемы в том, что нужная мне таблица слишком большая? это oborot и весит она 7 GB. сразу же могу сказать, что там - проводки за 3 года, 2-ч предприятий (наше производство и московский офис) я пытался уговорить бухов на то, чтобы выгрузить прошлые периоды в архив, но добро на это не дали...
2 JackVen
спасибо, мне кажется, что это именно то, что нужно :) попробую чуть позже, а то батарейки уже садятся, а ехать еще 3 часа...
Deinis
Местный житель
Сообщения: 783
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Re: Выгрузка данных из ARD

Сообщение Deinis »

Все должно работать, как и писал Маверик. Приведи здесь кусок фейса, а именно:
разделы From, Where - где ты описываешь циклы по таблицам, а также кусок непосредственно с циклом.
Syte
Посетитель
Сообщения: 39
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Волгоград Sealed Air
Контактная информация:

Re: Выгрузка данных из ARD

Сообщение Syte »

2Деинис
Ну нельзя цеплять к нубуку большой монитор :)) создается ощущение, что работаешь в общей базе, а не в локальной...
локальная актуальна на середину августа, а я пробовал выгрузить сентябрьские проводки. Коих нет, естесственно. потому и цикл не заводился, он просто был пустым :)
Спасибо.
Но способ JackVen'а мне больше подходит, сейчас проверю его работу.
ira
Посетитель
Сообщения: 47
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Re: Выгрузка данных из ARD

Сообщение ira »

Syte, logstrtofile в форме работает!!!
Syte
Посетитель
Сообщения: 39
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Волгоград Sealed Air
Контактная информация:

Re: Выгрузка данных из ARD

Сообщение Syte »

ВСЁ работает. И logstrtofile, и циклы в VIP'е и DBFInsertRecord. всем огромное спасибо :)
Max_Fin
На пенсии
Сообщения: 797
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г. Тюмень
Контактная информация:

Re: Выгрузка данных из ARD

Сообщение Max_Fin »

Правда? .`)
Жду выхода Вселенная 2.12!
Ответить