Получить подразделение на момент времени для человека

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

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

Ответить
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Получить подразделение на момент времени для человека

Сообщение Masygreen »

Вот думаю как лучше сделать .. может кто решал подскажет...
Есть ссылка persons.nrec ... есть моменты времени например 10/01/2009,15/03/2009 и т.д. эти моменты переменные
необходимо узнать на этот момент времени в каком подразделении был человек ...
приходит на ум анализировать приказы на перемещение .. может есть вариант проще???
Время ведет!
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Все уже придумано давно...
см. AppFuncs.vih
Конкретно функция GetAppNrec_OnDate
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Сообщение Masygreen »

круто ....
Время ведет!
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Сообщение Masygreen »

Функция конечно крутая .. но не дала то что надо :) необходим был KatPodr.nRec ... может подскажите более толковую функцию, то пришлось делать так...может кому пригодится
_SPersonsNrec - nRec человечка
_SPersonsNrec - дата

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

     var ObjZar:AppointmentsFunctions;

      _SAppointmentsNrec:=ObjZar.GetAppNrec_OnDate(_SPersonsNrec,_SPersonsNrec - a);
      
      _loop Appointments where ((_SAppointmentsNrec==Appointments.nrec))
      {
       _loop catalogs where ((Appointments.Department  == catalogs.Nrec))
        {
         _loop ExtCatlinks where ((catalogs.nrec ==ExtCatlinks.STAFFCAT(noindex)))
          {
           _loop katpodr where ((Extcatlinks.EXTCAT==katpodr.nrec))
            {
             _SKatPodrNrec:=katpodr.nrec
             _SKatPodr:=katpodr.name;
            }
          }
        }
      }
     message(_SKatPodr);
Время ведет!
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Сам запрос можно быстрее и красивее сделать, но идея останется таже.

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

var ObjZar:AppointmentsFunctions; 
 _SAppointmentsNrec:=ObjZar.GetAppNrec_OnDate(_SPersonsNrec,_SPersonsDate); 
      
If GetFirst FastFirstRow Appointments where ((_SAppointmentsNrec==Appointments.nrec)) 
 If GetFirst FastFirstRow Catalogs catalogs where ((Appointments.Department == catalogs.Nrec)) 
  If GetFirst FastFirstRow ExtCatlinks where (( 11 == ExtCatLinks.ObjType and catalogs.nrec ==ExtCatlinks.StaffCat )) 
   If GetFirst FastFirstRow KatPodr where ((Extcatlinks.EXTCAT==katpodr.nrec)) 
    { 
      _SKatPodrNrec:=katpodr.nrec 
      _SKatPodr:=katpodr.name; 
    } 
  message(_SKatPodr);
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Сообщение Masygreen »

беглым взлядом работать без = tsOK не будет :)
Время ведет!
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Угу. Не будет. Надо добавить.
Ответить