Macro apertura di un form BASE da risultato tabellare

Creare una macro - Scrivere uno script - Usare le API
Rispondi
strike_lf
Messaggi: 17
Iscritto il: venerdì 20 gennaio 2017, 18:30

Macro apertura di un form BASE da risultato tabellare

Messaggio da strike_lf »

Salve!

ho trovato in rete questa macro che, partendo da una tabella contenente i risultati (record) di una ricerca/query di BASE, apre il relativo form associato in quel record.
Per intenderci: immaginate di aver filtrato i record secondo certi parametri e questi siano presentati su un form a struttura tabellare (ogni riga = un record, la cui chiave primaria è "ID_NC_PR").
Ne volete aprire uno per vederne i dettagli attraverso un altro form ("FORM_NC_PR").

Codice: Seleziona tutto

Sub ApriFormCompilazioneDaTabella ()
Dim prop(1) as New com.sun.star.beans.PropertyValue
forms=ThisComponent.Parent.getFormDocuments()
conn=ThisComponent.Parent.DataSource.getConnection("","")
prop(0).Name="ActiveConnection"
prop(0).Value=conn
prop(1).Name="OpenMode"
prop(1).Value="open"

oStartDoc = ThisComponent
oStartForm = oStartDoc.drawpage.forms.MainForm
i = oStartForm.columns.InventoryID.getInt

oNewDoc = forms.loadComponentFromURL("FORM_NC_PR","_blank",0,prop())
oNewDocForm = oNewDoc.drawpage.forms.MainForm
wait 100
oNewDocForm.Filter = "ID_NC_PR ='" & i & "'"
oNewDocForm.ApplyFilter = True
oNewDocForm.Reload
End Sub
Bene, questa macro in effetti lo fa ma solo se la tabella è nel MainForm.
E se io la avessi in un Subform come devo modificarla?

Al momento avviando la macro dal subform mi segnala "Errore di runtime BASIC. Variabile non definita." e si ferma sulla riga
forms=ThisComponent.Parent.getFormDocuments()

Purtroppo sono un pivello in fatto di programmazione con Basic per cui chiedo il vostro aiuto. Grazie!
Ultima modifica di strike_lf il mercoledì 1 febbraio 2017, 8:17, modificato 1 volta in totale.
LibreOffice 5 su Windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4016
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro apertura di un form da risultato tabellare

Messaggio da patel »

se stai parlando di BASE sarebbe meglio specificarlo nel titolo, non sono molti gli esperti di Base
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
strike_lf
Messaggi: 17
Iscritto il: venerdì 20 gennaio 2017, 18:30

Re: Macro apertura di un form BASE da risultato tabellare

Messaggio da strike_lf »

Giusta osservazione, davo per scontato che la macro rimanesse invariata ma in effetti, pensandoci, così non può essere.
Titolo aggiornato
LibreOffice 5 su Windows 10
Gaetanopr
Volontario
Volontario
Messaggi: 3291
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Macro apertura di un form BASE da risultato tabellare

Messaggio da Gaetanopr »

Sarebbe meglio se allegassi il db di esempio.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
strike_lf
Messaggi: 17
Iscritto il: venerdì 20 gennaio 2017, 18:30

Re: Macro apertura di un form BASE da risultato tabellare

Messaggio da strike_lf »

Volevo evitare di allegare il database perchè è già compilato con dati personali. Inoltre rimanda a parecchie tabelle e diventa tutto più difficile.

Mi permetto quindi di riutilizzare un database da me elaborato, poi migliorato e reso funzionante dal buon Charlie di questo Forum.
Rispetto alla versione da lui rilasciata mi sono permesso di creare il form di compilazione/visualizzazione dati per simulare la mia richiesta nel primo post e associare la macro alla tabella del form di ricerca/filtro di Charlie.

Ora osservo però un errore differente: Errore di runtime BASIC. Proprietà o metodo non trovato: ID.
in corrispondenza della riga i = oStartForm.columns.ID.getInt

Non ci capisco molto, vi devo chiedere di avere pazienza con me e le mie limitate capacità che sto acquisendo ora a suon di tentativi ed errori.
Grazie ancora!
Allegati
prova_interrogazioni_2.odb
(24.67 KiB) Scaricato 285 volte
LibreOffice 5 su Windows 10
strike_lf
Messaggi: 17
Iscritto il: venerdì 20 gennaio 2017, 18:30

