Data ultimo aggiornamento: 29/03/2022

Clicca per accedere al sito di NTS Informatica
Clicca per accedere all'argomentoClicca per accedere all'argomentoClicca per accedere all'argomentoClicca per accedere all'argomento
Clicca per accedere al sito di NTS Informatica

Impostazione Stampe Par- Query

Moduli richiesti: Modulo Base

Questo programma è utilizzato per la creazione, la modifica e la cancellazione di formati di stampa, permette di basare una Stampa/Visualizzazione su un file report ".RPT" oppure su una stringa SQL (per un discorso introduttivo vedere Le stampe e le visualizzazioni parametriche). Attenzione: è consigliabile non usare i codici compresi fra 1 e 599 (riservati a NTS). In fase di aggiornamento se si sceglie di aggiornare i dati delle stampe parametriche, tali codici riservati se usati verranno persi.

Nel caso si voglia creare un nuovo formato di stampa basato su un report, eventualmente commissionato all'installatore, è sufficiente porre il file report ".RPT" nella cartella Pers contenuta nella sottocartella Rpt, quindi creare un nuovo record inserendo il codice del Formato di Stampa, il Nome File RPT appena inserito, e il Titolo del formato di stampa. Business sarà già in grado di visualizzare, esportare e/o stampare i dati del report.

Se invece si desidera basare un formato di stampa su una query SQL, è sufficiente digitare l'istruzione nell'apposita casella di testo Stringa SQL Server (è possibile anche incollare una istruzione SQL dopo averla copiata da un altro strumento di generazione) lasciando vuota la casella nome file rpt, completando l'inserimento con il codice del formato di stampa e il relativo titolo.

I valori dei filtri impostati dall'operatore possono essere passatti al report tramite apposte formule create sul report con nome FILTRO1, FILTRO2,... vedere in merito Personalizzazione stampe da Crystal Report.

Sempre in fase di inserimento, oppure successivamente in fase di modifica, si possono impostare dei Filtri Utente, attraverso i quali è possibile imporre una o più condizioni (per esempio "Provincia = 'RN'" nel caso di una condizione; "Provincia = 'RN' AND Prefisso = '0541'" nel caso di due condizioni). Da notare il fatto che i Valori Campo e gli Operatori possono successivamente essere modificati anche dal programma Stampe/Visualizzazioni Parametriche prima di richiedere la stampa.

L'inserimento di un filtro utente ha inizio specificando il campo a cui si riferisce utilizzando la funzione di zoom e selezionando ivi la tabella, a cui il campo appartiene, e poi il campo stesso.

Effettuata la selezione, nella casella Descrizione Campo apparirà il nome esteso del campo selezionato, nella Casella Nome Campo apparirà, invece, il nome che il campo possiede all'interno degli archivi di Business, e nella casella Tipo Campo apparirà il tipo del campo che è stato selezionato (Stringa, Byte, Data/Ora, Numerico, etc...).

Nella casella Operatore, invece occorre inserire l'operatore di confronto sulla base del quale vengono filtrati i dati estratti dal report o dalla query:

  1. Like (Uguale), operatore applicato alle stringhe; è possibile utilizzare i caratteri jolly '*' e '?', ad esempio, nel seguente modo: "Cognome like 'M*', che indica la selezione di tutti i record dove il Cognome inizia con la lettera M e prosegue con un numero qualsiasi di lettere qualsiasi.
  2. > (Maggiore), op. generalmente applicato a campi numerici e/o di tipo Data/Ora, comunque valido anche per le stringhe. Es.: "Prezzo Articolo > 10000" indica la selezione di tutti i record nei quali il campo denominato 'Prezzo Articolo' è maggiore di 10000.
  3. >= (Maggiore o Uguale), come sopra ma indica la selezione di tutti i record nei quali il campo denominato 'Prezzo Articolo' è maggiore o uguale a 10000.
  4. < (Minore) Es. "Età < 18", indica la selezione di tutti i record in cui il Campo 'Età' è minore di 18, quindi saranno scartati tutti quelli da 18 anni, compresi, in su.
  5. <= (Minore o Uguale) Es. "Età <= 18", indica la selezione di quelli che hanno 18 anni oppure meno, in altre parole saranno scartati i record in cui il Campo 'Età' è strettamente superiore ai 18 anni.
  6. = (Uguale) Es. "Tipo Conto = 'F'" indica la selezione di tutti i record dove il Campo 'Tipo Conto' è uguale a 'F'.
  7. <> (Diverso) Es. "Tipo Conto <> 'F'" indica la selezione di tutti i record in cui il Campo 'Tipo Conto' è diverso da 'F', quindi tutti quelli che non sono 'F'.

