
Hi all,
How to add the newly developed report in print management.
[ExtensionOf(classStr(PrintMgmtReportFormatPopulator))]
public final class PrintMgmtReportFormatPopulatorAppSuite_custom_Extension
{
#ISOCountryRegionCodes
#PrintMgmtSetup
protected void addDocuments()
{
// Purchasing documents
this.customAddSalesDocuments();
this.customAddSODDocuments();
this.customAddRemittanceDocuments();
next addDocuments();
}
///
/// Adds purchase records to the PrintMgmtReportFormat table.
///
protected void customAddSalesDocuments()
{
this.addOther(PrintMgmtDocumentType::GridTelSalesOrderInvoice, ssrsReportStr(GridcoSalesInvoice, Report), ssrsReportStr(GridcoSalesInvoice, Report), #NoCountryRegionId);
}
protected void customAddSODDocuments()
{
this.addOther(PrintMgmtDocumentType::SODSalesOrderInvoice, ssrsReportStr(GridcoSODInvoice, Report), ssrsReportStr(GridcoSODInvoice, Report), #NoCountryRegionId);
}
protected void customAddRemittanceDocuments()
{
this.addOther(PrintMgmtDocumentType::GDCRemittanceAdvice, ssrsReportStr(GDCRemittaceAdviceReport, Report), ssrsReportStr(GDCRemittaceAdviceReport, Report), #NoCountryRegionId);
}
}
888888888888888888888888888888888888888888888888888888888888
[ExtensionOf(classStr(PrintMgmtNode_VendTable))]
public final class PrintMgmtNode_VendTable_Extension
{
public List getDocumentTypes()
{
List ret = next getDocumentTypes();
ret.addEnd(PrintMgmtDocumentType::GDCRemittanceAdvice);
return ret;
}
}
**********************************************************************************************
[ExtensionOf(classStr(PrintMgmtNode_sales))]
public final class PrintMgmtNode_Sales_Extension
{
public List getDocumentTypes()
{
List ret = next getDocumentTypes();
ret.addEnd(PrintMgmtDocumentType::GridTelSalesOrderInvoice);
ret.addEnd(PrintMgmtDocumentType::SODSalesOrderInvoice);
return ret;
}
}
**************************************************************
[ExtensionOf(classStr(PrintMgmtNode_PurchTable))]
public final class PrintMgmtNode_PurchTable_Extension
{
public List getDocumentTypes()
{
List ret = next getDocumentTypes();
ret.addEnd(PrintMgmtDocumentType::GDCRemittanceAdvice);
return ret;
}
}
**************************************
[ExtensionOf(classStr(PrintMgmtNode_Purch))]
public final class PrintMgmtNode_Purch_Extension
{
public List getDocumentTypes()
{
List ret = next getDocumentTypes();
ret.addEnd(PrintMgmtDocumentType::GDCRemittanceAdvice);
return ret;
}
}
******************************************************
[ExtensionOf(classStr(PrintMgmtDelegatesHandler))]
final class PrintMgmtDelegatesHandler_Extension
{
protected static PrintMgmtPrintDestinationPartyType getPartyType(PrintMgmtDocumentType _docType, Common _jour)
{
PrintMgmtPrintDestinationPartyType PrintMgmtPrintDestinationPartyType = next getpartytype(_docType,_jour);
if(_docType == PrintMgmtDocumentType::GridTelSalesOrderInvoice || _docType == PrintMgmtDocumentType::SODSalesOrderInvoice)
{
return PrintMgmtPrintDestinationPartyType::Customer;
}
if(_docType == PrintMgmtDocumentType::GDCRemittanceAdvice)
{
return PrintMgmtPrintDestinationPartyType::Vendor;
}
return PrintMgmtPrintDestinationPartyType;
}
}
****************************************************************************************
[ExtensionOf(classStr(PrintMgmtDelegatesHandler))]
final class PrintMgmtDelegatesHandler_Extension
{
protected static PrintMgmtPrintDestinationPartyType getPartyType(PrintMgmtDocumentType _docType, Common _jour)
{
PrintMgmtPrintDestinationPartyType PrintMgmtPrintDestinationPartyType = next getpartytype(_docType,_jour);
if(_docType == PrintMgmtDocumentType::GridTelSalesOrderInvoice || _docType == PrintMgmtDocumentType::SODSalesOrderInvoice)
{
return PrintMgmtPrintDestinationPartyType::Customer;
}
if(_docType == PrintMgmtDocumentType::GDCRemittanceAdvice)
{
return PrintMgmtPrintDestinationPartyType::Vendor;
}
return PrintMgmtPrintDestinationPartyType;
}
}
*******************************************
class GDCRemittanceAdviceController extends SrsPrintMgmtFormLetterController //SrsReportRunController
{
LedgerJournalTable ledgerJournalTable;
GDCRemittanceAdviceContract contract;
SRSPrintDestinationSettings destnationSettings;
UsePrintMgmt advSettlPaymentUsePrintMgmt;
protected void prePromptModifyContract()
{
ledgerJournalTable = this.parmArgs().record();
contract = this.parmReportContract().parmRdpContract() as GDCRemittanceAdviceContract;
contract.parmRecId(ledgerJournalTable.RecId);
super();
}
public void setRange(Args _args, Query _query)
{
QueryBuildDataSource qbds;
QueryBuildRange qbr;
if (_args && _args.dataset())
{
switch(_args.dataset())
{
case tableNum(LedgerJournalTable):
ledgerJournalTable = _args.record();
break;
}
}
qbds = _query.dataSourceTable(tableNum(LedgerJournalTable));
qbds.clearRanges();
qbr = qbds.addRange(fieldName2id(tableNum(LedgerJournalTable),fieldStr(LedgerJournalTable, RecId)));
if (!qbr)
{
qbr = qbds.addRange(fieldNum(LedgerJournalTable, RecId));
}
if(ledgerJournalTable)
{
qbr.value(any2Str(ledgerJournalTable.RecId));
}
}
public boolean showQueryValues(str parameterName)
{
return true;
}
public static GDCRemittanceAdviceController construct(Args _args)
{
GDCRemittanceAdviceController controller = new GDCRemittanceAdviceController();
controller.parmArgs(_args);
return controller;
}
public str reportname()
{
str reportnamerun = "GDCRemittaceAdviceReport.Report";
return reportnamerun;
}
public static void main(Args _args)
{
GDCRemittanceAdviceController controller = new GDCRemittanceAdviceController();
str reportnamerun = controller.reportname();
controller.parmReportName(PrintMgmtDocType::construct(PrintMgmtDocumentType::GDCRemittanceAdvice).getDefaultReportFormat());
// controller.parmReportName(reportnamerun);
controller.parmArgs(_args);
controller.setRange(_args, controller.parmReportContract().parmQueryContracts().lookup(controller.getFirstQueryContractKey()));
controller.parmShowDialog(true);
controller.startOperation();
}
public void getFromDialog()
{
SrsReportDataContract dataContract = this.parmReportContract();
destnationSettings = dataContract.parmPrintSettings();
super();
}
[Hookable(false)]
public final boolean isRetryable()
{
return false;
}
public void outputReport()
{
//contract.parmPrintType(
// formLetterReport.getCurrentPrintSetting().parmType() == PrintMgmtDocInstanceType::Copy ? "@SYS108914" : "@SYS108913");
super();
}
//public UsePrintMgmt parmUsePrintMgmt(UsePrintMgmt _advSettlPaymentUsePrintMgmt = advSettlPaymentUsePrintMgmt)
//{
// GDCRemittanceAdviceContract contractlocal;
// SrsReportDataContract dataContract = this.parmReportContract();
// SalesInvoiceContractLocal = dataContract.parmRdpContract();
// //if (_advSettlPaymentUsePrintMgmt == SalesInvoiceContractLocal.parmUsePrintManagement())
// //{
// // advSettlPaymentUsePrintMgmt = _advSettlPaymentUsePrintMgmt;
// //}
// ////If the check box on the dialog is off then run "current print destination"
// //else
// //{
// // advSettlPaymentUsePrintMgmt = SalesInvoiceContractLocal.parmUsePrintManagement();
// //}
// return advSettlPaymentUsePrintMgmt;
//}
protected void initFormLetterReport()
{
formLetterReport = FormLetterReport::construct(PrintMgmtDocumentType::GDCRemittanceAdvice);
formLetterReport.parmPrintType(PrintCopyOriginal::OriginalPrint);
formLetterReport.parmReportRun().parmCheckScreenOutput(true);
contract = this.parmReportContract().parmRdpContract() as GDCRemittanceAdviceContract;
super();
}
protected void runPrintMgmt()
{
QueryRun queryRun = new QueryRun(this.getFirstQuery());
formLetterReport.parmDefaultCopyPrintJobSettings(this.getReportContract().parmPrintSettings());
formLetterReport.parmDefaultOriginalPrintJobSettings(this.getReportContract().parmPrintSettings());
formLetterReport.parmUsePrintMgmtDestinations(contract.parmUsePrintManagement());
boolean isEncounteredException = false;
while (queryRun.next() && !this.parmCancelRun())
{
try
{
ledgerJournalTable = this.parmArgs().record();
SalesTable salestable ;//= salestable::find(CustInvoiceJour.salesid);
formLetterReport.loadPrintSettings(ledgerJournalTable, salestable,ledgerJournalTable.LanguageId);
if (formLetterReport.moveNextPrintSetting())
{
PrintMgmtPrintSettingDetail printSettingDetail = formLetterReport.getCurrentPrintSetting();
this.parmReportName(ssrsReportStr(GDCRemittaceAdviceReport, report));
printSettingDetail.parmReportFormatName(this.parmReportName());
formLetterReport.parmReportRun().loadSettingDetail(printSettingDetail);
}
contract.parmRecId(ledgerJournalTable.RecId);
/// this.showJournalPrinterInfoLog(CustInvoiceJour, CustInvoiceJour.JournalPrinted);
this.outputReports();
//DocumentAttachment documentAttachment = DocumentAttachment::construct(PrintMgmtDocumentType::GridTelSalesOrderInvoice);
//documentAttachment.parmJournal(CustInvoiceJour);
//documentAttachment.parmInnerReportDataContract(reportContract);
//documentAttachment.parmPrintCopyOriginal(formLetterReport.parmPrintType());
//// documentAttachment.parmERContract(erDocumentAttachmentContract);
//documentAttachment.run();
}
catch (Exception::Error)
{
isEncounteredException = true;
//error(strFmt("@AccountsReceivable:CustCollectionNotePrintError", (queryRun.get(tableNum(CustCollectionLetterJour)) as CustCollectionLetterJour).CollectionLetterNum));
}
}
if (isEncounteredException)
{
//This error has been thrown just to fail the batch after processing all the collection letter notes and
//later on this error message is overwritten by the framework generic message.
throw Error('');
}
}
}
*************************************************************
[PrintMgmtDocumentTypeFactoryAttribute(PrintMgmtDocumentType::GDCRemittanceAdvice)]
class CustomRemittanceReport_PromptLetter // extends FormLetter
{
///
/// Returns the default printer settings for the specified PrintSetupOriginalCopy enumeration value.
///
///
/// The PrintSetupOriginalCopy enumeration value that specifies whether the Original
/// or Copy destinations should be retrieved.
///
///
/// The default printer settings for the specified PrintSetupOriginalCopy enumeration value.
///
///
/// The general pattern for implementing this method is to use the printer destinations from the appropriate
/// FormLetter class. These printer destinations will be used if no Print Management destinations are
/// found or used.
///
protected container getDefaultPrintJobSettings(PrintSetupOriginalCopy _printCopyOriginal)
{
if (_printCopyOriginal == PrintSetupOriginalCopy::Original)
{
return salesFormLetter::getPrinterSettingsFormletter(DocumentStatus::None,PrintSetupOriginalCopy::Original);
}
else
{
return salesFormLetter::getPrinterSettingsFormletter(DocumentStatus::None,PrintSetupOriginalCopy::Copy);
}
}
///
/// Returns the PrintMgmtDocumentType enumeration value that specifies what document this FormLetterReport class controls.
///
///
/// The PrintMgmtDocumentType enumeration value that specifies what document this FormLetterReport class controls.
///
///
/// This value is used to retrieve the appropriate Print Management settings for the report.
///
public PrintMgmtDocumentType getPrintMgmtDocumentType()
{
return PrintMgmtDocumentType::GDCRemittanceAdvice;
}
///
/// Returns the PrintMgmtHierarchyType enumeration value that specifies what hierarchy this FormLetterReport class uses.
///
///
/// The PrintMgmtHierarchyType enumeration value that specifies what hierarchy this FormLetterReport class uses.
///
///
/// This value is used to retrieve the appropriate Print Management settings for the report.
///
protected PrintMgmtHierarchyType getPrintMgmtHierarchyType()
{
return PrintMgmtHierarchyType::Purch;
}
///
/// Returns the PrintMgmtNodeType enumeration value that specifies what node this FormLetterReport class uses.
///
///
/// The PrintMgmtNodeType enumeration value that specifies what node this FormLetterReport class uses.
///
///
/// This value is used to retrieve the appropriate Print Management settings for the report.
///
protected PrintMgmtNodeType getPrintMgmtNodeType()
{
return PrintMgmtNodeType::PurchTable;
}
}
class GDCRemittanceAdviceContract
{
boolean usePrintManagement;
RecId RecId;
ParmId ParmId;
[DataMemberAttribute(identifierStr(boolean)),
SysOperationLabelAttribute(literalStr("@SYS93922"))]
public boolean parmUsePrintManagement(boolean _usePrintManagement = usePrintManagement)
{
usePrintManagement = _usePrintManagement;
return usePrintManagement;
}
[DataMemberAttribute("RecId")]
public RecId parmRecId(RecId _RecId = RecId)
{
;
RecId = _RecId;
return RecId;
}
}