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

Z_STAFF::ChoiseYourPersons

Добавлено: 17 мар 2010, 18:46
niteo
Собственно, хотелось бы узнать параметры этого интерфейса. А так же чем он отличается от Z_STAFF::SelectPsn

Добавлено: 17 мар 2010, 19:04
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
Главное окно интерфейса

Добавлено: 17 мар 2010, 19:07
niteo
Спасибо большое.
А чем от Z_STAFF::SelectPsn отличается?

Добавлено: 17 мар 2010, 19:23
Vik
А не знаю.. Параметры вроде отличаются немного, может ChoiseYourPersons более продвинутый в плане функциональности. Не могу точно сказать

Добавлено: 19 мар 2010, 10:00
niteo
По ощущениям Z_STAFF::ChoiseYourPersons раза в 4 быстрее работает, чем Z_STAFF::SelectPsn. Если первый почти мгновенно появляется, то второго необходимо ждать. :)

Добавлено: 19 мар 2010, 11:24
niteo
Кстати, вы писали:
Выбор сотрудников

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

Добавлено: 19 мар 2010, 14:42
Алексей
Необходимо создать маркер. проинитить. и передать его параметром в интерфейс.

Добавлено: 19 мар 2010, 15:32
niteo
2Алексей
Необходимо создать маркер. проинитить. и передать его параметром в интерфейс.
В смысле с подразделениями? Так я так и сделал. Меня больше смущает возвращаемый им маркер. Как его использовать?
И еще вопрос по поводу множественного выбора, передаю последним параметром число 96, при запуске интерфейса не могу в нем отметить ни одной записи, то есть по Insert-у курсор двигается вниз (чего не происходит если НЕ множественный выбор) а записи синим не светятся...? И результат не могу посмотреть, пытаюсь от возвращаемого маркера (четвертым параметром идет) взять GetMarkerCount, на выходе 0

Добавлено: 19 мар 2010, 15:41
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;