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

Окно выбора руководителя

Добавлено: 17 апр 2014, 09:40
novichok
Подскажите, пожалуста, как сделать, чтобы перед печатью формы frm или rtf появлялось окно выбора руководителя?
Мне нужно изменить приказ на командировку и командировочное удостоверение, чтобы в них была подпись не директора, как сейчас, а того, кого выберет пользователь.

Re: Окно выбора руководителя

Добавлено: 17 апр 2014, 10:37
Алексей
диалог вызвать. но там каждый раз перед печатью надо будет писать вручную... точно так же можно прямо в форме править... это если frm

Re: Окно выбора руководителя

Добавлено: 17 апр 2014, 10:45
novichok
Алексей писал(а):диалог вызвать. но там каждый раз перед печатью надо будет писать вручную... точно так же можно прямо в форме править... это если frm
А есть какие-нибудь функции, типа выбора комиссии, похожие?

Re: Окно выбора руководителя

Добавлено: 17 апр 2014, 11:10
edward_K

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

var
 iCommission : Commission;
 sCommission:string ;

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

чего т там
   if (NullVipRef(iCommission))
   { LoadVipInterface(iCommission);
     iCommission.InitCommission(cgCommission_Sklad ); //cgCommission_OS
   }
   if cCommission>0
   {  iCommission.SetCommission(cgCommission_Sklad,cCommission)
   }
   set sCommission := iCommission.GetSelectionName;
   iCommission.RunWindowSelection(word(1));
   set sCommission := iCommission.GetSelectionName;
   set cCommission := iCommission.GetSelection
        wCommissionCount := iCommission.GetComponentsCount;
     wnum_dolg:=1 ;
//    if iCommission.GetCommissionChairMan
     For (wcommissionNum := 0; wcommissionNum <= wcommissionCount; wcommissionNum := wcommissionNum + 1)
     {  wdolg:=iCommission.GetComponentPost(wcommissionNum)  ;
        wfio:=iCommission.GetComponentFIO (wcommissionNum) ;
        case wcommissionNum of
Можно просто запускать окно с выбором чела - вам же одна подпись нужна, а выбор сохранять в DSK.
Ну еще вариант использовать подписантов из СФ.

Re: Окно выбора руководителя

Добавлено: 17 апр 2014, 11:23
novichok
Можно просто запускать окно с выбором чела - вам же одна подпись нужна, а выбор сохранять в DSK.
А как это сделать для rtf ?

Re: Окно выбора руководителя

Добавлено: 17 апр 2014, 11:51
edward_K
Либо фейс стартануть - что лучше, либо диалог - но обработку придется делать в RTF
Если собираете проектом, то лучше использовать объекты - в проект включате vih объекта, а в фейсе переменную с типом = фейс объекта.
Для выбора проще юзать igetkau - поиск. Судя по вопросу свои фейсы вы делать не умеете. Можете кадровский подобрать какой нибудь из приказов - параметры в папке exe\galdoc\имя компоненты. Будет неясно с параметрами спрашивайте(нужно getifccurrentfieldname в фейсе выбора)

Re: Окно выбора руководителя

Добавлено: 17 апр 2014, 12:01
Алексей
ещё, как вариант, сделать настройку пользовательскую, куда писать человека и при печати просто читать настройку.

Re: Окно выбора руководителя

Добавлено: 17 апр 2014, 12:54
RAJAH
edward_K писал(а):фейс стартануть - что лучше
:cool: Z_STAFF::ChoiseYourPersons, к примеру...

Re: Окно выбора руководителя

Добавлено: 10 май 2017, 17:28
ded_gambit
edward_K писал(а):

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

var
 iCommission : Commission;
 sCommission:string ;

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

чего т там
   if (NullVipRef(iCommission))
   { LoadVipInterface(iCommission);
     iCommission.InitCommission(cgCommission_Sklad ); //cgCommission_OS
   }
   if cCommission>0
   {  iCommission.SetCommission(cgCommission_Sklad,cCommission)
   }
   set sCommission := iCommission.GetSelectionName;
   iCommission.RunWindowSelection(word(1));
   set sCommission := iCommission.GetSelectionName;
   set cCommission := iCommission.GetSelection
        wCommissionCount := iCommission.GetComponentsCount;
     wnum_dolg:=1 ;
//    if iCommission.GetCommissionChairMan
     For (wcommissionNum := 0; wcommissionNum <= wcommissionCount; wcommissionNum := wcommissionNum + 1)
     {  wdolg:=iCommission.GetComponentPost(wcommissionNum)  ;
        wfio:=iCommission.GetComponentFIO (wcommissionNum) ;
        case wcommissionNum of
а есть такой же интерфейс, но для выбора не комиссии, а группы подписантов?

Re: Окно выбора руководителя

Добавлено: 10 май 2017, 21:40
edward_K
Ctrl+F4
Getifccurrentfieldname
Потом ищите его в exe\Galdoc\!GSDK.chm или сразу в компонента.chm
За деталями ищите vih в FRM\компонента.zip Как правило имя vih совпадает с именем фейса, но бывают исключения, поэтому при неудачном поиске по имени поищите еще по содержимому.
Наверное вы про FreeSigner или как его там. 8)

Re: Окно выбора руководителя

Добавлено: 11 май 2017, 10:28
ded_gambit
edward_K писал(а):Ctrl+F4
Getifccurrentfieldname
Потом ищите его в exe\Galdoc\!GSDK.chm или сразу в компонента.chm
За деталями ищите vih в FRM\компонента.zip Как правило имя vih совпадает с именем фейса, но бывают исключения, поэтому при неудачном поиске по имени поищите еще по содержимому.
Наверное вы про FreeSigner или как его там. 8)
спасибо, будем искать.

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

