BLVCKFX
1/16/2019 - 9:17 AM

[queryFilterMultiSelect()] How to make a query filter with multi select

[queryFilterMultiSelect()] How to make a query filter with multi select


/***********************************************************************************************************
*   TODO: Query filter with MultiSelect
*/

public void addQueryFilter(CaseDetailBase _caseDetailBase)
{
    DLX_ServiceCreateOrderDC        dataContract;
    MultiSelectionHelper            multiSelHelper;
    AifQueryTypeAttribute           aifQueryTypeAttribute;
    SysDictMethod                   dictMethod;
    str                             packedQuery;
 
    Query                           query;
    QueryBuildDataSource            qbds;
    QueryBuildRange                 qbr;
    QueryName                       queryName;
 
    dataContract = this.getDataContractObject() as DLX_ServiceCreateOrderDC;
    if (dataContract)
    {
        queryName   = queryStr(DLX_ServiceCaseQuery);
        query       = new Query(queryName);
 
        if (query)
        {
            qbds  = query.dataSourceTable(tableNum(CaseDetailBase));
 
            if (_caseDetailBase.isFormDataSource())
            {
                multiSelHelper = MultiSelectionHelper::construct();
                multiSelHelper.parmDatasource(_caseDetailBase.dataSource());
                multiSelHelper.createQueryRanges(qbds, fieldStr(CaseDetailBase, CaseId));
            }
            else
            {
                qbr = SysQuery::findOrCreateRange(qbds, fieldNum(CaseDetailBase, CaseId));
                qbr.value(queryValue(_caseDetailBase.CaseId));
            }
 
            packedQuery = SysOperationHelper::base64Encode(query.pack());
            dataContract.parmPackedQuery(packedQuery);
        }
    }
}