30.01.2004, 17:01 | #1 |
Участник
|
В руководстве разработчика дается самый прямой способ.
Ключевые слова "Activating a menu item from your X++ code" <div class='XPPtop'>X++</div><div class='XPP'>[color=:blue]client[/color] [color=:blue]void[/color] formOpen() { FormRun formRun; Args args = [color=:blue]new[/color] Args(); ; [color=:green]// Generate parameters [/color][color=:green]// args.record(...somthing...); [/color][color=:green]// args.parmobject(...somthing...); [/color] [color=:green]// Perform a test on the type journal [/color] formRun = [color=:blue]new[/color] MenuFunction([color=:blue]menuItemDisplayStr[/color](CustOpenTrans), MenuItemType::[color=:blue]Display[/color]).create(args); [color=:blue]if[/color] (formRun) { [color=:green]// Run the form and wait until the form is closed. [/color] formRun.run(); formRun.wait(); } }</div> А так вызывается отчет. <div class='XPPtop'>X++</div><div class='XPP'>[color=:blue]void[/color] [color=:blue]print[/color]() { MenuFunction menuFunction; Args args = [color=:blue]new[/color] Args(); ; menuFunction = [color=:blue]new[/color] MenuFunction([color=:blue]MenuItemOutputStr[/color](SysInfoLog), MenuItemType::Output); args.caller(this); menuFunction.run(args); }</div> |
|
02.02.2004, 13:44 | #2 |
Участник
|
А вот так можно открыть форму не используя MenuFunction:
<div class='XPPtop'>X++</div><div class='XPP'> FormRun f = [color=:blue]new[/color] FormRun([color=:blue]new[/color] Args([color=:red]"CustTable"[/color])); f.init(); f.run(); f.wait();</div> |
|
10.02.2004, 11:59 | #3 |
Участник
|
Век живи - век учись! Перечитав в очередной раз Best Practices понял, что предыдущий мой пост противоречит оному.
Нужно делать так: <div class='XPPtop'>X++</div><div class='XPP'> FormRun f = classFactory.formRunClass([color=:blue]new[/color] Args([color=:red]"CustTable"[/color])); f.init(); f.run(); f.wait();</div> |
|
|