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 :crazy:

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

Codice: Seleziona tutto

oForm.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. :super:
Scusa se te lo chiedo, ma se hai tempo e voglia puoi togliermi qualche dubbio?

ma cosa indica?
1

Codice: Seleziona tutto

"com.sun.star.frame.DispatchHelper"
2

Codice: Seleziona tutto

 ".uno:RefreshFormControl", "", 0, Array()

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.