Pagina 1 di 1

[Base][Macro] Accesso ad un subformulario

Inviato: lunedì 4 maggio 2020, 14:27
da charlie
I Subformulari si trovano in ordine gerarchico all'interno del formulario principale e possono essere raggiunti con il metodo getByName:

Codice: Seleziona tutto

oDoc = thisComponent
oDrawpage = oDoc.drawpage
oForm = oDrawpage.forms.getByName("MainForm")
oSubForm = oForm.getByName("SubForm")
oppure, senza passi intermedi:

Codice: Seleziona tutto

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

    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

    Sub MacroEsempio(oEvent As Object)
    	oField = oEvent.Source.Model
    	oSubForm = oField.Parent
    	...
    End Sub