Pagina 1 di 1

[Risolto] Stampare dati DB usando Finestre di Dialogo

Inviato: mercoledì 1 aprile 2015, 16:19
da DeutscherLinux
Buon giorno a tutti :D

Sto usando le Finestre di Dialogo per gestire i dati presenti in un file .odb.

Ora sono arrivato al punto in cui tali dati devono essere distribuiti, stampandoli su carta o creando un file .pdf.
Sarebbe possibile stampare tramite una Dialog Form?

Ho visto in rete esempi di utilizzo di modelli di Writer, ma i dati in formato tabellare erano righe di un Foglio di Calc, mentre io vorrei leggere e stampare i dati di una tabella o di una vista presente in un database, senza appoggiarmi a fogli di calcolo usati come contenitori polmone temporanei (svuotati e riempiti di dati tabellari ogni volta).

Grazie a tutti anticipatamente per l'aiuto.

Ciao
Roberto

Re: Stampare dati DB usando Finestre di Dialogo

Inviato: giovedì 2 aprile 2015, 21:32
da unlucky83
Non sono un esperto di Base ( sono una schiappa :D), ma mi sembra che con i report si possa stampare i risultati di query etc...
La cosa impegnativa è costruirsi il report con il layout simile a ciò che si ha in mente (personalmente, ci perdo sempre la pazienza). In aiuto c'è un'estensione chiamata report builder..nel forum se ne parla.
Buon Lavoro

Re: Stampare dati DB usando Finestre di Dialogo

Inviato: venerdì 3 aprile 2015, 11:39
da DeutscherLinux
Ciao unlucky83,

Grazie per la tua risposta; alla fine o faccio uso di report come suggerisci tu, oppure creo delle tabelle pivot, oppure uso dei modelli di Calcio; negli ultimi due casi farò uso della Sorgente Dati.

In ogni caso però, come faccio dalla maschera della Finestra di Dialogo a "passare" i comandi per trovarmi nel report, o nella tabella pivot, o nel file modello di Calcio con i dati pronti da stampare?

Grazie.

Ciao
Roberto

Re: Stampare dati DB usando Finestre di Dialogo

Inviato: venerdì 3 aprile 2015, 13:01
da unlucky83
La strategia su cui mi baserei per il caso "sorgente dati" è:
>inserire un pulsante nella finestra di dialogo per quest'opzione
>collegarci la macro che apre il file .ods modello (nel forum ci sono info)
>la macro collegata al pulsante deve ultimare la finestra di dialogo, così da poter avviare la stampa manualmente, oppure far si che la stessa macro avvi la stampa (nel forum c'è qualcosa di recente su come impostare la stampante da macro e le opzioni di stampa)

Con maggiori informazioni e con un file di esempio, possiamo passare a come scrivere le macro più nel dettaglio

Re: Stampare dati DB usando Finestre di Dialogo

Inviato: martedì 21 aprile 2015, 0:11
da DeutscherLinux
Ciao a tutti,

Quando ho completato il Data Entry in una Dialog Form, vorrei stampare o su carta o su pdf, scegliendo magari tra i vari driver e stampanti disponibili.

Si potrebbe usare un modello di Calc o Writer in cui importare i dati contenuti negli oggetti testo, numero o data presenti nella maschera?
E se volessi stampare un report, potrei eseguire l'azione dalla Finestra di Dialogo?

Allego un file pdf che spiega dove si trova il pulsante di stampa ed un link ad un file zip da decomprimere per ottenere la cartella contenente tutto ciò che serve per il lavoro.

https://www.dropbox.com/s/hlupqaa6k8reh ... i.zip?dl=0

Per chiarimenti sono a disposizione.

Grazie.

Ciao
Roberto

Re: Stampare dati DB usando Finestre di Dialogo

Inviato: martedì 21 aprile 2015, 2:12
da unlucky83
Ciao, ho scaricato il materiale, ed è tutto chiaro. Nei ritagli di tempo provo a produrre qualcosa di utile che sia all'altezza del lavorone che hai fatto :D
Questa settimana sono un pò impegnato, ma penso che per sabato al massimo dovrei riuscire ad avere qualcosa da condividere qui sul forum

Re: Stampare dati DB usando Finestre di Dialogo

Inviato: martedì 21 aprile 2015, 14:48
da unlucky83
Eccomi qua prima del previsto.
Allego due file:
Modello.odt è un esempio di modello per la stampa, in cui stabilire il layout. Riporta degli "pseudo-nomi di campo". La macro cerca e sostituisce questi campi.
DBAnimali.ods. Ho aggiunto il modulo "Module1", in cui ci sono le macro che ho aggiunto al tuo lavoro. Nella parte iniziale ti chiede di stabilire il percorso di salvataggio e il nome del file in cui esportare il modello, nella fase successiva apre il file Modello.odt (CHE DEVE trovarsi nella stessa cartella di lavoro del file ods), cerca e sostituisce gli pseudo-campi con i valori della finestra di dialogo, ed infine salva con nome il modello, in questo modo i cambiamenti non interesseranno il modello, ma li avrai in un nuovo file, con il nome da te scelto nella cartella che hai indicato.

Aggiusta a tuo gusto le macro :)

