/// <summary>
/// This is the data contract class for ER loading slip report
/// </summary>
[DataContractAttribute]
[DataContract]
public class AVAERLoadingSlipReportContractCls extends ERFormatMappingRunBaseContract
{
str packedQuery;
ERFormatMappingId formatMapping;
/// <summary>
/// parm method for packedQuery
/// </summary>
/// <param name = "_packedQuery">str</param>
/// <returns>str</returns>
[DataMemberAttribute, AifQueryTypeAttribute('_packedQuery', queryStr("AVALoadingSlipQuery"))]
public str parmPackedQuery(str _packedQuery = packedQuery)
{
packedQuery = _packedQuery;
return packedQuery;
}
/// <summary>
/// parm method for format mapping
/// </summary>
/// <param name = "_formatMapping">ERFormatMappingId</param>
/// <returns>ERFormatMappingId</returns>
[DataMemberAttribute('FormatMapping'), SysOperationLabelAttribute(literalstr("@ElectronicReporting:FormatMapping")), SysOperationHelpTextAttribute(literalstr("@ElectronicReporting:FormatMapping"))]
public ERFormatMappingId parmFormatMapping(ERFormatMappingId _formatMapping = formatMapping)
{
formatMapping = _formatMapping;
return formatMapping;
}
// This method unpacks the query and returns it as query object.
public Query getQuery()
{
return new Query(SysOperationHelper::base64Decode(packedQuery));
}
// This method takes a query object, encodes it and stores the packed query.
public void setQuery(Query _query)
{
packedQuery = SysOperationHelper::base64Encode(_query.pack());
}
/// <summary>
/// initFromArgs method
/// </summary>
/// <param name = "_args">Args</param>
public void initFromArgs(Args _args)
{
FormDataSource fd_whsLoadTable = _args.record().dataSource();
MultiSelectionHelper helper = MultiSelectionHelper::construct();
WHSLoadTable whsLoadTable;
Query query = new Query('AVALoadingSlipQuery');
QueryBuildDataSource qbdsWHSLoadTable = query.dataSourceTable(tablenum(WHSLoadTable));
QueryBuildRange qbrWHSLoadId;
if(fd_whsLoadTable)
{
qbrWHSLoadId = SysQuery::findOrCreateRange(qbdsWHSLoadTable, FieldNum(WHSLoadTable, LoadId));
qbrWHSLoadId.value('');
helper.parmDatasource(fd_whsLoadTable);
whsLoadTable = helper.getFirst();
while (whsLoadTable.RecId != 0)
{
qbrWHSLoadId.value(queryRangeConcat(qbrWHSLoadId.value(), whsLoadTable.LoadId));
whsLoadTable = helper.getNext();
}
}
this.setQuery(query);
this.parmFormatMapping(WHSParameters::find().AVAERLoadingSlipFormatMapping);
}
}
using Microsoft.Dynamics365.LocalizationFramework;
/// <summary>
/// service class for ER loading slip report
/// </summary>
public class AVAERLoadingSlipReportServiceCls extends SysOperationServiceBase
{
public const str DefaultExportedFileName = "@AVAExtension:ER_LoadingSlipDocument";
public const str ERModelDataSourceName = 'model';
public const str ParametersDataSourceName = 'RunTimeParameters';
/// <summary>
/// Generates report by using Electronic reporting framework
/// </summary>
/// <param name = "_contract">The object non conformance report contract</param>
public void generateReport(AVAERLoadingSlipReportContractCls _contract)
{
ERFormatMappingId formatMappingId;
QueryBuildDataSource qbds = _contract.getQuery().dataSourceNo(1);
formatMappingId = _contract.parmFormatMapping();
if (formatMappingId)
{
try
{
ERIModelDefinitionParamsAction parameters = new ERModelDefinitionParamsUIActionComposite().add(new ERModelDefinitionDatabaseContext().addQuery(qbds.file(), _contract.getQuery()));
// Call ER to generate the report.
ERIFormatMappingRun formatMappingRun = ERObjectsFactory::createFormatMappingRunByFormatMappingId(formatMappingId, DefaultExportedFileName, true);
formatMappingRun.withParameter(parameters);
formatMappingRun.run();
}
catch
{
// An error occurred while exporting data.
error("@SYP4861341");
}
}
else
{
// There is no data available.
info("@SYS300117");
}
}
}
/// <summary>
/// Controller class for ER Loading slip report
/// </summary>
public class AVAERLoadingSlipReportControllerCls extends ERFormatMappingRunBaseController
{
/// <summary>
/// The main entrance of the controller
/// </summary>
/// <param name = "args">The arguments</param>
public static void main(Args args)
{
if(!WHSParameters::find().AVAERLoadingSlipFormatMapping)
{
throw Error(strFmt("@AVAExtension:ER_LoadingSlipReportError", "@WAX5406", "@SYS80071", "@AVAExtension:ER_LoadingSlipDocument", "@AVAExtension:ER_LoadingSlipFormat"));
}
AVAERLoadingSlipReportControllerCls operation;
operation = new AVAERLoadingSlipReportControllerCls(
classStr(AVAERLoadingSlipReportServiceCls),
methodStr(AVAERLoadingSlipReportServiceCls, generateReport),
SysOperationExecutionMode::Synchronous);
AVAERLoadingSlipReportContractCls contract = operation.getDataContractObject();
contract.initFromArgs(args);
//operation.parmShowDialog(true);
operation.startOperation();
}
/// <summary>
/// Gets caption of the dialog.
/// </summary>
/// <returns>Caption of the dialog</returns>
public ClassDescription defaultCaption()
{
ClassDescription batchDescription;
batchDescription = "@AVAExtension:ER_LoadingSlipDocument";
return batchDescription;
}
public boolean showPrintSettings()
{
return true;
}
}
Sohaib Cheema
785
User Group Leader
André Arnaud de Cal...
626
Super User 2025 Season 2
Martin Dráb
621
Most Valuable Professional