[RISOLTO] apertura di un formulario filtrato

Discussioni sulle caratteristiche di database
Rispondi
rledda
Messaggi: 5
Iscritto il: sabato 4 giugno 2011, 15:55

[RISOLTO] apertura di un formulario filtrato

Messaggio da rledda »

Salve a tutti,
sto cercando di realizzare un db per l'anagrafe di alcune specie botaniche mediante LibreOffice 3.3 su Windows XP Pro SP3.

Come si puo' notare nel file .odb allegato, i campi che compongono la tabella principale "Specie" sono numerosi, il che comporta che non possano essere tutti visualizzati in modo agevole in un unico formulario .

Ho quindi pensato di distribuire e visualizzare i dati su piu' formulari, da richiamare mediante pulsanti posti sul formulario principale "01_specie".

Avendo selezionato e visualizzato nel formulario principale i dati di una specie tramite i pulsanti di navigazione, vorrei cliccare su un pulsante per aprire un formulario secondario (ad esempio, "04_rischi_impatti_strategie") che sia filtrato sui dati di questa stessa specie.

Immagino che questa operazione sia possibile mediante delle macro - su cui sono completamente ignorante - o magari mediante altre funzionalita', ma gli esempi che ho trovato sul forum non mi sembrano trattare questo caso.

Vi chiedo cortesemente dei consigli in merito.

Grazie,
Roberto
Allegati
db_specie_stralcio.zip
(127.72 KiB) Scaricato 257 volte
Ultima modifica di rledda il martedì 7 giugno 2011, 10:53, modificato 1 volta in totale.
Open Office 3.3 su Windows XP Professional 32bit SP3
giannidalmi
Messaggi: 62
Iscritto il: lunedì 21 febbraio 2011, 7:00

Re: apertura di un formulario filtrato

Messaggio da giannidalmi »

non credo sia conveniente distribuire i dati relativi ad una sola specie su più formulari e meno che mai su più tabelle
credo che le tabelle OO base possano contenere 250 campi e un formulario possa essere agevolmente essere distribuito su più pagine
e/o organizzato con sottoformulari anch'essi in diverse pagine
se hai bisogno di sapere come fare io resto a disposizione ma nel forum ci sono molti post che ti possono essere molto utili
ciao
buon lavoro
open office 3.2.1
window 7
rledda
Messaggi: 5
Iscritto il: sabato 4 giugno 2011, 15:55

Re: apertura di un formulario filtrato

Messaggio da rledda »

giannidalmi ha scritto:non credo sia conveniente distribuire i dati relativi ad una sola specie su più formulari e meno che mai su più tabelle
credo che le tabelle OO base possano contenere 250 campi e un formulario possa essere agevolmente essere distribuito su più pagine
e/o organizzato con sotto-formulari anch'essi in diverse pagine
se hai bisogno di sapere come fare io resto a disposizione ma nel forum ci sono molti post che ti possono essere molto utili
ciao
buon lavoro
Ciao Gianni,
ti ringrazio per la risposta;
In realta' io non ho distribuito i dati di una sola specie su piu' tabelle: tutti gli attributi aventi relazione 1:1 con la specie stanno in una sola tabella.
Cio' che pensavo di fare era distribuire la visualizzazione/compilazione dei dati su piu' formulari tra loro collegati - adesso verifichero' sul forum la modalita' per distribuire un formulario su piu' "pagine".
Ciao,
Roberto
Open Office 3.3 su Windows XP Professional 32bit SP3
codicem
Messaggi: 57
Iscritto il: venerdì 30 aprile 2010, 14:30

Re: apertura di un formulario filtrato

Messaggio da codicem »

Ciao,
a volte basta fare delle ricerche sul forum... prova a vedere qui:http://user.services.openoffice.org/it/ ... =13&t=1506
OpenOffice 3.3 su Winxp / Libreoffice 3.3.2 su Mandriva 2010.2
giannidalmi
Messaggi: 62
Iscritto il: lunedì 21 febbraio 2011, 7:00

Re: apertura di un formulario filtrato

Messaggio da giannidalmi »

ops! :oops:
non avevo visto le relazioni multiple
e dire che sono pure agronomo
open office 3.2.1
window 7
rledda
Messaggi: 5
Iscritto il: sabato 4 giugno 2011, 15:55

Re: apertura di un formulario filtrato

Messaggio da rledda »

codicem ha scritto:Ciao,
a volte basta fare delle ricerche sul forum... prova a vedere qui:http://user.services.openoffice.org/it/ ... =13&t=1506
Grazie codicem,
avevo gia' visto questo esempio, che pero' non effettua l'operazione che vorrei applicare.

Il mio caso d'uso e' il seguente:
1) apro il formulario principale "01_specie" per visualizzare i dati inseriti;
3) tramite la barra di navigazione del formulario visualizzo i dati di una specie - ad esempio la specie "Aptenia cordifolia (L. fil.) Schwantes) " con ID = 6;
2) mediante il pulsante "Rischi, Impatti e Strategie" apro il formulario "04_Rischi_Impatti_Strategie" che visualizza i dati della stessa specie visualizzata del formulario "01_specie".

La macro dovrebbe quindi leggere applicare un filtro all'apertura del formulario "04_Rischi_Impatti_Strategie" basandosi non su un valore prefissato - come nell'esempio che hai citato - ma su un valore variabile che e' il valore del campo ID correntemente visualizzato nel formulario "01_specie".

