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

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

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

Ответить
Дмитрий_Н
Сообщения: 13
Зарегистрирован: 26 июн 2008, 16:40
Откуда: Казахстан
Контактная информация:

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

Сообщение Дмитрий_Н »

Добрый день уважаемые знатоки галактики, будьте добры подскажите пожалуйста какой стандартный интерфейс галактики можно использовать в своей программе для множественного выбора сотрудников, покопавшись в документации я нашел SelectPersons но какие параметры нужно ему передать и где получить выбранных сотрудников я не знаю, помогите пожалуйста.
Polimer
Местный житель
Сообщения: 489
Зарегистрирован: 27 янв 2006, 12:46
Откуда: Москва

Сообщение Polimer »

Дмитрий_Н
Сообщения: 13
Зарегистрирован: 26 июн 2008, 16:40
Откуда: Казахстан
Контактная информация:

Сообщение Дмитрий_Н »

да, но мне нужен интерфейс для множественного выбора сотрудников
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

см. документацию на програм интер-с Z_Staff.chm.
А там SelectPsn...
Дмитрий_Н
Сообщения: 13
Зарегистрирован: 26 июн 2008, 16:40
Откуда: Казахстан
Контактная информация:

Сообщение Дмитрий_Н »

Огромное спасибо! все получилось!
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Сообщение 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", лог не формируется.
Заранее благодарен.
k_vit
Постоянный обитатель
Сообщения: 143
Зарегистрирован: 09 авг 2006, 16:40
Откуда: Россия, Тюмень, ОАО "Сибирский Научно-Аналитический Центр"

Сообщение 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 меняется.
Последний раз редактировалось k_vit 01 мар 2010, 10:46, всего редактировалось 1 раз.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Markers := InitMarker('PsnMarkers', 8, 200, 10); - имя маркера заканчивается на "s".
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Сообщение Maverick »

Только учтите одну вещь.. юзая данный интерфейс, вы "кушаете" 1 лицензию УП :-)
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Сообщение RAJAH »

Да, PsnMarkers, оказывается, хотя в Z_STAFF.chm чёрным по белому PsnMarker указан.
вы "кушаете" 1 лицензию УП
Да ну?! )) У нас б/о.
Интересно, что после отработки этого интерфейса картотека сотрудников открывается с этим же установленным фильтром, что не есть хорошо. Как можно избежать такого поведения?
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

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

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

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