Pannello di Controllo Moderatore ]

[Base][Macro] Accesso ad un subformulario

Regole del forum
Non inserire domande qui, utilizzare le altre sezioni con un link all'argomento di interesse

[Base][Macro] Accesso ad un subformulario

Messaggioda charlie » lunedì 4 maggio 2020, 14:27

I Subformulari si trovano in ordine gerarchico all'interno del formulario principale e possono essere raggiunti con il metodo getByName:
Codice: Seleziona tutto   Espandi visualeStringi visuale
oDoc = thisComponent
oDrawpage = oDoc.drawpage
oForm = oDrawpage.forms.getByName("MainForm")
oSubForm = oForm.getByName("SubForm")

oppure, senza passi intermedi:
Codice: Seleziona tutto   Espandi visualeStringi visuale
oSubForm=thisComponent.drawpage.forms.getByName("MainForm").getByName("SubForm")


L'uso del metodo getByIndex() è possibile, ma è sconsigliato in quanto richiede la conoscenza certa dell'indice da usare.

È invece molto efficiente l'accesso tramite l'evento che attiva la macro:
  • Evento del SubFormulario
    tramite un evento dello stesso (es. Prima della modifica dei record di dati):
    Codice: Seleziona tutto   Espandi visualeStringi visuale
    Sub MacroEsempio(oEvent As Object)
       oSubForm = oEvent.Source
       ...
    End Sub

  • Evento di un Controllo del SubFormulario
    tramite un evento di un controllo dello stesso (es. Perdita del punto focale):
    Codice: Seleziona tutto   Espandi visualeStringi visuale
    Sub MacroEsempio(oEvent As Object)
       oField = oEvent.Source.Model
       oSubForm = oField.Parent
       ...
    End Sub
charlie
macOS 10.12 Sierra: Open Office 4.1.7 - LibreOffice 6.2.8.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6840
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Torna a Esempi ed Appunti

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite