Pagina 1 di 1
[Risolto] dBase: macro aggiornare form (o campo)
Inviato: martedì 1 novembre 2016, 0:31
da gengiskunk
Ciao a tutti,
sto cercando di fare un semplice database per inserimento e stampa di Consigli Orientativi per la scuola dove lavoro.
Vi allego il file in questione privo di dati sensibili.
Come si può vedere nel form "Anagrafe" ho inserito una casella combinata "scuole" collegata al campo "Consiglio".
Mi piacerebbe fare in modo che alla selezione di una delle scuole nelle opzioni della combo, la casella "Consiglio" venisse aggiornata automaticamente senza necessità di cliccarci sopra.
Premetto che sono alle primissime armi con LO Basic.
Ho cercato molto in rete per documentarmi ed ho provato anche seguendo i consigli trovati in
viewtopic.php?f=13&t=1819&p=8148&hilit= ... form#p8051, ma purtroppo senaza successo (inquesto caso, se non mi sbaglio, mi dice ...modulo non trovato: Drawpage).
Potreste per cortesia darmi qualche suggerimento per risolvere?
Ringrazio anticipatamente per l'attenzione.
Re: macro aggiornare form (o campo)
Inviato: martedì 1 novembre 2016, 9:10
da patel
ciao, modifica il titolo del primo post indicando che usi Dbase, non sono molti gli utenti che lo conoscono bene
Re: dBase: macro aggiornare form (o campo)
Inviato: martedì 1 novembre 2016, 11:39
da gengiskunk
Ciao a tutti, ho provato anche questa soluzione
Codice: Seleziona tutto
Sub refresh (Evento)
dim ContestoDB as object
dim oForm as object
ContestoDB = createUnoService("com.sun.star.sdb.DatabaseContext")
oForm = ThisDatabaseDocument.FormDocuments.GetByName("Anagrafe")
oForm.refresh()
End sub
ma ottengo il messaggio
Codice: Seleziona tutto
Errore di runtime BASIC.
Proprietà o metodo non trovato: refresh.
Non capisco dove sbaglio

Re: dBase: macro aggiornare form (o campo)
Inviato: martedì 1 novembre 2016, 12:07
da patel
non conosco dbase, ma nella sintassi oForm.refresh() dopo il punto occorre mettere un metodo o una proprietà e questi non li puoi creare tu, devi usare quelli relativi all'oggetto che stai usando. In conclusione o è sbagliato scrivere oForm.refresh() oppure è sbagliato dare alla sub il nome refresh
Re: dBase: macro aggiornare form (o campo)
Inviato: martedì 1 novembre 2016, 12:29
da gengiskunk
Ciao Patel,
ho cambiato il nome alla sub ma nulla di fatto.....
Re: dBase: macro aggiornare form (o campo)
Inviato: martedì 1 novembre 2016, 13:17
da patel
inoltre non è chiaro a cosa serve la riga
Codice: Seleziona tutto
ContestoDB = createUnoService("com.sun.star.sdb.DatabaseContext")
visto che poi non utilizzi ContestoDB
Re: dBase: macro aggiornare form (o campo)
Inviato: martedì 1 novembre 2016, 13:18
da Gaetanopr
Per aggiornare un Form solitamente si usa il metodo reload
Prova a cambiare la macro refresh con questa
Codice: Seleziona tutto
sub aggiorna
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:RefreshFormControl", "", 0, Array())
end sub
Re: dBase: macro aggiornare form (o campo)
Inviato: martedì 1 novembre 2016, 16:24
da gengiskunk
Perfetto Gaetanopr!!
Funziona alla grande.
Scusa se te lo chiedo, ma se hai tempo e voglia puoi togliermi qualche dubbio?
ma cosa indica?
1
2
Re: [Risolto] dBase: macro aggiornare form (o campo)
Inviato: mercoledì 2 novembre 2016, 11:35
da Gaetanopr
Quella che ti ho fornito è una macro registrata, qua troverai dettagliate spiegazioni.
https://wiki.openoffice.org/wiki/IT/Doc ... mple_macro
Re: [Risolto] dBase: macro aggiornare form (o campo)
Inviato: mercoledì 2 novembre 2016, 15:30
da gengiskunk
Spulcerò il wiki.
Grazie ancora.