In questo articolo vediamo come cambiare design dinamicamente ai report standard che usano la "gestione stampa". Nel mio caso il report in oggetto è il DDT fornitori (PurchPackingSlip)
I report per cui è disponibile la "gestione stampa" sono memorizzati nella tabella
PrintMgmtReportFormat.
Se per questi report proviamo ad impostare via codice il report tramite il metodo
parmReportName() verrà comunque stampato il design standard.
In questo esempio aggiungiamo un nuovo layout al report della fattura che verrà stampato solo se la company è italiana
Ecco quello che occorre fare:
1) Aggiungere al metodo populate() della tabella PrintMgmtReportFormat una nuova entry così
case #isoIT:
addAX(PrintMgmtDocumentType::SalesOrderInvoice, #isoIT);
break;
che aggiunge un nuovo record nella tabella PrintMgmtReportFormat . Verificare nella nuova riga che il flag "System" sia attivo, se non lo è attivarlo
2) Aggiungere alla classe PrintMgmtDocType metodo getDefaultReportFormat() una nuova entry così: (indivituate il blocco che riguarda la fattura):
if (SysCountryRegionCode::isLegalEntityInCountryRegion([#isoIT]))
{
return ssrsReportStr(SalesInvoice, CustomLayout);
}
Si consiglia ota di rigenerare la tabella PrintMgmtReportFormat cancellando prima tutti i record
e poi abdare in
Account receivable -> setup -> form -> form setup
andare sul tab general e cliccare sul pulsante "Print management"
A questo link
https://technet.microsoft.com/en-us/library/dd309660.aspx alla sezione "
Specify conditional settings for an original or copy record" potete trovare una soluzione alternativa che non richiede codice, ma è necessario che l'utente in fase di stampa del report clicchi sulla voce "Usa gestione stampa":