Re: Stampare dati DB usando Finestre di Dialogo

Inviato: martedì 21 aprile 2015, 23:13
da DeutscherLinux
Grazie unlucky83,

Guardo, studio e farò sapere :D

Ciao
Roberto

Re: Stampare dati DB usando Finestre di Dialogo

Inviato: venerdì 24 aprile 2015, 0:48
da DeutscherLinux
Ciao unlucky83,

Ho provato e studiato le tue macro, capendo il lavoro che eseguono.
Ho trovato un paio di punti che ho corretto nella Sub StampaUnlucky83:

1.
All'inizio ho commentato la riga con la variabile nRecordApp ed ho inserito quella subito sotto con sIDAnimale, altrimenti non carica il valore della chiave primaria; per altro il relativo oggetto testo nel dialogo non ha alcun valore se non in variazione, durante la ricerca, perché in inserimento ex-novo di un record non è necessario gestirne il valore, incrementato in automatico solo durante l'esecuzione del comando sql Insert Into.
Vedi aFind ed aReplace
2.
Più avanti usi la variabile NuovoUrlCompleto con la variabile nuovaDir, la funzione GetPathSeparator() e la variabile nomenuovofile.
Così facendo, però, la variabile NuovoUrlCompleto si valorizza in modo errato, cioè, per esempio, come "file:///Home/<utente>/Dati/AOO/DBAnimali//zzz.odt" in linux, o come "file:///C:/Users/<utente>/Dati/AOO/DBAnimali/\zzz.odt" in Windows.
Vedi il doppio slash ed il backslash?

La soluzione è di non usare la funzione GetPathSeparator(), ovvero utilizzare "NuovoUrlCompleto = nuovaDir & nomenuovofile", che permette di ottenere come risultato la stessa sintassi, ovvero "file:///Home/<utente>/Dati/AOO/DBAnimali/zzz.odt" in linux e "file:///C:/Users/<utente>/Dati/AOO/DBAnimali/zzz.odt" in Windows.
Vedi una sola slash prima del nome del file nel percorso?

La doppia slash in linux non dà fastidio, ma in Windows quel "..../\...." restituisce un errore di star basic.

Mi servirebbe solo qualche link a tutorial o guide che spieghino come costruire un modello di Writer o di Calc contenenti campi collegati ai dati di una tabella DB o di un Dialogo.
Tu ne avresti da passarmi, per favore?

Allego file ods con macro modificate e scrivo [risolto] nell'oggetto.

Grazie in anticipo

Ciao
Roberto

Re: [risolto] Stampare dati DB usando Finestre di Dialogo

Inviato: venerdì 24 aprile 2015, 2:02
da unlucky83
Ciao, mi aspettavo che ci fossero delle cose da sistemare, visto che ho preferito consegnarti qualcosa su cui lavorare in fretta. :D
Per il punto 2) mi ero accorto del doppio slash, ma dato che l'ho testata solo su linux, non ho dato peso alla cosa, hai fatto benissimo a segnalare che su windows non funziona in questo modo la macro.

Per quanto riguarda guide sui modelli di writer (.ott) e di calc (.ots), non ho nulla, quindi posso solo suggerirti di googlare un pò.
La mia ignoranza in merito a questi strumenti, è dipesa dal fatto che, adoperando le macro per modificare dei campi in un normale file .odt e .ods (come nell'esempio da me proposto), posso prepararmi un normale file e gestirlo come se fosse una sorta di modello, anche se il file in sè e per sè non è un reale file modello riconosciuto da openoffice...
Occasionalmente provo a lavorare con i file .ott, ma non mi ci trovo proprio. Secondo me sono strumenti per semplificare la vita a chi non digerisce le macro :D

Re: Stampare dati DB usando Finestre di Dialogo

Inviato: venerdì 17 maggio 2019, 15:47
da Maios
Ciao a tutti, cercavo una soluzione per inviare stampe attraverso una macro, e ho trovato che nel DbAnimali.ods la Macro parte in automatico, come si fa? Grazie in anticipo

Re: [Risolto] Stampare dati DB usando Finestre di Dialogo

Inviato: venerdì 17 maggio 2019, 18:58
da charlie
Ciao, se vai al menu > Strumenti > Personalizza > scheda Eventi, vedrai che c'è l'impostazione di una macro assegnata all'evento Apri documento.
Schermata 2019-05-17 alle 18.54.39.png

Re: [Risolto] Stampare dati DB usando Finestre di Dialogo

Inviato: venerdì 17 maggio 2019, 20:26
da Maios
Grazie mille

Re: [Risolto] Stampare dati DB usando Finestre di Dialogo

Inviato: martedì 21 maggio 2019, 7:56
da Maios
Per casi c'è anche un modo per far sì che alla chiusura della Form, chiuda anche il documento?