Re: Macro apertura di un form BASE da risultato tabellare

Messaggio da strike_lf »

Chiedo scusa per la mia pedanteria, qualcuno ha un suggerimento da darmi al riguardo?

Vi è un modo per "ordinare" l'apertura di un determinato record cliccando sulla riga del form in formato tabellare?

Grazie ancora ai volenterosi!
LibreOffice 5 su Windows 10
vladboscaneanu
Volontario
Volontario
Messaggi: 378
Iscritto il: martedì 22 ottobre 2013, 1:35

Re: Macro apertura di un form BASE da risultato tabellare

Messaggio da vladboscaneanu »

Ciao, non è chiara la domanda.
Sento , pero, l'odore di qualcosa complicato.
LibreOffice ultima versione su Windows 10
strike_lf
Messaggi: 17
Iscritto il: venerdì 20 gennaio 2017, 18:30

Re: Macro apertura di un form BASE da risultato tabellare

Messaggio da strike_lf »

Proviamo con una immagine...
Allegati
explanation.jpg
LibreOffice 5 su Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8785
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Macro apertura di un form BASE da risultato tabellare

Messaggio da charlie »

Dal manuale di sopravvivenza:

Non fate cross posting
Evitate di postare contemporaneamente su più forum lo stesso argomento. Generalmente è considerato un comportamento scorretto, una mancanza di fiducia nei confronti dei Volontari che rispondono alle vostre domande.
Se proprio non potete farne a meno inserite il link del/dei forum utilizzati in maniera da condividere le soluzioni proposte.

https://forum.openoffice.org/en/forum/v ... 20&t=87288
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
strike_lf
Messaggi: 17
Iscritto il: venerdì 20 gennaio 2017, 18:30

Re: Macro apertura di un form BASE da risultato tabellare

Messaggio da strike_lf »

Chiedo scusa, credevo fossero due forum distaccati, sebbene collegati.

Ovviamente l'inglese permette una visibilità a un maggior numero di lettori, però in caso di risposta tecnica potrei avere difficioltà a comprendere.
Non era certo mia intenzione mancare di rispetto, semplicemente cerco un aiuto.
Eventualmente chiedo ai moderatori di cancellare questo thread italiano perchè qui si è...arenato...sotto il profilo della risoluzione del problema. Inutile far leggere ai visitatori post non risolutivi.
Oppure teniamo il messaggio iniziale e lo aggiornerò con la soluzione trovata.

Chiedo nuovamente scusa per la mia scarsa dimestichezza nell'uso del forum.
LibreOffice 5 su Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8785
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Macro apertura di un form BASE da risultato tabellare

Messaggio da charlie »

strike_lf ha scritto:credevo fossero due forum distaccati, sebbene collegati
Sono semplicemente due forum che si occupano degli stessi argomenti in 2 lingue diverse.
Il forum inglese è molto più autorevole perché può contare sulle risposte di volontari di tutto il mondo.
Chiarito questo, non c'è motivo perché tu non possa ricevere le risposte che cerchi anche qui. Sei solo invitato a condividere la soluzione, se viene trovata.
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
vladboscaneanu
Volontario
Volontario
Messaggi: 378
Iscritto il: martedì 22 ottobre 2013, 1:35

Re: Macro apertura di un form BASE da risultato tabellare

Messaggio da vladboscaneanu »

Mi dispiace, ma non posso darti la soluzione.
Quello che voi si può ottenere,solo che dovrei aggiornarmi su alcune cose, e per questo ci vuole del tempo.
Ultimamente sono un po incasinato.
Comunque,la tua soluzione sarebbe di far aprire un form, dal'evento click di una certa riga, e quel form dovrà essere filtrato,
in base ai criteri della riga selezionata.
Saluti.
LibreOffice ultima versione su Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8785
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Macro apertura di un form BASE da risultato tabellare

Messaggio da charlie »

Una soluzione, che funziona, è già stata data sul forum inglese: https://forum.openoffice.org/en/forum/v ... 88#p409252 .
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Rispondi