[Writer Formular] Sub verlassen / "Exit" wenn Wert > 0
Verfasst: Mi, 27.04.2011 10:54
hallo,
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.
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