Hi guys,
Here I have added display method ("displayInternalPackingSlipId" set auto declaration as yes on form control) to display GSN number on the “VendPackingSlipJour” form. In this form main data source is “VendPackingSlipJour”.
Override context method as bellow on display method control and modified logic as per need.
public void context()
{
int selectedMenu;
formrun fr;
Args ag;
Name strtext;
querybuilddataSource qb1;
queryrun qr;
query q;
PopupMenu menu = new PopupMenu(element.hWnd());
int a = menu.insertItem('Filter By Field');
int b = menu.insertItem('Filter By Selection');
int c = menu.insertItem('Remove Filter');
;
selectedMenu = menu.draw();
switch (selectedMenu)
{
case -1: //Filter by field
break;
case a:
ag = new args('SysformSearch');
fr = new formrun(ag);
fr.run();
fr.wait();
//Reading User entered value for filter process
strtext = fr.design().controlName('FindEdit').valueStr();
if(strtext)
{
//Creating a query for filter
q = vendPackingSlipJour_ds.query();
qb1 = q.dataSourceTable(tablenum(VendPackingSlipJour));
qb1 = qb1.addDataSource(TableNum(VendPackingSlipVersion));
qb1.addLink(FieldNum(VendPackingSlipJour,Recid),FieldNum(VendPackingSlipVersion,VendPackingSlipJour));
qb1.addRange(FieldNum(VendPackingSlipVersion,InternalPackingSlipId)).value(strtext);
vendPackingSlipJour_ds.query(Q);
vendPackingSlipJour_ds.executeQuery();
}
break;
case b: // Filter By Selection
q = vendPackingSlipJour_ds.query();
qb1 = q.dataSourceTable(tablenum(VendPackingSlipJour));
qb1 = qb1.addDataSource(TableNum(VendPackingSlipVersion));
qb1.addLink(FieldNum(VendPackingSlipJour,RecId),FieldNum(VendPackingSlipVersion,VendPackingSlipJour));
qb1.addRange(FieldNum(VendPackingSlipVersion,InternalPackingSlipId)).value(displayInternalPackingSlipId.valueStr());
vendPackingSlipJour_ds.query(Q);
vendPackingSlipJour_ds.executeQuery();
break;
case c : // Remove Filter
q = new Query();
qb1 = q.addDataSource(tablenum(VendPackingSlipJour));
qb1.clearLinks();
qb1.clearRanges();
vendPackingSlipJour_ds.query(Q);
vendPackingSlipJour_ds.removeFilter();
break;
Default:
break;
}
}
Happy DAXing.
Here I have added display method ("displayInternalPackingSlipId" set auto declaration as yes on form control) to display GSN number on the “VendPackingSlipJour” form. In this form main data source is “VendPackingSlipJour”.
Override context method as bellow on display method control and modified logic as per need.
public void context()
{
int selectedMenu;
formrun fr;
Args ag;
Name strtext;
querybuilddataSource qb1;
queryrun qr;
query q;
PopupMenu menu = new PopupMenu(element.hWnd());
int a = menu.insertItem('Filter By Field');
int b = menu.insertItem('Filter By Selection');
int c = menu.insertItem('Remove Filter');
;
selectedMenu = menu.draw();
switch (selectedMenu)
{
case -1: //Filter by field
break;
case a:
ag = new args('SysformSearch');
fr = new formrun(ag);
fr.run();
fr.wait();
//Reading User entered value for filter process
strtext = fr.design().controlName('FindEdit').valueStr();
if(strtext)
{
//Creating a query for filter
q = vendPackingSlipJour_ds.query();
qb1 = q.dataSourceTable(tablenum(VendPackingSlipJour));
qb1 = qb1.addDataSource(TableNum(VendPackingSlipVersion));
qb1.addLink(FieldNum(VendPackingSlipJour,Recid),FieldNum(VendPackingSlipVersion,VendPackingSlipJour));
qb1.addRange(FieldNum(VendPackingSlipVersion,InternalPackingSlipId)).value(strtext);
vendPackingSlipJour_ds.query(Q);
vendPackingSlipJour_ds.executeQuery();
}
break;
case b: // Filter By Selection
q = vendPackingSlipJour_ds.query();
qb1 = q.dataSourceTable(tablenum(VendPackingSlipJour));
qb1 = qb1.addDataSource(TableNum(VendPackingSlipVersion));
qb1.addLink(FieldNum(VendPackingSlipJour,RecId),FieldNum(VendPackingSlipVersion,VendPackingSlipJour));
qb1.addRange(FieldNum(VendPackingSlipVersion,InternalPackingSlipId)).value(displayInternalPackingSlipId.valueStr());
vendPackingSlipJour_ds.query(Q);
vendPackingSlipJour_ds.executeQuery();
break;
case c : // Remove Filter
q = new Query();
qb1 = q.addDataSource(tablenum(VendPackingSlipJour));
qb1.clearLinks();
qb1.clearRanges();
vendPackingSlipJour_ds.query(Q);
vendPackingSlipJour_ds.removeFilter();
break;
Default:
break;
}
}
Happy DAXing.
In your case the packingSlipId is a field in a table, but what if my display method returns a string which is not a field in that table? I hope you understand what I mean to ask.
ReplyDelete