Страница 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 );
 и так далее...