Infine, nella composizione di un filtro, occorre specificare il valore con il quale il campo deve essere confrontato e ciò deve essere fatto nella casella valore campo, digitando direttamente un valore oppure premendo il tasto di zoom per ottenere un elenco dei valori esistenti e validi per completare il filtro.

Più filtri possono essere messi in relazione por formare condizioni composte. La casella Composizione relazionale filtri è preposta a contenere la condizione composta attraverso gli operatori relazionali, di seguito elencati:

  1. AND Sintassi: <Condiz.1> AND <Condiz.2>. Affinchè questa condizione composta sia vera occorre che entrambe le condizioni semplici <Condiz.1> e <Condiz.2> siano vere contemporaneamente. Es.: "DataNascita < 01/01/97 AND Cognome Like 'C*'", indica la selezione di tutti i nati prima del 1997 e il cui cognome inizia con la lettera C.
  2. OR Sintassi: <Condiz.1> OR <Condiz.2>. Affinchè questa condizione composta sia vera e quindi dia luogo alla selezione dei record interessati, è sufficiente che almeno una delle due condizioni semplici sia vera. Es.: "DataNascita<01/01/80 OR DataNascita>31/12/1989, indica la selezione di tutti i record in cui il campo DataNascita è anteriore agli anni '80 oppure posteriore. In altre parole è sufficiente "non essere nati negli anni '80 per essere selezionati".
  3. NOT Sintassi: NOT <Condiz.1>. Affinchè questa condizione composta sia vera occorre che la condizione semplice <Condiz.1> sia falsa. Se <Condiz.1> fosse vera, NOT <Condiz.1> sarebbe falsa. Es.: "NOT (DataNascita<01/01/80 OR DataNascita>31/12/89)" in questo caso è stata negata (logicamente) la condizione composta dell'esempio precedente: prima era vera se NON si era nati negli anni 80, ora, che è preceduta dall'operatore logico NOT, è vera solo se si è nati negli anni '80.

Vediamo cosa digitare nella casella composizione relazionale filtri utilizzando l'esempio dell'operatore NOT sopra descritto. Supponiamo inseriti i filtri 1 (DataNascita<01/01/80) e 2 (DataNascita>31/12/89), attraverso i bottoni in basso a destra, oppure digitando direttamente, possiamo inserire la composizione logica dei due filtri come segue: NOT ( 1 OR 2 ). Notare che in luogo dei due Filtri semplici abbiamo digitato il numero a loro corrispondente. Si raccomanda particolare attenzione all'uso delle parentesi che come in aritmetica modificano l'ordine di valutazione dell'espressione. Ricordiamo, inoltre, che il NOT precede AND e OR nell'ordine di valutazione dell'espressione e che nello stesso livello di parentesi, la valutazione procede, come in aritmetica, da sinistra a destra.

