Создание интерфейса

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

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

edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Создание интерфейса

Сообщение edward_K »

1. Временная таблица вам поможет всегда.
2. Для дерева не очень понятно как на одном уровне совместить разные таблицы, разные на разных уровнях то можно, но тоже достаточно трудоемко.
3. Может быть будет интересней не дерево и скажем окно слева вверху - организации, окно справа вверху - итоговая информация, окно снизу либо с закладкаи либо на 2 части порезаное с информацией по платежам и отгрузкам (каждое в своем формате).
4. Вообще посмотрите какой нибуд отчет - например о ходе исполнения договора прямо из договора или что то подобное из отчетов - может уже все придумано?
Marisha_P
Местный житель
Сообщения: 232
Зарегистрирован: 10 ноя 2010, 13:49

Re: Создание интерфейса

Сообщение Marisha_P »

Подскажите, что неправильно делаю в запросе, просит доп.ключ corg+ddoc+ddoc для basedoc. В запросе хочу получить данные по конкретному контрагенту за определенный период:

наименование контрагента, номер договора, номер ДО на продажу и платежки по нему

Код: Выделить всё

select katorg.name, dogovor.nodoc, basedoc.nodoc, plpor.nodok
from
    basedoc(readonly),
    dogovor(readonly),
    katorg(readonly),
    basefin (readonly),
    plpor(readonly)
where
   ((  'наименование контрагента' ==  katorg.name and
      katorg.nrec  ==basedoc.corg      and
      basedoc.cdogovor == dogovor.nrec and
      word(1) == basedoc.direct (noindex) and
      basefin.cplpor  == plpor.nrec and
      word(2) == basefin.direct (noindex)and
      basedoc.nrec ==basefin.cbasedoc and
      date (24,08,2012)<<=basedoc.ddoc and
      date (30,08,2012) >>=basedoc.ddoc
     ));               
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: Создание интерфейса

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

ну пишет Вам что такого индекса нет. уберите дату из индекса

Код: Выделить всё

 
      date (24,08,2012)<<=basedoc.ddoc(noindex) and
      date (30,08,2012) >>=basedoc.ddoc(noindex)
а лучше используйте индекс BASEDOC13
VIDDOC + CORG + DDOC
Последний раз редактировалось Алексей 31 авг 2012, 10:14, всего редактировалось 1 раз.
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Создание интерфейса

Сообщение Den »

Вам говорят что нет подходящего индекса на описанные Вами условия на basedoc.
Используйте BASEDOC13, если нужно по определенным видам ДО тока инфу(как Вы сказали тока ДО на продажу..)
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Создание интерфейса

Сообщение RAJAH »

Marisha_P писал(а):просит доп.ключ corg+ddoc+ddoc для basedoc
В таблице BASEDOC нет такого индекса. Надо подобрать другой (связи местами переставить). Поищите в Суппорте подходящий. Поле ddoc проиндексировано совместно с viddoc, в основном, т.е., надо в правой части связи viddoc указать ещё.
Например, так:

Код: Выделить всё

select katorg.name, dogovor.nodoc, basedoc.nodoc, plpor.nodok
from
    basedoc(readonly),
    dogovor(readonly),
    katorg(readonly),
    basefin (readonly),
    plpor(readonly)
where
   ((
      basedoc.corg  /== katorg.nrec     and ('наименование контрагента' =  katorg.name) and
      basedoc.cdogovor == dogovor.nrec and
      word(1) == basedoc.direct (noindex) and
      basefin.cplpor  == plpor.nrec and
      word(2) == basefin.direct (noindex)and
      basedoc.nrec ==basefin.cbasedoc and
      date (24,08,2012)<<=basedoc.ddoc and
      date (30,08,2012) >>=basedoc.ddoc and
      201               == basedoc.viddoc
     ));
Marisha_P
Местный житель
Сообщения: 232
Зарегистрирован: 10 ноя 2010, 13:49

Re: Создание интерфейса

Сообщение Marisha_P »

Cпасибо всем за помощь! :)
Marisha_P
Местный житель
Сообщения: 232
Зарегистрирован: 10 ноя 2010, 13:49

Re: Создание интерфейса

Сообщение Marisha_P »

Помогите, пожалуйста, решить следующую проблемку: нужно выбрать платежные поручения - сторонние и собственные, которые не распределены, т.е. нет привязок к ДО. Пробую с помощью запроса:

Код: Выделить всё

select plpor.nodok,dogovor.nodoc,basefin.cstepdoc from plpor where
((   plpor.cplat/==katorg.nrec and
   ( 'наименование организации'=katorg.name)  and
      plpor.nrec==basefin.cplpor and
      basefin.cdogovor== dogovor.nrec and
      basefin.cstepdoc ==stepdoc.nrec and
      date (16,04,2012)<<=plpor.datvip and
      date (16,04,2012) >>=plpor.datvip
      and 0==basefin.cstepdoc
      and 0==basefin.tidkbase
));  


В результате получаю номера всех платежек за выбранный период, номер договора прописывается только у непривязанной. Как убрать из выборки неподходящие платежные поручения и по какому признаку отличаются сторонние и собственные платежки? у меня выбирают данные только сторонние:(
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Создание интерфейса

Сообщение RAJAH »

Marisha_P писал(а):Как убрать из выборки неподходящие платежные поручения

Код: Выделить всё

plpor.cstepdoc == stepdoc.nrec and
В условиях на view прописать

Код: Выделить всё

not isvalidall(tnstepdoc)
Marisha_P писал(а):у меня выбирают данные только сторонние
Естественно. Вы указываете в качестве плательщика какую-то стороннюю организацию (plpor.cplat). В собственных ссылка на контрагента plpor.cpol, а плательщиком будет ваша организация.
Marisha_P
Местный житель
Сообщения: 232
Зарегистрирован: 10 ноя 2010, 13:49

Re: Создание интерфейса

Сообщение Marisha_P »

спасибо!!! :)
Ответить