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

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

Добавлено: 07 окт 2009, 18:10
Masygreen
Вот думаю как лучше сделать .. может кто решал подскажет...
Есть ссылка persons.nrec ... есть моменты времени например 10/01/2009,15/03/2009 и т.д. эти моменты переменные
необходимо узнать на этот момент времени в каком подразделении был человек ...
приходит на ум анализировать приказы на перемещение .. может есть вариант проще???

Добавлено: 07 окт 2009, 18:28
m0p3e
Все уже придумано давно...
см. AppFuncs.vih
Конкретно функция GetAppNrec_OnDate

Добавлено: 07 окт 2009, 19:44
Masygreen
круто ....

Добавлено: 08 окт 2009, 14:46
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);

Добавлено: 08 окт 2009, 17:58
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);

Добавлено: 09 окт 2009, 15:44
Masygreen
беглым взлядом работать без = tsOK не будет :)

Добавлено: 10 окт 2009, 12:14
m0p3e
Угу. Не будет. Надо добавить.