mercoledì 11 gennaio 2012

RTC: controlli a runtime di una page

E' possibile gestire, a seconda di un valore dinamico, l'editabilità di una page, a livello di singoli controlli.
Per far ciò, è necessario gestire una variabile globale booleana (con la proprietà "IncludeinDataset" impostata a YES), associata ai controlli sulla pagina:






Tale proprietà è assegnabile a livello di "Group" o "Field"; per i "Container", è gestibile anche a livello di singola "Part":



Sarà sufficiente gestire a codice il valore di tale variabile booleana per ottenere il comportamento desiderato.
Per impostare un funzionamento analogo a livello di "righe" (ex subform), è necessario eseguire la stessa procedura impostando il valore della variabile globale a seconda del valore di testata.

In  maniera analoga, è possibile gestire dinamicamente il valore di una "label" di un controllo di tipo "Field".
E' sufficiente assegnare il valore voluto ad una variabile ed utilizzare questa variabile nella proprietà "CaptionClass":


N.B. gli argomenti trattati in questo post si riferiscono ad una versione NAV 2009 R2. 


mercoledì 4 gennaio 2012

RTC: campi di look-up

Per poter scegliere quali campi far comparire facendo il look-up in un campo di una page, è necessario modificare la tabella relativa alla lista sulla quale siamo eseguendo l'azione: vediamo l'esempio.

1 - Attualmente, facendo un lookup sul campo "Location Code", appare la lista con due soli campi:



2 - Per aggiungere dei campi alla visualizzazione di look-up, modifichiamo la tabella "Location": è necessario creare/modificare il Field Group "DropDown", definendo i campi desiderati:



3 - Ecco ora comparire i campi aggiunti:



martedì 3 gennaio 2012

RTC: request page nei report

Ci si può trovare a dover convertire dei report "classic" in RTC, magari di tipo "Process Only", ma che presentano una Request Form molto complessa e articolata.
E' possibile sfruttare il "Transformation Tool" per semplificare questa procedura: vediamo l'esempio.
1 - Abbiamo l'esigenza di creare la Request Page di un report che presenta questa Request Form:


 
2 - Utilizziamo una form completamente vuota appena creata e la esportiamo in XML: chiameremo il file forms.xml. Analogamente, esportiamo il report in questione, sempre in formato XML.

3 - Con l'aiuto di un editor, apriamo il file report.xml e copiamo quanto contenuto fra i tag <RequestForm> e </RequestForm>:



4 - Incolliamo il codice all'interno del file forms.xml, sostituendo quanto contenuto fra i tag <Properties> e </Controls>:


5 - Salvando e importando il file forms.xml, dopo la compilazione dell'oggetto, avremo una form identica alla Request Form del report (se necessario, riportare le variabili utilizzate nel report).

6 - Possiamo ora usare il file forms.xml come input del "Transformation Tool": il file generato pages.xml conterrà la page relativa alla form creata: importiamo il file. Una volta compilato, possiamo esportarlo nuovamente nel file pages.xml.

7 - Copiamo quanto contenuto fra i tag <Properties></Controls> del file pages.xml, sostituendo il codice presente fra i tag <RequestPage> e </RequestPage> del file report.xml: importiamo e compiliamo. Correggendo eventualmente qualche imperfezione, avremo il report con la Request Page aggiornata:

lunedì 2 gennaio 2012

RTC: disabilitare il menù "Reparti"

In ogni Role Center è presente, normalmente, il menù REPARTI, che permette la navigazione verso tutte le funzionalità di NAV:


 
E' possibile disabilitare tale menù attraverso la seguente procedura:

1 - per ogni "Profilo", definire un utente proprietario accendo al setup "Client personalizzato in base ai ruoli" (volendo anche in ambiente "Classic"):


 
2 - avviare l'RTC da CMD con il parametro di configurazione desiderato (ruolo):
C:\Program Files (x86)\Microsoft Dynamics NAV\60\RoleTailored Client\Microsoft.Dynamics.Nav.Client.exe /Profile: "IS-AGENTIFILIALI" –Configure

3 - tramite "Personalizza riquadro di spostamento", eliminare il menù REPARTI (gli utenti di quel ruolo ereditano senza poter eseguire modifiche):


Al riavvio del sistema, la voce REPARTI non comparirà più per il ruolo in questione.