How can I make the dialog field support multiselection ?
I have this code in X++ and i want to add a multitselect field in dialog for journalnameid and filter the query based on this result from dialog
[Form]
public class TTAssetMovementForm extends FormRun
{
///
///
///
///
///
public str getDimensionDisplayValue(RecId defaultDimension, Name dimName)
{
DimensionAttributeValueSetStorage dimStorage;
dimStorage = DimensionAttributeValueSetStorage::find(defaultDimension);
return dimStorage.getDisplayValueByDimensionAttribute(DimensionAttribute::findByName(dimName).RecId);
}
public void init()
{
super();
date startDate;
date endDate;
InventJournalTable inventJournalTable;
InventJournalTrans inventJournalTrans;
InventDim inventDim;
AssetMovement reportTmp;
DimensionAttributeValueSet dimensionAttributeValueSet;
DimensionAttributeValueSetItem dimensionAttributeValueSetItem;
DimensionAttributeValue dimensionAttributeValue;
DimensionAttribute dimensionAttribute;
DialogField dialogList;
container listValues;
str selectedValue;
Dialog dialog;
DialogField dfStartDate, dfEndDate;
boolean dialogResult;
dialog = new Dialog('Asset Movement Filter Dialog');
dfStartDate = dialog.addField(extendedTypeStr(DocumentDate), 'Start Date');
dfEndDate = dialog.addField(extendedTypeStr(DocumentDate), 'End Date');
dialogList = dialog.addField(EnumStr(InventJournalType));
dialogResult = dialog.run();
if (dialogResult)
{
startDate = dfStartDate.value();
endDate = dfEndDate.value();
selectedValue = dialogList.value();
if (!startDate || !endDate || !selectedValue)
{
error("Please enter valid Filters.");
return;
}
delete_from reportTmp;
// Perform the while select with joins
while select * from inventJournalTrans
Where inventJournalTrans.JournalType == str2Int(selectedValue) &&
inventJournalTrans.TransDate >= startDate && inventJournalTrans.TransDate <= endDate
join inventJournalTable
where inventJournalTable.JournalId == inventJournalTrans.JournalId &&
inventJournalTable.DATAAREAID == inventJournalTrans.DATAAREAID
join inventDim
where inventJournalTrans.InventDimId == inventDim.InventDimId &&
inventJournalTrans.DATAAREAID == inventDim.DATAAREAID
{
// Populate the temporary table with data
/* while select * from dimensionAttributeValueSet
where inventJournalTrans.DefaultDimension == dimensionAttributeValueSet.RecId
JOIN dimensionAttributeValueSetItem where dimensionAttributeValueSetItem.DimensionAttributeValueSet == dimensionAttributeValueSet.RecId
JOIN dimensionAttributeValue where dimensionAttributeValue.RecId == dimensionAttributeValueSetItem.DimensionAttributeValue
JOIN dimensionAttribute where dimensionAttribute.RecId == dimensionAttributeValue.DimensionAttribute
{
if (dimensionAttribute.DimensionKeyColumnName == "BRANCHESTG") {
reportTmp.BranchesTG = str2Int(dimensionAttributeValueSetItem.DisplayValue);
}
if (dimensionAttribute.DimensionKeyColumnName == "CONSTRUCTIONTG")
{
reportTmp.ConstructionTG = str2Int(dimensionAttributeValueSetItem.DisplayValue);
}
}*/
reportTmp.BranchesTG = str2Int(this.getDimensionDisplayValue(inventJournalTrans.DefaultDimension, 'BranchesTG'));
reportTmp.ConstructionTG = str2Int(this.getDimensionDisplayValue(inventJournalTrans.DefaultDimension, 'ConstructionTG'));
reportTmp.TransDate = inventJournalTrans.TransDate;
reportTmp.JournalId = inventJournalTable.JournalId;
reportTmp.Voucher = inventJournalTrans.Voucher;
reportTmp.JournalNameId = inventJournalTable.JournalNameId;
reportTmp.Description = inventJournalTable.Description;
reportTmp.ItemId = inventJournalTrans.ItemId;
reportTmp.Posted = inventJournalTable.Posted;
reportTmp.WorkflowApprovalStatus = inventJournalTable.WorkflowApprovalStatus;
reportTmp.InventSiteId = inventDim.InventSiteId;
reportTmp.InventLocationId = inventDim.InventLocationId;
reportTmp.OffsetAccount = inventJournalTrans.ledgerDimensionDisplayValue();
reportTmp.Qty = inventJournalTrans.Qty;
reportTmp.CostPrice = inventJournalTrans.CostPrice;
reportTmp.CostAmount = inventJournalTrans.CostAmount;
// Insert the record into the temporary table
reportTmp.insert();
}
FormDataSource dataSource = this.dataSource('AssetMovement');
if (dataSource)
{
dataSource.executeQuery();
}
}
}
}
‘’’
