15.06.2011, 03:25 | #1 |
Участник
|
Preston.Larimer: Adding a custom lookup to a form control
Источник: http://palarimer.greenlight2go.com/2...m-control.html
============== 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. X++: 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 sysTableLookupClass sysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(<TABLENAME1>), this); Query query = New Query(); QueryBuildDataSource qbdsTbl1, qbdsTbl2; QueryBuildRange qbr; ; //Add Tables to the data source qbdsTbl1 = 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 Table2 qbr = 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 grid sysTableLookup.addLookupfield(fieldNum(<TABLENAME1>, <DISPLAYFIELDNAME>)); sysTableLookup.addLookupfield(fieldNum(<TABLENAME1>, <DISPLAYFIELDNAME>)); //Hand the created query to the sysTableLookupClass sysTableLookup.parmQuery(query); //Display the drop down sysTableLookup.performFormLookup(); } X++: //Single table example with actual table and field names instead of place holders public 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(); } Источник: http://palarimer.greenlight2go.com/2...m-control.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. Последний раз редактировалось Poleax; 15.06.2011 в 09:42. Причина: оформление |
|
|
|