Filter Records on a form Through x++ EventHandler
Filter Records on a form Through x++ EventHandler
/// <summary>
/// This Event Handler is used to filtered out the Record on the base of Users
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
[FormDataSourceEventHandler(formDataSourceStr(SalesTable, SalesTable), FormDataSourceEventType::QueryExecuting)]
public static void SalesTable_OnQueryExecuting(FormDataSource sender, FormDataSourceEventArgs e)
{
CblSalesTypesSecurity SalesTypesSecurity;
UserInfo userInfo;
boolean _flag = false;
FormRun _formrun = sender.formRun();
QueryBuildDataSource qbds;
QueryBuildRange queryBuildRange;
qbds = sender.query().dataSourceName(sender.name());
queryBuildRange = qbds.addRange(fieldNum(SalesTable,bfpSalesTypeId));
while select
SalesTypesSecurity
join userInfo
where SalesTypesSecurity.UserRef == UserInfo.RecId
&& UserInfo.ID == curUserId()
{
queryBuildRange = qbds.addRange(fieldNum(SalesTable,bfpSalesTypeId));
queryBuildRange.value(SalesTypesSecurity.SalesTypes);
_flag = true;
}
if(_flag == false)
{
queryBuildRange.value('--GarbageValues--');
}
queryBuildRange.status(RangeStatus::Hidden);
}
Comments
Post a Comment