crystal XP

Transcript

crystal XP
Release
Manuale
4.90
Tecnico
SVILUPPO REPORT
Personalizzazione e creazione nuove stampe
Documentazione ad uso esclusivo dell’installatore della procedura
Programma per la personalizzazione dei report (presenti nella procedura gestionale, realizzati
con il programma Crystal Report di Seagate Software): permette di intervenire sulle funzioni di
stampa, collegando nuove stampe o modificando le maschere di filtro di quelle già esistenti.
Lo scopo dell’utility e' di disegnare le videate per la richiesta dei parametri di selezione, utili al
Crystal Reports per la composizione della formula di estrazione dei dati visualizzati nel report
stesso. È necessario che l’eseguibile il programma sia posizionato nella stessa directory in cui
è stata installata la procedura gestionale, e che sia presente il percorso PathRpt\ nel file di
configurazione .ini (presente nella cartella Windows\WinNt).
Rel. 4.90 – Aggiornato al 09/02/2010
2 – Manuale Tecnico
Indice degli argomenti
1
REPWIZARD: STAMPE PERSONALIZZATE ...................................................................... 3
1.1
1.2
1.3
Richiamo Funzione......................................................................................................... 4
Repwizard: caratteristiche tecniche................................................................................ 5
Creazione nuovo report (Proprietà)................................................................................ 6
1.3.1
1.2.3
1.2.3
1.2.3
1.2.3
1.2.3
1.4
1.5
Modifica Reports .......................................................................................................... 17
Lay-Out report .............................................................................................................. 18
1.2.3
1.6
1.7
Esempio di creazione di un report con utilizzo di Crystal.............................................. 9
Impostazione dimensione form ................................................................................... 12
Regole di Validazione.................................................................................................. 13
Informazioni generali ................................................................................................... 14
Formula Di Filtro Per Report Con Sql/Odbc................................................................ 15
Fine Della Creazione Guidata ..................................................................................... 16
Lay-Out report per stampe standard ........................................................................... 20
Utilizzo della Multi Lista ................................................................................................ 21
Codice Basic associato ................................................................................................ 23
1.7.1
1.7.2
1.7.3
1.7.4
Gestione di alcune tipologie di campi.......................................................................... 26
1° Esempio .................................................................................................................. 27
2° Esempio .................................................................................................................. 28
3° Esempio .................................................................................................................. 29
1.8 Inserimento a menù dei nuovi report personalizzati..................................................... 32
1.9 Stampa Orizzontale...................................................................................................... 34
1.10
Possibili errori................................................................................................. 35
2
IMPORT – EXPORT REPORT............................................................................................ 39
2.1
2.2
Esportazione report ...................................................................................................... 39
Importazione report ...................................................................................................... 42
SVILUPPO REPORT: Personalizzazione e creazione nuove stampe - 3
1
REPWIZARD: STAMPE PERSONALIZZATE
Il ‘Repwizard’ è un’utility fornita a supporto della Procedura, che permette sia di creare ed
agganciare nuove stampe (report) personalizzate ad hoc per l'Utente sia di gestire e modificare
i report standard del programma. Tali stampe sono fornite di maschere e di filtro iniziali e, per le
stampe personalizzate, si ha la possibilità di inserirle come scelte all'interno del menù preferito.
L’utility è in grado di funzionare sia in ambiente Access ( nelle versioni 97,2000 e XP) sia in
SQL Server. Per definire il collegamento con le stampe personalizzate ed impostare le relative
selezioni è necessario lanciare un apposito programma denominato 'RepWizard.exe'.
Lo scopo di quest’eseguibile è quello di permettere di disegnare, in maniera visuale, delle
videate per la richiesta dei parametri di selezione e d’impostare le regole di validazione dei
parametri stessi con la formula di selezione, indispensabile al Crystal Reports, per
l’elaborazione del report.
Affinché l’utility possa lavorare correttamente, è necessario che l’eseguibile KngRepWizard.exe
sia posizionato nella stessa directory in cui è stato installato il programma ed esistano le
subdirectory RptKing (directory standard) e la directory per i reports personalizzati Rptxxxx
(dove xxxx si riferisce al codice della società in utilizzo), e che sia presente il percorso PathRpt\
nel file di configurazione .ini (presente nella cartella Windows\WinNt).
E’ possibile richiamare il programma tramite il pulsante “AVVIO” dall’opzione “ESEGUI”
specificandone il percorso C://<nome della directory di installazione/KngRepWizard.exe:
Oppure avviare l’eseguibile presente nel menu Elenco Utilità
4 – Manuale Tecnico
1.1 Richiamo Funzione
Alla partenza della Procedura, si chiede di scegliere la società con la quale si vuole lavorare e,
trattandosi di un programma multiversione, a quale release si deve fare riferimento (nel caso ci
fossero caricate release precedenti)
Alla partenza della Procedura si chiede quindi dapprima di scegliere il percorso esatto nel quale
sono posizionati gli archivi:
Dopo aver impostato il percorso corretto si richiede di scegliere la società con la quale si vuole
lavorare e, trattandosi di un programma multiversione, a quale release si deve fare riferimento
(nel caso ci fossero caricate release precedenti)
SVILUPPO REPORT: Personalizzazione e creazione nuove stampe - 5
Con il pulsante Seleziona , si procede con l'esecuzione della maschera principale relativa alla
società ed alla versione evidenziata: viene visualizzato un prospetto con indicazione separata
dei reports standard e personalizzati. Cliccando sul segno + posto sulla destra, si ottiene
l’esplosione dei reports in essi contenuti
.
È possibile visualizzare i reports ordinati per descrizione utilizzando il tasto destro del mouse,
posizionandosi sul nodo principale "Reports standard", selezionando la voce Ordina per
Descrizione .
Oppure filtrare per codice o per descrizione, selezionando la voce Filtra per Descrizione
(sempre con il tasto destro), sarà visualizzata una maschera nella quale si deve scrivere la
parola che deve essere contenuta nel campo DesFilt, per togliere il filtro basta cliccare con il
tasto destro e deselezionare la voce Filtra per descrizione.
1.2 Repwizard: caratteristiche tecniche
I dati relativi ai report personalizzati vengono salvati nel database della società XXXXana.mdb
nelle seguenti tabelle:
•
Filtri Test Questa tabella contiene le informazioni sulle proprietà associate al singolo
processo di stampa. Qui sono memorizzate le informazioni
riguardo la
descrizione del processo, la descrizione a menù, il nome del report principale e l' ID
della funzione associata (in questo caso di fatto e' un
contatore automatico che e'
associato al codice del filtro con la regola 9000+int (Codice Filtro)
•
Filtri Code Qui è immagazzinato il codice SAX basic scritto dall’utente. La tabella e'
legata con un rapporto 1 a 1 con la tabella FiltriTest (il rapporto in realtà sarebbe di 1 a 0
in quanto e' possibile che ci sia un record solo nella tabella FiltriTest ma non vi sia alcun
codice associato).
•
DefMskPrn (CCMskPrn) Qui sono memorizzate le informazioni di layout generate dal
processo di personalizzazione. E' a tutti gli effetti una Defmsk con tutte le regole
necessarie per il funzionamento della Tcontrolli.
6 – Manuale Tecnico
1.3 Creazione nuovo report (Proprietà)
E’ possibile aggiungere un nuovo report facendo clic con il tasto destro del mouse in
corrispondenza di Reports Standard o Reports Personalizzati.
Supponiamo di voler procedere con la creazione di un nuovo report relativo agli articoli di
magazzino: osserviamo passo dopo passo le fasi da seguire. Innanzitutto occorre aggiungere
un nuovo report tra le stampe personalizzate e associargli un nome, per esempio Stampa
particolare Articoli:
Premendo il pulsante Aggiungi nuovo report , si visualizza la finestra in cui inserire le
proprietà del report personalizzato
Esempio compilazione:
•
Codice Identificativo: codice identificativo del report presente nella tabella
•
Descrizione Stampa: campo che rappresenta anche il titolo che verrà dato alla maschera
in cui saranno inseriti i campi filtro (nel nostro esempio inseriamo Stampa Articoli).
•
Descrizione a menù: questa è la descrizione che apparirà nel menù della Procedura. Per
le stampe personalizzate, la descrizione è indispensabile poiché il menù viene creato
dinamicamente sfruttando questa informazione; per le stampe standard non è strettamente
necessaria in quanto il lancio delle funzioni avviene tramite il menù standard del programma
(trattandosi di stampa personalizzata, inseriamo la descrizione Stampa particolare Articoli).
SVILUPPO REPORT: Personalizzazione e creazione nuove stampe - 7
•
Nome report: è il nome del report principale da associare al processo di stampa che si sta
elaborando. Si anticipa l’argomento dicendo che è possibile, in una seconda fase, cambiare
il nome del report associato, tramite il codice script SAX Basic.
Occorre sottolineare che il report viene creato con Crystal Report, il quale genera il file
‘.rpt’ da salvare nella corretta e specifica directory (Rpt in caso di report standard o Rptxxxx
in caso di report personalizzato). Il pulsante Seleziona permette di selezionare i report
presenti nelle directory appena citate (nell’esempio si è optato per Articoli).
•
ID funzione: è l’ID della funzione associata alla scelta di menù. L’elemento è gestito
automaticamente dalla Procedura in caso di report personalizzato (si assegna un valore
progressivo a cominciare da 9000), mentre deve essere gestito manualmente (e posto pari
all’ID funzione associato nel menù principale della Procedura) nel caso di report standard.
Confermando le proprietà, il nuovo report viene inserito, in ordine crescente di ID, nell’elenco
delle stampe personalizzate. Il report appena creato verrà così aggiunto all'elenco, facendo
doppio click sul nome, verrà aperta la maschera di selezione del report nella quale aggiungere i
campi attraverso il tasto personalizza.
Si visualizza una finestra vuota in cui si andranno ad inserire i campi filtro secondo le nostre
esigenze ed inoltre, si visualizza anche, la finestra per la gestione del Codice Basic associato.
In pratica tutte le informazioni che il programma trae dalle scelte operate durante la creazione,
vengono tradotte nel modo opportuno, in una serie di istruzioni in linguaggio Basic. Per gli
installatori più esperti è possibile agire direttamente su tale schermata per creare i filtri voluti.
Inseriamo attraverso il tasto personalizza , due campi etichetta (Da e A) e i campi testo che
dovranno essere collegati, modifichiamo le proprietà (Lista, formato, lunghezza...) di tali campi
dopo averli creati tasto destro sugli stessi, voce Proprietà .
8 – Manuale Tecnico
Il passo successivo è la creazione delle regole di validazione da applicare ai campi appena
inseriti: il processo è reso semplice grazie all’utilizzo del programma, che guida l’utilizzatore con
una successione di videate. Premere il tasto:
posto nella parte bassa della finestra Codice, la videate che si susseguono sono le seguenti:
1. IMPOSTAZIONE DIMENSIONE FORM : I campi presenti permettono di dimensionare
(valori espressi in pixel) e centrare i campi che sono stati inseriti nella maschera ‘Lista
nostri Articoli’
2. REGOLE DI VALIDAZIONE : Questa videata consente di inserire le regole, o
condizioni, di validazione relative ai campi inseriti nella maschera; tali condizioni devono
verificarsi per l’accettazione del dato inserito nel singolo campo. I campi coinvolti sono
tutti elencati, e numerati, nella colonna Controlli.
Prima di passare ai successivi passaggi, vediamo un esempio (Esempio di creazione di un
report con utilizzo di Crystal) su come procedere per inserire facilmente delle regole di
validazione sui campi inseriti.
SVILUPPO REPORT: Personalizzazione e creazione nuove stampe - 9
1.3.1 Esempio di creazione di un report con utilizzo di Crystal
Per poter creare dei report nuovi, occorre lanciare il Crystal Report Designer e cliccare su
Nuovo: viene visualizzata una Galleria di report ognuno dei quali è dotato di istruzioni
dettagliate concernenti la creazione.
Per selezionare un tipo di report personalizzato, in modo da creare un report dal principio,
selezionare l’opzione Utilizzo dell’Esperto report, dopo aver premuto sul pulsante OK si aprirà la
finestra Esperto report standard da questa finestra potremo incominciare a creare il nostro
report, come prima cosa dovremo selezionare il database da quale verranno presi i dati, quindi
cliccando sul pulsante Database verrà aperta la finestra Explorer Dati, selezioneremo da
KW96Access le tabelle necessarie al nostro report
Dopo aver selezionato le tabelle necessarie potremo chiudere la finestra di Explorer Dati e
tornando sulla finestra precedente vedremo che nel riquadro sono presenti le tabelle
selezionate, ora cliccando sul pulsante successivo passeremo alla scheda CAMPI dove sono
elencati tutti i campi delle tabelle attive. È possibile inserire i campi di database nel report o
facendo clic sul pulsante Inserisci o facendo un doppio clic sul nome del campo. È possibile
selezionare più campi facendovi clic e tenendo contemporaneamente premuti i tasti <SHIFT> o
<CTRL>.
10 – Manuale Tecnico
Una volta inseriti i campi potremo cliccare sul pulsante fine e continuare a creare il nostro report
senza usare la creazione guidata altrimenti potremmo cambiare scheda ed aggiungere Gruppi,
Totali e Grafici.
Di fondamentale importanza per il corretto funzionamento della Procedura, è l’inserimento del
logo dell’applicativo: dal menù Inserisci, selezionare Campo Formula; nella cartella Formula
cliccare su Nuovo e digitare ‘AppName’:
cliccando su Inserisci, portare il nuovo campo nella parte riservata all’intestazione del report.
SVILUPPO REPORT: Personalizzazione e creazione nuove stampe - 11
Una volta costruito il lay-out di stampa, è necessario salvarlo: chiudere la finestra precedente
con il pulsante Chiudi e, dal menù File, scegliere Salva con nome… (deselezionare l’opzione
Salva dati con report):
La finestra seguente elenca le cartelle e i file presenti nella posizione selezionata. Per
visualizzare il contenuto di una cartella, fare doppio clic su di essa. Occorre ricordarsi, come già
anticipato nel paragrafo precedente, che necessariamente occorre salvare il report nella
corretta e specifica directory (RptKing in caso di report standard o Rptxxxx in caso di report
personalizzato):
Con la conferma delle operazioni appena compiute (‘Salva’), si consente al programma
RepWizard di caricare i report appena creati, secondo le fasi che abbiamo avuto modo di
vedere in questo stesso paragrafo:
Con il pulsante ‘Seleziona’ si accede alle directory in cui sono contenuti i report appena creati.
Nei paragrafi successivi si forniranno le necessarie informazioni per creare le maschere di filtro
e per gestire al meglio le potenzialità offerte dal programma.
12 – Manuale Tecnico
1.2.3
Impostazione dimensione form
Premere il pulsante
posto nella parte bassa della finestra Codice: la prima
videata che si visualizza è la seguente:
I campi presenti permettono di dimensionare (valori espressi in pixel) e centrare i campi che
sono stati inseriti nella maschera ‘Lista nostri Articoli’.
Premere Avanti per proseguire, Annulla per abbandonare la creazione guidata.
SVILUPPO REPORT: Personalizzazione e creazione nuove stampe - 13
1.2.3
Regole di Validazione
Questa videata consente di inserire le regole, o condizioni, di validazione relative ai campi
inseriti nella maschera; tali condizioni devono verificarsi per l’accettazione del dato inserito nel
singolo campo. I campi coinvolti sono tutti elencati, e numerati, nella colonna Controlli (1).
Per assegnare la regola di validazione è sufficiente scrivere come deve comportarsi il
programma ogni qualvolta si inseriscano dei valori nei campi:
·
·
·
·
in inserimento, prima di immettere la stringa di validazione, occorre selezionare uno dei
campi presenti sulla videata;
durante l’inserimento della regola di validazione è possibile selezionare, dall’elenco dei
campi dichiarati, il nome del campo in base alla sua descrizione;
il nome del campo selezionato sarà aggiunto nella stringa di validazione (2);
la sintassi delle stringhe Regole di Validazione prevede che possano essere utilizzati i
normali operatori matematici (/, *, -, +, =, >, <, ecc.), gli operatori logici (NOT, OR, AND,
ecc.) e le parentesi nidificate ( ).
Ad esempio:
usrtxt(1) < = usrtxt(2)
NOT usrtxt(1) = ‘’
il valore del primo campo è “minore o uguale” al valore del secondo
campo.
il valore del primo campo non può essere una stringa vuota.
Nel nostro esempio si decide che il codice dell’articolo inserito nel primo campo, debba essere
inferiore al codice dell’articolo inserito nel secondo campo:
14 – Manuale Tecnico
Ì
fare doppio clic sul primo campo (nella colonna Controlli il campo denominato usrtxt(1)): si
ottiene in automatico il suo inserimento nella colonna Regola di validazione;
Ì
inserire il tipo di validazione che si vuole ottenere, ossia inserire il simbolo “ < ”;
Ì
fare doppio clic sul secondo campo (nella colonna Controlli il campo denominato
usrtxt(2)): si ottiene in automatico l’inserimento nella colonna Regola di validazione, dopo
il simbolo “minore di”;
Ì
inserire il messaggio (nella colonna Messaggio d’errore) che si deve visualizzare nel caso
non fosse rispettata la regola imposta: "Valore Da deve essere minore o uguale a Valore A".
Premere Avanti per proseguire, Annulla per abbandonare la creazione guidata, Indietro per
tornare alla videata precedente.
1.2.3
Informazioni generali
I due flag presenti in questa videata permettono, se abilitati, di ottenere la stampa completa del
Nome della Società e/o della sua Descrizione, bisogna fare attenzione che se vengono
selezionati questi flag nel report dovranno essere obbligatoriamente inserite le formule che
permettono la visualizzazione del cod soc e della ds soc altrimenti quando si premerà il
pulsante conferma per l’apertura dell’anteprima il report andrà in errore.
Premere Avanti per proseguire, Annulla per abbandonare la creazione guidata, Indietro per
tornare alla videata precedente.
SVILUPPO REPORT: Personalizzazione e creazione nuove stampe - 15
1.2.3
Formula Di Filtro Per Report Con Sql/Odbc
La quarta videata riguarda l’immissione della Formula di Filtro, ossia l’immissione della formula
di selezione (SelectionFormula) da trasmettere al Crystal report che andrà a sostituire quella
inserita nel report.
La creazione guidata rende possibile:
Ì
Ì
Ì
selezionare, dall’elenco dei campi dichiarati, il nome del campo in base alla sua descrizione.
Il nome del campo selezionato sarà aggiunto nella stringa della formula di selezione;
selezionare una delle tabelle presenti nel database e dall’elenco dei suoi campi uno di
questi in base alla sua descrizione. Il nome del campo selezionato è aggiunto nella stringa
della formula di selezione;
aggiungere il nome del campo selezionato nella stringa della formula di selezione nel
formato Crystal Report ({NomeTabella.NomeCampo}).
La sintassi della formula di selezione è la stessa descritta per la Regola di Validazione.
La videata di gestione è la seguente:
Selezionare la tabella di riferimento. Creare la formula di selezione SelectionFormula
seguendo la logica attuata nella seconda videata: occorre estrarre solo i codici compresi tra il
valore inserito nel primo campo ed il valore inserito nel secondo. Traducendo in formula si deve
specificare innanzitutto a quale Tabella ed in particolare a quali Campi della tabella si deve fare
riferimento.
16 – Manuale Tecnico
Fare doppio clik sul nome del campo (viene inserito automaticamente nella finestra Formula
e subito dopo inserire (sempre con doppio clic) il tipo di Funzione/Operazione che deve
essere effettuata sul primo campo; cliccare quindi sul primo campo usrtxt per completare la
prima parte della formula i codici da estrarre devono essere maggiori o uguali al valore inserito
nel primo campo.
Prima di passare alla seconda parte della formula (che riguarda il secondo campo) inserire
AND logico, prelevandolo da Funzioni/Operazioni, che indica alla Procedura che si tratta di una
condizione che si deve verificare contemporaneamente alla prima condizione.
Ripetere, per il secondo campo, le operazioni effettuate relativamente al primo campo,
sostituendo a >= la nuova operazione <= ( i codici da estrarre devono essere minori o uguali al
valore inserito nel secondo campo).
Premere Fine per terminare, Annulla per abbandonare la creazione guidata, Indietro per
tornare alla videata precedente.
1.2.3
Fine Della Creazione Guidata
Ultimata la creazione guidata, la Procedura visualizza, nella seguente videata (Codice Basic), il
risultato delle scelte effettuate.
Per confermare le scelte premere il pulsante con la freccia verde nella maschera del Codice
Per modificare eventualmente alcune decisioni, premere il pulsante
A questo punto e' possibile vedere immediatamente il risultato della creazione, inserendo dei
valori nei campi della maschera e cliccando su Conferma.
SVILUPPO REPORT: Personalizzazione e creazione nuove stampe - 17
1.4 Modifica Reports
In seguito all’esplorazione del menù, si procede cliccando con il tasto destro sul singolo report
al fine di poter scegliere, tra la modifica delle proprieta' associate, la modifica del lay-out o
l'eventuale eliminazione del report stesso
Selezionando Layout report verranno aperte la maschera di selezione filtri e la finestra per la
gestione del Codice Basic associato, a questo punto sara' possibile agire sulla maschera
aggiungendo modificando o rimuovendo campi oppure modificare direttamente il codice basic
relativo al report.
Dopo aver selezionato la Voce Elimina sara' visualizzata una richiesta di conferma
dell'operazione di eliminazione del report.
18 – Manuale Tecnico
1.5 Lay-Out report
Ritornando al menù che si apre cliccando con il tasto destro del mouse, sul singolo report
inserito (Reports Personalizzati – Lista nostri Articoli):
premendo in corrispondenza di Layout report:
Come si può osservare, si visualizza una finestra vuota in cui si andranno ad inserire i campi
filtro secondo le nostre esigenze e, nello stesso momento (videata sopra, in secondo piano), si
visualizza anche la finestra per la gestione del Codice Basic associato che sarà compilato
automaticamente grazie alle istruzioni derivanti dalla creazione guidata trattata nel prosieguo
del capitolo.
In pratica tutte le informazioni che il programma trae dalle scelte operate durante la creazione,
vengono tradotte nel modo opportuno, in una serie di istruzioni in linguaggio Basic. Per gli
installatori più esperti è possibile agire direttamente su tale schermata per creare i filtri voluti.
Se si preme Conferma (1) senza inserire nessun campo/filtro, la Procedura provvede ad
estrarre tutti gli articoli di magazzino presenti nella società. Se viceversa si vogliono porre dei
limiti alla estrazione, occorre creare dei controlli utilizzando la Personalizzazione On-Fly; per
cominciare, premere il pulsante Personalizza (2):
SVILUPPO REPORT: Personalizzazione e creazione nuove stampe - 19
3
Dopo aver premuto il pulsante personalizza verrà visualizzata la finestra di personalizzazione
ON FLY che ci permetterà l’inserimento di tutti gli elementi necessari.
1 2 3 4 5
Inserimento:
1)
Label
2)
TextBox
3)
Camponote
4)
Campo Numerico
5)
Campo Data
6)
Check Box
7)
Combo Box
8)
Pannello
9)
Apre la finestra proprietà
10)
Elimina l’elemento selezionato
6
7 8
9
11
Inseriamo, i due campi etichetta (‘Da’ e ‘A’) e i campi testo che dovranno essere collegati,
compilando il campo Richiamo lista presente nelle proprietà (3), inserendo i numero della lista
articoli di magazzino, quando il focus andrà su questa text le comparirà accanto un pulsante
con tre punti (il classico pulsante che apre le liste), e premendo il pulsante o premendo F5 verrà
visualizzata la lista collegata. Le liste che possiamo utilizzare sono di due tipi la lista classica da
cui possiamo selezionare un solo elemento per volta o la multi lista che adesso illustrerò.
20 – Manuale Tecnico
1.2.3
Lay-Out report per stampe standard
Cliccando con il tasto destro del mouse su di una stampa standard, scegliere Lay-Out report
dal menù che si apre, così come è stato fatto per i report personalizzati: si lancia la funzione
che consente di modificare la maschera associata al processo di stampa selezionato (1); la
maschera stessa si visualizza a video con i tasti prefissati Conferma, Personalizza ed Esci.
Nello stesso momento si visualizza anche la finestra per la gestione del Codice Basic
associato (2), che contrariamente a quanto avveniva per i report personalizzati, contiene già le
informazioni (da modificare direttamente o con la creazione guidata) sul comportamento dei
campi inseriti. Prendiamo come esempio il report dell’Anagrafica Articoli:
Con il tasto Personalizza è possibile accedere a tutte le funzionalità associate alla
Personalizzazione On-Fly e procedere così alla modifica del lay-out secondo le proprie
necessità.
SVILUPPO REPORT: Personalizzazione e creazione nuove stampe - 21
1.6 Utilizzo della Multi Lista
La multi lista è una particolare tipo di lista dove è possibili selezionare più di un elemento per
volta. Per utilizzarla dovremo inserire nella form di rep wizard un campo text a cui collegheremo
la lista, ed un pannello in cui dopo aver selezionato gli elementi dalla lista verrà visualizzato il
numero di elementi selezionati.
Di seguito vediamo il codice da inserire in repwizard per il funzionamento della multi lista.
Dim m_sconti As String
Dim m_aconti() As String
Option Explicit
Public Sub Form_GetMultiScelta(iLista As Integer, ctlCurControl As Object, bValue As Boolean)
If ilista=3000 Then
bValue=True
Else
bvalue=False
numero della lista con cui
vogliamo utilizzare la multilista
End If
End Sub
Public Sub Form_GetMultisceltaParameters(nLista As Integer, sKeyField As String, sValues()
As String, bValue As Boolean)
Dim sValue As String
Dim i As Integer
22 – Manuale Tecnico
If nlista=3000Then
sKeyField="CodTipoPrest"
End If
Campo chiave della lista
ReDim svalues(0)
svalue = m_sconti
If Len(svalue)>0 Then
Do While InStr(svalue,",")>0
i=i+1
ReDim Preserve svalues(i)
svalues(i)=Left(svalue,InStr(svalue,",")-1)
sValue=Right(svalue,Len(svalue)-InStr(svalue,","))
Loop
ReDim Preserve svalues(i+1)
svalues(i+1)=svalue
End If
ReDim m_aconti(0)
m_sconti=""
usrpnl(1).Text=""
bvalue=True
End Sub
Public Sub Form_GetValueFromMulti(nLista As Integer, ctlCurControl As Object, vRetValue As
Variant, iCurRow As Integer, iNumRows As Integer, bValue As Boolean)
If nlista=3000 Then
ReDim Preserve m_aConti(UBound(m_aConti)+1)
m_aConti(UBound(m_aConti))=vRetValue(1)
End If
usrpnl(1).Text="Le Voci selezionate sono:" & UBound(m_aConti)
m_sConti=m_sConti & "," & vRetValue(1)
End Sub
Si possono anche utilizzare più liste nella stessa form con la multi lista basterà duplicare la
parte di codice presente in Form_GetMultisceltaParameters ed in Form_GetValueFromMulti
cambiando le variabili ed aggiungere in Form_GetMultiScelta i codici delle liste da utilizzare.
Poi per utilizzare i dati estratti dalla multi lista basterà ciclare sul vettore m_axxxx, facendo
attenzione, a mettere un controllo sul pannello (dove sono visualizzati il numero di dati
selezionati) prima di utilizzare il vettore m_axxxx, dato che nel caso non venga selezionato
alcun dato dalla lista, quando si andrà ad utilizzare il vettore il report andrà in errore non
eseguendo la parte restante del codice.
Utilizzando la multi lista non è possibile inserire direttamente il codice nella text box, ma è
possibile solo la selezione.
SVILUPPO REPORT: Personalizzazione e creazione nuove stampe - 23
1.7 Codice Basic associato
In questo paragrafo si espongono le caratteristiche del Codice Basic per un utilizzo specifico da
parte degli Utenti più esperti. Il processo di stampa si completa con la possibilità di aggiungere
un codice Basic per svolgere lavori non standard nelle varie fasi che caratterizzano il processo
stesso.
La logica di lavoro è quella ad eventi e quindi il KngRepwiz richiederà all’Utente di svolgere i
propri lavori particolari in momenti ben specificati.
Gli eventi gestiti sono:
Evento
Form_Load
Descrizione
Questo evento viene richiesto al momento dell’inizializzazione della
maschera associata al processo di stampa. In questa fase è possibile
svolgere tutte le proprie azioni di inizializzazione, come ad es. settare
valori iniziali nei textbox o nei combobox oppure cancellare il contenuto
di tabelle temporanee, per la successiva rielaborazione dei dati dopo il
loro utilizzo.
Form_AfterReport
Questo evento viene richiamato nel momento in cui è terminata
l’esecuzione di un report e viene richiesto allo script se c’è la necessità di
far partire un altro processo di stampa. La sequenza di reports è data dal
contatore ReportNumber e la possibilità di annullare il processo viene
data tramite il flag Cancel.
Questo evento viene richiamato al momento della pressione del tasto
conferma da parte dell’utente. Qui andranno svolti tutti i lavori finali di
controllo sulla maschera (ad es. è possibile controllare che siano stati
inseriti valori corretti nei TextBoxs oppure che il valore immesso in una
cella sia minore o uguale a quello di un’altra).
Se i controlli specifici non vanno a buon fine è necessario riportare il
parametro Cancel a true ed eventualmente gestire il messaggio di errore
che si vuole visualizzare nel parametro ErrorMessage (altrimenti verrà
usato un messaggio di errore standard).
L’evento viene richiamato se i controlli standard e specifici (Evento
Validazione) sono andati a buon fine; si possono gestire tutte le
operazioni particolari di settaggio del report quali: specifica della formula
di selezione, specifica finale del nome del report, assegnazione delle
formule all’interno del report (ad es. passaggio del codice della società e
descrizione della stessa, passaggio dei limiti di stampa selezionati).
Se il setup non va a buon fine è necessario riportare il parametro Cancel
a true ed eventualmente gestire il messaggio di errore che si vuole
visualizzare nel parametro ErrorMessage (altrimenti verrà usato un
messaggio di errore standard).
Form_Validazione
Form_SetupReport
24 – Manuale Tecnico
L’oggetto Form può avere le seguenti proprietà e metodi:
Proprietà/Metodi
Form.CenterScreen
Descrizione
L’impostazione a True di questa proprietà permette il
posizionamento della maschera di dialogo al centro dello
schermo
Form.CurrCodSoc
Codice della società in uso
Form.CurrData
Data corrente utilizzata nell’applicativo (restituisce una
stringa formattata secondo lo stile delle date in utilizzo sul
computer)
Form.CurrRagSoc
Ragione sociale della società in utilizzo
Form.CurrEsercizio
Numero di esercizio in utilizzo nell’applicativo
Form.dtEseIni
Data di inizio esercizio (restituisce una variabile di tipo data)
Form.dtEseFine
Data di fine esercizio (restituisce una variabile di tipo data)
Let Form.ErrorBox
Assegnando questa proprietà, con una stringa viene
visualizzato un messagebox con il tipo di errore specificato
nella stringa
Form.Height
Restituisce o imposta la proprietà di altezza della form di
dialogo
Form.LenMastro
Restituisce la lunghezza del mastro nel piano dei conti della
società in uso
Form.LenConto
Restituisce la lunghezza del conto nel piano dei conti della
società in uso
Form.LenSconto
Restituisce la lunghezza del sottoconto nel piano dei conti
della società in uso
Form.nEse
Restituisce il numero di esercizio corrente
Form.UserID
Restituisce l’ID dell’utente che sta utilizzando l’applicativo. In
fase di costruzione RepWiz indicherà sempre 1 in questo
campo (utente Amministratore)
Form.ReportName (FileName as Dato un nome di report fornisce il percorso completo ad esso
string)
associato. E’ necessario specificare il nome di un file RPT
fisico presente nella directory RptKing o Rptxxxx. Questa
funzione è fondamentale nel momento in cui si vuole
associare un report, al processo di stampa, differente
rispetto a quello specificato nelle proprietà iniziali
Form_ReadData
Questa funzione restituisce la data da stampare sul report, in
base alle impostazioni generali scelte dall’utente
Form.StatusMessage
E’ possibile impostare un messaggio che verrà visualizzato
nella barra di stato della Procedura
Form.Width
Restituisce o imposta la proprietà di larghezza della form di
dialogo
Viene esposto l’oggetto Rep che di fatto rappresenta il controllo Crystal Report. È resa
disponibile la libreria Crystal Report così che tutti i metodi e le proprietà del controllo OCX
Crystal Report possano essere sfruttati e siano accessibili.
SVILUPPO REPORT: Personalizzazione e creazione nuove stampe - 25
Vengono esposti tutti i controlli utilizzati nel definire il disegno della maschera. Avremo i
seguenti controlli e proprietà:
usrtxt (Index)
Proprietà/Metodi
Usrtxt(Index)_Text (Get/Let)
Usrtxt(Index)_Enabled (Let)
usrcbo (Index)
Proprietà/Metodi
Usrcbo(Index)_Text (Get)
Usrcbo(Index)_Enabled (Let)
Descrizione
Permette di leggere e scrivere il contenuto di una casella
TextBox nella form di dialogo
Permette di abilitare/disabilitare il controllo textbox specificato
Descrizione
Permette di leggere il contenuto di una casella ComboBox
nella form di dialogo
Permette di abilitare/disabilitare il controllo combobox
specificato
Usrcbo(Index)_ListIndex
Permette di leggere e scrivere la proprietà ListIndex
(Get/Let)
all’interno di una combobox
Usrcbo(Index)_AddItem
= Permette di aggiungere voci alla ComboBox
"stringa da visualizzare nella
cbo"
Usrcbo(Index).Clear
usrchk (Index)
Proprietà/Metodi
Usrchk(Index)_Value (Get/Let)
Usrchk(Index)_Enabled (Let)
Permette di cancellare tutte le voci presenti nella combo box
Descrizione
Permette di leggere e scrivere il valore (0,1,2) di una casella
CheckBox nella form di dialogo
Permette di abilitare/disabilitare il controllo CheckBox
specificato
È fornito quindi un importante supporto per le operazioni inerenti al database. In particolare è
possibile accedere al database della società utilizzando l’oggetto Form nel seguente modo:
Form.Database. Questo è a tutti gli effetti un oggetto Database.
Viene esposta la libreria DAO con tutti i metodi e le type. In ogni caso è fortemente consigliato
non utilizzare direttamente i metodi del DAO ma i metodi della classe TDBSManag (classe
proprietaria) per garantire la piena compatibilità dello script basic in ambiente SQL Server e
Access. La classe TDBManag è esposta tramite l’oggetto DBMng. Non viene fornita una lista di
tutti i metodi e proprietà di questo oggetto ma si consiglia di utilizzare il browser oggetti che la
form di stesura del codice mette a disposizione (1) per conoscere esattamente tutte le librerie a
disposizione.
1
26 – Manuale Tecnico
1.7.1 Gestione di alcune tipologie di campi
•
Gestione pannelli: E’ possibile gestire i panelli nel codice dei reports, ed è ora possibile
referenziarli come tutti i campi di testo. Ad esempio: per fare un panello invisibile, nel
codice del report si può scrivere
usrpnl(1).visible=False
•
Intervallo Da Codice A Codice nei filtri: L'evento Usrtxt_GotFocus è stato inserito per
risolvere il seguente problema: spesso nelle maschere del filtro sono presenti i campi per
l’inserimento di un intervallo Da Codice A Codice. Una volta valorizzati, detti campi devono
essere riempiti con Stesso valore, quindi, utilizzando l'evento UsrTxt_GotFocus questa
necessità si gestisce nel seguente modo:
Public
Sub
usrtxt_GotFocus(Index
As
If
Index=8
If
usrtxt(8).Text
=""
usrtxt(8).Text=usrtxt(7).Text
usrpnl(7).Text=usrpnl(6).Text
End
End If
End Sub
•
Integer)
Then
Then
If
Apertura Recorset del database Comune: per procedere con
l’apertura del file, non è più necessario aprire il database comune.
L’oggetto comune si referenzia con Form.DbsComune:
If DBMng.RstOpen(Form.DbsComune,rst,”Select
UserList”,dbOpenDynaset) Then
*
from
SVILUPPO REPORT: Personalizzazione e creazione nuove stampe - 27
1.7.2 1° Esempio
Il seguente è un esempio di Codice SAX BASIC che permette di creare un report per la stampa
delle anagrafiche articoli:
Public Sub Form_Load()
usrcbo(1).ListIndex = 0
End Sub
Public Sub Form_SetupReport(Cancel As Boolean, ErrorMessage As String)
Dim sDa As String
Dim sA As String
Rep.Formulas(0) = "CodSoc=" & Chr(34) & Form.CurrCodSoc & " - " & Chr(34)
Rep.Formulas(1) = "DsSoc=" & Chr(34) & Form.CurrRagSoc & Chr(34)
Rep.Formulas(2) = "ore=" & Form.ReadData("D")
sDa = UCase(Trim(usrtxt(1)))
sA = UCase(Trim(usrtxt(2)))
If sDa = "" Then sDa = ""
If sA = "" Then sA = "ZZZZZZZZZZ"
If usrcbo(1).ListIndex = 0 Then ' Stampa in ordine di Codice
Rep.SelectionFormula = "{Articoli.CodArt} >= '" & sDa & "' AND {Articoli.CodArt} <= '" & sA &
"Z'"
rep.SortFields(0) = "+{Articoli.CodArt}"
Else
Rep.SelectionFormula = "{Articoli.Descrizione} >= '" & sDa & "' AND {Articoli.Descrizione} <= '"
& sA & "Z'"
rep.SortFields(0) = "+{Articoli.Descrizione}"
End If
End Sub
Public Sub Form_Validazione(Cancel As Boolean, ErrorMessage As String)
If usrtxt(1) > usrtxt(2) Then
' --- Controllo sui valori Da / A
'
Cancel = True
ErrorMessage = "Il valore Da deve essere minore o uguale al valore A"
End If
End Sub
28 – Manuale Tecnico
1.7.3 2° Esempio
Il seguente è un esempio di Codice SAX BASIC applicato alla stampa dell’Anagrafica Fornitori,
in cui si cambia il nome del report (nella maschera sono presenti delle combo):
Public Sub Form_Load()
usrcbo(1).ListIndex = 0
usrcbo(2).ListIndex = 0
End Sub
Public Sub Form_SetupReport(Cancel As Boolean, ErrorMessage As String)
Dim sDa As String
Dim sA As String
If usrcbo(2).ListIndex = 0 Then
Rep.ReportFileName = Form.ReportName("fornito1.rpt")
Else
Rep.ReportFileName = Form.ReportName("fornito2.rpt")
End If
Rep.Formulas(0) = "CodSoc=" & Chr(34) & Form.CurrCodSoc & " - " & Chr(34)
Rep.Formulas(1) = "DsSoc=" & Chr(34) & Form.CurrRagSoc & Chr(34)
Rep.Formulas(2) = "ore=" & Form.ReadData("D")
sDa = UCase(Trim(usrtxt(1)))
sA = UCase(Trim(usrtxt(2)))
If sDa = "" Then sDa = ""
If sA = "" Then sA = "ZZZZZZZZZZ"
Rep.SelectionFormula = "{Fornito.CodFor} >= '" & sDa & "' AND {Fornito.CodFor} <= '" & sA &"'"
If usrcbo(1).ListIndex = 0 Then
Rep.SortFields(0) = "+{Fornito.CodFor}"
Else
Rep.SortFields(0) = "+{Fornito.Denom}"
End If
End Sub
Public Sub Form_Validazione(Cancel As Boolean, ErrorMessage As String)
If usrtxt(1) > usrtxt(2) Then
Cancel = True
ErrorMessage = "Il valore Da deve essere minore o uquale al valore A"
End If
End Sub
SVILUPPO REPORT: Personalizzazione e creazione nuove stampe - 29
1.7.4 3° Esempio
Il seguente esempio, come il precedente, prevede il caso in cui si cambia il nome del report
(Stampa Scadenzario):
Public Sub Form_Load()
usrcbo(1).ListIndex = 0
usrcbo(2).ListIndex = 0
End Sub
Public Sub Form_SetupReport(Cancel As Boolean, ErrorMessage As String)
Dim DaCod As String
Dim ACod As String
Dim dtRif As String
Dim dtDaData As Date
Dim dtAaData As Date
Dim bDaData As Boolean
Dim bAaData As Boolean
Dim sDateLimite As String
Dim strSele As String
Dim iCnt As Integer
bDaData = (Trim(usrtxt(5)) <> "")
bAaData = (Trim(usrtxt(6)) <> "")
If bDaData Then dtDaData = CDate(usrtxt(5))
If bAaData Then dtAaData = CDate(usrtxt(6))
30 – Manuale Tecnico
If usrcbo(1).ListIndex = 0 Then
Rep.ReportFileName = Form.ReportName("Scade1.rpt")
Else
Rep.ReportFileName = Form.ReportName("scade2.rpt")
End If
Rep.Formulas(0) = "CodSoc=" & Chr(34) & Form.CurrCodSoc & " - " & Chr(34)
Rep.Formulas(1) = "DsSoc=" & Chr(34) & Form.CurrRagSoc & Chr(34)
Rep.Formulas(2) = "stampato=" & Form.ReadData("D")
If Trim(usrtxt(2)) = "" Then DaCod = "AAAAAAAAAA" Else DaCod = usrtxt(2)
If Trim(usrtxt(3)) = "" Then ACod = "ZZZZZZZZZZ" Else ACod = usrtxt(3)
Select Case usrcbo(2).ListIndex
Case 0
strSele = "({MovContScad.FlagStato}='A')"
Case 1
strSele = "({MovContScad.FlagStato}='A' OR {MovContScad.FlagStato}='C')"
If Trim(usrtxt(5)) = "" Then
bDaData = True
dtDaData = CDate(Form.CurrData)
End If
Case 2
strSele = "({MovContScad.FlagStato}= 'A' OR {MovContScad.FlagStato}= 'C')"
End Select
If bDaData Or dtAaData Then
sDateLimite = ""
If bDaData Then
tmAa = Trim(Str(Year(dtDaData)))
tmMm = Trim(Str(Month(dtDaData)))
tmGg = Trim(Str(Day(dtDaData)))
tmData = "date(" & tmAa & "," & tmMm & "," & tmGg & ")"
sDateLimite = "({MovContScad.DataScad} >= " & tmData & ")"
End If
If bAaData Then
tmAa = Trim(Str(Year(dtAaData)))
tmMm = Trim(Str(Month(dtAaData)))
tmGg = Trim(Str(Day(dtAaData)))
tmData = "date(" & tmAa & "," & tmMm & "," & tmGg & ")"
If sDateLimite <> "" Then sDateLimite = sDateLimite & " AND "
sDateLimite = sDateLimite & "({MovContScad.DataScad} <= " & tmData & ")"
End If
strSele = "(" & strSele & " AND (" & sDateLimite & "))"
End If
If Trim(usrtxt(1)) <> "" Then strSele = strSele & " and {MovContScad.TipoPag}='" & usrtxt(1) & "' "
If Trim(usrtxt(4)) <> "" Then strSele = strSele & " and {MovContScad.CodBan}='" & usrtxt(4) & "' "
strSele = strSele & "and {MovContScad.Codice}>='" & DaCod & "' " + "and {MovContScad.Codice}<='"
& ACod & "' "
strSele = strSele & "and {MovContTest.NumEser}>0"
strSele = strSele & " AND {MovContScad.FlagStato}<>'X' "
rep.SelectionFormula = strSele
rep.SortFields(0) = "+{MovContScad.DataScad}"
SVILUPPO REPORT: Personalizzazione e creazione nuove stampe - 31
rep.SortFields(1) = "+{MovContScad.Codice}"
rep.SortFields(2) = "+{MovContScad.Partita}"
End Sub
Public Sub Form_Validazione(Cancel As Boolean, ErrorMessage As String)
If usrtxt(2) > usrtxt(3) Then
ErrorMessage = "Codice Da deve essere minore o uguale a Codice A"
Cancel = True
End If
End Sub
32 – Manuale Tecnico
1.8 Inserimento a menù dei nuovi report personalizzati
L’inserimento a menù di nuove Stampe Personalizzate è un procedimento molto semplice. Al
lancio della Procedura, cliccando con il tasto destro del mouse sulla barra dei pulsanti di scelta
rapida, si visualizza il seguente menù:
Selezionando Personalizza, si accede alla lista che consente l’inserimento di nuove
funzioni/report personalizzati:
Nella cartella Comandi - Categorie Funzioni, scorrere con la barra di scorrimento veloce
l’elenco Comandi finché non si trova la Stampa ricercata. A questo punto, dopo averla
selezionata, trascinarla con il tasto sinistro del mouse all’interno del menù desiderato o
all’interno della toolbar sotto forma di pulsante di scelta rapida.
SVILUPPO REPORT: Personalizzazione e creazione nuove stampe - 33
Per assegnare l’eventuale icona è sufficiente selezionare Gestione Toolbar:
La Procedura ha inserito nell’elenco la descrizione della nuova stampa.
Ora selezionare un’icona e digitare, nella colonna Suggerimento, il messaggio che si vuole
visualizzare al passaggio del mouse sul pulsante inserito nella Toolbar.
34 – Manuale Tecnico
1.9 Stampa Orizzontale
Per far sì che la procedura stampi in posizione orizzontale il report creato con crystal report
bisogna dopo averlo ultimato porlo in posizione verticale e selezionare il flag Proprietà
predefinite.
Dopo aver settato le impostazioni corrette nel menù imposta stampante, si dovrà entrate nel
menu proprietà documento, e inserire “orizzontale” nel campo Parola chiave, così quando
stamperemo il report con la procedura sarà automaticamente posizionato in orizzontale.
SVILUPPO REPORT: Personalizzazione e creazione nuove stampe - 35
1.10 Possibili errori
E’ possibile che vengano riscontrati problemi dovuti a errori di distrazione che portino ad una
notevole perdita di tempo cercherò di illustrarli nel modo più chiaro possibile:
E’ possibile che un report funzioni correttamente su access e non funzioni su sql oppure che
funzioni correttamente su un certo database ed invece non funzioni su un altro, se viene
visualizzata una finestra che comunica un errore di dll molto probabilmente avremmo settato in
modo non corretto le impostazioni su crystal report per la connessione al database, i passaggi
da compiere per correggere gli eventuali errori sono i seguenti:
Entrare nel menu database selezionare la voce Imposta Posizione ed assicurarsi che il nome
della tabella non sia preceduto dal nome del database ed eventualmente cancellarlo lasciando
solo il nome della tabella.
36 – Manuale Tecnico
lo stesso problema può essere dato dal driver del database per risolverlo basta seguire questo
procedimento.
Andare su Database Æ Converti Driver Database
Selezionare Pdsocodbs.ddl(ODBC) e cliccare su OK
Selezionare l’origine dati sia corretta Æ KingW96 Report
SVILUPPO REPORT: Personalizzazione e creazione nuove stampe - 37
nell’ultima finestra assicurarsi che sia l’ID che la password siano corretti e premere OK
Altri possibili errori potrebbero essere dovuti alla query di crystal report che per errore può
essere stata modificata in modo non corretto, per ripristinare la query bisogna andare su
database mostra query sql e cliccare sul pulsante reimposta, facendo attenzione alle eventuali
condizioni che si sono inserite nel where che cliccando reimposta verranno cancellate.
38 – Manuale Tecnico
Oppure un’altro problema che causa errori può essere l’utilizzo di date, il formato data viene
utilizzato in modo diverso da sql acces e crystal report, per quanto riguarda sql access per
avere il formato corretto basta utilizzare il metodo DBMNG.GetSqlDate( Variabile Data) che
automaticamente formatterà la data nel formato corretto, mentre per l’utilizzo in crystal report si
dovrà procedere in modo diverso, come vediamo nella riga sottostante la data deve essere
passata nel formato anno, mese, giorno preceduta dalla parola Date.
Date (" & Year( usrtxt(3)) & "," & Month(usrtxt(3)) & "," & Day(usrtxt(3)) & ")"
Così crystal report riconoscerà la data e la utilizzerà nella query di estrazione.
Un’altro problema riscontrabile è la possibilità di avere nel report dati diversi da quelli contenuti
nel database, questo problema è dovuto al settaggio errato delle opzioni del report, per
risolvere questo problema apriamo il menù opzioni report e deselezioniamo il flag Salva dati
con report.
SVILUPPO REPORT: Personalizzazione e creazione nuove stampe - 39
2
IMPORT – EXPORT REPORT
La procedura consente di effettuare l’importazione e l’esportazione dei report di stampa: è
possibile importare, in un determinato archivio, dei report (standard o personalizzati)
precedentemente esportati da un altri archivio.
Il vantaggio di queste funzionalità è quello che saranno automaticamente aggiornate e gestite le
tabelle dei database interessate dalla gestione dei report personalizzati.
2.1 Esportazione report
La funzione consente l’esportazione dei report personalizzati sviluppati in una società.
Si accede alla funzione dal Menù Utilità Æ Esportazione Report:
Il primo campo richiede la selezione del percorso della cartella nella quale saranno esportati i
report: l’utente può richiamare la cartella per l’esportazione, precedentemente creata, scrivendo
direttamente nel campo di selezione il nome ed il percorso della cartella, o premendo sul
pulsante con i tre puntini per cercarne il percorso.
Se il percorso digitato non fosse corretto, o non fosse presente la cartella indicata, viene
richiesto all’Utente se creare o meno la cartella. La cartella selezionata dovrà,
necessariamente, essere vuota (in caso contrario un messaggio avviserà l’Utente
sull’impossibilità di procedere).
40 – Manuale Tecnico
Dopo aver selezionato o creato la cartella per l’esportazione, premendo il tasto F5 sarà
visualizzata una lista multiscelta contenente l’elenco di tutti i Report Personalizzati della società
corrente:
Per visualizzare la lista dei Report Standard, premere il tasto S e successivamente il tasto F5 :
A questo punto si selezionano i report, che s’intende riportare in griglia:
Alla Conferma si visualizzeranno i report scelti nella griglia.
SVILUPPO REPORT: Personalizzazione e creazione nuove stampe - 41
La griglia riporta, per ogni report, le seguenti informazioni:
•
•
•
•
•
Codice: codice identificativo del report
Descrizione: descrizione associata al report
Nuovo: la colonna viene abilitata alla selezione soltanto quando si è in presenza di un
report personalizzato (quindi, quando è spuntato il flag di riga della colonna Personalizzato)
l’attivazione del flag 9 , nella colonna, attiva un controllo che verifica la presenza o meno di
report con lo stesso numero, e se presenti, in fase di importazione non andrà a
sovrascriverli, ma li rinominerà con altro nome, equivalente al numero dell’ultimo report
personalizzato + 1.
Personalizzato: si attiva quando il report è personalizzato, sia di tipo Standard (il codice
comincia con la lettera ‘S’), sia creato dall’Utente (per esempio: “001” e ”002”)
RPTCollegati: nome, o elenco di nomi, del file fisico .RPT.
Dalla lista riportata in griglia l’Utente potrà scegliere i report che desidera esportare,
procedendo con la selezione, cliccando con il tasto destro del mouse associato al tasto Ctrl
se non sono consecutivi tra loro, ed associato al tasto Shift se consecutivi (selezionando il
primo e l’ultimo report dell’intervallo):
Premendo il pulsante Esporta i dati dei report selezionati saranno copiati nella cartella scelta.
Oltre ai file RPT, nella stessa cartella di destinazione, verranno creati dei file di testo che
conterranno le seguenti informazioni relative ai report:
•
•
•
Il codice presente nella tabella PrnCode;
I record della tabella DefMskFil (che definiscono il design della maschera per il filtro del
report)
Il file ListaRep.txt che contiene l’elenco dei report esportati.
42 – Manuale Tecnico
2.2
Importazione report
La funzione consente il ripristino di reports da una cartella nella quale, precedentemente, erano
stati esportati con la funzione d’esportazione.
Si accede alla funzione dal Menù Utilità Æ Importazione Report
La funzione è sostanzialmente identica a quella dell’esportazione. La modalità di selezione del
percorso è identica: in questo caso, si dovrà scegliere il percorso della cartella nella quale sono
stati copiati i report precedentemente esportati.
Indicato il percorso, il programma verificherà, che all’interno della cartella scelta esista il file
ListaRep.txt (creato dalla precedente esportazione): se questo file non dovesse esistere, non
sarà possibile proseguire con l’operazione (sarà visualizzato un messaggio bloccante).
Rilevato il file nella cartella indicata, tutti i report elencati al suo interno sono visualizzati in
griglia, già selezionati per essere importati e deselezionabili attraverso i flag 9 della colonna
Importa:
Premendo il pulsante
, i report selezionati in griglia verranno importati all’interno
della società corrente: in presenza di report con lo stesso nome, verrà visualizzato un
messaggio di avviso che richiede la conferma prima di procedere alla sovrascrittura.
I report che hanno selezionato il flag Nuovo saranno importati assegnando loro un codice
nuovo.