mein vor Tagen an dieser Stelle viewtopic.php?f=18&t=50804 beschriebenes Problem habe ich nun damit zu lösen versucht, daß ich die Makromodule die an derweweilen Subform hingen in die mainform als eigenständige Module implementiert habe, da sie offensichtlich dort auch erwartet werden. Um "Verwechslungen" zu vermeiden tragen die beiden Prüfmodule (je Subform eins) einen eindeutigen Name und die Options bzw. Warnfelder habe ich ebenfalls eindeutig angepasst.
Nun werden die Routinen wohl gefunden, doch es harkt beim anklicken eines Optionfeldes, das mit der Fehlermeldung
quittiert wird! Angemeckert wird je nach Klick/Gruppe dann: vGrpFail = oForm.getbyName("tt_grp1_fail")
der Code der Subform sieht so aus:
Code: Alles auswählen
' FormObjects
Dim oForm As Object
Dim aField(25), aText(25)
Dim aOpt1(), aOpt2(), aOpt3()
Dim s1_1$, s1_2$, s2_1$, s2_2$, s3_1$, s3_2$
' clearForm
Dim n
Dim aFail(2), aGrpFail(2)
' ErrorProof
Dim vGrpFail
Dim errormsg1$
Dim iError As Integer
'---------------------------------------------------------------------------------------------
Sub clearForm
aFail() = Array ("tt_grp1_fail","tt_grp2_fail","tt_grp3_fail")
With ThisComponent.DrawPage.Forms.GetByName("subForm_TT")
For n = 0 to .Count - 1
On Error Resume Next
If Right(.GetByIndex(n).ServiceName, 11) = "RadioButton" Then
.GetByIndex(n).State = 0
End If
Next n
End With
oForm = thisComponent.drawpage.forms.getbyindex(0)
For i = 0 to 2
aGrpFail(i) = oForm.getByName(aFail(i))
aGrpFail(i).Text=""
Next i
End Sub
'--------------------------------------------------------------------------------------------- funktioniert
Sub proofOptGrp1
iError = 0
oForm = thisComponent.drawpage.forms.getbyindex(0)
oForm.getGroupByName("tt_opt_grp1", aOpt1)
vGrpFail = oForm.getbyName("tt_grp1_fail")
errormsg1 = "In der markierten Optionsgruppe liegt ein Fehler vor" & CHR$(10) & "BITTE PRÜFEN!"
bSelected = False
For i = LBound(aOpt1) to UBound(aOpt1)
thisElement = aOpt1(i)
If thisElement.ServiceName = "stardiv.one.form.component.RadioButton" Then
If thisElement.State Then
bSelected = True
s1_1 = thisElement.Name
s1_2 = thisElement.Label
Exit For
End If
End If
Next i
If bSelected Then
vGrpFail.text = ""
Else
vGrpFail.text = "!"
MsgBox errormsg1, 0+48, "Achtung"
iError = 1
End If
end sub
'--------------------------------------------------------------------------------------------- funktioniert
Sub proofOptGrp2
oForm = thisComponent.drawpage.forms.getbyindex(0)
oForm.getGroupByName("tt_opt_grp2", aOpt2)
vGrpFail = oForm.getbyName("tt_grp2_fail")
errormsg1 = "In der markierten Optionsgruppe liegt ein Fehler vor" & CHR$(10) & "BITTE PRÜFEN!"
bSelected = False
For i = LBound(aOpt2) to UBound(aOpt2)
thisElement = aOpt2(i)
If thisElement.ServiceName = "stardiv.one.form.component.RadioButton" Then
If thisElement.State Then
bSelected = True
s2_1 = thisElement.Name
s2_2 = thisElement.Label
Exit For
End If
End If
Next i
If bSelected And s2_2 = ":" Then
vGrpFail.text = ""
MsgBox "Einträge in den nachfolgenden" & CHR$(10) & "Feldern sind zwingend erforderlich", 0+48, "Achtung"
Elseif bSelected And s2_2 = "." Then
vGrpFail.text = ""
Else
vGrpFail.text = "!"
MsgBox errormsg1, 0+48, "Achtung"
iError = iError + 1
End If
end sub
'--------------------------------------------------------------------------------------------- funktioniert
Sub proofOptGrp3
oForm = thisComponent.drawpage.forms.getbyindex(0)
oForm.getGroupByName("tt_opt_grp3", aOpt3)
vGrpFail = oForm.getbyName("tt_grp3_fail")
errormsg1 = "In der markierten Optionsgruppe liegt ein Fehler vor" & CHR$(10) & "BITTE PRÜFEN!"
bSelected = False
For i = LBound(aOpt3) to UBound(aOpt3)
thisElement = aOpt3(i)
If thisElement.ServiceName = "stardiv.one.form.component.RadioButton" Then
If thisElement.State Then
bSelected = True
s3_1 = thisElement.Name
s3_2 = thisElement.Label
Exit For
End If
End If
Next i
If bSelected And s3_2 = ":" Then
vGrpFail.text = ""
MsgBox "Einträge in den nachfolgenden" & CHR$(10) & "Feldern sind zwingend erforderlich", 0+48, "Achtung"
Elseif bSelected And s3_2 = "." Then
vGrpFail.text = ""
Else
vGrpFail.text = "!"
MsgBox errormsg1, 0+48, "Achtung"
iError = iError + 1
End If
end sub
'--------------------------------------------------------------------------------------------- funktioniert
Sub proofAllOptGrp
proofOptGrp1
proofOptGrp2
proofOptGrp3
End Sub