Then i built the project and deployed the report on my DEV environment. I tested it but i am facing a problem which i am unable to fix. Basically, if on F&O i select only 1 record the report is printed correctly on PDF and Word as below:
Do you have any idea of how i can surpass this issue and print in separate pages the Tag for each selected record?
Example:
Please find my DP class below:
/// HERPrintLabelKeyTagDP
/// </summary>
[
SRSReportQueryAttribute(queryStr(HERPrintLabelKeyTag)),
SRSReportParameterAttribute(classStr(HERPrintLabelKeyTagContract))
]
public class HERPrintLabelKeyTagDP extends SrsReportDataProviderPreProcess
//SrsReportDataProviderBase
{
HERPrintLabelKeyTagContract contract;
public HERPrintLabelKeyTagTmp printLabelKeyTag;
/// HERPrintLabelKeyTagTmp
/// </summary>
/// <returns>HERPrintLabelKeyTagTmp</returns>
[SRSReportDataSetAttribute(tablestr(HERPrintLabelKeyTagTmp))]
public HERPrintLabelKeyTagTmp getTmpTable()
{
select printLabelKeyTag;
return printLabelKeyTag;
}
/// insertTmpTable
/// </summary>
/// <param name = "_amDeviceId">_amDeviceIds</param>
private void insertTmpTable(AMDeviceId _amDeviceId)
{
AMDeviceTable amDeviceTable;
AMDeviceTableMaster amDeviceTableMaster;
AMRentDevice amRentDevice;
AMDeviceFuel amDeviceFuel;
AMDeviceTransmission amDeviceTransmission;
//HERPrintLabelKeyTagTmp printLabelKeyTag;
where amDeviceTable.DeviceId == _amDeviceId
join amDeviceTableMaster
where amDeviceTableMaster.MasterId == amDeviceTable.MasterId;
{
select firstonly amRentDevice
where amRentDevice.DeviceId == amDeviceTable.DeviceId;
}
{
select firstonly amDeviceFuel
where amDeviceFuel.FuelId == amDeviceTableMaster.FuelId;
where amDeviceTransmission.TransmissionId == amDeviceTableMaster.TransmissionId;
}
ttsbegin;
printLabelKeyTag.clear();
printLabelKeyTag.UnitNumber = amDeviceTable.HERUnitNumber;
printLabelKeyTag.ModelId = amDeviceTableMaster.DeviceName;
printLabelKeyTag.FuellDescription = amDeviceFuel.Description;
printLabelKeyTag.DriveTrainId = amDeviceTableMaster.DriveTrainId;
printLabelKeyTag.TransmissionDescription = amDeviceTransmission.Description;
printLabelKeyTag.RegistrationNumber = amDeviceTableMaster.RegistrationNumber;
printLabelKeyTag.Colour = amDeviceTableMaster.ExteriorId;
printLabelKeyTag.BrandId = amDeviceTableMaster.BrandId;
printLabelKeyTag.ClassId = amRentDevice.ClassId;
printLabelKeyTag.HERSnowSock = amDeviceTableMaster.HERSnowSock;
printLabelKeyTag.insert();
ttscommit;
}
{
printLabelKeyTag.setConnection(this.parmUserConnection());
}
/// Process report data.
/// </summary>
public void processReport()
{
AMDeviceTable amdeviceTable;
Query queryDeviceId;
QueryRun queryRunDeviceId;
QueryBuildDataSource qbdsDeviceId;
ListIterator deviceIdListIterator;
list = contract.parmDeviceId();
if(list != null)
{
deviceIdListIterator = new ListIterator(list);
queryDeviceId = new Query(queryStr(HERPrintLabelKeyTag));
qbdsDeviceId = queryDeviceId.dataSourceTable(tableNum(AMDeviceTable));
while(deviceIdListIterator.more())
{
//qbdsDeviceId.clearRanges();
qbdsDeviceId.addRange(fieldNum(AMDeviceTable, DeviceId)).value(deviceIdListIterator.value());
deviceIdListIterator.next();
}
queryRunDeviceId = new QueryRun(queryDeviceId);
while(queryRunDeviceId.next())
{
amdeviceTable = queryRunDeviceId.get(tableNum(AMDeviceTable));
this.insertTmpTable(amdeviceTable.deviceId);
}
}
}