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

интерфейс множественного выбора сотрудников

Добавлено: 04 дек 2008, 10:29
Дмитрий_Н
Добрый день уважаемые знатоки галактики, будьте добры подскажите пожалуйста какой стандартный интерфейс галактики можно использовать в своей программе для множественного выбора сотрудников, покопавшись в документации я нашел SelectPersons но какие параметры нужно ему передать и где получить выбранных сотрудников я не знаю, помогите пожалуйста.

Добавлено: 04 дек 2008, 11:12
Polimer

Добавлено: 04 дек 2008, 14:35
Дмитрий_Н
да, но мне нужен интерфейс для множественного выбора сотрудников

Добавлено: 04 дек 2008, 15:00
Den
см. документацию на програм интер-с Z_Staff.chm.
А там SelectPsn...

Добавлено: 04 дек 2008, 15:13
Дмитрий_Н
Огромное спасибо! все получилось!

Добавлено: 01 мар 2010, 09:39
RAJAH
Что-то у меня не получается...
Расскажите мне про вот эти параметры.

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

Параметры
cDepSelect : Comp
cPar2 : Comp
bUpdateSertCat : Boolean
DeptMarker : LongInt
StatPers : Word

Куда происходит запись выбранных сотрудников? Маркер PsnMarker пустой. Может, я что-то не так делаю?

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

   RunInterface('Z_STAFF::SELECTPSN');
   MarkSt:=InitMarker('PsnMarker', 8, 200, 10);
   Message('Выбрано '+GetMarkerCount(MarkSt));
   for(MarkIn:=0; MarkIn<=GetMarkerCount(MarkSt)-1; MarkIn:=MarkIn+1)
   begin
     Message(tmpn);
     if GetMarker(MarkSt, MarkIn, tmpn) then
     {
       LogStrToFile('1.txt', tmpn);
     }
   end;
   ClearMarker(MarkSt);
   DoneMarker(MarkSt, 'PsnMarker');
В сообщении выходит "Выбрано 0", лог не формируется.
Заранее благодарен.

Добавлено: 01 мар 2010, 10:46
k_vit
Наверное что-то не так делаете.

Как-то писал отчёт. Сейчас посмотрел - работает.

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

if (RunInterface('Z_STAFF::SelectPsn', Comp(0), Comp(0), False, longint(0), word(0)) <> cmCancel)
  {
     MPersons := InitMarker('PsnMarkers',8,100,10);
     PersCount := GetMarkerCount(MPersons);
     .........
     DoneMarker(MPersons, 'PsnMarkers');
  }
Кол-во в PersCount меняется.

Добавлено: 01 мар 2010, 10:46
m0p3e
Markers := InitMarker('PsnMarkers', 8, 200, 10); - имя маркера заканчивается на "s".

Добавлено: 01 мар 2010, 12:16
Maverick
Только учтите одну вещь.. юзая данный интерфейс, вы "кушаете" 1 лицензию УП :-)

Добавлено: 01 мар 2010, 12:33
RAJAH
Да, PsnMarkers, оказывается, хотя в Z_STAFF.chm чёрным по белому PsnMarker указан.
вы "кушаете" 1 лицензию УП
Да ну?! )) У нас б/о.
Интересно, что после отработки этого интерфейса картотека сотрудников открывается с этим же установленным фильтром, что не есть хорошо. Как можно избежать такого поведения?

Добавлено: 01 мар 2010, 12:55
m0p3e
RAJAH писал(а): Интересно, что после отработки этого интерфейса картотека сотрудников открывается с этим же установленным фильтром, что не есть хорошо. Как можно избежать такого поведения?
Сохранить состояние маркера 'PsnMarkers' (и возможно 'SelectPsn_DeptMarker' ) перед запуском интерфейса выбора и восстановить их после обработки.

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

 SavePsn := InitMarker('', 8, 200, 10);
 CopyMarker ( SavePsn, PsnMarker );
 и так далее...