Hello everyone,
I have created a SSRS report that uses Contract,Contoller and DP classes and I want to pass a paremeter that I'm creating on the button click, to the report.
I have create a parameter in the contract class
class TCI_OutsideServicePackingSlipContract
{
TCI_OutsideServicePackingSlipId packingSlipId;
[
DataMemberAttribute('TCI_OutsideServicePackingSlipId'),
SysOperationLabelAttribute(literalStr('PackingSlipId')),
SysOperationControlVisibilityAttribute(false)
]
public TCI_OutsideServicePackingSlipId parmPackingSlipId(TCI_OutsideServicePackingSlipId _packingSlipId = packingSlipId)
{
packingSlipId = _packingSlipId;
return packingSlipId;
}
}
I have tried to pass the field into the parameter during the button click
public void clicked()
{
TCI_OutsideServiceImportLog outsideServiceImport;
MultiSelectionHelper helper = MultiSelectionHelper::construct();
TCI_OutsideServicePackingSlipHeader packingSlipHeader;
TCI_OutsideServicePackingSlipDetails packingSlipDetails;
int sequence = 0;
TCI_OutsideServicePackingSlipContract contract = new TCI_OutsideServicePackingSlipContract();
helper.parmDatasource(TCI_OutsideServiceImportLog_DS);
outsideServiceImport = helper.getFirst();
packingSlipHeader.TCI_OutsideServicePackingSlipId = NumberSeq::newGetNum(ProdParameters::numRefTCI_OutsideServicePackingSlipEDT(),true).num();
packingSlipHeader.PurchId = outsideServiceImport.ResultNumber;
packingSlipHeader.VendAccount = outsideServiceImport.VendAccount;
packingSlipHeader.insert();
contract.parmPackingSlipId(packingSlipHeader.TCI_OutsideServicePackingSlipId);
while(outsideServiceImport.RecId != 0)
{
packingSlipDetails.TCI_OutsideServicePackingSlipId = packingSlipHeader.TCI_OutsideServicePackingSlipId;
packingSlipDetails.Seq = sequence;
sequence = sequence 1;
packingSlipDetails.ItemId = outsideServiceImport.ItemId;
packingSlipDetails.QtyOrdered = outsideServiceImport.Qty;
packingSlipDetails.insert();
outsideServiceImport = helper.getNext();
}
super();
}
But when I get to my controller class, that parameter is empty......
class TCI_OutsideServicePackingSlipController extends SrsReportRunController
{
public static void main(Args _args)
{
SrsReportRunController controller = new TCI_OutsideServicePackingSlipController();
controller.parmReportName(ssrsReportStr(TCI_OutsideServicePackingSlip, Report));
controller.parmArgs(_args);
controller.startOperation();
}
protected void prePromptModifyContract()
{
TCI_OutsideServicePackingSlipContract contract = this.parmReportContract().parmRdpContract();
TCI_OutsideServicePackingSlipId packingSlipId;
packingSlipId = contract.parmPackingSlipId();
this.parmReportContract().parmReportName(ssrsReportStr(TCI_OutsideServicePackingSlip, Report));
boolean isPreview = false;
//Set the target print destination to screen
if (isPreview)
{
this.parmReportContract().parmPrintSettings().printMediumType(SRSPrintMediumType::Screen);
}
this.parmshowDialog(!isPreview);
this.parmLoadFromSysLastValue(!isPreview);
}
}
Normally, I wouldn't put that line packingSlipId = contract...... but I wanted to put a break point there to see if it gets anything, which is doesn't.
What am I missing? I thought I would be able to just pass it in the contract and then grab it again if needed.....