ich versuche seit gestern Abend nachfolgendes zu Realisieren, bleib aber immer an Fehlermeldungen wie unerwartetes "End Sub" hängen.
Mit 4 relativ identischen Routinen (ginge besimmt einfacher) prüfe ich ob in der jeweiligen Gruppe ein Radiobutton geklickt wurde.
(Diese 4 fasse ich der Einfachheit halber später nochmal zusammen)
Wenn ja, dann is alles prima - wenn nein, zähle ich eine Int-Variable "iError" um 1 hoch.
Nun möchte ich, daß z.B. die für Speichern zuständige Routine erst dann ausgeführt werden kann, wenn "iError" = 0 ist, ansonsten soll die Sub verlassen werden bzw. der User muß den Fehler beheben bevor er Speichern kann.
Code: Alles auswählen
Sub proofOptGrp1
iError = 0
oForm = thisComponent.drawpage.forms.getbyindex(0)
oForm.getGroupByName("opt_grp1", aOpt1)
vGrpFail = oForm.getbyName("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("opt_grp2", aOpt2)
vGrpFail = oForm.getbyName("grp2_fail")
aWorkHrs() = Array ("txt_Name1","num_StdMoName1","num_StdDiName1","num_StdMiName1","num_StdDoName1", _
"num_StdFrName1","num_StdSaName1","num_StdSoName1","num_StdAzGesName1","num_StdFzGesName1", _
"txt_Name2","num_StdMoName2","num_StdDiName2","num_StdMiName2","num_StdDoName2","num_StdFrName2", _
"num_StdSaName2","num_StdSoName2","num_StdAzGesName2","num_StdFzGesName2", _
"txt_Name3","num_StdMoName3","num_StdDiName3","num_StdMiName3","num_StdDoName3","num_StdFrName3", _
"num_StdSaName3","num_StdSoName3","num_StdAzGesName3","num_StdFzGesName3", _
"txt_Name4","num_StdMoName4","num_StdDiName4","num_StdMiName4","num_StdDoName4","num_StdFrName4", _
"num_StdSaName4","num_StdSoName4","num_StdAzGesName4","num_StdFzGesName4", _
"txt_Name5","num_StdMoName5","num_StdDiName5","num_StdMiName5","num_StdDoName5","num_StdFrName5", _
"num_StdSaName5","num_StdSoName5","num_StdAzGesName5","num_StdFzGesName5", _
"txt_Name6","num_StdMoName6","num_StdDiName6","num_StdMiName6","num_StdDoName6","num_StdFrName6", _
"num_StdSaName6","num_StdSoName6","num_StdAzGesName6","num_StdFzGesName6", _
"txt_Name7","num_StdMoName7","num_StdDiName7","num_StdMiName7","num_StdDoName7","num_StdFrName7", _
"num_StdSaName7","num_StdSoName7","num_StdAzGesName7","num_StdFzGesName7", _
"txt_Name8","num_StdMoName8","num_StdDiName8","num_StdMiName8","num_StdDoName8","num_StdFrName8", _
"num_StdSaName8","num_StdSoName8","num_StdAzGesName8","num_StdFzGesName8", _
"num_KM","num_U25","num_U50","num_U100")
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 = "Lohnnachweis" Then
vGrpFail.text = ""
MsgBox "Einträge in den roten Feldern" & CHR$(10) & "sind zwingend erforderlich", 0+48, "Achtung"
for i = 0 to 83
aText(i) = oForm.getByName(aWorkHrs(i))
aText(i).ReadOnly = false
aText(i).BackgroundColor = RGB(255,119,119)
next i
Elseif bSelected And s2_2 = "zum Festpreis" Then
vGrpFail.text = ""
for i = 0 to 83
aText(i) = oForm.getByName(aWorkHrs(i))
aText(i).ReadOnly = true
aText(i).BackgroundColor = RGB(255,255,255)
next i
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("opt_grp3", aOpt3)
vGrpFail = oForm.getbyName("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 Then
vGrpFail.text = ""
Else
vGrpFail.text = "!"
MsgBox errormsg1, 0+48, "Achtung"
iError = iError + 1
End If
end sub
'--------------------------------------------------------------------------------------------- funktioniert
Sub proofOptGrp4
oForm = thisComponent.drawpage.forms.getbyindex(0)
oForm.getGroupByName("opt_grp4", aOpt4)
vGrpFail = oForm.getbyName("grp4_fail")
aOrder() = Array ("txt_ArtNr1","txt_ArtBez1","num_ArtAnz1","txt_ArtNr2","txt_ArtBez2","num_ArtAnz2","txt_ArtNr3","txt_ArtBez3","num_ArtAnz3", _
"txt_ArtNr4","txt_ArtBez4","num_ArtAnz4","txt_ArtNr5","txt_ArtBez5","num_ArtAnz5","txt_ArtNr6","txt_ArtBez6","num_ArtAnz6", _
"txt_ArtNr7","txt_ArtBez7","num_ArtAnz7","txt_ArtNr8","txt_ArtBez8","num_ArtAnz8")
errormsg1 = "In der markierten Optionsgruppe liegt ein Fehler vor" & CHR$(10) & "BITTE PRÜFEN!"
bSelected = False
For i = LBound(aOpt4) to UBound(aOpt4)
thisElement = aOpt4(i)
If thisElement.ServiceName = "stardiv.one.form.component.RadioButton" Then
If thisElement.State Then
bSelected = True
s4_1 = thisElement.Name
s4_2 = thisElement.Label
Exit For
End If
End If
Next i
If bSelected And s4_2 = "Ja" Then
vGrpFail.text = ""
MsgBox "Einträge in den roten Feldern" & CHR$(10) & "sind zwingend erforderlich", 0+48, "Achtung"
for i = 0 to 23
aText(i) = oForm.getByName(aOrder(i))
aText(i).ReadOnly = false
aText(i).BackgroundColor = RGB(255,119,119)
next i
Elseif bSelected And s4_2 = "Nein" Then
vGrpFail.text = ""
for i = 0 to 23
aText(i) = oForm.getByName(aOrder(i))
aText(i).ReadOnly = true
aText(i).BackgroundColor = RGB(255,255,255)
next i
Else
vGrpFail.text = "!"
MsgBox errormsg1, 0+48, "Achtung"
iError = iError + 1
End If
end sub
'--------------------------------------------------------------------------------------------- funktioniert
Sub proofAllOptGrp
proofOptGrp1
proofOptGrp2
proofOptGrp3
proofOptGrp4
End Sub
'--------------------------------------------------------------------------------------------- funktioniert
Sub Save_as_ODT
proofAllOptGrp
msgbox iError
if iError > 0 then
MsgBox "Sie haben noch "& iError &" Fehler zu beheben", 0+48, "Achtung"
' Sub verlassen
else
oform = thisComponent.drawpage.forms.getbyindex(0)
aText = oForm.getByName("txt_oName")
if aText.text = "" then
datname = "blanc"
else
datname = aText.text
end if
path = "C:/xyz/Auftraege/"
extension = ".odt"
odturl = "file:///" + path + datname + extension
thisComponent.storeToURL(odturl, Array())
clearForm
End Sub
'--------------------------------------------------------------------------------------------- funktioniert
Sub Save_as_PDF
proofAllOptGrp
msgbox iError
if iError > 0 then
MsgBox "Sie haben noch "& iError &" Fehler zu beheben", 0+48, "Achtung"
' Sub verlassen
else
oform = thisComponent.drawpage.forms.getbyindex(0)
aText = oForm.getByName("txt_oName")
if aText.text = "" then
datname = "blanc"
else
datname = aText.text
end if
path = "C:/xyz/Auftraege/PDF/"
extension = ".pdf"
pdfurl = "file:///" + path + datname + extension
dim pdfProperties(1) as new com.sun.star.beans.PropertyValue
pdfProperties(0).Name = "FilterName"
pdfProperties(0).Value = "writer_pdf_Export"
thisComponent.storeToURL(pdfurl, pdfProperties())
clearForm
End Sub