Formulario con Query con più ricerche

Discussioni sulle caratteristiche di database
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario con Query con più ricerche

Messaggio da charlie »

Non è il massimo, per le stampe ci sono i report.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
mirabellomusic
Messaggi: 65
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggio da mirabellomusic »

Sapevo di questa funzione, ma non so come crearli. Se io faccio una ricerca nel formulario come posso trasformarla in report?
Open Office 4.1.7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario con Query con più ricerche

Messaggio da charlie »

Il tuo formulario di ricerca va a modificare la query, puoi usare quella facendo un report con la procedura guidata.
OO ha un report nativo, in alternativa puoi installare l'estensione Report Builder.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
mirabellomusic
Messaggi: 65
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggio da mirabellomusic »

Va bene, sto scaricando report builder. Il problema del report normale è che non mi dava mai alcun valore. Lo aprivo e aveva valori predefiniti
Open Office 4.1.7
mirabellomusic
Messaggi: 65
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggio da mirabellomusic »

Esce così con report builder. Come mi muovo? Vorrei fare che esce in alto come il report di base. Nome azienda, data del giorno del report e sotto i dati
Allegati
Annotazione 2020-07-09 163718.png
Open Office 4.1.7
mirabellomusic
Messaggi: 65
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggio da mirabellomusic »

Ti faccio un'unica domanda. Allora ho creato questo rapporto. Adesso mi chiede se ci clicco i vari parametri (e già è poco funzionale dato che io dal formulario cambio i dati e vorrei far stampare il rapporto dal formulario stesso. Ho provato a fare stampa ma esce la stampa della pagina del formulario ed è poco professionale. Se clicco inserisco i parametri della query nel rapporto, si apre e non esce niente mentre se uso gli stessi parametri nel formulario funziona. E poi un'altra cosa. In questa query mi trova i valori di una colonna delle varie operazioni che sono valori numerici, non si possono sommare e mostrarli tipo in basso al report, come totale di giornata?
Open Office 4.1.7
mirabellomusic
Messaggi: 65
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggio da mirabellomusic »

In pratica la query da risultato vuoto sia se provo ad aprirla mettendo i parametri sulla query stessa, sia mettendo i parametri nel rapporto, mentre tramite formulario mi fa le varie ricerche.
Open Office 4.1.7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario con Query con più ricerche

Messaggio da charlie »

Ciao, dovrei non rispondere quando non posso fare delle verifiche a quanto scrivo :D e questo è uno di quei casi.
Per stampare un report (sarebbe meglio dire generare un PDF stampabile) da formulario bisogna ricorre ad una macro. Cercando sul forum si dovrebbe trovare qualcosa da adattare, per scriverla di sana pianta serve il file su cui stai lavorando tu.
Per quanto riguarda Report Builder, qualche anno fa l'ho studiato seguendo una guida in inglese ed ho raccolto il risultato in un tutorial ancora reperibile sul mio quasi dimenticato blog. Se credi ti possa essere utile vai al link sotto la mia firma. In alternativa trovi documentazione in inglese, ad esempio qui: https://wiki.documentfoundation.org/ima ... eGuide.pdf al capitolo 6. È per LO che ha report Builder incorporato, ma va bene anche per l'estensione di OO.

Attenzione Report Builder è un'estensione molto datata e piena di bug, per farla funzionare ci vuole buona volontà e salvare molto spesso il report ed il database. Specialmente in OO è soggetto a crash.
Ma non ci sono alternative.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
mirabellomusic
Messaggi: 65
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggio da mirabellomusic »

posso mandartelo in privato senza tenerlo pubblico qui?
Open Office 4.1.7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario con Query con più ricerche

Messaggio da charlie »

Prova, vedo quello che posso fare.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
mirabellomusic
Messaggi: 65
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggio da mirabellomusic »

Ciao, per quel famoso formulario, mi si visualizza una colonna numerica. Io dovrei aggiungere nel formulario una casella che mi visualizza il totale di quella colonna. Avevo pensato nella query di aggiungere semplicemente Sum (nomeColonna), ma non va... mi sapresti consigliare?
Open Office 4.1.7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario con Query con più ricerche

Messaggio da charlie »

Probabilmente non va perché devi contemporaneamente raggruppare gli altri campi.
Prova prima con solo quel campo:

Codice: Seleziona tutto

SELECT SUM("NomeCampo1") FROM "NomeTabella"
Poi aggiungi gli altri campi:

Codice: Seleziona tutto

SELECT SUM("NomeCampo1"),"NomeCampo2","NomeCampo3"  FROM "NomeTabella" GROUP BY "NomeCampo2","NomeCampo3"
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
mirabellomusic
Messaggi: 65
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggio da mirabellomusic »