Al di la' della mia ignoranza sulle macro che e' a dir poco 'enciclopedica', l'osservazione di gianni mi sta facendo riflettere se quanto cerco e' veramente il modo piu' corretto per accedere in lettura/scrittura ai dati delle specie.
A quanto ho capito, in LibreOffice e Open Office non e' possibile realizzare una 'tabbed form' come in Microsoft Access; sto cercando sul forum delle informazioni sulle modalita' di distribuzione del contenuto di 1 formulario su piu' pagine ma per ora non ho trovato nulla.
Grazie ancora per l'aiuto!
Ciao,
Roberto
Open Office 3.3 su Windows XP Professional 32bit SP3
giannidalmi
Messaggi: 62
Iscritto il: lunedì 21 febbraio 2011, 7:00

Re: apertura di un formulario filtrato

Messaggio da giannidalmi »

provo ancora a consigliare, senza però avere verificato personalmente:
poichè un formulario OObase è più o meno come una 'normale' pagina di testo, tu puoi farlo 'lungo' quanto vuoi e poi lo puoi scorrere con la barra laterale, o se vuoi fare un lavoro migliore metti nella prima pagina dei bottoni che ti rimandano a 'segnalibri' e così puoi accedere alle diverse sezioni proprio come se fossero formulari diversi, in questo caso dovresti eliminare la barra laterale e poi mettere nelle varie sezioni un bottone di rimando alla prima pagina
provare per credere
come usare i segnalibri credo sia spiegato bene qua http://user.services.openoffice.org/it/ ... 84&start=0
ciao
open office 3.2.1
window 7
rledda
Messaggi: 5
Iscritto il: sabato 4 giugno 2011, 15:55

Re: apertura di un formulario filtrato

Messaggio da rledda »

giannidalmi ha scritto:provo ancora a consigliare, senza però avere verificato personalmente:
poichè un formulario OObase è più o meno come una 'normale' pagina di testo, tu puoi farlo 'lungo' quanto vuoi e poi lo puoi scorrere con la barra laterale, o se vuoi fare un lavoro migliore metti nella prima pagina dei bottoni che ti rimandano a 'segnalibri' e così puoi accedere alle diverse sezioni proprio come se fossero formulari diversi, in questo caso dovresti eliminare la barra laterale e poi mettere nelle varie sezioni un bottone di rimando alla prima pagina
provare per credere
come usare i segnalibri credo sia spiegato bene qua http://user.services.openoffice.org/it/ ... 84&start=0
ciao
grazie mille, Gianni!
prima di leggere il tuo post stavo proprio portando il contenuto di tutti i formulari all'interno del formulario principale, che e' diventato piuttosto lungo!
adesso verifichero' il contenuto del link che mi hai fornito.
Nel formulario in modalita' di visualizzazione "Layout web" ritengo che per l'utente sarebbe utile poter visualizzare una intestazione fissa in cui poter leggere i valori dei campi "codice specie" e "nome specie" durante il suo spostamento lungo la pagina del formulario: e' a tuo avviso possibile?
Grazie ancora per l'aiuto.
Roberto
Open Office 3.3 su Windows XP Professional 32bit SP3
codicem
Messaggi: 57
Iscritto il: venerdì 30 aprile 2010, 14:30

Re: apertura di un formulario filtrato

Messaggio da codicem »

Ciao perchè dici che non va bene.
Inserisci il codice seguente e collega la "Sub openRischi" al pulsante che deve aprire il formulario Rischi_Impatti:

Codice: Seleziona tutto

REM - APERTURA FORMULARIO - 

Sub OpenForm( oEvent as variant, aFormName as string, filter as string) as variant
  Dim args(1) As New com.sun.star.beans.PropertyValue
  Dim container as variant

  container = oEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments

  args(0).Name = "ActiveConnection"
  args(0).Value = oEvent.Source.Model.Parent.ActiveConnection
  args(1).Name = "OpenMode"
  args(1).Value = "open"
  oDoc=container.loadComponentFromURL(aFormName,"_blank",0,args())
  Form=oDoc.DrawPage.Forms.MainForm
  Form.Filter=filter
  Form.reload()
End Sub

Sub openRischi ( oEvent as variant )
	id=thisComponent.DrawPage.Forms.MainForm.getByName("fmtid").currentValue
   OpenForm(oEvent, "04_Rischi_Impatti_Strategie", "( ""Specie"".""id"" = "+id+"  )"
End sub
OpenOffice 3.3 su Winxp / Libreoffice 3.3.2 su Mandriva 2010.2
rledda
Messaggi: 5
Iscritto il: sabato 4 giugno 2011, 15:55

Re: apertura di un formulario filtrato

Messaggio da rledda »

Grazie codicem,
il codice che mi hai fornito funziona!
non conoscevo la sintassi per impostare il filtro di apertura della maschera....

Un saluto, Roberto
Open Office 3.3 su Windows XP Professional 32bit SP3
codicem
Messaggi: 57
Iscritto il: venerdì 30 aprile 2010, 14:30

Re: apertura di un formulario filtrato

Messaggio da codicem »

Se ok puoi mettere Risolto
OpenOffice 3.3 su Winxp / Libreoffice 3.3.2 su Mandriva 2010.2
Rispondi