.declare
#include FeeSigners.vih
.enddeclare
.var
iFeeSigners : FeeSigners;
.endvar

...
iFeeSigners.InitFeeSigners(cgReport_VZachet);

// подписанты собственной организации

if (iFeeSigners.FindFeeSignersByNRec(cSigners))
  if (iFeeSigners.GetSignerFirst)
    do
    {
      SignCount := SignCount + 1;
        wfio := iFeeSigners.GetSignerFIO(7);
        wdolg := iFeeSigners.GetSignerRole;
        if (wdolg = '') wdolg := iFeeSigners.GetSignerPosition(1);
        if wdolg+wfio!='' 
           .............
    }
 while (iFeeSigners.GetSignerNext);

добавил в пути путь на FeeSigners.vih
ругается
Ошибка: Нет такой функции, поля или метода : CGREPORT_VZACHET
правильно ли я понимаю, что нужно подключить \FRM\AllGal.FrmSrc\SRC\Inc\Reports.inc

Re: Окно выбора руководителя

Добавлено: 11 май 2017, 10:56
edward_K
Лучше исходники в FRM распаковывать
Ищем там по содержимому, в Reports.inc
cgReport_VZachet = 7313; // отчеты модуля "Расчеты с поставщиками и получателями"
поскольку вы не компилите проектом, вам проще вставить значение константы.

Re: Окно выбора руководителя

Добавлено: 11 май 2017, 11:55
ded_gambit
edward_K писал(а):Лучше исходники в FRM распаковывать
Ищем там по содержимому, в Reports.inc
cgReport_VZachet = 7313; // отчеты модуля "Расчеты с поставщиками и получателями"
поскольку вы не компилите проектом, вам проще вставить значение константы.
т.е.

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

iFeeSigners.InitFeeSigners(7313);
насколько я понимаю, в этом месте должен вызваться интерфейс выбора подписантов?
при проверке интерфейс выбора подписантов не показывается :?
upd насколько я понял, это установка ограничения на уже выбранных где-то в другом месте групп подписантов.

Re: Окно выбора руководителя

Добавлено: 11 май 2017, 13:15
Den
FeeSigners.vih

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

...
  Расширение объекта для работы с подписантами
#end
ObjInterface ObjFeeSignersExt;
#doc
  Открытие главного окна с возвратом результата закрытия
#end
// RunMainWindow = true - была выбрана группа подписантов
Function RunMainWindow(wType: word) : boolean;
end;
...
VipInterface FeeSigners Implements 
ObjFeeSigners, 
ObjFeeSignersExt, 
ObjFeeSignersExt2, 
ObjFeeSignersExt3, 
ObjFeeSignersExt4,
ObjFeeSignersExt5 


Re: Окно выбора руководителя

Добавлено: 12 май 2017, 11:24
ded_gambit
Den писал(а):FeeSigners.vih
моя не понимать :?
никак не взлетает.

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

iFeeSigners.RunWindowFeeSigners (7313);;
эта строчка пролетает без вызова окна

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

iFeeSigners.RunMainWindow (7313);
эта при запуске выдает ошибку
Возникло необработанное исключение
ExObjIfcNoLoad (ExRef)
ошибка загрузки объекта из ресурсного файла (FeeSigners)

в Commission.vih все так чотко по полкам с примерами расписано, а здесь - нет.
может быть, кинете куском кода? во всех формах, которые нахожу у себя интерфейс окна выбора подписантов вызывается до запуска формы.
и/или где почитать про подключение стандартных интерфейсов в свои формы