In Dynamics AX one way you can add a custom lookup or drop down list to a form control by overriding the lookup method of the control. Below is some example code for doing this.
public void lookup()
{ //This lookup basis the list criteria on information in 2 tables //All display fields come from Table1, Table2 is used for limiting criteria //super(); //This Next Line initializes the the sysTableLookupClasssysTableLookup sysTableLookup =
SysTableLookup::newParameters(tableNum(<TABLENAME1>), this); Query query = New Query();
QueryBuildDataSource qbdsTbl1, qbdsTbl2;
QueryBuildRange qbr;
;
//Add Tables to the data sourceqbdsTbl1 = query.addDataSource(tableNum(<TABLENAME1>));
qbdsTbl2 = qbdsTbl1.addDataSource(tableNum(TABLENAME2));
//Add Query Ranges to limit List records qbr = qbdsTbl1.addRange(fieldNum(<TABLENAME1>,<RANGEFIELDNAME1>));
qbr.value(<CRITERIAVALUE>); qbr = qbdsTbl1.addRange(fieldNum(<TABLENAME1>, <RANGEFIELDNAME2>));
qbr.value(<CRITERIAVALUE>); qbr = qbdsTbl1.addRange(fieldNum(<TABLENAME1>, <RANGEFIELDNAME3>));
qbr.value(<CRITERIAVALUE>); //Since we have multiple tables in the query turn on relations qbdsTbl1.relations(true); //Add Ranges to the Table2qbr = qbdsTbl2.addRange(fieldNum(<TABLENAME2>, <RANGEFIELDNAME4>));
qbr.value(<CRITERIAVALUE>); qbdsTbl2.relations(true); //The next 2 lines actualy adds the fields that will be displayed in the lookup gridsysTableLookup.addLookupfield(fieldNum(<TABLENAME1>, <DISPLAYFIELDNAME>));
sysTableLookup.addLookupfield(fieldNum(<TABLENAME1>, <DISPLAYFIELDNAME>));
//Hand the created query to the sysTableLookupClasssysTableLookup.parmQuery(query);
//Display the drop down sysTableLookup.performFormLookup();
}
Another example single table with field and table names instead of variable place holders
//Single table example with actual table and field names instead of place holderspublic void lookup()
{ //This lookup basis the list criteria on information in 2 tables //super(); sysTableLookup sysTableLookup =
SysTableLookup::newParameters(tableNum(salesBillOfLadingJournalTable), this); Query query = New Query();
QueryBuildDataSource qbdsJT, qbdsBLR;
QueryBuildRange qbr;
;
qbdsJT = query.addDataSource(tableNum(salesBillOfLadingJournalTable));
qbdsBLR = qbdsJT.addDataSource(tableNum(salesBLReservation));
qbr = qbdsJT.addRange(fieldNum(salesBillOfLadingJournalTable,isMaster));
qbr.value(enum2str(noYes::No)); qbr = qbdsJT.addRange(fieldNum(salesBillOfLadingJournalTable, custAccount));
qbr.value((salesBillOfLadingJournalTableMaster.CustAccount)); qbr = qbdsJT.addRange(fieldNum(salesBillOfLadingJournalTable, masterBLID));
qbr.value(""""); qbdsJT.relations(true); qbr = qbdsBLR.addRange(fieldNum(salesBLReservation, blOpen));
qbr.value(enum2str(noYes::Yes)); qbdsBLR.relations(true); sysTableLookup.addLookupfield(fieldNum(salesBillOfLadingJournalTable, BillOfLadingID));
sysTableLookup.addLookupfield(fieldNum(salesBillOfLadingJournalTable, salesID));
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
No comments:
Post a Comment