I have created two fields in which if i select country the state should get filter according to that country , so if i select country of final destination as "ITA" then the port of loding only show the value of port from italy , but its showing value from all countries , how can apply filter from this , my code is below.
[FormControlEventHandler(formControlStr(SalesTable, SalesOrderExim_PortOfLoading), FormControlEventType::Lookup)] public static void SalesOrderExim_PortOfLoading_OnLookup(FormControl sender, FormControlEventArgs e) { Query query; SysTableLookup sysTableLookup; QueryBuildDataSource queryBuildDataSource; query = new Query(); sysTableLookup = SysTableLookup::newParameters(tableNum(dev_PortTbl), sender); queryBuildDataSource qbdsdev_PortTbl = query.addDataSource(tableNum(dev_PortTbl)); sysTableLookup.addLookupfield(fieldNum(dev_PortTbl,Port)); sysTableLookup.parmQuery(query); sysTableLookup.performFormLookup(); }
hi Mohit Rampal
thanks for the link it was really helping.
hi GirishS
thanks for correction now code is working as i need .
[FormControlEventHandler(formControlStr(SalesTable, SalesOrderExim_PortOfLoading), FormControlEventType::Lookup)] public static void SalesOrderExim_PortOfLoading_OnLookup(FormControl sender, FormControlEventArgs e) { FormRun element; FormControl formCtrl; Query query; SysTableLookup sysTableLookup; QueryBuildDataSource queryBuildDataSource; element = sender.formRun(); formCtrl = element.design().controlName(formControlStr(SalesTable,SalesOrderExim_CountryOfFinalDestination)); query = new Query(); sysTableLookup = SysTableLookup::newParameters(tableNum(dev_PortTbl), sender); queryBuildDataSource qbdsdev_PortTbl = query.addDataSource(tableNum(dev_PortTbl)); sysTableLookup.addLookupfield(fieldNum(dev_PortTbl,Port)); qbdsdev_PortTbl.addRange(fieldNum(dev_PortTbl,Country )).value(formCtrl.valueStr()); sysTableLookup.parmQuery(query); sysTableLookup.performFormLookup(); }
thanks,
regards ,
Dinesh.
Code seems to be wrong. You need to add range to the table field if the table is present in the query.
You added LogisticsAddressCountryRegionNameView which is not added as datasource in your query.
Does dev_PortTbl has CountryRegionId field?
Thanks,
Girish S.
this is lookup code for " country of final distination"
[FormControlEventHandler(formControlStr(SalesTable, SalesOrderExim_CountryOfFinalDestination), FormControlEventType::Lookup)] public static void SalesOrderExim_CountryOfFinalDestination_OnLookup(FormControl sender, FormControlEventArgs e) { Query query; SysTableLookup sysTableLookup; QueryBuildDataSource queryBuildDataSourceView; query = new Query(); sysTableLookup = SysTableLookup::newParameters(tableNum(LogisticsAddressCountryRegionNameView), sender); queryBuildDataSourceView = query.addDataSource(tableNum(LogisticsAddressCountryRegionNameView)); queryBuildDataSourceView.addRange(fieldNum(LogisticsAddressCountryRegionNameView, LanguageId)).value(queryValue(currentUserLanguage())); sysTableLookup.addLookupfield(fieldNum(LogisticsAddressCountryRegionNameView, CountryRegionId)); sysTableLookup.addLookupfield(fieldNum(LogisticsAddressCountryRegionNameView, ShortName)); sysTableLookup.setLabel("@SYS7576"); sysTableLookup.parmQuery(query); sysTableLookup.performFormLookup(); }
her is code with range
[FormControlEventHandler(formControlStr(SalesTable, SalesOrderExim_PortOfLoading), FormControlEventType::Lookup)] public static void SalesOrderExim_PortOfLoading_OnLookup(FormControl sender, FormControlEventArgs e) { FormRun element; FormControl formCtrl; Query query; SysTableLookup sysTableLookup; QueryBuildDataSource queryBuildDataSource; element = sender.formRun(); formCtrl = element.design().controlName(formControlStr(SalesTable,SalesOrderExim_CountryOfFinalDestination)); query = new Query(); sysTableLookup = SysTableLookup::newParameters(tableNum(dev_PortTbl), sender); queryBuildDataSource qbdsdev_PortTbl = query.addDataSource(tableNum(dev_PortTbl)); sysTableLookup.addLookupfield(fieldNum(dev_PortTbl,Port)); qbdsdev_PortTbl.addRange(fieldNum(LogisticsAddressCountryRegionNameView, CountryRegionId)).value(formCtrl.valueStr()); sysTableLookup.parmQuery(query); sysTableLookup.performFormLookup(); }
Hi, you have not added range in the code.
Check this article and add range of value selected in Country field
Hi Dinesh,
Where did you the add range to dev_PortTbl which has Port value?
You need to add Country as a range to dev_PortTbl.
Thanks,
Girish S.
André Arnaud de Cal...
291,965
Super User 2025 Season 1
Martin Dráb
230,836
Most Valuable Professional
nmaenpaa
101,156