Mi da questo errore...
Allegati
Annotazione 2020-07-27 173726.png
Open Office 4.1.7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario con Query con più ricerche

Messaggio da charlie »

Non ho la possibilità di provare ma leggendo il messaggio di errore rilevo che il campo C.E.T.E. (N.) compare 2 volte, la prima con SUM va bene, la seconda no.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
mirabellomusic
Messaggi: 65
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggio da mirabellomusic »

a me serve mostrare sia i singoli che il totale
Open Office 4.1.7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario con Query con più ricerche

Messaggio da charlie »

Puoi fare una query a parte solo per la somma e visualizzarla nel formulario.
Se invece ti serve nel report, si può fare direttamente da la'.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
mirabellomusic
Messaggi: 65
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggio da mirabellomusic »

E come posso far visualizzare una query a parte. Comunque devo risolvere anche il fatto di poter stampare dal formulario. Tu mi dicesti con una macro
Open Office 4.1.7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario con Query con più ricerche

Messaggio da charlie »

Fai una query

Codice: Seleziona tutto

SELECT SUM("NomeCampo") As "Totale" FROM "NomeTabella"
poi la aggiungi a parte nel formulario. È probabile che ti serva un pulsante per aggiornarla se apporti modifiche ai dati dal formulario, in caso contrario no.

Nel report puoi adoperare direttamente la funzione Accumulo.

Per stampare (in PDF) il report dal formulario sì, serve una macro.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
mirabellomusic
Messaggi: 65
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggio da mirabellomusic »

per domani mi serve urgente il conteggio. Ti ricordo che il formulario contiene una query dove tu mettendo un periodo, un giorno o il reparto mi da i vari valori. Il totale lo deve fare in base a quei valori del formulario
Open Office 4.1.7
mirabellomusic
Messaggi: 65
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggio da mirabellomusic »

SELECT "Storico"."Reparto " AS "Reparto", "Storico"."Pattuglia" AS "Pattuglia", SUM( "Storico"."C.E.T.E. (N.)" ) AS "Totale CETE", SUM( "Storico"."MINI C.E.T.E. (N.)" ) AS "Totale MINI CETE", SUM( "Storico"."C.O.P.E (N.)" ) AS "Totale COPE" FROM "Storico" WHERE "Storico"."Giorno" >= "12/07/2020" AND "Storico"."Giorno" <= "31/07/2020" GROUP BY "Reparto", "Pattuglia"

Come errore mi dice che non trova la colonna 12/07/2020... non so proprio cosa può essere.
Open Office 4.1.7
mirabellomusic
Messaggi: 65
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggio da mirabellomusic »

Ho risolto per quanto riguarda la query dei conteggi con la somma. L'unica cosa che mi servirebbe, è nel formulario inserimento, un bottone che duplica un record, così da modificarlo e aggiungerlo
Open Office 4.1.7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario con Query con più ricerche

Messaggio da charlie »

