2017-01-20 2 views
1

Я пытаюсь вызвать форму, которая уже строить, из инфо класса в пределах метода startupPost. Логика состоит в том, чтобы просто открыть (триггер) эту форму. Я не уверен, что лучшая логика заключается в том, чтобы вызвать форму из метода startupPost или из активировать метод. Кроме того, я надеюсь, что synthax хорошо, так как я новичок в X ++ :)триггер формы из информации класса х ++

EmplTable   emplTable; //NET_PALIN_001_HBDayInfo 
int     dayOfMonth = dayofmth(emplTable.BirthDate); 
int     mthOfYear = mthofyr(emplTable.BirthDate); 
date    c   = mkdate(dayOfMonth,mthOfYear,year(systemDateGet())); 
str     emplName = emplTable.name(); 
date    dob  = systemDateGet(); 

if (c== dob) 

    { 
    formRun.init(NET_PALIN_001_HBDay) 
    new  MenuFunction(MenuItemDisplayStr(NET_PALIN_001_HBDay),MenuItemType::Display).run(); 
    pause; 
    } 
//NET_PALIN_001_HBDay is the name of my form 
+0

Какой тип данных используется для 'emplTable.BirthDate'? Это Date или UTCDateTime? –

+0

Объявление эмблемы без инициализации вернет нулевую запись. –

+0

Это ДАТА, поскольку она расширяет TransDate из того, что я видел в свойствах. @Aliaksandr Maksimau –

ответ

2

Вы можете запустить форму либо с помощью FormRun или MenuFunction. Пожалуйста, проверьте образцы ниже

Использование FormRun:

Args  args = new Args(); 
FormRun formrun; 
; 

args.name(formStr(NET_PALIN_001_HBDay)); 
formRun = classFactory.formRunClass(args); 
formRun.init(); 
formrun.run(); 

Использование MenuFunction:

Args args = new Args(); 
; 

new MenuFunction(menuItemDisplayStr(NET_PALIN_001_HBDay), MenuItemType::Display).run(args); 

Так что вам не нужно использовать оба из них.

+0

Еще раз спасибо Alex! :) –