Страница 1 из 1
PutTableToDBF Выгрузка всей логической таблицы
Добавлено: 06 дек 2012, 13:24
Zver
Доброго времени суток всем!
Хочу функцией PutTableToDBF выгрузить всю логическую таблицу, но результат нулевой.
Для этого указываю link = -1
При этом получается выгружать отдельные узлы этой логической таблицы.
Логическая таблица под катом.
Re: PutTableToDBF Выгрузка всей логической таблицы
Добавлено: 06 дек 2012, 13:25
Zver
Вот логическая таблица
create view vw_PlanPrices
as Select
Dogovor.Nodoc
,Dogovor.Nodoc_ext
,Dogovor.Ddoc
,Katorg.Name
,Katnotes.Name
,Dogovor.Summa
,Katmc.Name
,Katmc.Obozn
,Spdocs.Kol
,Spdocs.Price
,Spdocs.Kol*Spdocs.Price
,Prices.Price
,Spdocs.Kol*Prices.Price
,Spdocs.Kol*Spdocs.Price - Spdocs.Kol*Prices.Price
From
Dogovor
,Katorg
,Katnotes
,KatMc
,SpDocs
,Prices
Where
((
Dogovor.Corg == KatOrg.Nrec
and Dogovor.Cnote == KatNotes.Nrec
and Dogovor.Nrec == SpDocs.Cdoc (noindex)
and Spdocs.CmcUsl == KatMc.Nrec
and Spdocs.CmcUsl == Prices.cThing (noindex)
and (281474976710667 = Prices.cklprice)
))
and 281474976739039 = Dogovor.Nrec
;
Так вызываю функцию:
vw_PlanPrices.PutTableToDBF (-1, 'D:\PricesPlan.dbf', 0 );
Re: PutTableToDBF Выгрузка всей логической таблицы
Добавлено: 06 дек 2012, 14:05
oiko
Лучше так
((
281474976739039 == Dogovor.Nrec - если убрать будут все договора
and Dogovor.Corg == KatOrg.Nrec
and Dogovor.Cnote == KatNotes.Nrec
and 400==SpDocs.tidk // или чему он там у вас равен
and Dogovor.Nrec == SpDocs.Cdoc - спецификации может не быть
and Spdocs.CmcUsl == KatMc.Nrec - это может быть услуга
and 281474976710667 == Prices.cklprice - в этом прайсе может и не быть такой ТМЦ
and Spdocs.CmcUsl == Prices.cThing
));
Re: PutTableToDBF Выгрузка всей логической таблицы
Добавлено: 06 дек 2012, 16:00
Zver
Oiko,
К сожалению никаких изменений не произошло
если эту конструкцию написать в саппорте, то получается правильный результат,
так что запрос правильный. Может есть ещё какие-то подводные камни?
Re: PutTableToDBF Выгрузка всей логической таблицы
Добавлено: 07 дек 2012, 06:30
Алексей
а что за первый параметр -1 ?
я выгружаю так PutTableToDBF(#table,path, ptfFullTable); но это конкретная таблица... может нужно указать имя вьюхи?
Re: PutTableToDBF Выгрузка всей логической таблицы
Добавлено: 07 дек 2012, 10:58
Zver
Алексей,
-1 - согласно документации в этом случае должна выгружаться вся таблица.
К сожалению, ваш способ не помог, компилятор ругается, что не понимает, зачем в этом месте имя таблицы.
Кроме того, обошел проблему, используя средства для работы с Excell файлами вместо PutTableToDBF.
Это заняло больше времени, но задача решена.
Re: PutTableToDBF Выгрузка всей логической таблицы
Добавлено: 07 дек 2012, 11:02
Den
вроде выгружает навскидку на простом примерчике все :
Код: Выделить всё
Interface testdbf;
create view
as select
basedoc.ddoc,
basedoc.nodoc,
katorg.name,
basedoc.total,
katsopr.summa
from
basedoc
,katorg
,stepdoc
,katsopr
where
((
word(101)==basedoc.viddoc
and basedoc.nrec == stepdoc.cbasedoc
and stepdoc.nrec == katsopr.cstepdoc
and basedoc.corg == katorg.nrec
))
;
handleevent
CmInit:{
PutTableToDBF (-1,'c:\base.dbf',0);
}
end;
end.
может глючит где то на каком то узле выгрузки(или поле в select-liste). Нужно пробовать отключить по очереди узлы(исключать поля выгрузки) может нащупаете это место тогда