Pubblico una versione priva di riferimenti reali.
Nel formulario 'Inserimento' ho inserito una macro associata ad un pulsante che duplica il record corrente e lo rende disponibile per la modifica.
Ho dovuto apportare alcune modifiche:
  • Il formulario 'Inserimento' è stato abilitato alla modifica dei record
  • Nella tabella 'Storico' sono stati modificati alcuni tipi di campo perché errati (es. testo per numeri) o per esigenze di esecuzione dalla macro ('Termine turno' è ora tipo testo, ma per indicare l'ora dovrebbe andare bene lo stesso).
  • È stata eliminata la 'Digitazione necessaria' di tutti i campi
  • Sono state eliminate le relazioni fisse fra tabelle
Problema importante non ancora risolto:
  • Se il campo 'Risultati servizio' contiene il carattere ' (apostrofo o accento per le maiuscole), la macro va in errore.
Allegati
Nuovo database1.odb
(61.08 KiB) Scaricato 106 volte
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario con Query con più ricerche

Messaggio da charlie »

Risolto problema errore macro in presenza di apostrofo o apice semplice (accento) nel testo del campo 'Risultati servizio'.
Allegati
Nuovo database2.odb
(63.12 KiB) Scaricato 116 volte
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
mirabellomusic
Messaggi: 65
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggio da mirabellomusic »

Ciao, vorrei sapere, come funziona adesso l'inserimento, cioè come è la procedura per copiare
Open Office 4.1.7
mirabellomusic
Messaggi: 65
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggio da mirabellomusic »

e un'altra cosa, è possibile adesso inserire i dati da un altro db in modo tale da usare questo da te modificato oppure come posso copiare la macro nel db originale?
Open Office 4.1.7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario con Query con più ricerche

Messaggio da charlie »

Ci si posiziona sul record da copiare e si preme il pulsante una volta (non c'è messaggio di avviso) e il record viene duplicato. Il formulario presenta subito il nuovo record per le modifiche.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario con Query con più ricerche

Messaggio da charlie »

La macro è questa:

Codice: Seleziona tutto

REM  *****  BASIC  *****

Sub Copia
	Dim oForm As Object
	Dim i As Integer
	Dim semplice AS String
	Dim doppio As String
	
	oForm=thisComponent.drawpage.forms.getByName("MainForm")
	
	' cicli per acquisire i valori dei campi nel Record Corrente
	for i = 1 to 7
	   oForm.GetString(i)	
	next i
	
	for i = 8 to 9
	   oForm.GetLong(i)	
	next i
    
    for i = 10 to 10
	   oForm.GetString(i)	
	next i

	for i = 11 to 11
	   oForm.GetLong(i)	
	next i
	
	for i = 12 to 12
	   oForm.GetString(i)	
	next i
	
	for i = 13 to 13
	   oForm.GetLong(i)	
	next i
	
	for i = 14 to 15
	   oForm.GetString(i)	
	next i
	
	for i = 16 to 16
	   oForm.GetLong(i)	
	next i
	
	for i = 17 to 19
	   oForm.GetString(i)	
	next i
	
	for i = 20 to 22
	   oForm.GetLong(i)	
	next i
	
	semplice = oForm.GetString(18) ' assegna a semplice il contenuto dell'array 18
	
	doppio = EscapeQuotes(semplice)' Chiama la funzione per duplicare il carattere ' (apice semplice) contenuto nel testo e assegna a doppio il testo modificato
	
	
	oStatement = oForm.ActiveConnection.createStatement()' Crea istruzione da eseguire
	'SQL di scrittura nuovo record  
    sSQL = "INSERT INTO ""Storico"" (""Giorno"",""Reparto "",""Pattuglia"",""Capo Pattuglia"",""Turno"",""Termine Turno"",""Automezzi"",""Soggetti"",""Verbale"",""N. Verbali"",""Sequestri"",""N. Sequestri"",""Violazione"",""Tipologia"",""Quantitativo"",""Localita"",""Risultati Servizio"",""Tipo Servizio"",""C.O.P.E (N.)"",""C.E.T.E. (N.)"",""MINI C.E.T.E. (N.)"") VALUES  ('" & oForm.GetString(2) & "','" & oForm.GetString(3) & "','" & oForm.GetString(4) & "','" & oForm.GetString(5) & "','" & oForm.GetString(6) & "','" & oForm.GetString(7) & "','" & oForm.GetLong(8) & "','" & oForm.GetLong(9) & "','" & oForm.GetString(10) & "' ,'" & oForm.GetLong(11) & "','" & oForm.GetString(12) & "' ,'" & oForm.GetLong(13) & "','" & oForm.GetString(14) & "','" & oForm.GetString(15) & "' ,'" & oForm.GetLong(16) & "','" & oForm.GetString(17) & "',' " & doppio & " ','" & oForm.GetString(19) & "' ,'" & oForm.GetLong(20) & "' ,'" & oForm.GetLong(21) & "' ,'" & oForm.GetLong(22) & "')"
    oStatement.executeUpdate(sSQL)' Esegue l'struzione SQL
	oForm.reload
	oForm.last()
	
End Sub

Function EscapeQuotes(s) ' Duplica il carattere ' (apice semplice) contenuto nel testo per evitare errore di scrittura SQL
	srv = createUnoService("com.sun.star.sheet.FunctionAccess")
	s1 = srv.callFunction("SUBSTITUTE", Array(s, "'", string(2, "'")))
	EscapeQuotes = srv.callFunction("SUBSTITUTE", Array(s1,"""" , string(2,"""" )))
End Function
Si può copiare ed incollare nell'apposito modulo di un altro database.
Ma devono coincidere alla perfezione i nomi campo e i tipi campo.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
mirabellomusic
Messaggi: 65
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggio da mirabellomusic »

Sicuro che la macro utilizzata è quella? vedo il ciclo da 1 a 7, ma i campi sono un po' di più. In pratica il db è identico a quello su cui hai lavorato, solo che ci sono più dati su quello originale e devo mettere la macro lì.
Open Office 4.1.7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario con Query con più ricerche

Messaggio da charlie »

Ci sono gli altri cicli a seguire perché la tipologia dei campi è alternata (stringa, numerico) e si arriva 22.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario con Query con più ricerche

Messaggio da charlie »

Non farti ingannare dalla finestra del codice visibile, falla scorrere e vedrai tutto il codice.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Rispondi