Страница 1 из 1

Проблема с датой.......

Добавлено: 11 фев 2009, 10:04
Pasynkova
Здравствуйте!
Не пойму что делаю не так....

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

Procedure Saldo_Dog;


{  message(dtn+' '+add_day(dtk,1));   
  _loop SaldMoun  where          
                  (( 
                       dtn                   == Saldmoun.datesal   and
                       add_day(dtk,1)  == Saldmoun.datesal   and
                       Saldmoun.Kauos[1]   == SpKau.nrec           and
                       Saldmoun.Kauos[2]   == SpKau1.nrec         and
                       Saldmoun.Kauos[3]  /== MainPick3.crec      and
                       MainPick3.crec     /== Katorg.nrec               and
                       KatOrg.cState       == KatState.nrec             and
                       Saldmoun.Kauos[4]   == Basedoc.nrec       and
                       Basedoc.cdogovor    == Dogovor.nrec     and
                       Dogovor.cVal      == KlVal.nrec         and
                       KlVal.nrec        == CursVal.cmain      and
                       Dogovor.cviddog   == KatVidd.nrec       
                  )) 

message по дате выводит, добавляет один день к конечной дате.
А дальше не идет..... :eek:
Если убрать функцию add_day(), то все формируется, за исключением конечно сальдо на dtk.....

Добавлено: 11 фев 2009, 11:02
Den
интересное у Вас ограничение по датам...

Добавлено: 11 фев 2009, 12:00
Pasynkova
Упс :grin:

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


                       dtn                   <<= Saldmoun.datesal   and 
                       add_day(dtk,1) >>= Saldmoun.datesal   and 

надо было так писать....

Добавлено: 12 фев 2009, 08:44
PViP
Pasynkova, а вы попробуйте сначала в переменную запихать значение add_day(dtk,1) , а потом уже переменную в подцепки пихайте!

Добавлено: 12 фев 2009, 09:46
Алексей
PViP это может повлиять лишь на скорость выборки, на результат не повлияет.

Добавлено: 12 фев 2009, 10:07
Pasynkova
Спасибо с датой я разобралась :)

Возник другой вопрос....
В таблице SPDocs поле cGrMCUsl ссылается на две таблицы, если услуга то GroupUsl, если МС то GroupMC.
Как можно сделать выбор этих групп в одном запросе???

Добавлено: 12 фев 2009, 10:09
Алексей
подключите обе таблицы сразу, а когда выбираете данные, в зависимости от признака и берите либо из одной, либо из другой.

Добавлено: 12 фев 2009, 10:31
Pasynkova
А как правильно написать условие? :???:

Добавлено: 12 фев 2009, 10:43
Алексей
в зависимости от того, что стоит в поле spdocs.prmc, МЦ=1 Услуги=2

Добавлено: 12 фев 2009, 10:49
Pasynkova
....

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

{  
               _loop SpDocs  where          
                                                (( 400               == Spdocs.tidk     and
                                                   Dogovor.nrec      == SpDocs.cdoc     and
                                                   SpDocs.CGRMCUSL   == GroupMC.nrec    and
                                                   SpDocs.CGRMCUSL   == GroupUsl.nrec   
                                                ))

                                                if  Spdocs.prmc=1     ????????????

Добавлено: 16 фев 2009, 11:13
Pasynkova
А можно какой нить пример привести???

Добавлено: 16 фев 2009, 11:35
Алексей
я так понимаю у вас Vip программа,ну вот и дальше пишите, допустим вы хотите название группы вытащить, то делайте следующее:

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

if Spdocs.prmc=1 then myName := GroupMC.name else myName := GroupUsl.name

Добавлено: 18 фев 2009, 10:57
Pasynkova
Спасибки! :-)