“How-to” implement a Copy Loop in Word report layouts


“How-to” implement a Copy Loop in Word report layouts

Some time ago, I found this post on Microsoft Dynamics Community about: “No. of Copies” doesn’t work in Word Layout reports, “No. of Copies” works only on RDLC reports.

Example:

Report 1306 Standard Sales – Invoice, “N. Copies” on request page

Post Topic

“Hi experts,

I had to produce a report via Word layout in NAV 2015 and it had the “No. of Copies” option on the request page. However, this option doesn’t have any effect on the word report and it only prints one copy. If required to print more copies, the user has to either save or preview the word report and then do it as if from a word document.

Will the option “No. of Copies” only works for RDLC reports or is there a way I can get it working on the word layout as well?

Your comments/help will be much appreciated.

Thanks & Regards.”

Post Source https://community.dynamics.com/nav/f/34/p/215054/602685#602685

My Answer …after some tests:

“Hi, you are right!… “No. of Copies” doesn’t work in Word Layout report! .. after this i asked (some days ago) to NAV Team for a product improvementworkaround.”

Product Suggestion

“N. of copies” with Word Layout Reports.

I know that the option “No. of Copies” works only for RDLC reports (by design i think, this option is not existing on Mini World layout sample Reports) or is there a way i can get it working on the word layout as well?

If a user, either required printing more copies, this user has to “save” or “preview” the word report and then do it as if from a word document.

May be useful for “Post and Print” feature (“to print more copies.”..)

You can find my Product Suggestion here:

https://connect.microsoft.com/dynamicssuggestions/Feedback/Details/3118831

@Today, Solution is delivered by NAV Team Blog

“Because many partners asked to have this feature, an official solution (by my friend Duilio Tacconi of Microsoft) is today available. I tested this solution in preview before the post was published n NAV Team Blog, is a nice workaround, useful for “Post & Print” feature.

Source from NAV Team Blog

How to implement a Copy Loop in Word report layouts

https://blogs.msdn.microsoft.com/nav/2017/01/24/how-to-implement-a-copy-loop-in-word-report-layouts/

Well Done!

Advertisements

Word Layout reports data control by C/AL


word layout

Some have asked me (both on Dynamics Community and Mibuso) how to use in NAV Word Layout reports property to hide the value 0 or other values in fields under conditions.

Sample of question: “I have made a report in NAV 2016 using Word and XML. Everything is very well, but I have one problem. When “quantity” is added to the report, writes NAV “0” in all cells with no information. In the attached picture saying “with error” you can see That the “quantity” cell with no information is filled with “0”.”

