Hier mein erster Versuch:
Code: Alles auswählen
sub Filter_setzen( oEvent as variant )
Dim oFeld as variant
Dim sID as variant
Dim oDoc as variant
Dim oForm as variant
Dim oDoc2 as variant
Dim oForm2 as variant
oDoc = StarDesktop.CurrentComponent
oForm = oDoc.DrawPage.Forms.GetByIndex(0)
REM die ID des ersten Formulars wird ausgelesen (ist z.B. wie hier ein Formularfeld)
oFeld = oForm.getByName("WertTextBox")
sID = oFeld.text
OpenForm( OEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments, _
OEvent.Source.Model.Parent.ActiveConnection, _
"Bestellungsformular")
REM => dann Filter setzen
oDoc2= ThisComponent
oForm2 = oDoc2.DrawPage.Forms(0)
oForm2.filter = "Bestellungsformular" + sID
REM =>setzen des Filters für das neue Formulardokument
oForm2.ApplyFilter=true
oForm2.reload
end sub
1. - Muss ich an den Variablen auch etwas ändern?
2. - Da ich ja mehrere Formulare in dem Dokument habe: Muss ich die direkt ansprechen? Es wird ja nicht genügen, mein Textfeld mit "WertTextBox" im Makro anzusprechen, wenn es im 'Nachbarformular' auch ein gleichnamiges Textfeld gibt (ist zwar nicht der Fall, aber muss doch sicherlich explizit angesprochen werden?)
Hier noch alle Namen für alles:
- die DB ist mit dem Namen "
BestellDB" registriert
- das Formulardokument (Writerdokument) hat den Namen "
Bestellungsformular"
- das in der Einführung beschriebene 2.Formular in diesem Dokument hat den Namen "
Artikelliste". Hier soll der zu filternde Wert aus der "
WertTextBox" ausgelesen und im Feld "
NumericField2" des "
TableControl1" ausgegeben werden. Und wie gesagt: All diese Felder befinden sich in dem Fomular "
Artikelliste"
Ich denke, dass all diese Namen wichtig und notwendig sind, weiß aber ich nicht wo und wie ich sie im Code unterbringen muss.
Hoffentlich strapaziere ich eure Nerven nicht gar zu sehr - aber ich bin für eure Hilfe unendlich dankbar.