Z_STAFF::ChoiseYourPersons

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

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

Ответить
niteo
Постоянный обитатель
Сообщения: 151
Зарегистрирован: 17 сен 2009, 11:39
Контактная информация:

Z_STAFF::ChoiseYourPersons

Сообщение niteo »

Собственно, хотелось бы узнать параметры этого интерфейса. А так же чем он отличается от Z_STAFF::SelectPsn
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

Сообщение Vik »

Interface Z_STAFF::ChoiseYourPersons
Выбор сотрудников

Параметры
DeptMarker : LongInt // маркер с подразделениями, надо полагать
cPar2 : Word // каких работников выбирать (0 - все, текущие - 1, архивные -2 , работающие - 3, уволенные - 4)
cPsn : Comp //возвращаемая ссылка на код выбранной записи
Markers : LongInt // возвращаемый маркер
Flags : Word // одиночная или множественная пометка (см. Money.ccm в папке inc)
Окна
window ChoiseYourPersons
Главное окно интерфейса
niteo
Постоянный обитатель
Сообщения: 151
Зарегистрирован: 17 сен 2009, 11:39
Контактная информация:

Сообщение niteo »

Спасибо большое.
А чем от Z_STAFF::SelectPsn отличается?
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

Сообщение Vik »

А не знаю.. Параметры вроде отличаются немного, может ChoiseYourPersons более продвинутый в плане функциональности. Не могу точно сказать
niteo
Постоянный обитатель
Сообщения: 151
Зарегистрирован: 17 сен 2009, 11:39
Контактная информация:

Сообщение niteo »

По ощущениям Z_STAFF::ChoiseYourPersons раза в 4 быстрее работает, чем Z_STAFF::SelectPsn. Если первый почти мгновенно появляется, то второго необходимо ждать. :)
niteo
Постоянный обитатель
Сообщения: 151
Зарегистрирован: 17 сен 2009, 11:39
Контактная информация:

Сообщение niteo »

Кстати, вы писали:
Выбор сотрудников

Параметры
..........
Markers : LongInt // возвращаемый маркер
..........
Хотелось бы узнать, мне стоит вызывать InitMarker или он сам как то создается? И если не создается, то как использовать функцию данного вида? Пример пожалуйста!!!! :grin:
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

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

Необходимо создать маркер. проинитить. и передать его параметром в интерфейс.
niteo
Постоянный обитатель
Сообщения: 151
Зарегистрирован: 17 сен 2009, 11:39
Контактная информация:

Сообщение niteo »

2Алексей
Необходимо создать маркер. проинитить. и передать его параметром в интерфейс.
В смысле с подразделениями? Так я так и сделал. Меня больше смущает возвращаемый им маркер. Как его использовать?
И еще вопрос по поводу множественного выбора, передаю последним параметром число 96, при запуске интерфейса не могу в нем отметить ни одной записи, то есть по Insert-у курсор двигается вниз (чего не происходит если НЕ множественный выбор) а записи синим не светятся...? И результат не могу посмотреть, пытаюсь от возвращаемого маркера (четвертым параметром идет) взять GetMarkerCount, на выходе 0
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

По живому:

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

cmInit : MarkerPerson := InitMarker('ListPersonsNotInOtpusk_MarkerPerson', 8, 50, 30);
cmDone :  DoneMarker(MarkerPerson, 'ListPersonsNotInOtpusk_MarkerPerson');
..................
cmPick : Case CurField Of
        #PersonFilterStr: // сотрудники
        {
          var cPsn: comp;

          if RunInterface('ChoiseYourPersons', 0, 3, cPsn, MarkerPerson, vfMultipleSelection)  = cmDefault
          {
            // тогда перерисовываем
            case GetMarkerCount(MarkerPerson) of
              0:  Set PersonFilterStr := 'не установлен';
              1:
              {
                if GetFirst FastFirstRow Persons where ((cPsn == Persons.nRec)) = tsOk
                  Set PersonFilterStr := Persons.FIO;
              }
              else
                Set PersonFilterStr := 'Несколько сотрудников (' + string(GetMarkerCount(MarkerPerson)) + ')';
            end; //case
          } //if RunInterface('ChoiseYourPersons
        } //#PersonFilterStr: // должности
        End;
Ответить