Tabella principale per codice ditta il campo deve essere impostato solo per query che operano su dati organizzati per ditta (per esempio nella query sottostante c'è la tabella delle registrazioni contabili, PRINOT, oppure dei movimenti di magazzino, MOVMAG; o di qualsiasi altra tabella col campo 'cod.ditta' all'interno). Va indicato in tal campo il nome della tabella principale della query, su cui deve essere passato come filtro il valore del codice ditta corrente. Per 'tabella principale' si intende quella (o una di quelle) che nella query si trova a destra di tutte le RIGHT JOIN e a sinisra di tutte le LEFT JOIN. Nel caso di INNER JOIN centrali, la tabella principale è una qualsiasi delle tabella collegate nella INNER JOIN stessa. Tale dato comunue viene utilizzato solo per la stampa su griglia, nel caso invece in cui si utilizzino stampe parametriche query (basate su file *.RPT) all'interno dei report (con CrystalReport) va creata una formula esattamente di nome MAINTAB con all'interno il nome della tabella principale del report (ad esempio 'TESTMAG'), in tal modo il programma applica (oltre ai filtri dichiarati dall'utente in fase di impostazione della stampa) il filtro sulla ditta corrente (ad esempio {testmag.codditt} = 'PROVA'). In questo caso una procedura utile per i test nel report è immettere nel report stesso il campo speciale 'Formula di selezione dei record' che visualizza la selection formula applicata in esecuzione.

NB: durante l'impostazione delle stampe parametriche query creando delle query di tipo UPDATE/DELETE/INSERT non è possibile inserire dei filtri, al contrario delle SELECT oppure dei file RPT ove invece i 15 filtri sono operativi. Questo è un comportamento voluto per motivi di sicurezza e anche impostando dei filtri questi non veranno valutati al momento dell'esecuzione della query.

Nome file/foglio excel, nel caso di stampe con indicata una QUERY che inizia per SELECT, è possibile indicare un nome di file di excel ed una cartella di lavoro (il file e la cartella devono già esistere). Durante la stampa della parametrica su griglia, se è stato indicato, un file di excel, oltre ad eseguire la stampa su griglia viene anche eseguito l'export dei dati nel foglio indicato (preventivamente svuotato), in questo modo è possibile, ad esempio, realizzare un grafico su excel nel foglio 2 che attinge ai dati del foglio1 e da business, tramite la stampa parametrica (poter alimentare il foglio1 con una query specifica).

Tipo di Stampa/Gruppo, in questo campo combo è possibile scegliere tra quattro valori: Normale, Obbiettivi, Leads, Contatti. Per le stampe impostate con gli ultimi tre valori, diventa possibile utilizzarle come filtro negli zoom di selezione delle corrispondenti categorie.

Subquery

Dalla release 2015 è possibile utilizzare, solo all'interno della clausola WHERE della query principale, una subquery con anche una serie di relativi filtri messi a disposizione nel tab 4, come ad esempio:

SELECT * FROM anagra WHERE an_tipo = 'S' AND an_conto IN (SELECT tm_conto FROM testmag WHERE *SUBQ*)

in questo caso il marcatore *SUBQ* dovrà essere inserito a mano nel punto in cui l'operatore vuole che questi nuovi 5 filtri vengano inseriti nella query, mentre poi i filtri tradizionali verranno aggiunti alla fine della query. Attenzione è possibile specificare subquery solo all'interno della clausola WHERE della query principale, non è supportato ad esempio l'inserimento delle subquery nella clausola SELECT della query principale.

Flag Usa marcatori (dalla versione Cube2 sr7)

La funzione offre un meccanismo alternativo, complementare a quello attuale, che permette di scrivere le query liberamente e inserire dei marcatori speciali che vengono semplicemente sostituiti al momento di esecuzione con i parametri inseriti in maschera. Uso dei marcatori viene attivato tramite il flag in alto a destra della maschera. I marcatori sono aggiunti al testo della "Stringa SQL Server" tramite i tasti che si trovano alla fine della riga di ogni filtro, oppure manualmente nella forma {varN}, dove N è un numero da 1 a 15 e corrisponde al numero del filtro 1°, 2° o 3° gruppo, e nella forma {varsN}, dove N è un numero da 1 a 5 e corrisponde al numero del filtro Filtri Subquery.

Funzionalità

Duplicare un formato esistente Per duplicare un formato di stampa esistente posizionarsi su tale formato e premere il tasto Duplica, nella finestra che appare digitare il codice da attribuire al nuovo formato duplicato.

Accesso per Operatori Con questa funzionalità è possibile impostare degli accessi alla stampa, per Operatori\Gruppo operatori.

Clicca per accedere al sito di NTS Informatica