Question ref. http://forum.mibuso.com/discussion/67111/nav-2016-word-report-is-generating-extra-0
Answer
No, only in C / SIDE in this case (simple common solution), the use in this way (no logic in Word, all in C (SIDE) .. but .. i think That you can create functions in Word (macro) ,in word template. you can modify XML an add also Javascript support… an so on..”

Some functions can be used with C / AL
With these sample functions you can simulate what is done by the visibility property of the RDLC report or by VBNET Functions included in the report (Public Functions on CODE section of reports).

Examples

Num2Str (IdecValue: Decimal) OtxtValue: Text [100]
IF IdecValue <> 0 THEN BEGIN
OtxtValue: = FORMAT (IdecValue, 0, ‘<Precision, 2: 2> <Standard Format, 0>’);
E
ND;

Num2Str2 (IdecValue: Decimal) OtxtValue: Text [100]
OtxtValue:=FORMAT(IdecValue,0,'<Precision,2:2><Standard Format,0>’);

Int2Str (inValue: Integer) OtxtValue: Text [100]
IF inValue <> 0 THEN BEGIN
OtxtValue: = FORMAT (inValue);
END;
..
etc etc.

NAV 2016 Word Layout “HOW-TO”


NAV 2016 Word Layout “HOW-TO”

Word Layout (WRL) è un tool di NAV per la stampa dei documenti in formato Word, è stato inserito a partire dalla versione 2015 di NAV.

Si parte da un report di tipo RDLC già esistente oppure da un nuovo report; nel caso di nuovo report i campi devono essere dichiarati sotto il DataItem.

NB: “Il report deve essere compilato”

– L’attivazione avviene richiamando una lista denominata “Selezione Layout Report” che contiene l’elenco di tutti i report dell’applicativo (mapping report type)

Il campo “Layout selezionato” viene impostato inizialmente in “RDLC” e va modificato a seconda delle esigenze richieste.

Esistono altre due opzioni oltre a quella di default (RDLC): “Layout personalizzato” e Word.

– La prima opzione permette di creare o modificare il modello direttamente da NAV

– La seconda (Word) importa il modello senza la possibilità di effettuare modifiche all’interno.

Una volta effettuato la scelta è possibile passare alla visualizzazione del layout.

(Cambiamo il tipo da DRLC a Layout personalizzato)

Una volta impostato il corretto tipo di layout si procedere alla personalizzazione del modello premendo l’apposito bottone “Layout Personalizzati” posto nella barra multifunzione nella parte superiore della pagina.

In questa sessione è possibile importare un layout di Word preesistente (*.docx) scaricando ad esempio un modello da Internet, oppure crearne uno nuovo. Es: Creiamo un “nuovo Layout”

Selezioniamo un nuovo documento con il tipo layout = Word.

Una volta creato possiamo passare alla fase di costruzione del nuovo layout.

– Esempio Nuovo documento word vuoto

In particolare, nell’etichetta “Sviluppo” c’è un apposito bottone che permette di evidenziare i campi del DataItem.

In questo caso selezioniamo l’opzione con il nome del DataItem principale.

I campi dei DataItem solo gli stessi elencati nel programma sorgente e conservano la stessa struttura.

Proviamo ora a caricare un layout preparato in precedenza:

Inseriamo un campo di tipo “Immagine” con il logo dell’azienda prendendo il dato dal campo “Picture” della tabella “Company Information”.

Premendo il tasto destro del mouse viene proposto un menù con alcune opzioni.

Nel nostro caso si potrà scegliere tra Immagine, Testo Normale e Formato RTF

Testo Normale” viene usata per tutti i campi e le variabili di tipo testo o formattate.

Formato RTF” viene utilizzato per campi o variabili di tipo “Decimal” in modo da poter utilizzare la formattazione standard NAV per quanto riguarda i campi delle tabelle mentre, nel caso di variabili, usando delle apposite funzioni…

Selezionare l’opzione “Immagine” e poi “Inserisci controllo contenuto”.

Dopo aver inserito i campi della testata passiamo alla gestione delle righe.

In questo caso occorre dire al sistema che deve gestire un ciclo.

Posizioniamo il puntatore e selezioniamo tutta la riga dove inseriremo i dati e utilizziamo l’opzione “Ripetuto”. In questo modo viene indicato al sistema che la riga selezionata verrà ripetuta per tutto il contenuto del DataItem.

Word Layout dà la possibilità di creare cicli nidificati.

Per fare questo occorre creare il primo nodo ….

E poi quelli contenuti all’interno.

In questo modo per ogni riga stampata per il DataItem padre verranno stampate una o più righe del sottoinsieme. Naturalmente il tutto dovrà essere fatto rispettando la struttura originale del Report sorgente.

Inseriamo ora gli altri campi:

E terminiamo la progettazione del layout.

In qualsiasi momento è possibile effettuar una stampa di prova selezionando il bottone “Esegui Report”:

Gestione del piè di pagina finale (FOOTER)

Word Report Layout non ha una gestione del piè di pagina con funzioni specifiche. La soluzione utilizzata per ovviare a questa mancanza potrebbe essere quella di utilizzare una casella di testo posta in fondo alla pagina con all’interno la struttura e i dati che verranno inseriti solo sull’ultima pagina (vedi esempio).

Costanti in lingua:

Non esiste una vera e propria gestione delle costanti in lingua ma è possibile utilizzare delle costanti a programma configurate con le apposite traduzioni oppure utilizzando direttamente le Caption dei campi delle tabelle (es: FIELDCAPTION (nome campo)).

CASE HISTORY: Inserire nel layout alcune parti condizionati da una scelta iniziale.

– L’esempio utilizzato è una conferma d’ordine dove, al momento dell’esecuzione può essere scelta la possibilità di stampare o meno il castelletto dell’IVA.

Con NAV 2009 Classic o versioni precedenti si poteva usare l’opzione “CurrReport.showoutput” impostata a False o True a seconda, mentre per i report RDLC si può usare una variabile e condizionare la sessione “Visibility”.

Per quanto riguarda i dati è abbastanza semplice perché basta fare in modo che il programma trovi il DataItem vuoto ma il problema solo le costanti di testata e le varie cornici che vengono stampate comunque.

Io ho risolto inserendo due DataItem (VATTestata e VATPiede) prima e dopo VATAmountLine utilizzando variabili e costanti del codice sorgente.

Per evitare che vengano stampati i dati di testata e piede ho inserito il codice “IF NOT InfoIVA THEN CurrReport.SKIP;” nel DataItem VATTestata e VATPiede.

Nella parte di progettazione layout ho inserito un ciclo per la testate e uno per il piede ma siccome la variabile “Number” del DataItem di tipo integer è impostata a 1, anche in caso si volesse stampare il castelletto dell’Iva la testata ed il piede vengono ripetuti una volta sola.

MSDN NAV 2016 Word Layout LINKS

Designing Word Report Layouts

https://msdn.microsoft.com/en-us/library/dn789519(v=nav.90).aspx

How to: Create a Word Report Layout for a Report

https://msdn.microsoft.com/en-us/library/dn789701(v=nav.90).aspx

My Video on Youtube

NAV 2015 Word Layout “How Do I” Videos


NAV 2015 Word Layout “How Do I” Videos

Word LAyout

“Word Layout is growing up”, nice videos by MVP Brummel, Claus, Totovic, Tacconi & NAV Team

Starting
How Do I: Create a new Word Report, based on an existing Word Template in Microsoft NAV 2015
https://msdn.microsoft.com/en-us/dynamics/nav/dn834978

How Do I: Create a Dataset optimized for a Word Layout Report
https://msdn.microsoft.com/en-us/dynamics/nav/dn921914

How Do I: Manage Report Layouts in Microsoft DYnamics NAV 2015
https://msdn.microsoft.com/en-us/dynamics/nav/dn835073

Advanced
How Do I: Customize Word Layout in Microsoft Dynamics NAV 2015 – Simple Formatting
https://msdn.microsoft.com/en-us/dynamics/nav/dn834982

How Do I: Customize Word Layout in Microsoft Dynamics NAV 2015 – Advanced Formatting
https://msdn.microsoft.com/en-us/dynamics/nav/dn834981

How Do I: Handle Headers and Footers for Microsoft Word Reports
https://msdn.microsoft.com/en-us/dynamics/nav/dn998016

How Do I: Develop Word Layouts in the Development Environment in Microsoft Dynamics NAV 2015
https://msdn.microsoft.com/en-us/dynamics/nav/dn835068

How Do I: Use Jet Express for Word as Word Layout Creating Tool in Microsoft Dynamics NAV 2015
https://msdn.microsoft.com/en-us/dynamics/nav/dn903716

How Do I: Print Document Reports in One Output File in Microsoft Dynamics NAV 2015
https://msdn.microsoft.com/en-us/dynamics/nav/dn864865

Reports Scheduling by Duilio Tacconi
How Do I: Schedule Report Execution in Microsoft Dynamics NAV 2015
https://msdn.microsoft.com/en-us/dynamics/nav/dn921908

————————————————————————————-
Microsoft Dynamics NAV 2015 All-Videos Page
https://msdn.microsoft.com/en-us/dynamics/nav/dn783472.aspx