Creazione menu e ricerca tramite form
-
- Messaggi: 28
- Iscritto il: venerdì 8 aprile 2011, 14:00
Creazione menu e ricerca tramite form
Intanto salve a tutti,sono nuovo del forum.Mi sono iscritto dopo aver letto vari topic alla ricerca della soluzione al mio problema,senza trovarlo
Ora lo spiego
Sto progettando un semplice (almeno nella mia testa!) database per lavoro,in cui ho una tabella dove registrare delle quotazioni.
Ho creato una tabella principale contenente tutti i campi che vanno inseriti tramite formulario (creato e funzionante)
Ho creato delle tabelle a parte per alcuni campi,dove il valore dev'essere selezionato da un elenco di valori (la tabella appunto) tramite combobox (credo si chiami così,il menu a tendina per intenderci).
Ora,quello che vorrei fare:
1) creare una sorta di MENU che,attraverso semplici pulsanti,mi colleghi ad altri formulari per inserire i record nelle varie tabelle.
L'unica cosa che sono riuscito a capire finora è che devo creare una Macro e assegnarla ai vari pulsanti.Mi sono imbattuto in alcune righe di codice come
openForm,ma sinceramente non capisco bene i valori da impostare
2)creare un formulario con tutti i campi della tabella principale,campi che possono essere riempiti singolarmente o combinati,e che mi servano da RICERCA (o filtro) per trovare tutte le righe della tabella contenenti quei valori.
Questo,leggendo e rileggendo,devo ancora capire se si può fare!
Sarei grato se qualcuno mi desse qualche dritta in merito,eventualmente se servisse potrei linkare il database che ho creato finora,tanto i dati immessi sono solamente inventati per prova e non è nulla di personale
Un grazie in anticipo a chi mi darà una mano
Ora lo spiego
Sto progettando un semplice (almeno nella mia testa!) database per lavoro,in cui ho una tabella dove registrare delle quotazioni.
Ho creato una tabella principale contenente tutti i campi che vanno inseriti tramite formulario (creato e funzionante)
Ho creato delle tabelle a parte per alcuni campi,dove il valore dev'essere selezionato da un elenco di valori (la tabella appunto) tramite combobox (credo si chiami così,il menu a tendina per intenderci).
Ora,quello che vorrei fare:
1) creare una sorta di MENU che,attraverso semplici pulsanti,mi colleghi ad altri formulari per inserire i record nelle varie tabelle.
L'unica cosa che sono riuscito a capire finora è che devo creare una Macro e assegnarla ai vari pulsanti.Mi sono imbattuto in alcune righe di codice come
openForm,ma sinceramente non capisco bene i valori da impostare
2)creare un formulario con tutti i campi della tabella principale,campi che possono essere riempiti singolarmente o combinati,e che mi servano da RICERCA (o filtro) per trovare tutte le righe della tabella contenenti quei valori.
Questo,leggendo e rileggendo,devo ancora capire se si può fare!
Sarei grato se qualcuno mi desse qualche dritta in merito,eventualmente se servisse potrei linkare il database che ho creato finora,tanto i dati immessi sono solamente inventati per prova e non è nulla di personale
Un grazie in anticipo a chi mi darà una mano
OpenOffice.Org 3.2.1 su Windows XP
Re: Creazione menu e ricerca tramite form
questi semplici esempi che ho trovato in questo forum forse ti possono aiutare. Ciao
- Allegati
-
- Disegni.odb
- (22.23 KiB) Scaricato 1537 volte
-
- Test.odb
- (44.55 KiB) Scaricato 1173 volte
Windows 10 - Apache OpenOffice 4.1.8
-
- Messaggi: 28
- Iscritto il: venerdì 8 aprile 2011, 14:00
Re: Creazione menu e ricerca tramite form
ti ringrazio intanto della risposta
punto 1) il file di esempio dei dischi l'avevo già scaricato da un altro topic,però non sono riuscito a capire come adattarlo alle mie esigenze.Di diverso da quell'esempio c'è che io per ogni pulsante apro un form diverso,quindi non ho interesse che sia filtrato.Ma guardando la Macro non ho idea di come "semplificarla" per dare semplice istruzione di aprire un form
punto 2) wow il file Disegni è impostato esattamente come intendevo.Solamente che facendo una prova nel file di esempio,cercando con nome o parametro,mi da un errore di script aprendomi la schermata di visual basic..a te funziona?
punto 1) il file di esempio dei dischi l'avevo già scaricato da un altro topic,però non sono riuscito a capire come adattarlo alle mie esigenze.Di diverso da quell'esempio c'è che io per ogni pulsante apro un form diverso,quindi non ho interesse che sia filtrato.Ma guardando la Macro non ho idea di come "semplificarla" per dare semplice istruzione di aprire un form
punto 2) wow il file Disegni è impostato esattamente come intendevo.Solamente che facendo una prova nel file di esempio,cercando con nome o parametro,mi da un errore di script aprendomi la schermata di visual basic..a te funziona?
OpenOffice.Org 3.2.1 su Windows XP
-
- Messaggi: 62
- Iscritto il: lunedì 21 febbraio 2011, 7:00
Re: Creazione menu e ricerca tramite form
vedi un pò il post di franziska
http://user.services.openoffice.org/it/ ... =13&t=1617
buon lavoro ciao
http://user.services.openoffice.org/it/ ... =13&t=1617
buon lavoro ciao
open office 3.2.1
window 7
window 7
Re: Creazione menu e ricerca tramite form
Per far funzionare il file disegni.odb devi registrare il database con:
Strumenti > Opzioni > Openoffice.org Base > Database > Nuovo > Sfoglia e trova il file disegni.odb sul tuo computer e premi OK
Una volta registrato tutto dovrebbe funzionare. Nel forum puoi approfondire il discorso sulla necessità di registrare il database per un corretto funzionamento delle procedure esempio qui
http://user.services.openoffice.org/it/ ... =13&t=1153
Ciao
Strumenti > Opzioni > Openoffice.org Base > Database > Nuovo > Sfoglia e trova il file disegni.odb sul tuo computer e premi OK
Una volta registrato tutto dovrebbe funzionare. Nel forum puoi approfondire il discorso sulla necessità di registrare il database per un corretto funzionamento delle procedure esempio qui
http://user.services.openoffice.org/it/ ... =13&t=1153
Ciao
Windows 10 - Apache OpenOffice 4.1.8
-
- Messaggi: 28
- Iscritto il: venerdì 8 aprile 2011, 14:00
Re: Creazione menu e ricerca tramite form
ho registrato il database disegni e ora la ricerca funziona correttamente.Lunedì cerco di studiarlo e capire come costruire il mio di menu
Invece il file biblioteca del comune l'avevo già scaricato e non funzionava,dava errori vari.Ho provato a registrare anche questo database ma niente,ogni pulsante mi da errore
Invece il file biblioteca del comune l'avevo già scaricato e non funzionava,dava errori vari.Ho provato a registrare anche questo database ma niente,ogni pulsante mi da errore
OpenOffice.Org 3.2.1 su Windows XP
-
- Messaggi: 62
- Iscritto il: lunedì 21 febbraio 2011, 7:00
Re: Creazione menu e ricerca tramite form
però nel sito http://www.comunecampagnano.it/gnu/bibl ... /index.htm ci sono tutte le spiegazioni per farlo funzionare e ti garantisco che funziona ed è molto utile
ci vuole un pò di pazienza per leggere e provare....
auguri
ci vuole un pò di pazienza per leggere e provare....
auguri
open office 3.2.1
window 7
window 7
-
- Messaggi: 28
- Iscritto il: venerdì 8 aprile 2011, 14:00
Re: Creazione menu e ricerca tramite form
io ho provato ma al di la di fare quanto è scritto,non riesco a capire i "perchè" si facciano certe operazioni,che è quello che mi interessa per riuscire a capire i meccanismi e creare quello che serve a me.giannidalmi ha scritto:però nel sito http://www.comunecampagnano.it/gnu/bibl ... /index.htm ci sono tutte le spiegazioni per farlo funzionare e ti garantisco che funziona ed è molto utile
ci vuole un pò di pazienza per leggere e provare....
auguri
Per quanto riguarda il database Disegni,arrivo a capire che il pulsante "x" attiva una certa Macro,ma poi leggo la Macro e che faccio?Non so nulla di programmazione,per me quelli sono geroglifici..
OpenOffice.Org 3.2.1 su Windows XP
-
- Messaggi: 28
- Iscritto il: venerdì 8 aprile 2011, 14:00
Re: Creazione menu e ricerca tramite form
Vi faccio un pratico esempio,giusto per far capire quello che intendo
Sono partito dalla cosa più semplice,aprire un form da un pulsante
Questo è il codice che ho copiato dalla guida del comune di campagnano
Il nome del database è prova
Il nome del form Inserisci nuovo Fornitore
Provandolo dall'editor codice mi da il seguente errore:
Errore di runtime Basic.L'argomento non è opzionale
evidenziando questa parte di codice
ho provato ad assegnare lo stesso la macro ad un pulsante,e provando tramite pulsante l'errore che mi da è diverso e cioè:
Errore di runtime Basic.Valore per la proprietà errato
Evidenziando questo codice:
Cosa significano questi errori?Forse dovevo modificare altri parametri oltre al nome database e nome form?
Sono partito dalla cosa più semplice,aprire un form da un pulsante
Questo è il codice che ho copiato dalla guida del comune di campagnano
Codice: Seleziona tutto
REM ***** BASIC *****
REM ----------------------------------------------------------------------
Dim oForm
sub subDisplayForm(sDatabaseName as string, sFormName as string)
dim mArgs(1) as new com.sun.star.beans.PropertyValue
oDatabase = fnGetOpenDatabase(sdatabaseName)
oConnection = oDatabase.DataSource.getConnection("","")
mArgs(0).name = "OpenMode"
mArgs(0).value = "open" '"openDesign" ' '"openForMail"
mArgs(1).name = "ActiveConnection"
mArgs(1).value = oConnection
oForm = oDatabase.getFormDocuments.getByName(sFormName)
oDatabase.getFormDocuments.loadComponentFromURL(sFormName, "_blank", 0, mArgs())
end sub
REM ----------------------------------------------------------------------
function fnGetOpenDatabase(sDatabaseName as string)
oEnum = StarDesktop.getComponents.createEnumeration
while oEnum.hasMoreElements
oPosDB = oEnum.nextElement
if oPosDB.implementationName = "com.sun.star.comp.dba.ODatabaseDocument" then
msgbox oPosDB.DataSource.name
if right(oPosDB.DataSource.name, len(sDatabaseName)) = sDatabaseName then
fnGetOpenDatabase = oPosDB
exit function
end if
end if
wend
end function
REM ----------------------------------------------------------------------
Dim oForm
sub Q_libri
subDisplayForm("prova.odb","Inserisci_nuovo_Fornitore")
end sub
Il nome del form Inserisci nuovo Fornitore
Provandolo dall'editor codice mi da il seguente errore:
Errore di runtime Basic.L'argomento non è opzionale
evidenziando questa parte di codice
Codice: Seleziona tutto
oDatabase = fnGetOpenDatabase(sdatabaseName)
Errore di runtime Basic.Valore per la proprietà errato
Evidenziando questo codice:
Codice: Seleziona tutto
function fnGetOpenDatabase(sDatabaseName as string)
OpenOffice.Org 3.2.1 su Windows XP
-
- Messaggi: 62
- Iscritto il: lunedì 21 febbraio 2011, 7:00
Re: Creazione menu e ricerca tramite form
questa risposta non ti sarà di grande aiuto, ma un pò potrà consolarti
e mi piacerebbe che qualcuno ci dicesse qualcosa di questo errore
ho controllato la tua macro e siccome era uguale alla mia, cioè copiata dallo stesso posto, ho fatto un piccolo db e ho inserito la macro:
per un pò di volte il messaggio (msgbox) mi indicava come nome del db "prova.odb" e la macro mi dava il tuo errore. poi ho chiuso, aperto alcuni miei Db che funzionavano; poi ho riaperto 'prova' e il messaggio era "file:///C:/<nomepercorso>/prova.odb" e la macro funzionava!
sarei curioso anch'io di sapere il motivo.. ed il rimedio; aspetto Vladko, Giorgiofoga, e altri
ciao
e mi piacerebbe che qualcuno ci dicesse qualcosa di questo errore
ho controllato la tua macro e siccome era uguale alla mia, cioè copiata dallo stesso posto, ho fatto un piccolo db e ho inserito la macro:
per un pò di volte il messaggio (msgbox) mi indicava come nome del db "prova.odb" e la macro mi dava il tuo errore. poi ho chiuso, aperto alcuni miei Db che funzionavano; poi ho riaperto 'prova' e il messaggio era "file:///C:/<nomepercorso>/prova.odb" e la macro funzionava!
sarei curioso anch'io di sapere il motivo.. ed il rimedio; aspetto Vladko, Giorgiofoga, e altri
ciao
open office 3.2.1
window 7
window 7
- giorgiofoga
- Messaggi: 116
- Iscritto il: venerdì 28 gennaio 2011, 11:39
Re: Creazione menu e ricerca tramite form
rispondo un po' a caso e tirando ad indovinare:
io non uso la macro descritta ma bensì quella che ho pubblicato su LIBREOFFICEFORUM (la siamo in meno e si trova subito)
alcune variabili si "resettano" alla chiusura del db altre alla chiusura delle macro
enumeration da quello che so io rende i valori "caricati" .... credo che per usarlo dovreste caricare tutti i form del tuo db prima di usarli (questo spiega perchè giannidalmi ha trovato tutto ok alla riapertura del db dopo apertura di altri). se non si carica nulla .... ovviamente è tutto vuoto ma tu chiedi di leggervi dentro. Il valore "nullo" non è ammesso, ma al primo avvio il valore di enumeration è "nullo" per forza. quindi errore. Tra l'altro pare che la funzione sia disponibile per tutti i db. [risposta a caso, non ho mai usato enumeration]
queste sono le cose che ho notato.
sul sito del comunedicampagnano tra l'altro esiste anche la versione "corretta" della base sugli ultimi aggiornamenti e in rifrimento alle spiegazioni delle macro (dove si lamenta che in troppi gli scrivono per chiarimenti). Ma ripeto io ne uso una pubblicata su LIBREOFFICEFORUM. senza funzioni. in oltre la ho pubblicato anche il metodo per fare il pingpong tra i formulari e la spiegazione per il "lanciatore".
Spero che altri mi possano correggere dove ho sbagliato e aggiungere qualcosa per aiutare .....
ciao ciao
io non uso la macro descritta ma bensì quella che ho pubblicato su LIBREOFFICEFORUM (la siamo in meno e si trova subito)
alcune variabili si "resettano" alla chiusura del db altre alla chiusura delle macro
enumeration da quello che so io rende i valori "caricati" .... credo che per usarlo dovreste caricare tutti i form del tuo db prima di usarli (questo spiega perchè giannidalmi ha trovato tutto ok alla riapertura del db dopo apertura di altri). se non si carica nulla .... ovviamente è tutto vuoto ma tu chiedi di leggervi dentro. Il valore "nullo" non è ammesso, ma al primo avvio il valore di enumeration è "nullo" per forza. quindi errore. Tra l'altro pare che la funzione sia disponibile per tutti i db. [risposta a caso, non ho mai usato enumeration]
queste sono le cose che ho notato.
sul sito del comunedicampagnano tra l'altro esiste anche la versione "corretta" della base sugli ultimi aggiornamenti e in rifrimento alle spiegazioni delle macro (dove si lamenta che in troppi gli scrivono per chiarimenti). Ma ripeto io ne uso una pubblicata su LIBREOFFICEFORUM. senza funzioni. in oltre la ho pubblicato anche il metodo per fare il pingpong tra i formulari e la spiegazione per il "lanciatore".
Spero che altri mi possano correggere dove ho sbagliato e aggiungere qualcosa per aiutare .....
ciao ciao
libreoffice 3.3.1 su ubuntu 10.10 64bit
openoffice 3.2.1 su ubuntu 10.10 32bit
openoffice 3.2.1 su ubuntu 10.10 32bit
- giorgiofoga
- Messaggi: 116
- Iscritto il: venerdì 28 gennaio 2011, 11:39
Re: Creazione menu e ricerca tramite form
(prova)
in seconda battuta ..... la macro che mettete ad esempio potrebbe tornare utile se si volesse visualizzare più di un form per volta. Il lavoro che stò facendo però prevede questa possibilità solo nel caso di aggiornare le listbox e relative tabelle direttamente nel form visualizzato e che le riporta. ma per fare questo ho ritenuto più interessante l'uso dei dialog. Inserisco, confermo e zac tutto il ciclo è completato (no aggiornamenti manuali e tutto il resto).
L'uso di enumeration però è una "scorciatoia" rispetto alla "maratona" dell'uso dei listner.
Non sarebbe male che qualche altro intervenisse mettesse un po' di "farina".
riciariciao
in seconda battuta ..... la macro che mettete ad esempio potrebbe tornare utile se si volesse visualizzare più di un form per volta. Il lavoro che stò facendo però prevede questa possibilità solo nel caso di aggiornare le listbox e relative tabelle direttamente nel form visualizzato e che le riporta. ma per fare questo ho ritenuto più interessante l'uso dei dialog. Inserisco, confermo e zac tutto il ciclo è completato (no aggiornamenti manuali e tutto il resto).
L'uso di enumeration però è una "scorciatoia" rispetto alla "maratona" dell'uso dei listner.
Non sarebbe male che qualche altro intervenisse mettesse un po' di "farina".
riciariciao
libreoffice 3.3.1 su ubuntu 10.10 64bit
openoffice 3.2.1 su ubuntu 10.10 32bit
openoffice 3.2.1 su ubuntu 10.10 32bit
Re: Creazione menu e ricerca tramite form
Per aprire un formulario interno al database puoi utilizzare il seguente codice:
Codice: Seleziona tutto
Sub ApriForm
Dim InteractionHandler As Object
InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
ThisDatabaseDocument.CurrentController.connect("","")
ThisDatabaseDocument.FormDocuments.getByName ( "NomeTuoFormulario" ).open
End Sub
OpenOffice 3.3 su Winxp / Libreoffice 3.3.2 su Mandriva 2010.2
-
- Messaggi: 62
- Iscritto il: lunedì 21 febbraio 2011, 7:00
Re: Creazione menu e ricerca tramite form
grazie giorgiofoga
sapevo di poter contare sul forum e su te
non ho capito tutto, ma qualcosina piano piano.. anche in openoffice riesco a capire oltre che fare
intanto penso che marcelotero abbia trovato qualcosa di risolutivo
ciao
sapevo di poter contare sul forum e su te
non ho capito tutto, ma qualcosina piano piano.. anche in openoffice riesco a capire oltre che fare
intanto penso che marcelotero abbia trovato qualcosa di risolutivo
ciao
open office 3.2.1
window 7
window 7
-
- Messaggi: 28
- Iscritto il: venerdì 8 aprile 2011, 14:00
Re: Creazione menu e ricerca tramite form
grazie a codicem e giorgiofoga,tramite vostri esempi ho costruito la seguente Macro per il mio menu
due righe ho capito a cosa servono (chiudere una finestra e aprire un form.Il resto rimane a me ignoto,ma tant'è funziona..
ora mi resta la parte più difficile,la ricerca tramite parametri che mi restituisca i record salvati,non ho proprio idea da dove possa partire.
Mi potete aiutare?
due righe ho capito a cosa servono (chiudere una finestra e aprire un form.Il resto rimane a me ignoto,ma tant'è funziona..
Codice: Seleziona tutto
Sub Fornitore
Dim InteractionHandler As Object
InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
ThisComponent.CurrentController.Frame.close(True)
ThisDatabaseDocument.FormDocuments.getByName ( "Inserisci nuovo Fornitore" ).open
End Sub
Sub Luogo
Dim InteractionHandler As Object
InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
ThisComponent.CurrentController.Frame.close(True)
ThisDatabaseDocument.FormDocuments.getByName ( "Inserisci nuovo Luogo" ).open
End Sub
Sub MENU
Dim InteractionHandler As Object
InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
ThisComponent.CurrentController.Frame.close(True)
ThisDatabaseDocument.FormDocuments.getByName ( "MENU" ).open
End Sub
Sub RICERCA
Dim InteractionHandler As Object
InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
ThisComponent.CurrentController.Frame.close(True)
ThisDatabaseDocument.FormDocuments.getByName ( "RICERCA" ).open
End Sub
Sub quotazione
Dim InteractionHandler As Object
InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
ThisComponent.CurrentController.Frame.close(True)
ThisDatabaseDocument.FormDocuments.getByName ( "Inserisci nuova quotazione" ).open
End Sub
sub finestra_close( oEvent as object )
ThisComponent.CurrentController.Frame.close(True)
ThisDatabaseDocument.FormDocuments.getByName ( "MENU" ).open
end sub
Mi potete aiutare?
OpenOffice.Org 3.2.1 su Windows XP
-
- Messaggi: 28
- Iscritto il: venerdì 8 aprile 2011, 14:00
Re: Creazione menu e ricerca tramite form
Sono riuscito a impostare una sorta di filtro,ma ho ancora dei problemi
Il codice che ho copiato è questo:
ripetuto per ogni campo che voglio filtrare
PROBLEMA 1:
riesco a farlo funzionare solo con le caselle di testo.Se volessi usare una combobox,come devo fare?Ho provato a collegare questa macro a una combobox ma mi restituisce questo errore
"Proprietà o metodo non trovati: Text"
PROBLEMA 2:
i campi di ricerca li ho inseriti in un formulario in cui sono presenti tutti i campi di una tabella ("Quotazioni" nel mio caso)
Il problema è che mi visualizza in automatico tutti i record inseriti,quindi se faccio filtra in base a uno o più campi,e nessun record corrisponde a quanto filtrato,mi continua a visualizzare il primo record salvato (che non corrisponde ai filtri!)
Non so se mi sono spiegato
Sapete aiutarmi?
Il codice che ho copiato è questo:
Codice: Seleziona tutto
Sub FiltraPerFornitore(oEv)
oModel = oEv.Source.Model
sTestoPerRicerca = oEv.Source.getAccessibleContext.Text
oForm = oModel.Parent
oForm.Filter = " ( ""Quotazioni"".""FORNITORE"" LIKE '%" & sTestoPerRicerca & "%' )"
oForm.reload()
End Sub
PROBLEMA 1:
riesco a farlo funzionare solo con le caselle di testo.Se volessi usare una combobox,come devo fare?Ho provato a collegare questa macro a una combobox ma mi restituisce questo errore
"Proprietà o metodo non trovati: Text"
PROBLEMA 2:
i campi di ricerca li ho inseriti in un formulario in cui sono presenti tutti i campi di una tabella ("Quotazioni" nel mio caso)
Il problema è che mi visualizza in automatico tutti i record inseriti,quindi se faccio filtra in base a uno o più campi,e nessun record corrisponde a quanto filtrato,mi continua a visualizzare il primo record salvato (che non corrisponde ai filtri!)
Non so se mi sono spiegato
Sapete aiutarmi?
OpenOffice.Org 3.2.1 su Windows XP
Re: Creazione menu e ricerca tramite form
Per la combobox puoi usare il seguente codice:
come vedi c'è anche la funzione doppio che ti evita problemi in caso di presenza di apici.
Cmq puoi anche scaricarti questo dove puoi trovare delle risposte:http://sourceforge.net/projects/ooodocs ... 0raccolta/
Codice: Seleziona tutto
Sub seleziona
oForm = ThisComponent.DrawPage.forms.MainForm
dataf=oForm.GetByName("ComboBox1")
combo=doppio(dataf.text)
oForm = ThisComponent.Drawpage.Forms.MainForm
oForm.Filter ="( ""Quotazioni"".""FORNITORE"" LIKE '"+combo+"' )"
oForm.reload
End Sub
Function doppio(U)
' raddoppia gli apostrofi
U = Join(Split(U, "'"), "''")
doppio=U
end function
Cmq puoi anche scaricarti questo dove puoi trovare delle risposte:http://sourceforge.net/projects/ooodocs ... 0raccolta/
OpenOffice 3.3 su Winxp / Libreoffice 3.3.2 su Mandriva 2010.2
-
- Messaggi: 28
- Iscritto il: venerdì 8 aprile 2011, 14:00
Re: Creazione menu e ricerca tramite form
ti ringrazio per il codice per la combo,che funziona (grazie anche per il link alle faq che leggerò nel pomeriggio)
non mi è ben chiara l'utilità del doppio apice
Però se inserisco due campi di ricerca tramite combo nello stesso form,non filtra correttamente
Forse per fare filtrare i due campi insieme bisogna unire le macro in qualche modo?
cioè per visualizzare i record contenenti due o più valori,ENTRAMBI i valori
non mi è ben chiara l'utilità del doppio apice
Però se inserisco due campi di ricerca tramite combo nello stesso form,non filtra correttamente
Forse per fare filtrare i due campi insieme bisogna unire le macro in qualche modo?
cioè per visualizzare i record contenenti due o più valori,ENTRAMBI i valori
OpenOffice.Org 3.2.1 su Windows XP
Re: Creazione menu e ricerca tramite form
Prova a vedere questo post e vedi se ti può aiutare: http://user.services.openoffice.org/it/ ... iltra#p479
OpenOffice 3.3 su Winxp / Libreoffice 3.3.2 su Mandriva 2010.2
-
- Messaggi: 28
- Iscritto il: venerdì 8 aprile 2011, 14:00
Re: Creazione menu e ricerca tramite form
Io avrei impostato così (solo per 3 campi per testare se funziona)codicem ha scritto:Prova a vedere questo post e vedi se ti può aiutare: http://user.services.openoffice.org/it/ ... iltra#p479
Però quando metto 3 parametri,mi restituisce solo un record anzichè 2.Come mai?
Codice: Seleziona tutto
SUB ricercaparametri (oEv)
dim oModel as object
dim oForm as object
dim ctlFORNITORE as object
dim ctlLUOGO1 as object
dim ctlTIPO as object
dim sFORNITORE as string
dim sLUOGO1 as string
dim sTIPO as string
oModel = oEv.Source.Model
oForm=oModel.Parent
ctlFORNITORE =oForm.GetByName("COMBOFORNITORE")
ctlLUOGO1 = oForm.GetByName("COMBOLUOGO1")
ctlTIPO = oForm.GetByName("COMBOTIPO")
sFORNITORE =ctlFORNITORE.text
sLUOGO1= ctlLUOGO1.text
sTIPO= ctlTIPO.text
'print sFORNITORE
'print sLUOGO1
'print sTIPO
oForm.Filter = " (""Quotazioni"".""FORNITORE"") LIKE '%" & sFORNITORE & "%' AND (""Quotazioni"".""LUOGO 1"") LIKE '%" & sLUOGO1 & "%' AND (""Quotazioni"".""TIPO"") LIKE '%" & sTIPO & "%' "
oForm.reload()
end sub
OpenOffice.Org 3.2.1 su Windows XP
-
- Messaggi: 28
- Iscritto il: venerdì 8 aprile 2011, 14:00
Re: Creazione menu e ricerca tramite form
ragazzi,
forse quello che fa al caso mio è più una ricerca basata su una query.Posto sotto il codice che ho provato ad inserire,prendendo spunto dal databse esempio "Disegni"
L'errore che mi da è il seguente
"Errore di runtime Basic.Si è verificata un'eccezione
Type: com.sun.star.container.NoSuchElementException
Message: prova"
Io ho inserito il nome del databse,che è appunto prova..cosa significa questo errore?
forse quello che fa al caso mio è più una ricerca basata su una query.Posto sotto il codice che ho provato ad inserire,prendendo spunto dal databse esempio "Disegni"
Codice: Seleziona tutto
Sub TrovaParametri
Dim Ctl As Object
Dim Form as object
Dim Doc as object
Dim Forms as object
Dim I as Integer
Dim DatabaseContext As Object
Dim DataSource As Object
Dim sFornitori as string
Dim sLuogo1 as string
Dim QueryDefinitions as Object
Dim QueryDefinition as object
Dim stringa as string
Doc=StarDesktop.CurrentComponent
Forms=Doc.Drawpage.Forms
For I = 0 to Forms.Count - 1
Form = Forms.GetByIndex(I)
if Form.HasByName("Trova") then
Ctl = Form.GetByName("ComboFornitori")
sFornitori=Ctl.text
if sFornitori="-" then sFornitori=""
Ctl = Form.GetByName("ComboLuogo1")
sLuogo1=Ctl.text
if sLuogo1="-" then sLuogo1=""
End If
Next I
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName("prova.odb")
stringa = "FORNITORE , TIPO , ADR , LUOGO 1 , LUOGO 2 , LUOGO 3 , LUOGO 4 , LUOGO 5 , ISO/BOX , PREZZO , DATA OFFERTA , TIPO OFFERTA , NOTE FROM Quotazioni WHERE FORNITORE LIKE " & "'" & "%" & sFornitori & "%" & "'" & " AND " & "LUOGO 1 LIKE " & "'" & "%" & sLuogo1 & "%" & "'"
QueryDefinitions=DataSource.getQueryDefinitions()
QueryDefinition=QueryDefinitions.getByName("Ricerca1")
QueryDefinition.Command=stringa
it = ThisComponent.DrawPage.Forms(0).ActiveConnection
doc = OpenQuery(it, "prova", "Ricerca1")
end sub
"Errore di runtime Basic.Si è verificata un'eccezione
Type: com.sun.star.container.NoSuchElementException
Message: prova"
Io ho inserito il nome del databse,che è appunto prova..cosa significa questo errore?
OpenOffice.Org 3.2.1 su Windows XP
-
- Messaggi: 28
- Iscritto il: venerdì 8 aprile 2011, 14:00
Re: Creazione menu e ricerca tramite form
qualche idea/suggerimento/consiglio?
OpenOffice.Org 3.2.1 su Windows XP
Re: Creazione menu e ricerca tramite form
Potresti postare qui il file così magari si può vedere meglio, così controlliamo anche i filtri su form tramite combobox.
OpenOffice 3.3 su Winxp / Libreoffice 3.3.2 su Mandriva 2010.2
Re: Creazione menu e ricerca tramite form
Perdonatemi l'intrusione, ma per una neofita come me e che a stento sa creare una rubrica telefonica con base per fare una ricerca tra i dati inseriti deve per forza perdersi tra macro? :crazy:
Re: Creazione menu e ricerca tramite form
No, dipende dal tipo di ricerca che ti serve ma puoi benissimo utilizzare formulari e sottoformulari collegando due tabelle tra loro.d4rkheart ha scritto:Perdonatemi l'intrusione, ma per una neofita come me e che a stento sa creare una rubrica telefonica con base per fare una ricerca tra i dati inseriti deve per forza perdersi tra macro?
OpenOffice 3.3 su Winxp / Libreoffice 3.3.2 su Mandriva 2010.2
Re: Creazione menu e ricerca tramite form
@codicem, grazie per la risposta. Ok, proverò a leggere un pò di guide anche se mi sembra tutto aramaico. Chiedo ancora scusa per l'intrusione.
-
- Messaggi: 28
- Iscritto il: venerdì 8 aprile 2011, 14:00
Re: Creazione menu e ricerca tramite form
chiedo scusa per il ritardo ma sono stato all'estero parecchi giornicodicem ha scritto:Potresti postare qui il file così magari si può vedere meglio, così controlliamo anche i filtri su form tramite combobox.
ecco il file di prova dove sto cercando di capire qualcosa (scusate la confusione delle mille macro)
Questa interessata è la Sub TrovaParametri
- Allegati
-
- prova.odb
- (61.62 KiB) Scaricato 271 volte
OpenOffice.Org 3.2.1 su Windows XP
Re: Creazione menu e ricerca tramite form
Qui il file corretto per la funzione TROVA.marcelotero ha scritto: chiedo scusa per il ritardo ma sono stato all'estero parecchi giorni
ecco il file di prova dove sto cercando di capire qualcosa (scusate la confusione delle mille macro)
Questa interessata è la Sub TrovaParametri
Prova a guardare anche il formulario ComboBox.
- Allegati
-
- prova.odb
- (71.75 KiB) Scaricato 491 volte
OpenOffice 3.3 su Winxp / Libreoffice 3.3.2 su Mandriva 2010.2