PutTableToDBF Выгрузка всей логической таблицы

ПНР и сопровождение

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

Ответить
Zver
Местный житель
Сообщения: 204
Зарегистрирован: 13 ноя 2012, 12:47
Откуда: СПб
Контактная информация:

PutTableToDBF Выгрузка всей логической таблицы

Сообщение Zver »

Доброго времени суток всем!

Хочу функцией PutTableToDBF выгрузить всю логическую таблицу, но результат нулевой.
Для этого указываю link = -1

При этом получается выгружать отдельные узлы этой логической таблицы.

Логическая таблица под катом.
Программист-самоучка
Zver
Местный житель
Сообщения: 204
Зарегистрирован: 13 ноя 2012, 12:47
Откуда: СПб
Контактная информация:

Re: PutTableToDBF Выгрузка всей логической таблицы

Сообщение 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 );
Программист-самоучка
oiko
Местный житель
Сообщения: 419
Зарегистрирован: 29 мар 2005, 17:49

Re: PutTableToDBF Выгрузка всей логической таблицы

Сообщение 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
));
Zver
Местный житель
Сообщения: 204
Зарегистрирован: 13 ноя 2012, 12:47
Откуда: СПб
Контактная информация:

Re: PutTableToDBF Выгрузка всей логической таблицы

Сообщение Zver »

Oiko,

К сожалению никаких изменений не произошло :cry:

если эту конструкцию написать в саппорте, то получается правильный результат,

так что запрос правильный. Может есть ещё какие-то подводные камни?
Программист-самоучка
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: PutTableToDBF Выгрузка всей логической таблицы

Сообщение Алексей »

а что за первый параметр -1 ?
я выгружаю так PutTableToDBF(#table,path, ptfFullTable); но это конкретная таблица... может нужно указать имя вьюхи?
Zver
Местный житель
Сообщения: 204
Зарегистрирован: 13 ноя 2012, 12:47
Откуда: СПб
Контактная информация:

Re: PutTableToDBF Выгрузка всей логической таблицы

Сообщение Zver »

Алексей,

-1 - согласно документации в этом случае должна выгружаться вся таблица.

К сожалению, ваш способ не помог, компилятор ругается, что не понимает, зачем в этом месте имя таблицы.

Кроме того, обошел проблему, используя средства для работы с Excell файлами вместо PutTableToDBF.

Это заняло больше времени, но задача решена.
Программист-самоучка
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: PutTableToDBF Выгрузка всей логической таблицы

Сообщение 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). Нужно пробовать отключить по очереди узлы(исключать поля выгрузки) может нащупаете это место тогда
Ответить