Formular per Code öffnen

Nachstehend ein paar Beispiele, wie man ein Formular per Code aufrufen kann. Wobei jede Variante ihr Vor- oder Nachteile bietet. Beispielsweise gibt es Varianten, wo man einen Datensatz übergeben kann, der angezeigt werden soll. Andere wieder bieten die Möglichkeit ganze Queries zu übergeben oder aber festzulegen, ob man im Grid oder im Detail-View öffnen möchte. Es sollte also für ziemlich jeden Anwendungsfall etwas dabei sein ;-)

static void openFormThroughCode_0(Args _args)
{
    menuFunction menuFunction;
    args args;
    CustTable custTable = CustTable::find('1101');
   
    args = new args();
    args.record(CustTable);
    args.formViewOption(FormViewOption::Grid);
   
    menuFunction::runClient(identifierStr(custTable), MenuItemType::Display, false, args);
}

 

static void openFormThroughCode_I(Args _args)
{
    FormRun formRun;
    args args = new args();
    args.name(formstr(CustTable));
    args.formViewOption(FormViewOption::Grid);
   
    formRun = classFactory.formRunClass(args);
    formRun.run();
    formRun.wait();
}

 

static void openFormThroughCode_II(Args _args)
{
    FormRun formRun;
    args args = new args();
    CustTable custTable = custTable::find('250000');
    args.name(formstr(CustTable));
    args.formViewOption(FormViewOption::Grid);
   
    args.record(custTable);
   
    formRun = classFactory.formRunClass(args);
    formRun.run();
    formRun.wait();
}

 

static void openFormThroughCode_III(Args _args)
{
    SysInfoAction_Formrun SysInfoAction_Formrun;
   
    SysInfoAction_Formrun = SysInfoAction_Formrun::newFormname(formStr(CustTable));
    SysInfoAction_Formrun.run();
}

 

static void openFormThroughCode_IV(Args _args)
{
    SysInfoAction_Formrun SysInfoAction_Formrun;
    CustTable custTable = custTable::find('250000');
   
    SysInfoAction_Formrun = SysInfoAction_Formrun::newFormname(formStr(CustTable));
    SysInfoAction_Formrun.parmCallerBuffer(custTable);
    SysInfoAction_Formrun.run();
}

 

static void openFormThroughCode_V(Args _args)
{
    SysInfoAction_FormrunQuery SysInfoAction_FormrunQuery;
    Query query;
   
    query = new query();
    query.addDataSource(tableNum(CustGroup));
   
    SysQuery::findOrCreateRange(    query.dataSourceTable(tableNum(CustGroup)),
                                    fieldNum(CustGroup, CustGroup)).value('D-INL');
   
    SysInfoAction_FormrunQuery = SysInfoAction_FormrunQuery::newFormnameQuery(formStr(CustGroup), query);
    SysInfoAction_FormrunQuery.run();
}

 

static void openFormThroughCode_VI(Args _args)
{
    SysInfoAction_Formrun SysInfoAction_Formrun;
    CustTable custTable = custTable::find('250000');
   
    SysInfoAction_Formrun = SysInfoAction_Formrun::newFormname(formStr(CustTable));
    SysInfoAction_Formrun.parmCallerBuffer(custTable);
    SysInfoAction_Formrun.parmControlname(identifierStr(GridGroup)); // Trick, um im der Rasteransicht zu starten. Das Control GridGroup ist ein Element, in dieser Ansicht
    SysInfoAction_Formrun.run();
}

 

static void openFormThroughCode_VII(Args _args)
{
    SysInfoAction_MenuFunction SysInfoAction_MenuFunction;
   
    SysInfoAction_MenuFunction = SysInfoAction_MenuFunction::newMenuItem(menuItemDisplayStr(CustTable), MenuItemType::Display);
    SysInfoAction_MenuFunction.run();
}

 

static void openFormThroughCode_VIII(Args _args)
{
    SysInfoAction_MenuFunction SysInfoAction_MenuFunction;
    CustTable custTable = custTable::find('250000');
   
    SysInfoAction_MenuFunction = SysInfoAction_MenuFunction::newMenuItem(menuItemDisplayStr(CustTable), MenuItemType::Display);
    SysInfoAction_MenuFunction.parmCallerBuffer(custTable);
    SysInfoAction_MenuFunction.run();
}

 

Dieser Beitrag bezieht sich auf die Versionen:
Dynamics AX 2009, Dynamics AX 2012

Kommentar hinzufügen
 
 

 

 
 
 
Beiträge des aktuellen Monats
April 2024
MoDiMiDoFrSaSo
1234567
891011121314
15161718192021
22232425262728
2930 
 
© 2006-2024 Heinz Schweda | Impressum | Kontakt | English version | Mobile Version
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.  Mehr dazu