| Standard | 
     AA_Variablen | 
     GENOBASE | 
       | 
     Basic | 
       | 
     4 | 
     SUB GENOBASE 	msgbox "Geno.Base ist eine Datenbank für die Verwaltung von Genossenschaftsmitgliedern" 	msgbox "Autor: Gisbert Friege" END SUB  | 
    
    
     | Standard | 
     Abfragen_CSV | 
     _ExportPfad | 
       | 
     Basic | 
       | 
     38 | 
     SUB _ExportPfad (oEvent AS OBJECT) 	DIM oDoc AS OBJECT 	DIM oDB AS OBJECT 	DIM oFeld AS OBJECT 	oDoc = thisComponent	 	oDB = ThisComponent.Parent 	stDBDir = Left(oDB.Location,Len(oDB.Location)-Len(oDB.Title)) 	oDrawpage = oDoc.Drawpage 	stZusatz = oEvent.Source.Model.Tag 	Select Case stZusatz     	Case "Email" 			stPrintDir = stDBDir & "MailMerge/" 			xstPrintDir = Mid(stPrintDir,9) 			oForm = oDrawpage.Forms.getByName("Formular_Pfad") 			oFeld1 = oForm.getByName("Beschriftungsfeld_PfadDateiName") 			oFeld1.Label = " Exportpfad: " & xstPrintDir	 		Case "BZSt_Export" 			stPrintDir = stDBDir & "BZSt_Export/" 			xstPrintDir = Mid(stPrintDir,9) 			oForm = oDrawpage.Forms.getByName("Formular_Pfad") 			oFeld1 = oForm.getByName("Beschriftungsfeld_PfadDateiName") 			oFeld1.Label = " Exportpfad: " & xstPrintDir	 		Case "BZSt_Import" 			stPrintDir = stDBDir & "BZSt_Import/" 			xstPrintDir = Mid(stPrintDir,9) 			oForm2 = oDrawpage.Forms.getByName("Formular_ImportDatei") 			oFeld2 = oForm2.getByName("DateiPfadSuche") 			oFeld2.Text = xstPrintDir	 		Case Else 			stPrintDir = stDBDir 			xstPrintDir = Mid(stPrintDir,9) 			oForm = oDrawpage.Forms.getByName("Formular_Pfad") 			oFeld1 = oForm.getByName("Beschriftungsfeld_PfadDateiName") 			oFeld1.Label = " Datenbankpfad: " & xstPrintDir	 	End Select END SUB  | 
    
    
     | Standard | 
     Abfragen_CSV | 
     Abfrage_in_CSV | 
       | 
     Basic | 
     7b - Mailmerge|Schaltfläche EmailsAnMitgliederNRD (Control) 7b - Mailmerge|Schaltfläche EmailsAnMitglieder (Control) 7b - Mailmerge|Schaltfläche EmailsAnMitgliederStrom (Control) 7b - Mailmerge|Schaltfläche EmailsAnMitgliederCampain (Control) 7b - Mailmerge|Schaltfläche EmailsAnInteressenten (Control) 7b - Mailmerge|Schaltfläche EmailsAnInteressentenStrom (Control) 8g - BZStOnline|Schaltfläche KiStAM-Abfrage (Control) 8g - BZStOnline|Schaltfläche KiStAM-Abfrage (Control) 8g - BZStOnline|Schaltfläche KiSt-ID-Abfrage (Control) 8g - BZStOnline|Schaltfläche KiSt-noID-Abfrage (Control) 8g - BZStOnline|Schaltfläche KiSt-alle-Abfrage (Control) | 
     138 | 
     SUB Abfrage_in_CSV (oEvent AS OBJECT) DIM oDatenDatei AS OBJECT DIM oAbfragen AS OBJECT DIM oAbf AS OBJECT DIM oAbfrageergebnis AS OBJECT DIM stQuery AS STRING DIM iNumber As Integer DIM sDatei AS STRING DIM stTag AS STRING DIM sp AS INTEGER DIM splast AS INTEGER
  DIM oDoc AS OBJECT DIM oDrawpage AS OBJECT DIM oForm AS OBJECT DIM oFeld1 AS OBJECT DIM stDBDir AS STRING
  	oDoc = thisComponent	 	oDB = ThisComponent.Parent 	stDBDir = Left(oDB.Location,Len(oDB.Location)-Len(oDB.Title))	 	oDrawpage = oDoc.Drawpage 	oForm = oDrawpage.Forms.getByName("Formular_Pfad") 	oFeld1 = oForm.getByName("Beschriftungsfeld_PfadDateiName")
  	stTag = oEvent.Source.Model.Tag 	aForms() = Split(stTag, ",")		stName = Trim(aForms(0)) 	stZusatz = Trim(aForms(1)) 	
  	Select Case stZusatz    	Case "Email" 		stPrintDir = stDBDir & "MailMerge/" 		stExt = ".csv"    	Case "SEPA" 		stPrintDir = stDBDir & "SEPAXML/" 		stExt = ".xml" 	Case Else 		stPrintDir = stDBDir & "BZSt_Export/" 		stExt = ".csv" 	End Select
 
  	xstPrintDir = Mid(stPrintDir,9) 	oFeld1.Label = " Exportpfad: " & xstPrintDir	
  	sDatei = stPrintDir & stName & ".csv" 	IF stZusatz = "SEPA" THEN sDatei = stPrintDir & stName & stExt
  	janein = msgbox("Wirklich in die Datei" & ChrChr$) & ChrstName& stName  & stExt & ChrChr$) & Chrausgeben"ausgeben ?",256+32+4,"Überleg nochmal:") 	IF janein = 7 THEN EXIT SUB 	 	If Fileexists(sPfadDatei) Then Kill sDatei	 	iNumber = Freefile 	Open sDatei For Output As iNumber
  	oDatenquelle = ThisComponent.Parent.CurrentController 	If NOT (oDatenquelle.isConnected()) THEN 		oDatenquelle.connect() 	END IF 	oVerbindung = oDatenquelle.ActiveConnection() 	oSQL_Anweisung = oVerbindung.createStatement() 	oDatenDatei = oDatenquelle.DataSource 	 	oAbfragen = oDatenDatei.getQueryDefinitions() 	 	IF (stZusatz = "Elster" ) THEN 	oAbf = oAbfragen.getByName( "Elsterversion") 	stQuery = oAbf.command 	oAbfrageergebnis = oSQL_Anweisung.executeQuery(stQuery) 	oAbfrageergebnis.next 	sWert = oAbfrageergebnis.getString(1) 	Print #iNumber, sWert 	ENDIF 	 	oAbf = oAbfragen.getByName( stName ) 	stQuery = oAbf.command 	oAbfrageergebnis = oSQL_Anweisung.executeQuery(stQuery)
  	splast= oAbfrageergebnis.Columns.Count 	 		stSpalten()=oAbfrageergebnis.Columns.ElementNames 	stKopfzeile = "" 	sp = 0 	WHILE sp < (splast - 1) 		stKopfzeile = stKopfzeile & stSpalten(sp)  & ";" 		sp = sp + 1 	WEND 		stKopfzeile = stKopfzeile & stSpalten(sp) 	Print #iNumber, stKopfzeile
  		zaehler = 0 WHILE oAbfrageergebnis.next 	stZeile = "" 	sp=1 	WHILE sp < splast + 1 				sWert = oAbfrageergebnis.getString(sp) 		IF (Len(sWert)=10) AND ((Mid(sWert,5,1)) = "-") AND ((Mid(sWert,8,1)) = "-") THEN 			stZeile = stZeile & Datumgedreht(sWert) & ";"  		ELSE 			stZeile = stZeile & oAbfrageergebnis.getString(sp) & ";"  		END IF 		sp = sp + 1 	WEND 	stZeile = Left(stZeile,Len(stZeile)-1) 	Print #iNumber, stZeile 	zaehler=zaehler+1 WEND Close #iNumber msgbox ( zaehler & " Datensätze geschrieben.", 64 , "fertig:") END SUB  | 
    
    
     | Standard | 
     Abfragen_CSV | 
     Antwort_CSV_holen | 
       | 
     Basic | 
     8g - BZStOnline|Schaltfläche KiSt-holen (Control) 8g - BZStOnline|Schaltfläche ID-holen (Control) | 
     174 | 
     SUB Antwort_CSV_holen (oEvent AS OBJECT) DIM oDatenDatei AS OBJECT DIM oAbfragen AS OBJECT DIM oAbfrageergebnis AS OBJECT DIM stQuery AS STRING DIM iNumber As Integer DIM sDatei AS STRING DIM stTag AS STRING DIM sp AS INTEGER DIM splast AS INTEGER DIM z AS INTEGER
  	stTag = oEvent.Source.Model.Tag 	aForms() = Split(stTag, ",")	 	stTyp = Trim(aForms(0)) 	stZiel = Trim(aForms(1))			 	laengeTyp = Len(stTyp) 	 oFeld = oEvent.Source.Model oForm = oFeld.Parent oFeld2 = oForm.getByName( "Beschriftungsfeld_Datei") sDatei = oFeld2.Label
 
  	laengeDatei = Len(sDatei) 	zaehler=1 	While ((zaehler <= laengeDatei-laengeTyp) and (mid (sDatei,zaehler,laengeTyp ) <> stTyp)) 		zaehler = zaehler+1 	Wend 	if zaehler > laengeDatei - laengeTyp then 		msgbox ("Bitte erst eine Datei mit " & stTyp & " auswählen!",48,"Falscher Dateiyp") 		exit sub 	end if
  xsDatei = sDatei xsDatei_n = InStr(sDatei,"/") while xsDatei_n <>0  	xsDatei = Right(xsDatei,Len(xsDatei)-xsDatei_n) 	xsDatei_n = InStr(xsDatei,"/") wend
  	janein = msgbox("Sollen wirklich Daten aus der Datei" & ChrChr$) & ">>" & ChrxsDatei xsDatei & ChrChr$) & "<<" & Chrin13) & "in die DatenbankTabelle" & ChrChr$) & ">>" & ChrstZiel& stZiel & ChrChr$) & "<<" & Chreingeleseningelesen werden Schau6+32+4,"Schau genau!") 	IF janein = 7 THEN EXIT SUB 	 	If Fileexists(sDatei) Then  		Msgbox("Datei gefunden.",64,"") 	ELSE 		Msgbox("Datei nicht gefunden.",48,"Problem")	 		EXIT SUB 	END IF	 	iNumber = Freefile 	Open sDatei For Input As iNumber     Line Input #iNumber, sLine     Line Input #iNumber, sLine
  	oDatenquelle = ThisComponent.Parent.CurrentController 	If NOT (oDatenquelle.isConnected()) THEN 		oDatenquelle.connect() 	END IF 	oVerbindung = oDatenquelle.ActiveConnection() 	oSQL_Anweisung = oVerbindung.createStatement()
  zaehler = 0 IF stTyp = "IdNr" THEN     While Not eof(iNumber)         Line Input #iNumber, sLine         If sLine <>"" Then  				aFelder() = Split(sLine, ";")  				stMNr = Trim(aFelder(2))  				stMNr = Mid(stMNr,2,Len(stMNr)-2)  				stRetC = Trim(aFelder(17))  				stRetC = Mid(stRetC,2,Len(stRetC)-2)  				stIDNr = Trim(aFelder(18))  				stIDNr = Mid(stIDNr,2,Len(stIDNr)-2) 			IF (stRetC <> "1") THEN
 
  				stSql_MNrTest = " SELECT  """ + stZiel + """.""Mitgliedsnummer"" ""MNrTest"" FROM """ + stZiel + """ WHERE  """ + stZiel + """.""Mitgliedsnummer"" = '" + stMNr + "' " 				oResult_MNrTest = oSQL_Anweisung.executeQuery(stSql_MNrTest) 				IF NOT oResult_MNrTest.next THEN							stSql_neu = " INSERT INTO """ + stZiel + """ (""Mitgliedsnummer"") VALUES ('" + stMNr + "' ) " 					oResult_neu = oSQL_Anweisung.executeQuery(stSql_neu) 					msgbox ("Mitgliedsnummer " & stMNr & " neu eingefügt",64,stZiel) 				END IF 				stSql_Ziel = "UPDATE """ + stZiel + """ SET ""Identifikationsnummer"" = '" + stIDNr + "' WHERE ""Mitgliedsnummer"" ='" + stMNr + "' " 				oResult_Ziel = oSQL_Anweisung.executeQuery(stSql_Ziel) 				zaehler = zaehler + 1 			END IF         End If     Wend END IF
  IF stTyp = "KiStAM" THEN     While Not eof(iNumber)         Line Input #iNumber, sLine         If sLine <>"" Then  				aFelder() = Split(sLine, ";")  				stMNr = Trim(aFelder(2))  				stMNr = Mid(stMNr,2,Len(stMNr)-2)  				stRetC = Trim(aFelder(7))  				stRetC = Mid(stRetC,2,Len(stRetC)-2)  				stKiStSatz = Trim(aFelder(8))  				stKiStSatz = Mid(stKiStSAtz,2,Len(stKiStSatz)-2)  				stOeId = Trim(aFelder(9))  				stOeId = Mid(stOeId,2,Len(stOeId)-2) 			IF ((stRetC <> "1") AND (stOeId <> "")) THEN 				stSql_Ziel = "UPDATE """ + stZiel + """ SET ""KiStproz"" = " + stKiStSatz + " WHERE ""Mitgliedsnummer"" ='" + stMNr + "' " 				oResult_Ziel = oSQL_Anweisung.executeQuery(stSql_Ziel) 				stSql_Ziel = "UPDATE """ + stZiel + """ SET ""KiStOrgan"" = '" + stOeId + "' WHERE ""Mitgliedsnummer"" ='" + stMNr + "' " 				oResult_Ziel = oSQL_Anweisung.executeQuery(stSql_Ziel) 				zaehler = zaehler +1 			END IF 	   End If     Wend END IF 
  IF stTyp = "KiStAKOM" THEN     While Not eof(iNumber)         Line Input #iNumber, sLine         If sLine <>"" Then  				aFelder() = Split(sLine, ";")  				stMNr = Trim(aFelder(2))  				stMNr = Mid(stMNr,2,Len(stMNr)-2)  				stRetC = Trim(aFelder(7))  				stRetC = Mid(stRetC,2,Len(stRetC)-2)  				stKiStSatz = Trim(aFelder(8))  				stKiStSatz = Mid(stKiStSAtz,2,Len(stKiStSatz)-2)  				stOeId = Trim(aFelder(9))  				stOeId = Mid(stOeId,2,Len(stOeId)-2) 			IF ((stRetC <> "1") AND (stOeId <> "")) THEN 				stSql_Ziel = "UPDATE """ + stZiel + """ SET ""KiStproz"" = " + stKiStSatz + " WHERE ""Mitgliedsnummer"" ='" + stMNr + "' " 				oResult_Ziel = oSQL_Anweisung.executeQuery(stSql_Ziel) 				stSql_Ziel = "UPDATE """ + stZiel + """ SET ""KiStOrgan"" = '" + stOeId + "' WHERE ""Mitgliedsnummer"" ='" + stMNr + "' " 				oResult_Ziel = oSQL_Anweisung.executeQuery(stSql_Ziel) 				zaehler = zaehler +1 			END IF 	   End If     Wend END IF 
  Close #iNumber IF zaehler = 1 THEN 	msgbox (zaehler & " Datensatz geschrieben.",64,stZiel) 	ELSE 	msgbox (zaehler & " Datensätze geschrieben.",64,stZiel) END IF END SUB  | 
    
    
     | Standard | 
     Abfragen_CSV | 
     Dateiauswahl | 
       | 
     Basic | 
       | 
     23 | 
     FUNCTION Dateiauswahl(stFormular AS String) AS String 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oFeld1 AS OBJECT 	DIM oFeld2 AS OBJECT 	DIM stPfad AS STRING 	oDoc = thisComponent	 	oDrawpage = oDoc.Drawpage 	oForm = oDrawpage.Forms.getByName(stFormular) 	oFeld2 = oForm.getByName("Tabellen-Steuerelement-Pfade") 	oSpalte1 = oFeld2.getByNAme ("Textfeld_Pfade") 	oSpalte2 = oFeld2.getByNAme ("Textfeld_Dateiname") 	stDateiauswahl = oSpalte1.getCurrentValue() 	stDateiauswahl = stDateiauswahl & "\" & oSpalte2.getCurrentValue() magbox stDateiauswahl	 	Dateiauswahl = stDateiauswahl END FUNCTION  | 
    
    
     | Standard | 
     Abfragen_CSV | 
     Datumgedreht | 
       | 
     Basic | 
     Abfrage_in_CSV (Procedure) | 
     4 | 
     FUNCTION Datumgedreht ( stDat AS STRING ) AS STRING 			stmutad() = split (stDat,"-")	 			Datumgedreht = stmutad(2) & "." & stmutad(1) & "." & stmutad(0) END FUNCTION  | 
    
    
     | Standard | 
     Abfragen_CSV | 
     Eintragen | 
     ✔ | 
     Basic | 
     Über...|Schaltfläche TEST (Control) | 
       | 
       | 
    
    
     | Standard | 
     Abfragen_CSV | 
     Pfad_Einlesen | 
       | 
     Basic | 
     8g - BZStOnline|DateiPfadSuche (Control) | 
     28 | 
     SUB Pfad_Einlesen( oEvent AS OBJECT) 	DIM oForm AS OBJECT 	DIM oFeld AS OBJECT 	DIM oFeld2 AS OBJECT 	DIM oFeld3 AS OBJECT 	DIM stUrl AS STRING 	DIM xsDatei AS STRING 	oFeld = oEvent.Source.Model 	oForm = oFeld.Parent 	oFeld2 = oForm.getByName( "Beschriftungsfeld_Datei") 	IF oFeld.Text <> "" THEN 		stUrl = ConvertToUrl(oFeld.Text) 		oFeld2.Label= stUrl 	END IF
  	xsDatei = stUrl 	xsDatei_n = InStr(stUrl,"/") 	while xsDatei_n <>0  		xsDatei = Right(xsDatei,Len(xsDatei)-xsDatei_n) 		xsDatei_n = InStr(xsDatei,"/") 	wend 	oFeld3 = oForm.getByName( "Beschriftungsfeld_nurDatei") 	oFeld3.Label = xsDatei END SUB  | 
    
    
     | Standard | 
     Aktualisierung | 
     ExportPfad | 
       | 
     Basic | 
     7a - MitgliederBriefe|Beschriftungsfeld_PfadDateiName (Control) 7b - Mailmerge|Beschriftungsfeld_PfadDateiName (Control) 8g - BZStOnline|DateiPfadSuche (Control) 8g - BZStOnline|Beschriftungsfeld_PfadDateiName (Control) 9d - InteressentenBriefe|Beschriftungsfeld_PfadDateiName (Control) | 
     50 | 
     SUB ExportPfad (oEvent AS OBJECT)  	DIM oDoc AS OBJECT 	DIM oDB AS OBJECT 	DIM oFeld AS OBJECT 	oDoc = thisComponent	 	oDB = ThisComponent.Parent 	stDBDir = Left(oDB.Location,Len(oDB.Location)-Len(oDB.Title)) 	oDrawpage = oDoc.Drawpage 	stZusatz = oEvent.Source.Model.Tag 	Select Case stZusatz     	Case "Email" 			stPrintDir = stDBDir & "MailMerge/" 			xstPrintDir = Mid(stPrintDir,9) 			oForm = oDrawpage.Forms.getByName("Formular_Pfad") 			oFeld1 = oForm.getByName("Beschriftungsfeld_PfadDateiName") 			oFeld1.Label = " Exportpfad: " & xstPrintDir	 		Case "BZSt_Export"  			stPrintDir = stDBDir & "BZSt_Export/" 			xstPrintDir = Mid(stPrintDir,9) 			oForm = oDrawpage.Forms.getByName("Formular_Pfad") 			oFeld1 = oForm.getByName("Beschriftungsfeld_PfadDateiName") 			oFeld1.Label = " Exportpfad: " & xstPrintDir	 		Case "BZSt_Import" 			stPrintDir = stDBDir & "BZSt_Import/" 			xstPrintDir = Mid(stPrintDir,9) 			oForm2 = oDrawpage.Forms.getByName("Formular_ImportDatei") 			oFeld2 = oForm2.getByName("DateiPfadSuche") 			oFeld2.Text = xstPrintDir	 		Case "SEPA" 			stPrintDir = stDBDir & "SEPAXML/" 			xstPrintDir = Mid(stPrintDir,9) 			oForm = oDrawpage.Forms.getByName("Formular_Pfad") 			oFeld1 = oForm.getByName("Beschriftungsfeld_PfadDateiName") 			oFeld1.Label = " Exportpfad: " & xstPrintDir	 		Case Else 			stPrintDir = stDBDir 			xstPrintDir = Mid(stPrintDir,9) 			oForm = oDrawpage.Forms.getByName("Formular_Pfad") 			oFeld1 = oForm.getByName("Beschriftungsfeld_PfadDateiName") 			oFeld1.Label = " Datenbankpfad: " & xstPrintDir	 	End Select END SUB  | 
    
    
     | Standard | 
     Aktualisierung | 
     Filter_I_Aktualisieren | 
       | 
     Basic | 
     9a - Interessenten|SchaltflächeUpdate (Control) 9c - InteressentenStromGas|SchaltflächeUpdate (Control) | 
     27 | 
     SUB Filter_I_Aktualisieren Dim oDoc As Object Dim oDrawpage As Object Dim oneuInt As Object 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oneuInt=oDrawpage.forms.getByName( "Formular_Interessenten" ) oCol=oneuInt.Columns oInteressent=oCol.getByName( "ID" ) oINummer=oInteressent.Value
  DIM oConnection AS OBJECT DIM oSQL_Statement AS OBJECT DIM stSql AS STRING DIM oResult AS OBJECT  oForm = oDrawpage.forms.getByName( "Formular_Filter") oConnection = oForm.activeConnection() oSQL_Statement = oConnection.createStatement()
  stSql = "UPDATE ""Filter_I"" SET ""Integer"" ='" + oINummer + "' WHERE ""ID""=0" oResult = oSQL_Statement.executeQuery(stSql)
  oForm.reload() END SUB  | 
    
    
     | Standard | 
     Aktualisierung | 
     Filter_M_Aktualisieren | 
       | 
     Basic | 
     1 - Mitglieder|SchaltflächeUpdate (Control) 6 - MitgliederStromGas|SchaltflächeUpdate_Filter (Control) | 
     27 | 
     SUB Filter_M_Aktualisieren Dim oDoc As Object Dim oDrawpage As Object Dim oneuMit As Object 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oneuMit=oDrawpage.forms.getByName( "Formular_Mitglieder" ) 	oCol=oneuMit.Columns 	oMitgl=oCol.getByName( "Mitgliedsnummer" ) 	oMNummer=oMitgl.Value
  DIM oConnection AS OBJECT DIM oSQL_Statement AS OBJECT DIM stSql AS STRING DIM oResult AS OBJECT  oForm = oDrawpage.forms.getByName( "Formular_Filter") oConnection = oForm.activeConnection() oSQL_Statement = oConnection.createStatement()
  stSql = "UPDATE ""Filter_M"" SET ""Integer"" ='" + oMNummer + "' WHERE ""ID""=0" oResult = oSQL_Statement.executeQuery(stSql) wait 100 oForm.reload() END SUB  | 
    
    
     | Standard | 
     Aktualisierung | 
     Form_aktualisieren | 
       | 
     Basic | 
       | 
     21 | 
     SUB Form_aktualisieren(oEvent AS OBJECT) 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oSubForm AS OBJECT 	DIM oFeld AS OBJECT 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	FeldName = oEvent.Source.Model.Name 	FormName = oEvent.Source.Model.getParent.Name 	oForm = oDrawpage.forms.getByName(FormName)  	oFeld = oForm.getByName(FeldName) END SUB  | 
    
    
     | Standard | 
     Aktualisierung | 
     Form_Filter_aktualisieren | 
       | 
     Basic | 
     1 - Mitglieder|SchaltflächeUpdate (Control) 7a - MitgliederBriefe|Schaltfläche_Einzeldruck (Control) 8d - DividendenZentrale|Schaltfläche_Einzeldruck (Control) 8e - SteuerDaten|Formular_StDaten|Schaltfläche_Einzeldruck (Control) 8i - Ueberweisungen|Schaltfläche_Einzeldruck (Control) 8j - IBAN|Formular_BankDaten1|Schaltfläche_Einzeldruck (Control) 9d - InteressentenBriefe|Schaltfläche_Einzeldruck (Control) | 
     13 | 
     SUB Form_Filter_aktualisieren 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oFeld AS OBJECT 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Filter") 	oFeld = oForm.getByName("Listenfeld_Filter") 	oFeld.commit() 	oFeld.refresh() 	oForm.reload() END SUB  | 
    
    
     | Standard | 
     Aktualisierung | 
     Form_Interessenten_aktualisieren | 
       | 
     Basic | 
     9c - InteressentenStromGas|SchaltflächeUpdate_I (Control) | 
     10 | 
     SUB Form_Interessenten_aktualisieren 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oFeld AS OBJECT 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Interessenten") 	oForm.reload() END SUB  | 
    
    
     | Standard | 
     Aktualisierung | 
     Form_Mitglieder_aktualisieren | 
       | 
     Basic | 
     1 - Mitglieder|Schaltfläche START (Control) 6 - MitgliederStromGas|SchaltflächeUpdate_M (Control) | 
     10 | 
     SUB Form_Mitglieder_aktualisieren 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oFeld AS OBJECT 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Mitglieder") 	oForm.reload() END SUB  | 
    
    
     | Standard | 
     Aktualisierung | 
     neueBank_aktualisieren | 
       | 
     Basic | 
     3 - MitgliederBankdaten|Tabellen-Steuerelement Bankeneu (Control) | 
     22 | 
     SUB neueBank_aktualisieren 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oSubForm AS OBJECT 	DIM oFeld AS OBJECT 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Filter")  	oSubForm = oForm.getByName("Formular_Personen")  	oSubSubForm = oSubForm.getByName("Formular_Bankdaten") 	oFeld1 = oSubSubForm.getByName("Listenfeld_Banken") 	oFeld1.commit() 	oFeld1.refresh() 	oFeld2 = oSubSubForm.getByName("Listenfeld_BIC") 	oFeld2.commit() 	oFeld2.refresh() 	oFeld3 = oSubSubForm.getByName("Listenfeld_BLZ") 	oFeld3.commit() 	oFeld3.refresh() 	oSubForm.reload() END SUB  | 
    
    
     | Standard | 
     Aktualisierung | 
     neueDomain_aktualisieren | 
       | 
     Basic | 
       | 
     16 | 
     SUB neueDomain_aktualisieren 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oSubForm AS OBJECT 	DIM oFeld AS OBJECT 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Filter")  	oSubForm = oForm.getByName("Formular_Personen")  	oSubSubForm = oSubForm.getByName("Formular_Kontakte") 	oFeld = oSubSubForm.getByName("Listenfeld_Domain1") 	oFeld.commit() 	oFeld.refresh() 	oSubForm.reload() END SUB  | 
    
    
     | Standard | 
     Aktualisierung | 
     neuenStromGasStatus_aktualisieren | 
       | 
     Basic | 
       | 
     17 | 
     SUB neuenStromGasStatus_aktualisieren 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oSubForm AS OBJECT 	DIM oFeld AS OBJECT 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Filter")  	oSubForm = oForm.getByName("Formular_Personen")  	oSubSubForm = oSubForm.getByName("Formular_StromGas")  	oSubSubSubForm = oSubForm.getByName("Formular_Status") 	oFeld = oSubSubSubForm.getByName("Listenfeld_StromStatus") 	oFeld.commit() 	oFeld.refresh() 	oSubForm.reload() END SUB  | 
    
    
     | Standard | 
     Aktualisierung | 
     neuePLZ_aktualisieren | 
       | 
     Basic | 
       | 
     16 | 
     SUB neuePLZ_aktualisieren 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oSubForm AS OBJECT 	DIM oFeld AS OBJECT 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Filter")  	oSubForm = oForm.getByName("Formular_Personen")  	oSubSubForm = oSubForm.getByName("Formular_Adressen") 	oFeld = oSubSubForm.getByName("Listenfeld_PLZ") 	oFeld.commit() 	oFeld.refresh() 	oSubForm.reload() END SUB  | 
    
    
     | Standard | 
     Aktualisierung | 
     neuerOrt_aktualisieren | 
       | 
     Basic | 
       | 
     16 | 
     SUB neuerOrt_aktualisieren 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oSubForm AS OBJECT 	DIM oFeld AS OBJECT 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Filter")  	oSubForm = oForm.getByName("Formular_Personen")  	oSubSubForm = oSubForm.getByName("Formular_Adressen") 	oFeld = oSubSubForm.getByName("Listenfeld_Orte") 	oFeld.commit() 	oFeld.refresh() 	oSubForm.reload() END SUB  | 
    
    
     | Standard | 
     Aktualisierung | 
     neueStr_aktualisieren | 
       | 
     Basic | 
       | 
     16 | 
     SUB neueStr_aktualisieren 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oSubForm AS OBJECT 	DIM oFeld AS OBJECT 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Filter")  	oSubForm = oForm.getByName("Formular_Personen")  	oSubSubForm = oSubForm.getByName("Formular_Adressen") 	oFeld = oSubSubForm.getByName("Listenfeld_Strassen") 	oFeld.commit() 	oFeld.refresh() 	oSubForm.reload() END SUB  | 
    
    
     | Standard | 
     Aktualisierung | 
     neueVorwahlen_aktualisieren | 
       | 
     Basic | 
       | 
     19 | 
     SUB neueVorwahlen_aktualisieren 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oSubForm AS OBJECT 	DIM oFeld AS OBJECT 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Filter")  	oSubForm = oForm.getByName("Formular_Personen")  	oSubSubForm = oSubForm.getByName("Formular_Kontakte") 	oFeld1 = oSubSubForm.getByName("Listenfeld_Vorwahlen1") 	oFeld1.commit() 	oFeld1.refresh() 	oFeld2 = oSubSubForm.getByName("Listenfeld_Vorwahlen2") 	oFeld2.commit() 	oFeld2.refresh() 	oSubForm.reload() END SUB  | 
    
    
     | Standard | 
     Aktualisierung | 
     Ordneranzeigen | 
       | 
     Basic | 
     7a - MitgliederBriefe|Schaltfläche Ordner (Control) 7b - Mailmerge|Schaltfläche Ordner (Control) 8g - BZStOnline|Schaltfläche Ordner (Control) 8i - Ueberweisungen|Schaltfläche Ordner (Control) 9d - InteressentenBriefe|Schaltfläche Ordner (Control) | 
     10 | 
     SUB Ordneranzeigen  (oEvent AS OBJECT) 	DIM oDoc AS OBJECT 	DIM oDB AS OBJECT 	DIM oFeld AS OBJECT 	stZusatz = oEvent.Source.Model.Tag 	oDoc = thisComponent	 	oDB = ThisComponent.Parent 	stDBDir = Left(oDB.Location,Len(oDB.Location)-Len(oDB.Title)) 	shell("explorer.exe",1,stDBDir & stZusatz) END SUB  | 
    
    
     | Standard | 
     Aktualisierung | 
     Raten_Projekt_Eintragen | 
       | 
     Basic | 
     4 - MitgliedsAnteile|Projektdatum_anlegen (Control) 4 - MitgliedsAnteile|Ratendatum_anlegen (Control) | 
     64 | 
     SUB Raten_Projekt_Eintragen (oEvent AS OBJECT) 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oSubForm AS OBJECT 	DIM oSubSubForm AS OBJECT 	DIM oFeld AS OBJECT 	DIM oZ AS OBJECT 	DIM SHZeile AS LONG 	stZusatz = oEvent.Source.Model.Tag 	oDoc = thisComponent	 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Filter")  	oSubForm = oForm.getByName("Formular_Personen") 	oSubSubForm = oSubForm.getByName("Formular_Konto") 	oFeld = oSubSubForm.getByName("Tabellen_Steuerelement") 	oDatenquelle = ThisComponent.Parent.CurrentController 	If NOT (oDatenquelle.isConnected()) THEN 		oDatenquelle.connect() 	END IF 	oVerbindung = oDatenquelle.ActiveConnection() 	oSQL_Anweisung = oVerbindung.createStatement() 	wait 100 	oZ=oFeld.getRowSet() 	wait 100 	SHZeile = oZ.Row 	oSpalteM=oFeld.getByName("NumF_Mitgl") 	oSpalteD1 = oFeld.getByName("DateField1") 	oSpalteD1.HelpText = "Eintrag immer notwendig!" 	oSpalteID=oFeld.getByName("NumF_VID") 	stMNr = oSpalteM.CurrentValue 	TagEintrag = oSpalteD1.CurrentValue 	f_dat = TagEintrag.Year & "-" & TagEintrag.Month & "-" & TagEintrag.Day 	VID = oSpalteID.CurrentValue 	if VID = 12 THEN 		sttitel = "Neuanlage eines Ratenkontos: " & TagEintrag.Day & "." & TagEintrag.Month & "." & TagEintrag.Year 		janein = msgbox ("Soll für Mitgliedsnummer " & stMNr & " ein Ratenkontoeintrag ""Sollstellung"" erzeugt werden?",256+32+4,sttitel) 		if janein = 6 then 			stSql = "INSERT INTO ""Raten"" (""Mitgliedsnummer"",""VorgangID"",""TagZahlung"")" 			stSql = stSql & " VALUES('" + stMNr + "','2','" + f_dat + "')" 			oResult = oSQL_Anweisung.executeQuery(stSql) 	 	 	oForm.reload() 		end if 	end if 	if VID = 50 THEN 		sttitel = "Neuanlage eines Projektkontos: " & TagEintrag.Day & "." & TagEintrag.Month & "." & TagEintrag.Year 		janein = msgbox ("Soll für Mitgliedsnummer " & stMNr & " ein Projektkontoeintrag ""Vertragsdaten"" erzeugt werden?",256+32+4,sttitel) 		if janein = 6 then 			stSql = "INSERT INTO ""ProjektDaten"" (""Mitgliedsnummer"",""VorgangID"",""TagEintrag"")" 			stSql = stSql & " VALUES('" + stMNr + "','1','" + f_dat + "')" 			oResult = oSQL_Anweisung.executeQuery(stSql) 	 	 	oForm.reload() 		end if 	end if END SUB	  | 
    
    
     | Standard | 
     Aktualisierung | 
     SortierungUmschalten | 
       | 
     Basic | 
     1 - Mitglieder|Schaltfläche_Sortierung (Control) 9a - Interessenten|Schaltfläche_Sortierung (Control) | 
     31 | 
     SUB SortierungUmschalten(oEvent AS OBJECT) 	DIM stTag AS STRING 	stTag() = oEvent.Source.Model.Tag 	 Dim oDoc As Object Dim oDrawpage As Object Dim oneuMit As Object 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage
  IF stTag(0) = "M" THEN 	oneuMit=oDrawpage.forms.getByName( "Formular_Mitglieder" ) ELSE 	oneuMit=oDrawpage.forms.getByName( "Formular_Interessenten" ) ENDIF
  IF stTag(0) = "M" THEN 	IF oneuMit.Order = "Mitgliedsnummer ASC" THEN 	oneuMit.Order = "Organisation ASC, Nachname ASC" 	ELSE 	oneuMit.Order = "Mitgliedsnummer ASC" 	ENDIF ELSE 	IF oneuMit.Order = "ID ASC" THEN 	oneuMit.Order = "Nachname ASC" 	ELSE 	oneuMit.Order = "ID ASC" 	ENDIF ENDIF 	oneuMit.reload() END SUB  | 
    
    
     | Standard | 
     Aktualisierung | 
     SortierungUmschalten_ | 
       | 
     Basic | 
       | 
     15 | 
     SUB SortierungUmschalten_ Dim oDoc As Object Dim oDrawpage As Object Dim oneuMit As Object 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oneuMit=oDrawpage.forms.getByName( "Formular_Mitglieder" ) 	IF oneuMit.Order = "Mitgliedsnummer ASC" THEN 	oneuMit.Order = "Nachname ASC" 	ELSE 	oneuMit.Order = "Mitgliedsnummer ASC" 	ENDIF 	oneuMit.reload() END SUB  | 
    
    
     | Standard | 
     Aktualisierung | 
     Suchfilter_aktualisieren | 
       | 
     Basic | 
     1 - Mitglieder|Tabellen-Steuerelement  1 (Control) 1 - Mitglieder|Listenfeld_Filter (Control) 2 - MitgliederAdressen|Listenfeld_Filter (Control) 3 - MitgliederBankdaten|Listenfeld_Filter (Control) 4 - MitgliedsAnteile|Listenfeld_Filter (Control) 5a - RatenKonten|Listenfeld_Filter (Control) 5b - ProjektKonten|Listenfeld_Filter (Control) 5c - DividendenKonten|Listenfeld_Filter (Control) 6 - MitgliederStromGas|Listenfeld_Filter (Control) 7a - MitgliederBriefe|Listenfeld_Filter (Control) 8d - DividendenZentrale|Listenfeld_Filter (Control) 8e - SteuerDaten|Listenfeld_Filter (Control) 8i - Ueberweisungen|Listenfeld_Filter (Control) 8j - IBAN|Listenfeld_Filter (Control) 9a - Interessenten|Listenfeld_Filter (Control) 9a - Interessenten|Tabellen-Steuerelement  1 (Control) 9b - InteressentenAdressen|Listenfeld_Filter (Control) 9c - InteressentenStromGas|Listenfeld_Filter (Control) 9d - InteressentenBriefe|Listenfeld_Filter (Control) | 
     15 | 
     SUB Suchfilter_aktualisieren 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oSubForm AS OBJECT 	DIM oFeld AS OBJECT 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Filter")  	oSubForm = oForm.getByName("Formular_Personen") 	oFeld = oForm.getByName("Listenfeld_Filter") 	oFeld.commit() 	oFeld.refresh() 	oSubForm.reload() END SUB  | 
    
    
     | Standard | 
     Aktualisierung | 
     vonbis_aktualisieren | 
       | 
     Basic | 
       | 
     68 | 
     SUB vonbis_aktualisieren 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oSubForm AS OBJECT 	DIM oFeld AS OBJECT 	DIM minwert AS INTEGER 	DIM letzter AS INTEGER 	DIM oColumns AS OBJECT 	DIM oConnection AS OBJECT 	DIM oSQL_Statement AS OBJECT 	DIM stSql AS STRING 	DIM oResult AS OBJECT  	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Serie")
  oConnection = oForm.activeConnection() oSQL_Statement = oConnection.createStatement() stSql = "SELECT MAX(""Mitgliedsnummer"") AS ""MAXIMIT"" FROM ""Mitglieder""" oResult =  oSQL_Statement.executeQuery(stSql) oColumns = oResult.columns() IF oColumns.hasByName("MAXIMIT") THEN inIndex = oColumns.findColumn("MAXIMIT") oresult.next letzter=oResult.getInt(1)
  	oFeld = oForm.getByName("Num_von") 	minwert=oFeld.value 	IF minwert > letzter THEN 		msgbox(letzter & " ist die höchste Mitgliedsnummer!",32,"Nööö!") 		minwert=1 		oFeld.value=minwert 	ENDIF	 	oFeld.commit() 	 	oFeld = oForm.getByName("Num_bis") 	maxwert=oFeld.value 	IF maxwert > letzter THEN 		msgbox(letzter & " ist die höchste Mitgliedsnummer!",32,"Nööö!")	 		maxwert=letzter 	ENDIF	 	IF maxwert < minwert THEN  		msgbox("bis kann nicht kleiner sein als von!",32,"Nööö!")		 		maxwert=minwert 	ENDIF 	oFeld.value=maxwert 	oFeld.commit() 	 	oFeld = oForm.getByName("Num_aktuell") 	oFeld.Value=minwert 	oFeld.commit() 	 	oConnection = oForm.activeConnection() 	oSQL_Statement = oConnection.createStatement()
 
  	stSql = "UPDATE ""von_bis"" SET ""von"" ='" + minwert + "' WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql) 	stSql = "UPDATE ""von_bis"" SET ""bis"" ='" + maxwert + "' WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql) 	stSql = "UPDATE ""von_bis"" SET ""aktuell"" ='" + minwert + "' WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql) 	 END SUB  | 
    
    
     | Standard | 
     Aktualisierung | 
     VorgangID_lesen | 
       | 
     Basic | 
     4 - MitgliedsAnteile|Formular_Personen|Formular_Konto|Tabellen_Steuerelement (Control) 4 - MitgliedsAnteile|Listenfeld_Filter (Control) 5c - DividendenKonten|Formular_Personen|Formular_Konto|Tabellen_Steuerelement (Control) 5c - DividendenKonten|Listenfeld_Filter (Control) | 
     175 | 
     SUB VorgangID_lesen(oEvent AS OBJECT) 	DIM stTag AS STRING 	stTag = oEvent.Source.Model.Tag 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oForm2 AS OBJECT 	DIM oSubForm AS OBJECT 	DIM oSubSubForm AS OBJECT 	DIM oFeld AS OBJECT 	DIM oButton12 AS OBJECT 	DIM oButton50 AS OBJECT 	DIM oSpalte AS OBJECT
  	oDatenquelle = ThisComponent.Parent.CurrentController 	If NOT (oDatenquelle.isConnected()) THEN 		oDatenquelle.connect() 	END IF 	oVerbindung = oDatenquelle.ActiveConnection() 	oSQL_Anweisung = oVerbindung.createStatement()
  	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Filter")  	oSubForm = oForm.getByName("Formular_Personen")  	oSubSubForm = oSubForm.getByName("Formular_Konto") 	oFeld = oSubSubForm.getByName("Tabellen_Steuerelement") 	oSpalte=oFeld.getByName("NumF_VID") 	oForm2 = oDrawpage.forms.getByName("Formular_Ueber")  IF stTag = "Anteile" THEN
  	oSpalteD1=oFeld.getByName("DateField1") 	oSpalteD1.Enabled = TRUE 	oSpalteD2=oFeld.getByName("DateField2") 	oSpalteD2.Enabled = TRUE 	oSpalteApm=oFeld.getByName("NumF_Aplusminus") 	oSpalteApm.Enabled = TRUE 	oSpalteASaldo=oFeld.getByName("NumF_AntSaldo") 	oSpalteASaldo.Enabled = TRUE
  	oButton12 = oForm2.getByName("zumRatenkonto") 	oButton120 = oForm2.getByName("Ratendatum_anlegen") 	oButton20 = oForm2.getByName("zumDividendenkonto") 	oButton50 = oForm2.getByName("zumProjektekonto") 	oButton500 = oForm2.getByName("Projektdatum_anlegen") 	oButton12.EnableVisible = FALSE 	oButton120.EnableVisible = FALSE 	oButton20.EnableVisible = FALSE 	oButton50.EnableVisible = FALSE 	oButton500.EnableVisible = FALSE 	SELECT CASE oSpalte.CurrentValue 		CASE 12  			oButton12.EnableVisible = TRUE 			oButton120.EnableVisible = TRUE 			oSpalteApm.Enabled = FALSE 			oSpalteASaldo.Enabled = FALSE 		CASE 20 			oSpalteD1.Enabled = FALSE 			oSpalteD2.Enabled = FALSE 			oSpalteApm.Enabled = FALSE 			oSpalteASaldo.Enabled = FALSE 			oButton20.EnableVisible = TRUE 		CASE 50 			oSpalteApm.Enabled = FALSE 			oSpalteASaldo.Enabled = FALSE 			oButton50.EnableVisible = TRUE 			oButton500.EnableVisible = TRUE 		CASE ELSE 			END SELECT		 END IF	
  IF stTag = "Dividenden" THEN 	oSpalte=oFeld.getByName("NumF_VID")  	oSpalteD1=oFeld.getByName("DateField1") 	oSpalteD1.Enabled = FALSE 	oSpalteD2=oFeld.getByName("DateField2") 	oSpalteD2.Enabled = FALSE 	oSpalteKap=oFeld.getByName("NumF_KapErtrag") 	oSpalteKap.Enabled = FALSE 	oSpalteKESt=oFeld.getByName("NumF_KapESt") 	oSpalteKESt.Enabled = FALSE 	oSpalteSoli=oFeld.getByName("NumF_Soli") 	oSpalteSoli.Enabled = FALSE 	oSpalteKiSt=oFeld.getByName("NumF_KiSt") 	oSpalteKiSt.Enabled = FALSE 	oSpalteAusz=oFeld.getByName("NumF_Ausz") 	oSpalteAusz.Enabled = FALSE 	oSpalteFSA=oFeld.getByName("NumF_Pausch") 	oSpalteFSA.Enabled = FALSE
  	oButton2 = oForm2.getByName("zumProjektekonto") 	oButton2.EnableVisible = FALSE 	oButton3 = oForm2.getByName("Steuerdaten_uebernehmen") 	oButton3.EnableVisible = FALSE
  	IF oSpalte.CurrentValue=2 THEN 			oButton2.EnableVisible = TRUE 	END IF	 		 	IF oSpalte.CurrentValue=3 THEN 	oSpalteD1=oFeld.getByName("DateField1") 	oSpalteD1.Enabled = TRUE 	oSpalteD2=oFeld.getByName("DateField2") 	oSpalteD2.Enabled = TRUE 	oSpalteFSA=oFeld.getByName("NumF_Pausch") 	oSpalteFSA.Enabled = TRUE
  	oButton3.EnableVisible = TRUE 	END IF	 	IF oSpalte.CurrentValue=4 THEN 	oSpalteD1=oFeld.getByName("DateField1") 	oSpalteD1.Enabled = TRUE 	oSpalteD2=oFeld.getByName("DateField2") 	oSpalteD2.Enabled = TRUE
  	oButton3.EnableVisible = TRUE 	END IF	 	
 
 
 
  	
 
 
  END IF END SUB  | 
    
    
     | Standard | 
     Berichte | 
     Calc2CSV_exists | 
       | 
     Basic | 
       | 
     7 | 
     Function Calc2CSV_exists as Boolean 	Calc2CSV_exists = FALSE 	If Getguitype = 1 Then sFichierModule = GetRepertoirePath("user")&"\basic\Standard\Calc2CSV.xba" Else sFichierModule = GetRepertoirePath("user")&"/basic/Standard/Calc2CSV.xba" 		If Fileexists(sFichierModule) Then  Calc2CSV_exists = TRUE if  Calc2CSV_exists Then msgbox ("Jaaaaaaaa!") Else  msgbox ("nö") End Function  | 
    
    
     | Standard | 
     Berichte | 
     Dateiauswahl | 
       | 
     Basic | 
       | 
     17 | 
     SUB Dateiauswahl  	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oFeld1 AS OBJECT 	DIM oFeld2 AS OBJECT 	DIM oPfad AS STRING 	oDoc = thisComponent	 	oDrawpage = oDoc.Drawpage 	oForm = oDrawpage.Forms.getByName("Formular") 	oFeld1 = oForm.getByName("Dateiauswahl") 	oPfad = oFeld1.Text     Schreibe_MM_configTXT( oPfad) 	oFeld2 = oForm.getByName("MailmergePfad")     oFeld2.Label = oPfad END SUB  | 
    
    
     | Standard | 
     Berichte | 
     Filtern_und_Drucken | 
       | 
     Basic | 
     2 - MitgliederAdressen|Formular_Personen|Schaltfläche_Brief_M (Control) 4 - MitgliedsAnteile|Schaltfläche_BriefAnteileKonto (Control) 4 - MitgliedsAnteile|Schaltfläche_Brief_Aufstockung (Control) 4 - MitgliedsAnteile|Schaltfläche_BriefRaten (Control) 4 - MitgliedsAnteile|Schaltfläche_BriefZahlung (Control) 4 - MitgliedsAnteile|Schaltfläche_BriefRechnung (Control) 6 - MitgliederStromGas|Formular_Personen|Formular_Kontakte|Schaltfläche_Brief_Strom (Control) 6 - MitgliederStromGas|Formular_Personen|Formular_Kontakte|Schaltfläche_Brief_Anschrift (Control) 9b - InteressentenAdressen|Schaltfläche_Brief_I (Control) 9c - InteressentenStromGas|Formular_Personen|Formular_Kontakte|Schaltfläche_Brief_Strom (Control) 9c - InteressentenStromGas|Formular_Personen|Formular_Kontakte|Schaltfläche_Brief_Anschrift (Control) | 
     37 | 
     SUB Filtern_und_Drucken(oEvent AS OBJECT) 	DIM stTag AS STRING 	stTag = oEvent.Source.Model.Tag 	aInfos() = Split(stTag, ",")		 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oFeld AS OBJECT 	DIM oDatenquelle AS OBJECT 	DIM oVerbindung AS OBJECT 	DIM oSQL_Anweisung AS OBJECT 	DIM stSQL AS STRING 	oDoc = thisComponent	 	oDrawpage = oDoc.Drawpage 	oForm = oDrawpage.Forms.getByName("Formular_Filter") 	oFeld = oForm.getByName("Listenfeld_Filter") 	oDatenquelle = ThisComponent.Parent.CurrentController 	If NOT (oDatenquelle.isConnected()) THEN 		oDatenquelle.connect() 	END IF
  	oVerbindung = oDatenquelle.ActiveConnection() 	oSQL_Anweisung = oVerbindung.createStatement() IF aInfos(0) = "M" THEN 	stSql = "UPDATE ""Filter_M"" SET ""Integer"" = '"+oFeld.GetCurrentValue()+"' WHERE ""ID"" = 0" 	oSQL_Anweisung.executeUpdate(stSql) END IF	 IF aInfos(0) ="I" THEN 	stSql = "UPDATE ""Filter_I"" SET ""Integer"" = '"+oFeld.GetCurrentValue()+"' WHERE ""ID"" = 0" 	oSQL_Anweisung.executeUpdate(stSql) END IF
  	ThisDatabaseDocument.ReportDocuments.getByName(Trim(aInfos(1))).open
  END SUB  | 
    
    
     | Standard | 
     Berichte | 
     Filtern_und_Mail | 
       | 
     Basic | 
     2 - MitgliederAdressen|Email_M (Control) 6 - MitgliederStromGas|Formular_Personen|Formular_Kontakte|Email_Strom (Control) 9b - InteressentenAdressen|Email_I (Control) 9c - InteressentenStromGas|Formular_Personen|Formular_Kontakte|Email_Strom (Control) | 
     94 | 
     SUB Filtern_und_Mail(oEvent AS OBJECT) 	DIM stTag AS STRING 	stTag = oEvent.Source.Model.Tag 	aInfos() = Split(stTag, ",")							 DIM oDoc AS OBJECT DIM oDrawpage AS OBJECT DIM oForm AS OBJECT DIM oFeld AS OBJECT
  DIM oDatenquelle AS OBJECT DIM oVerbindung AS OBJECT DIM oSQL_Anweisung AS OBJECT DIM stSQL AS STRING DIM oResult AS OBJECT  DIM oFeld1a AS OBJECT DIM oFeld1b AS OBJECT DIM oFeld1 AS OBJECT DIM oFeld2 AS OBJECT DIM oFeld3 AS OBJECT DIM oFeld4 AS OBJECT DIM oShell AS OBJECT DIM stFeld1 AS STRING DIM stFeld2 AS STRING DIM stFeld3 AS STRING DIM stFeld4 AS STRING
  oDoc = thisComponent oDrawpage = oDoc.Drawpage oForm = oDrawpage.Forms.getByName("Formular_Filter") oFeld = oForm.getByName("Listenfeld_Filter")
  oDatenquelle = ThisComponent.Parent.CurrentController 	If NOT (oDatenquelle.isConnected()) THEN 		oDatenquelle.connect() 	END IF 	oVerbindung = oDatenquelle.ActiveConnection() 	oSQL_Anweisung = oVerbindung.createStatement()
  IF aInfos(0) = "M" THEN 	stSql = "UPDATE ""Filter_M"" SET ""Integer"" = '"+oFeld.GetCurrentValue()+"' WHERE ""ID"" = 0" 	oSQL_Anweisung.executeUpdate(stSql) END IF	 IF aInfos(0) ="I" THEN 	stSql = "UPDATE ""Filter_I"" SET ""Integer"" = '"+oFeld.GetCurrentValue()+"' WHERE ""ID"" = 0" 	oSQL_Anweisung.executeUpdate(stSql) END IF
   	oSubForm = oForm.getByName("Formular_Personen")  	oSubSubForm = oSubForm.getByName("Formular_Kontakte") 	oFeld1a = oSubSubForm.getByName("Textfeld_Email1") 	oFeld1b = oSubSubForm.getByName("Listenfeld_Domain1") 	oNummer = oFeld1b.SelectedItems(000) 	soFeld1b = oFeld1b.getItemText(oNummer) 	stFeld1 = oFeld1a.Text + "@" + soFeld1b 	IF stFeld1 = "" THEN 	msgbox ("Keine Mailadresse vorhanden." & CHR( 13) & "Das Mailprogramm wird nicht aufgerufen" ,48, "Mail senden") 	END IF
 
 
  stAuswahl = aInfos(2) stSql = "SELECT ""Text"",""Betreff"" FROM ""Texte"" WHERE ""ID"" = '" & stAuswahl & "'"
  oResult = oSQL_Anweisung.executeQuery(stSql) oResult.next stAusgabe1 = oResult.getString(1)  stInhalt = Replace(stAusgabe1, Chr(10), "%0A")
  stAusgabe2 = oResult.getString(2)
 
  IF aInfos(1) ="Strom" THEN 	stFeld2 = stAusgabe2 	stFeld3 = stInhalt END IF oShell = createUnoService( "com.sun.star.system.SystemShellExecute") oShell.execute( "mailto:" + stFeld1 + "?subject=" + stFeld2 + "&body=" + stFeld3,, 0) END SUB  | 
    
    
     | Standard | 
     Berichte | 
     Filtern_und_Mail_BACKUP | 
       | 
     Basic | 
       | 
     97 | 
     SUB Filtern_und_Mail_BACKUP(oEvent AS OBJECT) 	DIM stTag AS STRING 	stTag = oEvent.Source.Model.Tag 	aInfos() = Split(stTag, ",")					 DIM oDoc AS OBJECT DIM oDrawpage AS OBJECT DIM oForm AS OBJECT 	DIM oFeld AS OBJECT 	DIM oDatenquelle AS OBJECT 	DIM oVerbindung AS OBJECT 	DIM oSQL_Anweisung AS OBJECT 	DIM stSQL AS STRING DIM oFeld1a AS OBJECT DIM oFeld1b AS OBJECT DIM oFeld1 AS OBJECT DIM oFeld2 AS OBJECT DIM oFeld3 AS OBJECT DIM oFeld4 AS OBJECT DIM oShell AS OBJECT DIM stFeld1 AS STRING DIM stFeld2 AS STRING DIM stFeld3 AS STRING DIM stFeld4 AS STRING
  oDoc = thisComponent oDrawpage = oDoc.Drawpage oForm = oDrawpage.Forms.getByName("Formular_Filter") 	oFeld = oForm.getByName("Listenfeld_Filter") 	oDatenquelle = ThisComponent.Parent.CurrentController 	If NOT (oDatenquelle.isConnected()) THEN 		oDatenquelle.connect() 	END IF 	oVerbindung = oDatenquelle.ActiveConnection() 	oSQL_Anweisung = oVerbindung.createStatement()
  IF aInfos(0) = "M" THEN 	stSql = "UPDATE ""Filter_M"" SET ""Integer"" = '"+oFeld.GetCurrentValue()+"' WHERE ""ID"" = 0" 	oSQL_Anweisung.executeUpdate(stSql) END IF	 IF aInfos(0) ="I" THEN 	stSql = "UPDATE ""Filter_I"" SET ""Integer"" = '"+oFeld.GetCurrentValue()+"' WHERE ""ID"" = 0" 	oSQL_Anweisung.executeUpdate(stSql) END IF
 
   	oSubForm = oForm.getByName("Formular_Personen")  	oSubSubForm = oSubForm.getByName("Formular_Kontakte") 	oFeld1a = oSubSubForm.getByName("Textfeld_Email1") 	oFeld1b = oSubSubForm.getByName("Listenfeld_Domain1") 	oNummer = oFeld1b.SelectedItems(000) 	soFeld1b = oFeld1b.getItemText(oNummer)
  	stFeld1 = oFeld1a.Text + "@" + soFeld1b 	IF stFeld1 = "" THEN 	msgbox "Keine Mailadresse vorhanden." & CHR( 13) & "Das Mailprogramm wird nicht aufgerufen" , 48, "Mail senden" 	END IF
 
  IF aInfos(1) ="leer" THEN 	stFeld2 = "BESG: " 	stFeld3 = "Liebe " END IF
  IF aInfos(1) ="Strom" THEN 	stFeld2 = "BESG-Strom: erstes Feedback" 	stFeld3 = "Liebe StromkundInnen der BürgerEnergie Solingen,%0A%0A" 	stFeld3 = stFeld3 + "wir freuen uns darüber, dass Sie inzwischen von den Stadtwerken mit unserem BESG-Bürgerstrom beliefert werden!%0A%0A" 	stFeld3 = stFeld3 + "Da für uns als Genossenschaft dieses erste, gemeinsam mit den Stadtwerken entwickelte Stromprodukt auch noch neu ist, vermuten wir, dass die Abläufe noch verbesserungsfähig sind. Deshalb bitten wir herzlich um Antwort auf die folgenden Fragen:%0A" 	stFeld3 = stFeld3 + "%0A" 	stFeld3 = stFeld3 + "-    Wie und wo haben Sie von unserm BESG-Bürgerstrom erfahren?%0A" 	stFeld3 = stFeld3 + "-    Was hat Sie davon überzeugt, den Antrag für den Bezug dieses Stroms zu stellen?%0A" 	stFeld3 = stFeld3 + "-    Wie zufrieden sind Sie mit dem Ablauf des Wechselverfahrens? Was könnte darin verbessert werden?%0A%0A" 	stFeld3 = stFeld3 + "Benötigen Sie Flyer oder zusätzliche Informationen, wenn Sie Ihren Freunden," 	stFeld3 = stFeld3 + "Freundinnen und Bekannten unseren BESG-Bürgerstrom weiterempfehlen möchten?%0A" 	stFeld3 = stFeld3 + "%0A" 	stFeld3 = stFeld3 + "Falls Sie darüber hinaus weitergehende Anregungen oder Fragen haben: Teilen Sie mir diese bitte auch mit!%0A" 	stFeld3 = stFeld3 + "%0A" 	stFeld3 = stFeld3 + "Und: Empfehlen Sie uns weiter! Jede weitere Kundin, jeder weitere Kunde trägt zum Erfolg unserer Arbeit als Genossenschaft bei. Besonders würden wir uns natürlich darüber freuen, wenn wir Sie als neues Genossenschaftsmitglied gewinnen könnten!%0A" 	stFeld3 = stFeld3 + "Rufen Sie mich gerne an, wenn Sie Fragen zu unserer Arbeit haben (Tel: 0212 2333433) " 	stFeld3 = stFeld3 + "- oder schauen Sie auf unsere Internetseite http://bürgerenergie-solingen.de.%0A" 	stFeld3 = stFeld3 + "%0A" 	stFeld3 = stFeld3 + "%0A" 	stFeld3 = stFeld3 + "Mit herzlichem Gruß,%0AIngeborg Friege%0A" 	stFeld3 = stFeld3 + "%0A" 	stFeld3 = stFeld3 + "%0A" 	stFeld3 = stFeld3 + "%0A" 	stFeld3 = stFeld3 + "%0A" END IF oShell = createUnoService( "com.sun.star.system.SystemShellExecute") oShell.execute( "mailto:" + stFeld1 + "?subject=" + stFeld2 + "&body=" + stFeld3,, 0) END SUB  | 
    
    
     | Standard | 
     Berichte | 
     Filtern_und_Mail_Text | 
       | 
     Basic | 
       | 
     39 | 
     Sub Filtern_und_Mail_Text(oEvent AS OBJECT)
  DIM stTag AS STRING 	stTag = oEvent.Source.Model.Tag 	aInfos() = Split(stTag, ",")			DIM oConnection AS OBJECT DIM oSQL_Statement AS OBJECT DIM stSql AS STRING DIM oResult AS OBJECT  oDoc = thisComponent oDrawpage = oDoc.drawpage oForm = oDrawpage.forms.getByName( "Formular_Ueber") oConnection = oForm.activeConnection() oSQL_Statement = oConnection.createStatement()
  stSql = "SELECT ""Text"" FROM ""Texte"" WHERE ""ID"" = 'EMAIL_STROM_FEEDBACK'"
  oResult = oSQL_Statement.executeQuery(stSql) oResult.next stAusgabe = oResult.getString(1)
  stSql = "SELECT ""Text"" FROM ""Texte"" WHERE ""ID"" = 'ENDE'" oResult = oSQL_Statement.executeQuery(stSql) oResult.next stAusgabe = oResult.getString(1) End Sub  | 
    
    
     | Standard | 
     Berichte | 
     GetRepertoirePath | 
       | 
     Basic | 
     Calc2CSV_exists (Procedure) Schreibe_MM_configTXT (Procedure) Lies_MM_configTXT (Procedure) | 
     8 | 
     Function GetRepertoirePath(sInstPath as String) as String 	Dim  oPathSubstSrv as Object 	Dim sPath as String 		sInstPath = "$("+sInstPath+")" 		oPathSubstSrv = createUnoService("com.sun.star.comp.framework.PathSubstitution") 		sPath = ConvertFromUrl(oPathSubstSrv.getSubstituteVariableValue(sInstPath)) 		GetRepertoirePath = sPath End Function  | 
    
    
     | Standard | 
     Berichte | 
     Lib_Erzeugen | 
       | 
     Basic | 
       | 
     14 | 
     Sub Lib_Erzeugen  	Dim oLib as Object     oLib = GlobalScope.BasicLibraries.Standard    	sZeilen="Rem (C) Gisbert Friege"+Chr(13)     sZeilen = sZeilen + "MeinModultext"+Chr(13)     If oLib.hasByName("Hallo") Then 	 	oLib.ReplaceByName("Hallo", sZeilen) 	Else 	 	oLib.InsertByName("Hallo", sZeilen)     EndIf End Sub  | 
    
    
     | Standard | 
     Berichte | 
     Lib_TEST | 
       | 
     Basic | 
       | 
     10 | 
     Sub Lib_TEST 	Dim oLib as Object     oLib = GlobalScope.BasicLibraries.Standard     If oLib.hasByName("Calc2CSV") Then     	msgbox ("Modul Calc2CSV ist vorhanden.")     Else     	msgbox ("Modul Calc2CSV muss angelegt werden!")	     EndIf End Sub  | 
    
    
     | Standard | 
     Berichte | 
     Lies_MM_configTXT | 
       | 
     Basic | 
       | 
     28 | 
     Sub Lies_MM_configTXT() 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oFeld1 AS OBJECT 	DIM oFeld2 AS OBJECT 	DIM sPfad AS STRING 	oDoc = thisComponent	 	oDrawpage = oDoc.Drawpage 	oForm = oDrawpage.Forms.getByName("Formular") 	oFeld1 = oForm.getByName("Dateiauswahl") 	oFeld2 = oForm.getByName("MailmergePfad") 	If Getguitype = 1 Then sFichierModule = GetRepertoirePath("user")&"\config\mailmergepfad.txt" Else sFichierModule = GetRepertoirePath("user")&"/config/mailmergepfad.txt" 	If FileExists (sFichierModule) Then  		iNumber = Freefile 		Open sFichierModule for Input As iNumber	 		Line Input #iNumber, sPfad 		oFeld1.Text = sPfad 	    oFeld2.Label = sPfad 	Else  		MsgBox "Datei mailmergepfad.txt fehlt noch! Bitte erst die Mailmerge-csv-Datei auswählen!" 	End If     End Sub  | 
    
    
     | Standard | 
     Berichte | 
     Mailmerge | 
       | 
     Basic | 
       | 
     8 | 
     SUB Mailmerge(oEvent AS OBJECT) 			DIM stTag AS STRING 	stTag = oEvent.Source.Model.Tag 		ThisDatabaseDocument.ReportDocuments.getByName(stTag).open END SUB  | 
    
    
     | Standard | 
     Berichte | 
     Modul_Calc2CSV_anlegen | 
       | 
     Basic | 
       | 
     70 | 
     Sub Modul_Calc2CSV_anlegen 	Dim sParametres, sSrce as String 	Dim oLib as Object 	Dim oBasLibs as Object 	oBasLibs = GlobalScope.BasicLibraries 	If oBasLibs.HasByName("Standard") Then     	oLib =oBasLibs.GetByName("Standard") 	If 	oLib.hasByName("Calc2CSV") Then 		oLib.removeByName("Calc2CSV") 	End If 		Wait 500 sSrce = "REM (C) Gisbert Friege www.friege.de" & Chr(13) sSrce = sSrce & "REM Dieses Modul wird in ""Meine Makros & Dialoge - Standard"" angelegt." & Chr(13) sSrce = sSrce & "REM In LibreOffice Calc sollte ein Symbol auf der Standard-Symbolleiste angelegt werden," & Chr(13) sSrce = sSrce & "REM mit dem das hier definierte Makro Mailmerge_csv_speichern gestartet weden kann." & Chr(13) & Chr(13) sSrce = sSrce & "Sub Mailmerge_csv_speichern" & Chr(13) sSrce = sSrce & "dim document as object" & Chr(13) sSrce = sSrce & "dim dispatcher as object" & Chr(13) sSrce = sSrce & "dim sPfad as string" & Chr(13) sSrce = sSrce & "dim sFrage as string" & Chr(13) sSrce = sSrce & "dim vAntwort as Integer" & Chr(13) sSrce = sSrce & "document   = ThisComponent.CurrentController.Frame" & Chr(13) sSrce = sSrce & "dispatcher = createUnoService(""com.sun.star.frame.DispatchHelper"")" & Chr(13) sSrce = sSrce & "dim args1(2) as new com.sun.star.beans.PropertyValue" & Chr(13) sSrce = sSrce & "args1(0).Name = ""URL""" & Chr(13) sSrce = sSrce & "sPfad = Pfad_MM_config" & Chr(13) sSrce = sSrce & "sFrage = ""Soll die Tabelle wirklich nach "" + sPfad + "" gespeichert werden?"" + chr(13)" & Chr(13) sSrce = sSrce & "sFrage = sFrage + ""(Der Pfad kann im Datenbak-Formular Mailmerge Einrichtung angepasst werden!)""" & Chr(13) sSrce = sSrce & "vAntwort = MsgBox (sFrage,1,""Tabelle als .csv speichern"")" & Chr(13) sSrce = sSrce & "REM Hier ggf. aussteigen" & Chr(13) sSrce = sSrce & "if (vAntwort > 1) then GoTo LabelExit" & Chr(13) sSrce = sSrce & "args1(0).Value = ConvertToURL(sPfad)" & Chr(13) sSrce = sSrce & "args1(1).Name = ""FilterName""" & Chr(13) sSrce = sSrce & "args1(1).Value = ""Text - txt - csv (StarCalc)""" & Chr(13) sSrce = sSrce & "args1(2).Name = ""FilterOptions""" & Chr(13) sSrce = sSrce & "args1(2).Value = ""9,0,ANSI,1,,0,false,true,true,false""" & Chr(13) sSrce = sSrce & "dispatcher.executeDispatch(document, "".uno:SaveAs"", """", 0, args1())" & Chr(13) sSrce = sSrce & "msgbox (""Tabelle erfolgreich gespeichert in "" + sPfad,64,""Tabelle als .csv speichern"")" & Chr(13) sSrce = sSrce & "LabelExit:" & Chr(13) sSrce = sSrce & "dispatcher.executeDispatch(document, "".uno:Close"", """", 0, Array())" & Chr(13) sSrce = sSrce & "End Sub" & Chr(13) & Chr(13)
  sSrce = sSrce & "Function GetRepertoirePath(sInstPath as String) as String' sInstPath z.B. ""user""" & Chr(13) sSrce = sSrce & "Dim  oPathSubstSrv as Object" & Chr(13) sSrce = sSrce & "Dim sPath as String" & Chr(13) sSrce = sSrce & "sInstPath = ""$(""+sInstPath+"")""" & Chr(13) sSrce = sSrce & "oPathSubstSrv = createUnoService(""com.sun.star.comp.framework.PathSubstitution"")" & Chr(13) sSrce = sSrce & "sPath = ConvertFromUrl(oPathSubstSrv.getSubstituteVariableValue(sInstPath))" & Chr(13) sSrce = sSrce & "GetRepertoirePath = sPath" & Chr(13) sSrce = sSrce & "End Function" & Chr(13) & Chr(13)
  sSrce = sSrce & "Function Pfad_MM_config As String" & Chr(13) sSrce = sSrce & "If Getguitype = 1 Then sPfadDatei = GetRepertoirePath(""user"") & ""\config\mailmergepfad.txt"" Else sPfadDatei = GetRepertoirePath(""user"") & ""/config/mailmergepfad.txt""" & Chr(13) sSrce = sSrce & "iNumber = Freefile" & Chr(13) sSrce = sSrce & "Open sPfadDatei for Input As iNumber" & Chr(13) sSrce = sSrce & "Line Input #iNumber, sPfad" & Chr(13) sSrce = sSrce & "Pfad_MM_config = sPfad" & Chr(13) sSrce = sSrce & "End Function" & Chr(13)
  oLib.InsertByName("Calc2CSV",sSrce) On Error GoTo 0 Else 	msgbox("Die Bibliothek Meine_Makros&Dialog.Standard fehlt! Sie muss erst erst in der Verwaltung der MAkro-Bibliotheken angelegt werden!") End If
  End sub  | 
    
    
     | Standard | 
     Berichte | 
     Replace | 
       | 
     Basic | 
       | 
     5 | 
     Function Replace(Source As String, Search As String, NewPart As String)   Dim Result As String     Result = join(split(Source, Search), NewPart)   Replace = Result End Function  | 
    
    
     | Standard | 
     Berichte | 
     Schreibe_MM_configTXT | 
       | 
     Basic | 
     Dateiauswahl (Procedure) | 
     11 | 
     Sub Schreibe_MM_configTXT( sPfad as String) 	If Getguitype = 1 Then sPfadDatei = GetRepertoirePath("user")&"\config\mailmergepfad.txt" Else sPfadDatei = GetRepertoirePath("user")&"/config/mailmergepfad.txt" 	If Fileexists(sPfadDatei) Then Kill sPfadDatei	 	iNumber = Freefile 	Open sPfadDatei For Output As iNumber 	Print #iNumber, sPfad 	Close #iNumber	 End Sub | 
    
    
     | Standard | 
     Dividenden | 
     Abfrage_in_XML | 
       | 
     Basic | 
     8i - Ueberweisungen|Schaltfläche SEPA (Control) | 
     400 | 
     SUB Abfrage_in_XML(oEvent AS OBJECT)
  DIM oDatenDatei AS OBJECT DIM oAbfragen AS OBJECT DIM oAbf AS OBJECT DIM oAbfrageergebnis AS OBJECT DIM stQuery AS STRING DIM ausNumber As Integer DIM inaNumber As Integer DIM inbNumber As Integer DIM incNumber As Integer DIM sDatei AS STRING DIM stTag AS STRING DIM sp AS INTEGER DIM splast AS INTEGER
  DIM oDoc AS OBJECT DIM oDrawpage AS OBJECT DIM oForm AS OBJECT DIM oFeld1 AS OBJECT DIM stDBDir AS STRING
  	oPForm = oEvent.Source.Model.Parent 	oConnection = oPForm.activeConnection()
  	oDoc = thisComponent	 	oDB = ThisComponent.Parent 	stDBDir = Left(oDB.Location,Len(oDB.Location)-Len(oDB.Title))	 	oDrawpage = oDoc.Drawpage 	oForm = oDrawpage.Forms.getByName("Formular_Serie") 	oFeld_Datum = oForm.getByName("Markierfeld_Datum") 	mitDatum = oFeld_Datum.State
  	stTag = oEvent.Source.Model.Tag 	aForms() = Split(stTag, ",")		stName = Trim(aForms(0)) 	 	 	stZusatz = Trim(aForms(1)) 	 	oDatenquelle = ThisComponent.Parent.CurrentController 	If NOT (oDatenquelle.isConnected()) THEN 		oDatenquelle.connect() 	END IF 	oVerbindung = oDatenquelle.ActiveConnection() 	oSQL_Anweisung = oVerbindung.createStatement()
  	stSql = "SELECT * FROM ""Pfade_SEPA"" WHERE ""ID""='A'" 	oResult = oSQL_Anweisung.executeQuery(stSql) 	oResult.next 	stPfadvorA = oResult.getString(2) 	stDateivorA = oResult.getString(3) 	inaDatei = stDBDir & stPfadvorA & "/" & stDateivorA
  	stSql = "SELECT * FROM ""Pfade_SEPA"" WHERE ""ID""='S'" 	oResult = oSQL_Anweisung.executeQuery(stSql) 	oResult.next 	stPfadvorS = oResult.getString(2) 	stDateivorS = oResult.getString(3) 	insDatei = stDBDir & stPfadvorS & "/" & stDateivorS
  	stSql = "SELECT * FROM ""Pfade_SEPA"" WHERE ""ID""='B'" 	oResult = oSQL_Anweisung.executeQuery(stSql) 	oResult.next 	stPfadvorB = oResult.getString(2) 	stDateivorB = oResult.getString(3) 	inbDatei = stDBDir & stPfadvorB & "/" & stDateivorB
  	stSql = "SELECT * FROM ""Pfade_SEPA"" WHERE ""ID""='C'" 	oResult = oSQL_Anweisung.executeQuery(stSql) 	oResult.next 	stPfadvorC = oResult.getString(2) 	stDateivorC = oResult.getString(3) 	incDatei = stDBDir & stPfadvorC & "/" & stDateivorC
  	stSql = "SELECT * FROM ""Pfade_SEPA"" WHERE ""ID""='T'" 	oResult = oSQL_Anweisung.executeQuery(stSql) 	oResult.next 	stPfadetmp = oResult.getString(2) 	stDatei_tmp = oResult.getString(3) 	tmpDatei = stDBDir & stPfadetmp & "/" & stDatei_tmp 	 	stSql = "SELECT * FROM ""Pfade_SEPA"" WHERE ""ID""='X'" 	oResult = oSQL_Anweisung.executeQuery(stSql) 	oResult.next 	stPfadex = oResult.getString(2) 	stDatei_ex = oResult.getString(3) 	IF mitDatum THEN  		stdat() = split (Date,".")	 		isoDatum = stdat(2) & "-" & stdat(1) & "-" & stdat(0) 		stDatei_ex = isoDatum & "_" & stDatei_ex 	END IF	 	ausDatei = stDBDir & stPfadex & "/" & stDatei_ex
  	janein = msgbox("Wirklich in die Datei" & ChrChr$) & ChrausDatei ausDatei & ChrChr$) & Chrausgeben"ausgeben ?",256+32+4,"Überleg nochmal:") 	IF janein = 7 THEN EXIT SUB 	 	If Fileexists(tmpDatei) Then Kill tmpDatei 	tmpNumber = Freefile 	Open tmpDatei For Output As tmpNumber
  	If Fileexists(ausDatei) Then Kill ausDatei 	ausNumber = Freefile 	Open ausDatei For Output As ausNumber 	 	If Fileexists(inaDatei) Then 	inaNumber = Freefile 	Open inaDatei For Input As inaNumber 	Else 		msgbox inaDatei & " nicht zu finden... - breche ab." 		exit sub 	End If
  	If Fileexists(insDatei) Then 	insNumber = Freefile 	Open insDatei For Input As insNumber 	Else 		msgbox insDatei & " nicht zu finden... - breche ab." 		exit sub 	End If
  	If Fileexists(inbDatei) Then 	inbNumber = Freefile 	Open inbDatei For Input As inbNumber 	Else 		msgbox inbDatei & " nicht zu finden... - breche ab." 		exit sub 	End If 	 	If Fileexists(incDatei) Then 	incNumber = Freefile 	Open incDatei For Input As incNumber 	Else 		msgbox incDatei & " nicht zu finden... - breche ab." 		exit sub 	End If
  	oSQL_Statement = oConnection.createStatement() 	oDoc = thisComponent	 	oDrawpage = oDoc.Drawpage 	oForm = oDrawpage.Forms.getByName("Formular_SEPAHisto") 	oFeldN = oForm.getByName("NumF_DH_ID") 	sHZeile = oFeldN.Value 	oFeldD = oForm.getByName("DatF_REQDEXCTNDT") 	sTZahlung = oFeldD.Date 	sTZ =  sTZahlung.Year & "-" & sTZahlung.Month & "-" & sTZahlung.Day  	oFeldT = oForm.getByName("Textfeld_USTRD") 	sVWZ = oFeldT.Text 	stSql = "UPDATE ""SEPAHistorie"" SET ""REQDEXCTNDT"" ='" + sTZ + "', ""USTRD_Muster"" ='" + sVWZ + "' WHERE ""ID""=" & SHZeile 	oResult = oSQL_Statement.executeQuery(stSql)	 		
  Teilb:
  	oEForm = oPForm.getByName("Ehemalige") 	soviele = oEForm.RowCount 	DIM negativListe(soviele) 	oEForm.reload() 	oEForm.first() 	stehemaligField = oEForm.findColumn("Mitgliedsnummer") 	ineg=0 	negativListe(ineg) = oEForm.getInt(1) 	WHILE oEForm.next 		ineg = ineg + 1 		negativListe(ineg) = oEForm.getInt(1) 	WEND
  	stIDField = oPForm.findColumn("ID") 	stID = oPForm.getString(stIDField)
  	stvonField = oPForm.findColumn("von") 	stvon = oPForm.getInt(stvonField)
  	stbisField = oPForm.findColumn("bis") 	stbis = oPForm.getInt(stbisField)
  	txanzahl=0 	ctrlsumme=0.00 	staktuellField = oPForm.findColumn("aktuell") 	i = stvon 	oPForm.updateInt(staktuellField,i) 	stAusgabeb = ""
  DO WHILE i < stbis+1 	drucken = TRUE 	j=0 	WHILE (j < ineg + 1) 		if negativListe(j) = i then  			drucken = FALSE 		end if	 		j=j+1 	WEND 	IF drucken THEN	 		stSql = "UPDATE ""von_bis"" SET ""aktuell"" ='" + i + "' WHERE ""ID""=0" 		oResult = oSQL_Anweisung.executeQuery(stSql) 	ELSE GOTO Labelnichtdrucken 	END IF
  	oDatenDatei = oDatenquelle.DataSource 	oAbfragen = oDatenDatei.getQueryDefinitions() 	oAbf = oAbfragen.getByName( stName ) 	stQueryb = oAbf.command  	oAbfrageergebnisb = oSQL_Anweisung.executeQuery(stQueryb) 	splastb= oAbfrageergebnisb.Columns.Count 		stSpaltenb()=oAbfrageergebnisb.Columns.ElementNames 	oAbfrageergebnisb.next     While (Not eof(inbNumber))         Line Input #inbNumber, sLine         If sLine <>"" Then 			sp = 0 			WHILE sp < (splastb) 				stQueryb = "SELECT """ + stSpaltenb(sp) + """ FROM """ + stName + """ " 				oAbfrageergebnisb = oSQL_Anweisung.executeQuery(stQueryb) 				oAbfrageergebnisb.next 				stErgebnisb = oAbfrageergebnisb.getString(1) 				IF stSpaltenb(sp) = sLine THEN 
  					if sLine = "INSTAMT" then 						ctrlsumme = ctrlsumme + stErgebnisb 					end if
  					sLine = stErgebnisb 					GOTO Labelrausb 				END IF	 				sp = sp + 1 			WEND	 			Labelrausb: 		stAusgabeb = stAusgabeb & sLine 		End If 	Wend 	PRINT #tmpNumber, stAusgabeb 	stAusgabeb = "" 	txanzahl=txanzahl + 1 	 Labelnichtdrucken: 	i = i + 1 	oPForm.updateInt(staktuellField,i)
  	Close #inbNumber 	Open inbDatei For Input As #inbNumber LOOP
  Close #tmpNumber
  	stSql = "UPDATE ""von_bis"" SET ""aktuell"" ='" + stvon + "' WHERE ""ID""=0" 	oResult = oSQL_Anweisung.executeQuery(stSql) 	oPForm.reload()	 	wait 100
  	mitDecPunkt = join(split(ctrlsumme, ","), ".")	 	stSqlsx = "UPDATE ""SEPAHistorie"" SET ""NBOFTXS"" ='" + txanzahl + "' WHERE ""ID""=" + sHZeile 	oResultsx = oSQL_Anweisung.executeQuery(stSqlsx) 	stSqlcs = "UPDATE ""SEPAHistorie"" SET ""CTRLSUM"" ='" + mitDecPunkt + "' WHERE ""ID""=" + sHZeile 	oResultcs = oSQL_Anweisung.executeQuery(stSqlcs)
 
 
  Teila:
  	stQuery = "SELECT * FROM ""SEPAHistorie"" WHERE ID = '" + sHZeile + "'" 	oAbfrageergebnis = oSQL_Anweisung.executeQuery(stQuery) 	splastaH= oAbfrageergebnis.Columns.Count 		stSpaltenaH()=oAbfrageergebnis.Columns.ElementNames
  	stQuery = "SELECT * FROM ""SEPAselbst"" WHERE ID = '0'" 	oAbfrageergebnis = oSQL_Anweisung.executeQuery(stQuery) 	splastaS= oAbfrageergebnis.Columns.Count 		stSpaltenaS()=oAbfrageergebnis.Columns.ElementNames
  	stAusgabea = ""
      While Not eof(inaNumber)         Line Input #inaNumber, sLine         If sLine <>"" Then 			spH = 0 			WHILE spH < (splastaH) 				stQuery = "SELECT """ + stSpaltenaH(spH) + """ FROM ""SEPAHistorie"" WHERE ID = '" + sHZeile + "'" 								oAbfrageergebnis = oSQL_Anweisung.executeQuery(stQuery) 				oAbfrageergebnis.next 				stErgebnis = oAbfrageergebnis.getString(1) 				IF stSpaltenaH(spH) = sLine THEN  					IF sLine = "CREDTTM" then mid(stErgebnis,11,1,"T") 					sLine = stErgebnis 					GOTO Labelrausa 				END IF	 				spH = spH + 1 			WEND	 			Labelrausa: 			stAusgabea = stAusgabea & sLine 		End If 	Wend
      While Not eof(insNumber)         Line Input #insNumber, sLine 	            	            If sLine <>"" Then 			spS = 0 			WHILE spS < (splastaS) 				stQuery = "SELECT """ + stSpaltenaS(spS) + """ FROM ""SEPAselbst"" WHERE ID = '0'" 								oAbfrageergebnis = oSQL_Anweisung.executeQuery(stQuery) 				oAbfrageergebnis.next 				stErgebnis = oAbfrageergebnis.getString(1) 				IF stSpaltenaS(spS) = sLine THEN 					IF sLine = "DB_IBAN" THEN stErgebnis = Replace(stErgebnis," ","") 					sLine = stErgebnis 					GOTO Labelrauss 				END IF	 				spS = spS + 1 			WEND	 			Labelrauss: 			stAusgabea = stAusgabea & sLine 		End If 	Wend 	Print #ausNumber, stAusgabea 
 
  Teilc: 	stAusgabec = ""     While (Not eof(incNumber))         Line Input #incNumber, sLine         If sLine <>"" Then 			stAusgabec = stAusgabec & sLine 		End If 	Wend
  	Open tmpDatei For Input As tmpNumber  	while not eof(tmpNumber)  		Line Input #tmpNumber, sLine 		Print #ausNumber, sLine 	wend	 	Print #ausNumber, stAusgabec
  Close #inaNumber Close #inbNumber Close #incNumber Close #tmpNumber Close #ausNumber msgbox ("Anzahl der Einzelüberweisungen: " & txanzahl & chr(10) & "Summe der Überweisungsbeträge: " & mitDecPunkt & " €.",64,"Fertig!") END SUB  | 
    
    
     | Standard | 
     Dividenden | 
     Ablaufdatum | 
       | 
     Basic | 
     8e - SteuerDaten|Schaltfläche 2 (Control) 8j - IBAN|Schaltfläche 2 (Control) | 
     111 | 
     SUB Ablaufdatum  	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Steuerdaten")
  	oDatenquelle = ThisComponent.Parent.CurrentController 	If NOT (oDatenquelle.isConnected()) THEN 		oDatenquelle.connect() 	END IF 	oVerbindung = oDatenquelle.ActiveConnection() 	oSQL_Anweisung = oVerbindung.createStatement() 	stZiel = "SteuerDaten" 	stMNr = 1
  	stSql_MNrMax = " SELECT  MAX( ""Mitgliedsnummer"" ) FROM ""Mitglieder"" " 	oResult_MNrMax = oSQL_Anweisung.executeQuery(stSql_MNrMax) 	oResult_MNrMax.next 	letzte=oResult_MNrMax.getInt(1)
  DIM datL0 AS LONG DIM datL0S AS LONG  DIM datL1 AS LONG DIM datS AS STRING		datL0 = Date 	datS = Date 	datarr()=split(datS,".") 	f_datS = datarr(2) & "-" & datarr(1)  & "-" & datarr(0)  	datL0S = DateSerial(datarr(2),datarr(1),datarr(0),)				 	txanzahl_nv = 0 	txanzahl_fsa = 0 	While stMNr < letzte + 1 			stSql_NVTest = " SELECT ""Mitgliedsnummer"",""NV"",""NVbis"",""FSA"",""FSAbis"" FROM """ + stZiel + """ WHERE  """ + stZiel + """.""Mitgliedsnummer"" = '" + stMNr + "' " 			oResult_NVTest = oSQL_Anweisung.executeQuery(stSql_NVTest) 			oResult_NVTest.next 			stMNr = 	oResult_NVTest.getInt(1) 			stNV = 	oResult_NVTest.getBoolean(2) 			stNVbis = 	oResult_NVTest.getDate(3) 			stFSA = 	oResult_NVTest.getBoolean(4) 			stFSAbis = 	oResult_NVTest.getDate(5)
  			if stNV then  				if (stNVbis.Year * stNVbis.Month * stNVbis.Day) =  0 then  					msgbox ("Bitte erst im Formular 5c-DividendenKonten korrigieren und aktualisieren!",48,"NV-bis-Datum bei Mitgliedsnummer " & stMNr & " fehlt oder falsch") 					goto Labelraus 				else 					datL1 = DateSerial(stNVbis.Year,stNVbis.Month,stNVbis.Day) 					if datL1 < datL0 then 						sttitel = "Das NV-Ablaufdatum: " & stNVbis.Day & "." & stNVbis.Month & "." & stNVbis.Year & " liegt in der Vergangenheit!" 						janein = msgbox ("Soll NV für Mitgliedsnummer " & stMNr & " zurückgesetzt werden?",256+32+4,sttitel) 						if janein = 6 then 							stSql = "UPDATE ""SteuerDaten"" SET ""NV"" = FALSE, ""NVbis"" = NULL " 							stSql = stSql & "WHERE ""Mitgliedsnummer"" ='" + stMNr + "' " 							oResult = oSQL_Anweisung.executeQuery(stSql) 						    oForm.reload() 						    txanzahl_nv = txanzahl_nv + 1 						end if 					end if 				end if				 			end if
  			if stFSA then  				if (stFSAbis.Year * stFSAbis.Month * stFSAbis.Day) =  0 then  					msgbox ("Bitte erst im Formular 5c-DividendenKonten korrigieren und aktualisieren!",48,"FSA-bis-Datum bei Mitgliedsnummer " & stMNr & " fehlt oder falsch") 					goto Labelraus 				else 					datL1 = DateSerial(stFSAbis.Year,stFSAbis.Month,stFSAbis.Day) 					if datL1 < datL0 then 						sttitel = "Das FSA-Ablaufdatum: " & stFSAbis.Day & "." & stFSAbis.Month & "." & stFSAbis.Year & " liegt in der Vergangenheit!" 						janein = msgbox ("Soll FSA für Mitgliedsnummer " & stMNr & " zurückgesetzt werden?",256+32+4,sttitel) 						if janein = 6 then 							stSql = "UPDATE ""SteuerDaten"" SET ""FSA"" = FALSE,""FSAbis"" = NULL,""FSARest"" = NULL " 							stSql = stSql & "WHERE ""Mitgliedsnummer"" ='" + stMNr + "' " 							oResult = oSQL_Anweisung.executeQuery(stSql) 						    oForm.reload() 						end if 					    txanzahl_fsa = txanzahl_fsa + 1 					end if 				end if				 			end if 		stMNr = stMNr + 1     Wend     oForm.reload()      Select Case txanzahl_nv  	Case 0 		 msgbox ("Kein NV-Eintrag zurückgesetzt.",64,"Steuerdaten") 	Case 1	  		 msgbox ("Ein NV-Eintrag zurückgesetzt.",64,"Steuerdaten") 	Case Else msgbox (txanzahl_nv & " NV-Einträge zurückgesetzt.",64,"Steuerdaten")		  End Select     Select Case txanzahl_fsa 	Case 0 		 msgbox ("Kein FSA-Eintrag zurückgesetzt.",64,"Steuerdaten") 	Case 1	  		 msgbox ("Ein FSA-Eintrag zurückgesetzt.",64,"Steuerdaten") 	Case Else msgbox (txanzahl_fsa & " FSA-Einträge zurückgesetzt.",64,"Steuerdaten")		  End Select      Labelraus: END SUB  | 
    
    
     | Standard | 
     Dividenden | 
     DivHistoZeile | 
       | 
     Basic | 
     KontodatenEintragen (Procedure) test (Procedure) | 
     20 | 
     FUNCTION DivHistoZeile AS LONG 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oFeld AS OBJECT 	DIM oZ AS OBJECT 	oDoc = thisComponent	 	oDrawpage = oDoc.Drawpage 	oForm = oDrawpage.Forms.getByName("Formular_Start") 	oFeld = oForm.getByName("TabellenElementDividendenHistorie") 	oSpalte = oFeld.getByName("Numerisches Feld Zeile") 	oSpalte.HelpText = "Zeile auswählen!" 	wait 100 	oZ=oFeld.getRowSet() 	wait 100 	DivHistoZeile = oZ.Row END FUNCTION  | 
    
    
     | Standard | 
     Dividenden | 
     DividHisto_DatenEintragen | 
       | 
     Basic | 
       | 
     45 | 
     SUB DividHisto_DatenEintragen(oEvent AS OBJECT) 
  	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oFeld AS OBJECT 	DIM oSpalte AS OBJECT
  	oDatenquelle = ThisComponent.Parent.CurrentController 	If NOT (oDatenquelle.isConnected()) THEN 		oDatenquelle.connect() 	END IF 	oVerbindung = oDatenquelle.ActiveConnection() 	oSQL_Anweisung = oVerbindung.createStatement()
  	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_SEPAHisto") 	oFeld = oForm.getByName("TabellenElementHistorie") 	oSpalte=oFeld.getByName("NumF_DivHistZeile") 	DH_znr = oSpalte.Value 	 	oSpalteVWZ=oFeld.getByName("USTRD_Muster") 	stSql = " SELECT ""Verwendungszweck"" FROM ""DividendenHistorie"" WHERE ""ID"" = " & DH_znr 	oAbfrageergebnis = oSQL_Anweisung.executeQuery(stSql)	oAbfrageergebnis.next 	stVWZ =  oAbfrageergebnis.getString(1) 	oSpalteVWZ.Text = stVWZ 	oSpalteVWZ.commit() wait 100 	oSpalteTZ=oFeld.getByName("DatF_REQDEXCTNDT") 	stSql = " SELECT ""TagZahlung"" FROM ""DividendenHistorie"" WHERE ""ID"" = " & DH_znr 	oAbfrageergebnis = oSQL_Anweisung.executeQuery(stSql)	oAbfrageergebnis.next 	dateTZ = oAbfrageergebnis.getDate(1) 	oSpalteTZ.Date = dateTZ 	oSpalteTZ.commit() wait 100 END SUB  | 
    
    
     | Standard | 
     Dividenden | 
     KontodatenEintragen | 
       | 
     Basic | 
     8d - DividendenZentrale|SchaltflächeAnteile (Control) | 
     210 | 
     SUB KontodatenEintragen(oEvent AS OBJECT) 	stSerie = oEvent.Source.Model.Tag
  	oPForm = oEvent.Source.Model.Parent 	oVerbindung = oPForm.activeConnection() 	oSQL_Statement = oVerbindung.createStatement()
  	oEForm = oPForm.getByName("Ehemalige") 	soviele = oEForm.RowCount 	DIM negativListe(soviele) 	oEForm.reload() 	oEForm.first() 	stehemaligField = oEForm.findColumn("Mitgliedsnummer") 	ineg=0 	negativListe(ineg) = oEForm.getInt(1) 	WHILE oEForm.next 		ineg = ineg + 1 		negativListe(ineg) = oEForm.getInt(1) 	WEND
  	stSql = "SELECT ""Wert"" FROM ""Fixwerte"" WHERE ""Fixwerte"".""Art""=" + "'1Anteil'" 	oResult = oSQL_Statement.executeQuery(stSql) 	oResult.next 	Wert1Anteil = oResult.getFloat(1)	 	 	DHZeile = DivHistoZeile() 	stSql = "SELECT * FROM ""DividendenHistorie"" WHERE ""ID""="+DHZeile+"" 	oResult = oSQL_Statement.executeQuery(stSql) 	oResult.next 	TagEintrag = oResult.getDate(2) 	TagZahlung = oResult.getDate(3) 	AusProzent = oResult.getFloat(4) 	VWZweck = oResult.getString(5) 	KEStProzent = oResult.getFloat(6)  	SoliProzent = oResult.getFloat(7) 	f_dat = TagEintrag.Year & "-" & TagEintrag.Month & "-" & TagEintrag.Day 	f_datZ = TagZahlung.Year & "-" & TagZahlung.Month & "-" & TagZahlung.Day 	f_ausproz = join(split(AusProzent, ","), ".")	 	f_kestproz = join(split(KEStProzent, ","), ".")	 	f_soliproz = join(split(SoliProzent, ","), ".")	
  	stIDField = oPForm.findColumn("ID") 	stID = oPForm.getString(stIDField) 	stvonField = oPForm.findColumn("von") 	stvon = oPForm.getInt(stvonField) 	stbisField = oPForm.findColumn("bis") 	stbis = oPForm.getInt(stbisField) 	anzdiff = stbis - stvon +1 	janein = msgbox("Wirklich die Daten mit ID=" & DHZeile & " in alle (außer übersprungene) " & anzdiff & " Konten durchführen?",256+32+4,"Überleg nochmal:") 	IF janein = 7 THEN EXIT SUB
  	staktuellField = oPForm.findColumn("aktuell") 	i = stvon 	oPForm.updateInt(staktuellField,i)
  txanzahl=0
  	janein = msgbox("Sind wirklich ALLE Nichtveranlagungsdaten" & Chrund3) &  "und Freistellungsaufträge" & Chreingetragenngetragen Im,256+32+4,"Im Zweifel bitte JETZT NEIN sagen!") 	if janein = 7 then goto Labelraus
 
 
  DO WHILE i < stbis+1 	drucken = TRUE 	j=0 	WHILE (j < ineg + 1) 		if negativListe(j) = i then  			drucken = FALSE 		end if	 		j=j+1 	WEND 	IF NOT drucken THEN  		GOTO Labelnichtweiter 	ELSE 		stSql = "UPDATE ""von_bis"" SET ""aktuell"" ='" + i + "' WHERE ""ID""=0" 		oResult = oSQL_Statement.executeQuery(stSql) 	END IF 	txanzahl=txanzahl + 1 	 	stSql = "SELECT ""Anteile"".""Mitgliedsnummer"", SUM( ""Anteile"".""AnteilePlusMinus"" ) ""AnteileSumme"" FROM ""Anteile"", ""von_bis"" WHERE ""Anteile"".""Mitgliedsnummer"" = ""von_bis"".""aktuell"" GROUP BY ""Anteile"".""Mitgliedsnummer""" 	oResult = oSQL_Statement.executeQuery(stSql) 	While oResult.next 		MitNr = oResult.getInt(1) 		AnteileSumme = oResult.getInt(2) 	Wend 	Ausschuettung = Wert1Anteil * AnteileSumme * AusProzent / 100 	f_ausschuett = join(split(Ausschuettung, ","), ".")	 	stSql = "INSERT INTO ""Anteile"" (""Mitgliedsnummer"",""VorgangID"",""TagEintrag"",""AnteileSaldo"",""AusProzent"",""Ausschuettung"")" 	stSql = stSql & " VALUES('" + MitNr + "','20','" + f_dat + "','" + AnteileSumme + "','" + f_ausproz + "','"+ f_ausschuett + "')" 	oResult = oSQL_Statement.executeQuery(stSql)
  		stSql = "SELECT * FROM ""SteuerDaten"" WHERE ""Mitgliedsnummer"" = " + i  		oResult = oSQL_Statement.executeQuery(stSql) 		While oResult.next 			MitNr = oResult.getInt(1)					KiStproz = oResult.getFloat(4)				isNV = oResult.getBoolean(5)				isFSA = oResult.getBoolean(7)				FSARest = oResult.getFloat(9) 		Wend
  	InAnspruch = 0		 	SPAusschuettung = Ausschuettung 	if isFSA then 		FSARestneu = FSARest - Ausschuettung 		if FSARestneu < 0 then  			FSARestneu = 0 			SPAusschuettung = Ausschuettung - FSARest  			InAnspruch = FSARest 		else 			SPAusschuettung = 0 			InAnspruch = Ausschuettung				 		end if 	end if 	 	KESt = SPAusschuettung * KEStProzent / 100 	KiSt = KESt * KiStproz / 100 	SoliZu = KESt * SoliProzent / 100
  	KESt2 = KESt / (1 + (KiStproz / 100) * (KEStProzent / 100))
  	Auszahlung = Ausschuettung - KESt2 - SoliZu - KiSt 	 	f_kistpro = join(split(KiStproz, ","), ".")		f_kist = join(split(KiSt, ","), ".")		f_soli = join(split(SoliZu, ","), ".")	 	InAnspruch = InAnspruch * (-1) 	f_fsa =  join(split(InAnspruch, ","), ".")		f_fsarest = join(split(FSARestneu, ","), ".")		f_kest2 = join(split(KESt2, ","), ".")		f_auszahl = join(split(Auszahlung, ","), ".")	 	stSql = "INSERT INTO ""Dividenden"" (""ausgezahlt"",""Mitgliedsnummer"",""DividID"",""Kennung"",""TagEintrag"",""AnteileSaldo"",""KEStproz"",""Soliproz"",""KiStproz"",""AusProzent"",""KapErtr"",""KapErtrSt"",""Soli"",""KiSt"",""FSABetrag"",""Auszahlung"" )" 	stSql = stSql & " VALUES('FALSE','" + MitNr + "','1','" + VWZweck + "','" + f_dat + "','" + AnteileSumme + "','" + f_kestproz + "','" + f_soliproz + "','" + f_kistpro + "','" + f_ausproz + "','"+ f_ausschuett + "','" + f_kest2 + "','" + f_soli + "','"  + f_kist + "','" + f_fsa + "','" + f_auszahl  + "')"
  	oResult = oSQL_Statement.executeQuery(stSql)
  	if InAnspruch < 0 then 		stSql = "INSERT INTO ""Dividenden"" (""Mitgliedsnummer"",""DividID"",""TagEintrag"",""FSABetrag"" )" 		stSql = stSql & " VALUES('" + MitNr + "','3','" + f_dat + "','" +  f_fsarest + "')" 		oResult = oSQL_Statement.executeQuery(stSql) 		stSql = "UPDATE ""SteuerDaten"" SET ""FSARest"" = '" + f_fsarest + "' WHERE ""Mitgliedsnummer"" = '" + MitNr + "'" 		oResult = oSQL_Statement.executeQuery(stSql) 	end if
  Labelnichtweiter: 	i = i + 1 	stAusgabeb = stAusgabeb & chr(10) 	oPForm.updateInt(staktuellField,i) LOOP
  Select Case txanzahl  	Case 0 		 msgbox ("Kein Datensatz geschrieben.",64,"Dividenden-Eintragung") 	Case 1	  		 msgbox ("Ein Datensatz geschrieben.",64,"Dividenden-Eintragung") 	Case Else msgbox (txanzahl & " Datensätze geschrieben.",64,"Dividenden-Eintragung")	  End Select
  	stSql = "UPDATE ""von_bis"" SET ""aktuell"" ='" + stvon + "' WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql) 	oPForm.reload()	 	wait 100 Labelraus: END SUB  | 
    
    
     | Standard | 
     Dividenden | 
     SEPAZeileMerken | 
       | 
     Basic | 
     8h - SEPAEinstellungen|SEPAHisto-ID (Control) | 
     44 | 
     SUB SEPAZeileMerken 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oFeld AS OBJECT 	DIM oZ AS OBJECT 	DIM SHZeile AS LONG 	oDoc = thisComponent	 	oDrawpage = oDoc.Drawpage 	oForm = oDrawpage.Forms.getByName("Formular_SEPAHistorie") 	oFeld = oForm.getByName("TabSteuerelem_SEPAHisto") 	oSpalte = oFeld.getByName("NumericFieldID") 	oSpalte.HelpText = "Zeile auswählen!" 	wait 100 	oZ=oFeld.getRowSet() 	wait 100 	SHZeile = oZ.Row 	msgbox ("Übernehme Zeile " & SHZeile & " der SEPA-Historie",64,"SEPA-Historie") 	oConnection = oForm.activeConnection() 	oSQL_Statement = oConnection.createStatement() 	stSql = "UPDATE ""SEPAaktZeile"" SET ""SEPAZeile"" ='" + SHZeile + "' WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql) 	stSql = "SELECT ""DivHistZeile"" FROM ""SEPAHistorie"" WHERE ""ID"" =" & SHZeile 	oResult = oSQL_Statement.executeQuery(stSql) 	oResult.next 	DHZeile = oResult.getint(1)	 	stSql = "SELECT * FROM ""DividendenHistorie"" WHERE ""ID""=" & DHZeile 	oResult = oSQL_Statement.executeQuery(stSql) 	oResult.next 	colTZ = oResult.findColumn("TagZahlung") 	sTZahlung = oResult.getDate(colTZ) 	colVWZ = oResult.findColumn("Verwendungszweck") 	sVWZ = oResult.getString(colVWZ) 	sTZ =  sTZahlung.Year & "-" & sTZahlung.Month & "-" & sTZahlung.Day  	stSql = "UPDATE ""SEPAHistorie"" SET ""REQDEXCTNDT"" ='" + sTZ + "', ""USTRD_Muster"" ='" + sVWZ + "' WHERE ""ID""=" & SHZeile 	oResult = oSQL_Statement.executeQuery(stSql) END SUB	  | 
    
    
     | Standard | 
     Dividenden | 
     Steuerdaten_aktualisieren | 
       | 
     Basic | 
     5c - DividendenKonten|Steuerdaten_uebernehmen (Control) | 
     57 | 
     SUB Steuerdaten_aktualisieren(oEvent AS OBJECT) 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oFeld AS OBJECT 	DIM oZ AS OBJECT 	oDoc = thisComponent	 	oDrawpage = oDoc.Drawpage 	 	oForm = oDrawpage.Forms.getByName("Formular_Filter") 	oSubForm = oForm.getByName("Formular_Personen")	 	oSubSubForm = oSubForm.getByName("Formular_Konto")	 	oFeld = oSubSubForm.getByName("Tabellen_Steuerelement")
  	MNr= oFeld.getbyName("NumF_Mitgl").value xray oFeld 	Vidnummer= oFeld.getbyName("NumF_VID").CurrentValue 	
  	datS = Date 	datarr()=split(datS,".") 	f_datS = datarr(2) & "-" & datarr(1)  & "-" & datarr(0) 
  	dat1= oFeld.getbyName("DateField1").Date 	stdatum1 = dat1.day & "." & dat1.month & "." & dat1.year 	f_dat1 = dat1.Year & "-" & dat1.Month & "-" & dat1.Day 	 	dat2= oFeld.getbyName("DateField2").Date 	stdatum2 =  dat2.day & "." & dat2.month & "." & dat2.year 	f_dat2 = dat2.Year & "-" & dat2.Month & "-" & dat2.Day  	if Vidnummer = 3 then 		FSARest= oFeld.getbyName("NumF_Pausch").value 	end if
  	oVerbindung = oForm.activeConnection() 	oSQL_Statement = oVerbindung.createStatement() 	stSql = "UPDATE ""SteuerDaten"" SET ""Aktualisierung"" ='" + f_datS + "'," 	if Vidnummer = 3 then 		stSql = stSql & " ""FSA"" = TRUE, ""FSAbis"" = '" + f_dat2 + "', ""FSARest"" = '" + FSARest + "' " 	end if 	if Vidnummer = 4 then 		stSql = stSql & " ""NV"" = TRUE, ""NVbis"" = '" + f_dat2 + "' " 	end if 		stSql = stSql & "WHERE ""Mitgliedsnummer"" ='" + MNr + "' " 	oResult = oSQL_Statement.executeQuery(stSql) END SUB  | 
    
    
     | Standard | 
     Dividenden | 
     Steuerdaten_Mitgliedsnummern_ergaenzen | 
       | 
     Basic | 
     8e - SteuerDaten|Schaltfläche 1 (Control) 8j - IBAN|Schaltfläche 1 (Control) | 
     36 | 
     SUB Steuerdaten_Mitgliedsnummern_ergaenzen 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Steuerdaten")
  	oDatenquelle = ThisComponent.Parent.CurrentController 	If NOT (oDatenquelle.isConnected()) THEN 		oDatenquelle.connect() 	END IF 	oVerbindung = oDatenquelle.ActiveConnection() 	oSQL_Anweisung = oVerbindung.createStatement() 	stZiel = "SteuerDaten" 	stMNr = 1
  	stSql_MNrMax = " SELECT  MAX( ""Mitgliedsnummer"" ) FROM ""Mitglieder"" " 	oResult_MNrMax = oSQL_Anweisung.executeQuery(stSql_MNrMax) 	oResult_MNrMax.next 	letzte=oResult_MNrMax.getInt(1) 	msgbox ("letzte Mitgliedsnummer ist " & letzte,64,stZiel) 				 	While stMNr < letzte + 1 				stSql_MNrTest = " SELECT  """ + stZiel + """.""Mitgliedsnummer"" ""MNrTest"" FROM """ + stZiel + """ WHERE  """ + stZiel + """.""Mitgliedsnummer"" = '" + stMNr + "' " 				oResult_MNrTest = oSQL_Anweisung.executeQuery(stSql_MNrTest) 				IF NOT oResult_MNrTest.next THEN							stSql_neu = " INSERT INTO """ + stZiel + """ (""Mitgliedsnummer"") VALUES ('" + stMNr + "' ) " 					oResult_neu = oSQL_Anweisung.executeQuery(stSql_neu) 					msgbox ("Mitgliedsnummer " & stMNr & " neu eingefügt",64,stZiel) 				END IF 				stMNr = stMNr + 1     Wend     oForm.reload() END SUB  | 
    
    
     | Standard | 
     Dividenden | 
     Steuerdaten_Zeilenauswahl | 
       | 
     Basic | 
     8e - SteuerDaten|Formular_StDaten|Schaltfläche_Einzeldruck (Control) 8j - IBAN|Formular_BankDaten1|Schaltfläche_Einzeldruck (Control) | 
     8 | 
     SUB Steuerdaten_Zeilenauswahl 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Steuerdaten") 	oFeld = oForm.getByName("Tabellen-SE-StDaten") END SuB  | 
    
    
     | Standard | 
     IBAN | 
     IBAN_check | 
       | 
     Basic | 
     Main (Procedure) | 
     22 | 
     FUNCTION IBAN_check(blz,kto,PZ AS string) AS BOOLEAN iban_ganz =  blz & kto & "1314" & PZ
  iban_1 = LEFT(iban_ganz,9)  rest = CLNG(iban_1) MOD 97 if rest<10 then rest = "0" & rest
  iban_2 = rest & MID(iban_ganz,10,7)  rest = CLNG(iban_2) MOD 97 if rest<10 then rest = "0" & rest
  iban_3 = rest & MID(iban_ganz,17,7)  rest = CLNG(iban_3) MOD 97 if rest<10 then rest = "0" & rest
  iban_4 = rest & MID(iban_ganz,24,7)  rest = CLNG(iban_4) MOD 97 if (rest = 1) then  	IBAN_check = TRUE 	else IBAN_check = FALSE  end if END FUNCTION  | 
    
    
     | Standard | 
     IBAN | 
     IBANcheck | 
       | 
     Basic | 
     3 - MitgliederBankdaten|Schaltfläche_IBAN (Control) | 
     67 | 
     SUB IBANcheck 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oSubForm AS OBJECT 	DIM oFeld AS OBJECT 	oDoc = thisComponent 	 	oDatenquelle = ThisComponent.Parent.CurrentController 	If NOT (oDatenquelle.isConnected()) THEN 		oDatenquelle.connect() 	END IF 	oVerbindung = oDatenquelle.ActiveConnection() 	oSQL_Anweisung = oVerbindung.createStatement()
  	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Filter")  	oSubForm = oForm.getByName("Formular_Personen")  	oSubSubForm = oSubForm.getByName("Formular_Bankdaten") 	oFeld_IBAN = oSubSubForm.getByName("Textfeld_IBAN") 	oFeld_BLZ = oSubSubForm.getByName("Listenfeld_BLZ") 	oFeld_KTO = oSubSubForm.getByName("Textfeld_KtoNummer") 	IBAN_text = oFeld_IBAN.Text
  	BLZ_text = "" 	BLZ_ID = oFeld_BLZ.CurrentValue 	if (BLZ_ID <> "") AND (NOT IsEmpty(BLZ_ID)) then 		stSql = "SELECT ""BLZ"" FROM ""Banken"" WHERE ""ID"" = " + BLZ_ID  		oAbfrageergebnis = oSQL_Anweisung.executeQuery(stSql)		oAbfrageergebnis.next 		BLZ_text= oAbfrageergebnis.getString(1)			if LEN(BLZ_text) <> 8 then msgbox "BLZ " & BLZ_text & " ist nicht 8-stellig!" 	end if 	 	KTO_text = oFeld_KTO.Text 	KTO_text = String(10,"0") & KTO_text 	KTO_text = RIGHT(KTO_text,10) 		 		i=1 	IBAN_neu = "" 	While i <= LEN (IBAN_text) 		zeichen = MID(IBAN_text,i,1)  		if zeichen <> " " then 			IBAN_neu = IBAN_neu & zeichen 		end if 	i=i+1 	Wend 	if (LEN(IBAN_neu) = 22) AND pruefeIBAN(IBAN_neu) THEN 		msginfo = "OK: " & IBAN_neu & " ist plausibel." 		msgbox(msginfo,0+64,"IBAN-Prüfung") 	else 		IBAN_Versuch = stIBAN(BLZ_text,KTO_text,"00") 		msginfo = "IBAN passt nicht. " & chr(13) & "Sie könnte " & IBAN_Versuch & " sein." 		msgbox (msginfo,0+48,"IBAN-Prüfung") 		msginfo = "Soll die IBAN "& IBAN_Versuch & Chrin13) &  "in die Tabelle BankDaten" & Chreingetragenngetragen werdenjaneinanein = msgbox(msginfo,256+32+4,"Im Zweifel bitte JETZT NEIN sagen!") 		if janein = 6 then 			oFeld_IBAN.setString(IBAN_Versuch) 			oFeld_IBAN.commit() 		end if 	end if	 END SUB  | 
    
    
     | Standard | 
     IBAN | 
     Main | 
       | 
     Basic | 
       | 
     9 | 
     Sub Main
  print stIBAN("342500000","005228077","00") if IBAN_check("342500000","005228077","84") then print "OK"
  END SUB  | 
    
    
     | Standard | 
     IBAN | 
     pruefeIBAN | 
       | 
     Basic | 
     IBANcheck (Procedure) | 
     24 | 
     FUNCTION pruefeIBAN(stIBAN AS string) AS BOOLEAN 	iban_ganz =  MID(stIBAN,5,18) & "1314" & MID(stIBAN,3,2) 	iban_1 = LEFT(iban_ganz,9)  	rest = CLNG(iban_1) MOD 97 	if rest<10 then rest = "0" & rest
  	iban_2 = rest & MID(iban_ganz,10,7)  	rest = CLNG(iban_2) MOD 97 	if rest<10 then rest = "0" & rest
  	iban_3 = rest & MID(iban_ganz,17,7)  	rest = CLNG(iban_3) MOD 97 	if rest<10 then rest = "0" & rest
  	iban_4 = rest & MID(iban_ganz,24,7)  	rest = CLNG(iban_4) MOD 97 	if (rest = 1) then  		pruefeIBAN = TRUE 		else pruefeIBAN = FALSE  	end if END FUNCTION  | 
    
    
     | Standard | 
     IBAN | 
     stIBAN | 
       | 
     Basic | 
     Main (Procedure) pruefeIBAN (Procedure) IBANcheck (Procedure) | 
     23 | 
     FUNCTION stIBAN(blz,kto,PZ AS string) AS String iban_ganz =  blz & kto & "1314" & PZ
  iban_1 = LEFT(iban_ganz,9)  rest = CLNG(iban_1) MOD 97 if rest<10 then rest = "0" & rest
  iban_2 = rest & MID(iban_ganz,10,7)  rest = CLNG(iban_2) MOD 97 if rest<10 then rest = "0" & rest
  iban_3 = rest & MID(iban_ganz,17,7)  rest = CLNG(iban_3) MOD 97 if rest<10 then rest = "0" & rest
  iban_4 = rest & MID(iban_ganz,24,7)  rest = CLNG(iban_4) MOD 97 if rest<10 then rest = "0" & rest
  iban_PZ = 98-CSTR(rest) stIBAN = "DE" & iban_PZ & blz & kto END FUNCTION  | 
    
    
     | Standard | 
     Infos | 
     Info | 
       | 
     Basic | 
     1 - Mitglieder|Hilfe (Control) 2 - MitgliederAdressen|Hilfe (Control) 3 - MitgliederBankdaten|Hilfe (Control) 4 - MitgliedsAnteile|Hilfe (Control) 5a - RatenKonten|Hilfe (Control) 5b - ProjektKonten|Hilfe (Control) 5c - DividendenKonten|Hilfe (Control) 7a - MitgliederBriefe|Hilfe (Control) 7b - Mailmerge|Hilfe (Control) 8a - ListenDatenVerwaltung|Hilfe (Control) 8b - Grundeinstellungen|Hilfe (Control) 8c - ProjekteEinstellungen|Hilfe (Control) 8d - DividendenZentrale|Hilfe (Control) 8e - SteuerDaten|Hilfe (Control) 8f - BZStEinstellungen|Hilfe (Control) 8g - BZStOnline|Hilfe (Control) 8h - SEPAEinstellungen|Hilfe (Control) 8i - Ueberweisungen|Hilfe (Control) 8j - IBAN|Hilfe (Control) | 
     48 | 
     Sub Info(oEvent AS OBJECT) 	DIM stTag AS STRING 	stTag = oEvent.Source.Model.Tag 	Select Case stTag 		Case "1" 			Call Info_Mitglieder 		Case "2" 			Call Info_MitgliederAdressen 		Case "3" 			Call Info_MitgliederBankdaten 		Case "4" 			Call Info_Mitgliedsanteile 		Case "5a" 			Call Info_RatenKonten 		Case "5b" 			Call Info_ProjektKonten 		Case "5c" 			Call Info_DividendenKonten 		Case "6" 			Call Info_StromGas 		Case "7a" 			Call Info_Mitgliederbriefe 		Case "7b" 			Call Info_Mailmerge 		Case "8a" 			Call Info_Listendaten 		Case "8b" 			Call Info_Grundeinstellungen 		Case "8c" 			Call Info_ProjekteEinstellungen 		Case "8d" 			Call Info_Dividendenzentrale 		Case "8e" 			Call Info_Steuerdaten 		Case "8f" 			Call Info_BZStEinstellungen 		Case "8g" 			Call Info_BZSt_Online 		Case "8h" 			Call Info_SEPA_Einstellungen 		Case "8i" 			Call Info_Ueberweisungen 		Case "9c" 			Call Info_StromGas 		Case Else 			msgbox "Hilflos." 	End Select End Sub  | 
    
    
     | Standard | 
     Infos | 
     Info_BZSt_Online | 
       | 
     Basic | 
     Info (Procedure) | 
     15 | 
     Sub Info_BZSt_Online stText = "Erzeugung der csv-Dateien für den Datenaustausch mit dem BZSt." stText=stText & chr(10) stText=stText & chr(10) & "Die Beschriftung der Schaltflächen gibt den Namen der" stText=stText & chr(10) & " dazugehörigen Abfrage und den Namen" stText=stText & chr(10) & " der produzierten csv-Datei an." stText=stText & chr(10) stText=stText & chr(10) & "Die csv-Dateien sollten vor der Einreichung mit einem" stText=stText & chr(10) & "Texteditor, z.B. notepad++ überprüft werden." stText=stText & chr(10) stText=stText & chr(10) & "Vor den Import der Antwort-Datei müssen in der Tabelle ""SteuerDaten"" eventuell" stText=stText & chr(10) & "  noch fehlende Mitgliedsnummern (von neuen Mitgliedern) ergänzt werden." stText=stText & chr(10) msgbox (stText,0+64,"Formular 8g-BZStOnline") End Sub  | 
    
    
     | Standard | 
     Infos | 
     Info_BZStEinstellungen | 
       | 
     Basic | 
     Info (Procedure) | 
     10 | 
     Sub Info_BZStEinstellungen stText = "Die Tabelle Fix-KiSt enthält die für BZSt-Abfragen verwendbaren Variablen." stText=stText & chr(10) stText=stText & chr(10) & "Als Ordnungskriterium wird hier immer die Mitgliedsnummer verwendet." stText=stText & chr(10) stText=stText & chr(10) & "Anfragedatum und Grund der Anfrage werden im" stText=stText & chr(10) & " Formular 8g-BZStOnline festgelegt." stText=stText & chr(10) msgbox (stText,0+64,"Formular 8f-BZStEinstellungen") End Sub  | 
    
    
     | Standard | 
     Infos | 
     Info_DividendenKonten | 
       | 
     Basic | 
     Info (Procedure) | 
     9 | 
     Sub Info_DividendenKonten stText=stText & chr(10) & "VID 1 und 2: Einträge nur von 8d-DividendenZentrale." stText=stText & chr(10) & "VID 3 und 4: unbedingt mit TagEintrag und TagAblauf eintragen!" stText=stText & chr(10) stText=stText & chr(10) & "Überblick über die Nichtveranlagungs-Bescheinigungen und" stText=stText & chr(10) & "Freistellungsaufträge im Formular ""8e-SteuerDaten""." stText=stText & chr(10) msgbox (stText,0+64,"Formular 5c-DividendenKonten") End Sub  | 
    
    
     | Standard | 
     Infos | 
     Info_Dividendenzentrale | 
       | 
     Basic | 
     Info (Procedure) | 
     18 | 
     Sub Info_Dividendenzentrale stText = "Von hier aus werden die nach einem Beschluss der Generalversammlung" stText=stText & chr(10) & "  fälligen Auschüttungen auf die Genossenschaftsnateile" stText=stText & chr(10) & "  berechnet und in die Dividendenkonten und in" stText=stText & chr(10) & "  die Anteilekonten der Mitglieder eingetragen." stText=stText & chr(10) stText=stText & chr(10) & "Ebenso werden die Zinsansprüche aus Mitgliederdarlehen" stText=stText & chr(10) & "  berechnet und in die Projektdaten und Dividendenkonten eingetragen." stText=stText & chr(10) stText=stText & chr(10) & "Diese Vorgänge sind nur durch direkte Eingriffe in" stText=stText & chr(10) & "  die Datenbanktabellen oder Enzelarbeit an den betroffenen Konten wieder rückgängig zu machen." stText=stText & chr(10) & "  Deshalb ist hier größte Vorsicht geboten!" stText=stText & chr(10) stText=stText & chr(10) & "Im Zweifel schreiben Sie bitte" stText=stText & chr(10) & "  eine kurze Email-Nachfrage an genobase@friege.de" stText=stText & chr(10) msgbox (stText,0+64,"Formular 8d-DividendenZentrale") End Sub  | 
    
    
     | Standard | 
     Infos | 
     Info_Grundeinstellungen | 
       | 
     Basic | 
     Info (Procedure) | 
     16 | 
     Sub Info_Grundeinstellungen stText = "Anpassungen an die Gegebenheiten der Genossenschaft" stText=stText & chr(10) stText=stText & chr(10) & "Die Vorgangsnummern dürfen nicht geändert oder gelöscht werden," stText=stText & chr(10) & "weil damit auch bestimme Mechanismen im Programm verknüpf sind!" stText=stText & chr(10) & "Lediglich die Texte/Satzungsparagraphen sollten angepasst werden." stText=stText & chr(10) stText=stText & chr(10) & "Die Spalte ""nicht mehr"" dient der klaren Unterscheidung" stText=stText & chr(10) & "der Personen mit Mitgliedschaft von den ehemaligen Mitgliedern." stText=stText & chr(10) stText=stText & chr(10) & "Sollten durch eine Änderung im Genossenschaftgesetz weitere Vorgänge" stText=stText & chr(10) & "dokumentiert werden müssen, schreiben Sie bitte eine" stText=stText & chr(10) & "kurze Email-Nachfrage an genobase@friege.de" stText=stText & chr(10) msgbox (stText,0+64,"Formular 8b-GrundEinstellungen") End Sub  | 
    
    
     | Standard | 
     Infos | 
     Info_Interessenten | 
       | 
     Basic | 
     9a - Interessenten|Hilfe (Control) | 
     13 | 
     Sub Info_Interessenten stText = "Aufnahme neuer InteressentInnen" stText=stText & chr(10) stText=stText & chr(10) & "ID wird automatisch vergeben." stText=stText & chr(10) & "Bitte nach Eintrag eines neuen Interessenten oder" stText=stText & chr(10) & "Korrektur von Eintragungen immer einmal" stText=stText & chr(10) & "in eine andere Zeile gehen, um die Änderungen zu speichern." stText=stText & chr(10)  stText=stText & chr(10) & "Datensätze können mit Rechtsklick->Zeilen löschen" stText=stText & chr(10) & "entsorgt werden." stText=stText & chr(10)  msgbox (stText,0+64,"Formular 9a-Interessenten") End Sub  | 
    
    
     | Standard | 
     Infos | 
     Info_Listendaten | 
       | 
     Basic | 
     Info (Procedure) | 
     15 | 
     Sub Info_Listendaten stText = "Auswahllisten für Adress- und Kontakt-Angaben" stText=stText & chr(10) & "  für Mitglieder UND Interessenten" stText=stText & chr(10)  stText=stText & chr(10) & "Durch die alphabetische Sortierung fallen" stText=stText & chr(10) & "  Doppeleinträge schnell auf." stText=stText & chr(10)  stText=stText & chr(10) & "Vor dem Löschen eines Doppeleintrags sollte in der Tabelle" stText=stText & chr(10) & "  ""Adressen"" bzw. ""Kontakte"" nachgeschaut werden," stText=stText & chr(10) & "  bei welchen Mitlgiedsnummern deren ID schon in Benutzung ist." stText=stText & chr(10) & "  Nach dem Löschen HIER IN DIESEM FORMULAR muss dann" stText=stText & chr(10) & "  bei den Mitgliedern die nun fehlende Angabe nachgetragen werden." stText=stText & chr(10)  msgbox (stText,0+64,"Formular ListenDatenVerwaltung") End Sub  | 
    
    
     | Standard | 
     Infos | 
     Info_Mailmerge | 
       | 
     Basic | 
     Info (Procedure) | 
     13 | 
     Sub Info_Mailmerge stText = "Erzeugung der csv-Dateien für Thunderbird-Mailmerge" stText=stText & chr(10) stText=stText & chr(10) & "Die Beschriftung der Schaltflächen gibt den Namen der" stText=stText & chr(10) & "  dazugehörigen Abfrage und den Namen" stText=stText & chr(10) & "  der produzierten csv-Datei an." stText=stText & chr(10) stText=stText & chr(10) & "Bei Bedarf helfe ich gerne bei der Erstellung" stText=stText & chr(10) & "  weiterer Abfragen und Schaltflächen:" stText=stText & chr(10) & "=> kurze Email-Nachfrage an genobase@friege.de" stText=stText & chr(10) msgbox (stText,0+64,"Formular 7b-Mailmerge") End Sub  | 
    
    
     | Standard | 
     Infos | 
     Info_Mitglieder | 
       | 
     Basic | 
     Info (Procedure) | 
     21 | 
     Sub Info_Mitglieder stText = "Aufnahme neuer Mitglieder, Vergabe der Mitgliedsnummer." stText=stText & chr(10) stText=stText & chr(10) & "Mitgliedsnummern werden niemals neu vergeben!" stText=stText & chr(10) & "  (siehe Vorgänge im Formular ""4-MitgliedsAnteile""!" stText=stText & chr(10) stText=stText & chr(10) & "Namens-Angaben sollten zu den BZSt-Vorgaben kompatibel sein:" stText=stText & chr(10) & "- Es dürfen weder unter Nachname noch unter Vorname" stText=stText & chr(10) & "irgendwelche Titel eingetragen werden!" stText=stText & chr(10) & "- Auch bei Eheleuten ist nur eine/r VertragsinhaberIn." stText=stText & chr(10) & "- Geburtsdatum muss korrekt angegeben werden." stText=stText & chr(10) stText=stText & chr(10) & "Auch bei Ausscheiden eines Mitglieds" stText=stText & chr(10) & "  müssen Mitgliedsnummer und Namen erhalten bleiben." stText=stText & chr(10) stText=stText & chr(10) & "Bitte nach Eintrag eines neuen Mitglieds oder" stText=stText & chr(10) & "  Korrektur von Eintragungen immer einmal" stText=stText & chr(10) & "  in eine andere Zeile gehen, um die Änderungen zu speichern." stText=stText & chr(10)  msgbox (stText,0+64,"Formular 1-Mitglieder") End Sub  | 
    
    
     | Standard | 
     Infos | 
     Info_MitgliederAdressen | 
       | 
     Basic | 
     Info (Procedure) | 
     9 | 
     Sub Info_MitgliederAdressen stText = "Diese Angaben sollten zu den BZSt-Vorgaben kompatibel sein:" stText=stText & chr(10) & "Insbesondere müssen die PLZ und Ort des Meldewohnsitzes" stText=stText & chr(10) & "  (Hauptwohnsitz) korrekt angegeben werden." stText=stText & chr(10) & "Als Hausnummer ist nur eine Zahl zulässig," stText=stText & chr(10) & "  weitere Angaben gehören unter ""Zusatz""." stText=stText & chr(10)  msgbox (stText,0+64,"Formular MitgliederAdressen") End Sub  | 
    
    
     | Standard | 
     Infos | 
     Info_MitgliederBankdaten | 
       | 
     Basic | 
     Info (Procedure) | 
     9 | 
     Sub Info_MitgliederBankdaten stText = "Wichtig sind KontoinhaberIn und die richtige IBAN." stText=stText & chr(10) & "IBAN kann mit Leerstellen lesbarer gemacht werden:" stText=stText & chr(10) & "DEnn nnnn nnnn nnnn nnnn nn" stText=stText & chr(10) & "" stText=stText & chr(10) & "Vor jeder (Dividenden-)Überweisung sollten die IBANs kontrolliert werden." stText=stText & chr(10)  msgbox (stText,0+64,"Formular MitgliederBankdaten") End Sub  | 
    
    
     | Standard | 
     Infos | 
     Info_Mitgliederbriefe | 
       | 
     Basic | 
     Info (Procedure) | 
     10 | 
     Sub Info_Mitgliederbriefe stText = "Mögliche Verwendung einer weiblich und einer männlich/neutral" stText=stText & chr(10) & " formulierten Brief-Vorlage mit dazugehörigen Abfragen" stText=stText & chr(10) & " ergibt eine Fehlermeldung wegen eines leeren Datensatzes." stText=stText & chr(10)  stText=stText & chr(10) & "Wird die Frage ""Trotzdem weitere Briefe erstellen?"" " stText=stText & chr(10) & "  mit JA beantwortet unterbleiben weitere Fehlermeldungen." stText=stText & chr(10)  msgbox (stText,0+64,"Formular 7a-MitgliederBriefe") End Sub  | 
    
    
     | Standard | 
     Infos | 
     Info_Mitgliedsanteile | 
       | 
     Basic | 
     Info (Procedure) | 
     15 | 
     Sub Info_Mitgliedsanteile stText =stText & "TagEintrag=Tag des Vorstandsbeschlusses," stText=stText & chr(10) & "TagZahlung=Tag des vollständigen Zahlungseingangs." stText=stText & chr(10)  stText=stText & chr(10) & "VID 12 (Ratenzahlung): für Neuanlage nur Tag.Eintrag und ggf. Bemerkungen eintragen." stText=stText & chr(10) & "   Dann Schaltfläche ""Ratendaten anlegen"" betätigen und alles weitere im Ratenkonto."  stText=stText & chr(10) & "   Tag der letzten Rate als Tag.Zahlung bei zugehöriger VID=2 bzw. VID=3 eintragen." stText=stText & chr(10)  stText=stText & chr(10) & "VID 20: Einträge werden nur von 8d-DividendenZentrale vorgenommen." stText=stText & chr(10)  stText=stText & chr(10) & "VID 50: nur Tag.Eintrag und ggf. Bemerkungen eintragen," stText=stText & chr(10) & "   alle weiteren Angaben werden in 5c-Dividendenkonten eingetragen." stText=stText & chr(10)  msgbox (stText,0+64,"Formular 4-MitgliedsAnteile") End Sub  | 
    
    
     | Standard | 
     Infos | 
     Info_ProjekteEinstellungen | 
       | 
     Basic | 
     Info (Procedure) | 
     8 | 
     Sub Info_ProjekteEinstellungen stText = "Grundlagen für Mitglieder-Projekte, z.B. Mitgliederdarlehen" stText=stText & chr(10) stText=stText & chr(10) & "Die Projektnummer ""0"" ist für die Mitgliedschaft reserviert," stText=stText & chr(10) & "  darf also nicht für ein reales Projekt vergeben werden!" stText=stText & chr(10) msgbox (stText,0+64,"Formular 8c-ProjekteEinstellungen") End Sub  | 
    
    
     | Standard | 
     Infos | 
     Info_ProjektKonten | 
       | 
     Basic | 
     Info (Procedure) | 
     8 | 
     Sub Info_ProjektKonten stText = "TagEintrag=Tag des Vorstandsbeschlusses" stText=stText & chr(10) & "TagZahlung=Tag des vollständigen Zahlungsein-/ausgangs." stText=stText & chr(10)  stText=stText & chr(10) & "P-ID und V-ID: Festlegungen im Formular 8c-ProjekteEinstellungen." stText=stText & chr(10)  msgbox (stText,0+64,"Formular 5b-ProjektKonten") End Sub  | 
    
    
     | Standard | 
     Infos | 
     Info_RatenKonten | 
       | 
     Basic | 
     Info (Procedure) | 
     10 | 
     Sub Info_RatenKonten stText = "Die Neuanlage (2-Sollstellung) wird mit der Schaltfläche im 4-Anteilekonto durchgeführt."  stText=stText & chr(10) & "Der abzahlende Betrag (ggf. mit Eintrittsgeld) wird " stText=stText & chr(10) & "   mit Minuszeichen manuell in dieser Zeile eingetragen." stText=stText & chr(10)  stText=stText & chr(10) & "Tag des Eingangs der letzten Rate (6-Anteil(e) fertig) im Anteilekonto" stText=stText & chr(10) & "   manuell als Tag.Zahlung bei zugehöriger VID=2 bzw. VID=3 eintragen." stText=stText & chr(10)  msgbox (stText,0+64,"Formular 5a-RatenKonten") End Sub  | 
    
    
     | Standard | 
     Infos | 
     Info_SEPA_Einstellungen | 
       | 
     Basic | 
     Info (Procedure) | 
     17 | 
     Sub Info_SEPA_Einstellungen stText = "Vorbereitung der Überweisungs-Aktionen" stText=stText & chr(10) stText=stText & chr(10) & "Jede Überweisungsaktion erfolgt auf Grundlage eines Datensatzes" stText=stText & chr(10) & "  in der Dividenden-Historie (Formular 8d-DividendenZentrale)." stText=stText & chr(10) & "  Dem werden hier notwendige Daten für die Einreichung der xml-Datei" stText=stText & chr(10) & "  hinzugefügt." stText=stText & chr(10) stText=stText & chr(10) & "Für misslungene (Einzel-)Überweisungen sollte die Wiederholung" stText=stText & chr(10) & "  denselben Datensatz der Dividenden-Historie benutzen." stText=stText & chr(10) & "  Eine entsrechende Kennzeichnung könnte dann im Feld" stText=stText & chr(10) & "  MSGID oder PMTINFID erfolgen." stText=stText & chr(10) stText=stText & chr(10) & "Im Zweifel schreiben Sie bitte" stText=stText & chr(10) & "eine kurze Email-Nachfrage an genobase@friege.de" msgbox (stText,0+64,"Formular 8b-GrundEinstellungen") End Sub  | 
    
    
     | Standard | 
     Infos | 
     Info_Steuerdaten | 
       | 
     Basic | 
     Info (Procedure) | 
     12 | 
     Sub Info_Steuerdaten stText = "Steuerliche ID-Nummer und Kirchensteuerangaben werden vom Formular" stText=stText & chr(10) & "  8g-BZStOnline eingetragen." stText=stText & chr(10) & "  Dazu müssen in der Tabelle ""SteuerDaten"" eventuell" stText=stText & chr(10) & "  noch fehlende Mitgliedsnummern (von neuen Mitgliedern) vorher ergänzt werden." stText=stText & chr(10) stText=stText & chr(10) & "Freistellungsaufträge und Nichtveranlagungsbescheinigungen" stText=stText & chr(10) & "  werden in 5c-Dividendenkonten eingetragen" stText=stText & chr(10) & "  und mit ""Steuerdaten übernehmen"" hierher übertragen." stText=stText & chr(10) msgbox (stText,0+64,"Formular 8e-Steuerdaten") End Sub  | 
    
    
     | Standard | 
     Infos | 
     Info_StromGas | 
       | 
     Basic | 
     6 - MitgliederStromGas|Hilfe (Control) 9c - InteressentenStromGas|Hilfe (Control) Info (Procedure) | 
     11 | 
     Sub Info_StromGas stText = "Daten nur zur eigenen Dokumentation und Abgleich mit den Daten des Versorgers." stText=stText & chr(10)  stText=stText & chr(10) & "Status ""Familie"": kein eigener Vertrag, also Anzahl der Zähler = 0" stText=stText & chr(10) & "- dient nur der Verhinderung von unsinniger Werbung!" stText=stText & chr(10)  stText=stText & chr(10) & "Ist VertragsinhaberIn kein Mitglied, muss er/sie" stText=stText & chr(10) & "  im Formular ""9c-InteresssentenStromGas"" eingetragen werden." stText=stText & chr(10)  msgbox (stText,0+64,"Formular Strom-/Gasverträge") End Sub  | 
    
    
     | Standard | 
     Navigation | 
     Ansicht100 | 
       | 
     Basic | 
     Hauptformular_oeffnen (Procedure) Formular_Direktstart (Procedure) Zu_Formular_von_Formular (Procedure) Zu_Formular_von_Formular_mit_Ordner (Procedure) | 
     8 | 
     sub Ansicht100 dim document   as object dim dispatcher as object document   = ThisComponent.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") dispatcher.executeDispatch(document, ".uno:Zoom100Percent", "", 0, Array()) end sub  | 
    
    
     | Standard | 
     Navigation | 
     Fenster_mini | 
       | 
     Basic | 
     Formular_Direktstart (Procedure) | 
     10 | 
     SUB Fenster_mini  DIM oFrame AS OBJECT  DIM oWin AS OBJECT wait 10 oFrame = StarDesktop.getCurrentFrame() oWin = oFrame.getContainerWindow() wait 10 oWin. IsMinimized = true END SUB  | 
    
    
     | Standard | 
     Navigation | 
     Fenstergroesse | 
       | 
     Basic | 
     StartFormular_close (Procedure) | 
     17 | 
     SUB Fenstergroesse  DIM oFrame AS OBJECT  DIM oWin AS OBJECT  DIM oLayoutMng AS OBJECT  DIM aElemente() wait 100 oFrame = StarDesktop.getCurrentFrame() oWin = oFrame.getContainerWindow() wait 10 oWin.setPosSize(0,0,800,600,15) END SUB  | 
    
    
     | Standard | 
     Navigation | 
     Formular_Direktstart | 
       | 
     Basic | 
     GENOBASEv40x_LEER.odb (Database) | 
     16 | 
     SUB Formular_Direktstart DIM oDatenquelle AS OBJECT  wait 1000  oDatenquelle = ThisDatabaseDocument.CurrentController  If NOT ( oDatenquelle.isConnected()) THEN  oDatenquelle.connect()  END IF Fenster_mini  Symbolleisten_Ausblenden  Ansicht100  ThisDatabaseDocument.FormDocuments.getByName( "0 - START").open END SUB  | 
    
    
     | Standard | 
     Navigation | 
     Hauptformular_oeffnen | 
       | 
     Basic | 
       | 
     5 | 
     SUB Hauptformular_oeffnen Symbolleisten_Ausblenden 	Ansicht100 	ThisDatabaseDocument.FormDocuments.getByName( "0 - START" ).open END SUB  | 
    
    
     | Standard | 
     Navigation | 
     StartFormular_close | 
       | 
     Basic | 
     0 - START|Schaltfläche_fertig (Control) | 
     7 | 
     SUB StartFormular_close 	DIM stTag AS STRING 	ThisDatabaseDocument.FormDocuments.getByName( "0 - START" ).close 	Fenstergroesse 	Symbolleisten_Einblenden END SUB  | 
    
    
     | Standard | 
     Navigation | 
     Symbolleisten_Ausblenden | 
       | 
     Basic | 
     Hauptformular_oeffnen (Procedure) Formular_Direktstart (Procedure) Zu_Formular_von_Formular (Procedure) | 
     23 | 
     SUB Symbolleisten_Ausblenden DIM oFrame AS OBJECT DIM oWin AS OBJECT DIM oLayoutMng AS OBJECT DIM aElemente() oFrame = StarDesktop.getCurrentFrame() oFrame.setTitle "Mitglieder und InteressentInnen"
  oLayoutMng = oFrame.LayoutManager aElemente = oLayoutMng.getElements() FOR i = LBound(aElemente) TO UBound(aElemente) IF aElemente(i).ResourceURL = "private:resource/toolbar/formsnavigationbar" THEN ELSE  oLayoutMng.hideElement( aElemente(i).ResourceURL) END IF NEXT
  END SUB  | 
    
    
     | Standard | 
     Navigation | 
     Symbolleisten_Ausblenden_I | 
       | 
     Basic | 
       | 
     23 | 
     SUB Symbolleisten_Ausblenden_I DIM oFrame AS OBJECT DIM oWin AS OBJECT DIM oLayoutMng AS OBJECT DIM aElemente()
  oFrame = StarDesktop.getCurrentFrame() oFrame.setTitle "InteressentInnen-Verwaltung"
  oLayoutMng = oFrame.LayoutManager aElemente = oLayoutMng.getElements() FOR i = LBound(aElemente) TO UBound(aElemente) IF aElemente(i).ResourceURL = "private:resource/toolbar/formsnavigationbar" THEN ELSE  oLayoutMng.hideElement( aElemente(i).ResourceURL) END IF NEXT
  END SUB  | 
    
    
     | Standard | 
     Navigation | 
     Symbolleisten_Ausblenden_M | 
       | 
     Basic | 
       | 
     24 | 
     SUB Symbolleisten_Ausblenden_M DIM oFrame AS OBJECT DIM oWin AS OBJECT DIM oLayoutMng AS OBJECT DIM aElemente()
  oFrame = StarDesktop.getCurrentFrame() oFrame.setTitle "Mitgliederverwaltung"
  oLayoutMng = oFrame.LayoutManager aElemente = oLayoutMng.getElements() FOR i = LBound(aElemente) TO UBound(aElemente)
  IF aElemente(i).ResourceURL = "private:resource/toolbar/formsnavigationbar" THEN
  ELSE  oLayoutMng.hideElement( aElemente(i).ResourceURL) END IF NEXT
  END SUB  | 
    
    
     | Standard | 
     Navigation | 
     Symbolleisten_Einblenden | 
       | 
     Basic | 
     Über...|Schaltfläche 1 (Control) StartFormular_close (Procedure) | 
     20 | 
     SUB Symbolleisten_Einblenden DIM oFrame AS OBJECT DIM oLayoutMng AS OBJECT DIM aElemente() wait 100 oFrame = StarDesktop.getCurrentFrame() oLayoutMng = oFrame.LayoutManager aElemente = oLayoutMng.getElements()
 
  oLayoutMng.showElement("private:resource/menubar/menubar") END SUB  | 
    
    
     | Standard | 
     Navigation | 
     Zu_Formular_von_Formular | 
       | 
     Basic | 
     0 - START|Schaltfläche_Back (Control) 0 - START|Schaltfläche_Interessenten_Briefe (Control) 0 - START|Schaltfläche_Briefe (Control) 0 - START|Schaltfläche_StromGas_Mitglieder (Control) 0 - START|Schaltfläche_Bankdaten (Control) 0 - START|Schaltfläche_StromGas_Interessenten (Control) 0 - START|Schaltfläche_Aufnahme (Control) 0 - START|Schaltfläche_Kontakte_Interessenten (Control) 0 - START|Schaltfläche_Dividenden (Control) 0 - START|Schaltfläche_Anteile (Control) 0 - START|Schaltfläche_LDV (Control) 0 - START|Schaltfläche_Raten (Control) 0 - START|Schaltfläche_Aufnahme_Interessenten (Control) 0 - START|Schaltfläche_Kontakte_Mitglieder (Control) 0 - START|Schaltfläche_Projekte (Control) 0 - START|Schaltfläche_MMT (Control) 1 - Mitglieder|Schaltfläche zuAdressen (Control) 1 - Mitglieder|Schaltfläche START (Control) 2 - MitgliederAdressen|Schaltfläche Bankdaten (Control) 2 - MitgliederAdressen|Schaltfläche Listendaten (Control) 2 - MitgliederAdressen|Schaltfläche START (Control) 3 - MitgliederBankdaten|Schaltfläche Anteile (Control) 3 - MitgliederBankdaten|Schaltfläche START (Control) 4 - MitgliedsAnteile|zumDividendenkonto (Control) 4 - MitgliedsAnteile|zumProjektekonto (Control) 4 - MitgliedsAnteile|Schaltfläche START (Control) 4 - MitgliedsAnteile|zumRatenkonto (Control) 5a - RatenKonten|Schaltfläche START (Control) 5a - RatenKonten|zumAnteilekonto (Control) 5b - ProjektKonten|zumDividendenkonto (Control) 5b - ProjektKonten|Schaltfläche START (Control) 5b - ProjektKonten|zumAnteilekonto (Control) 5c - DividendenKonten|zumProjektekonto (Control) 5c - DividendenKonten|zuSteuerdaten (Control) 5c - DividendenKonten|zumAnteilekonto (Control) 5c - DividendenKonten|Schaltfläche START (Control) 6 - MitgliederStromGas|Schaltfläche START (Control) 7a - MitgliederBriefe|Schaltfläche START (Control) 7b - Mailmerge|Schaltfläche START1 (Control) 8 - BACKOFFICE|Schaltfläche_IBAN (Control) 8 - BACKOFFICE|Schaltfläche_Einstellungen Projekte (Control) 8 - BACKOFFICE|Schaltfläche_SteuerDaten (Control) 8 - BACKOFFICE|Schaltfläche_BZStGrundeinstellungen (Control) 8 - BACKOFFICE|Schaltfläche_Grundeinstellungen (Control) 8 - BACKOFFICE|Schaltfläche_Dividenden (Control) 8 - BACKOFFICE|Schaltfläche_SEPAGrundeinstellungen (Control) 8 - BACKOFFICE|Schaltfläche_BZStOnline (Control) 8 - BACKOFFICE|Schaltfläche_SEPA (Control) 8 - BACKOFFICE|Schaltfläche_Zurueck (Control) 8a - ListenDatenVerwaltung|Schaltfläche START (Control) 8b - Grundeinstellungen|Schaltfläche BACK (Control) 8c - ProjekteEinstellungen|Schaltfläche BACK (Control) 8d - DividendenZentrale|zuSteuerdaten (Control) 8d - DividendenZentrale|Schaltfläche BACK (Control) 8e - SteuerDaten|SchaltflächezuDividZ (Control) 8e - SteuerDaten|zumDividendenkonto (Control) 8e - SteuerDaten|Schaltfläche BACK (Control) 8f - BZStEinstellungen|Schaltfläche BACK (Control) 8g - BZStOnline|zuSteuerdaten (Control) 8g - BZStOnline|Schaltfläche BACK (Control) 8h - SEPAEinstellungen|zuUeberweisungen (Control) 8h - SEPAEinstellungen|Schaltfläche BACK (Control) 8i - Ueberweisungen|zumDividendenkonto (Control) 8i - Ueberweisungen|zuSEPAEinstellungen (Control) 8i - Ueberweisungen|Schaltfläche BACK (Control) 8j - IBAN|zumBankDaten (Control) 8j - IBAN|Schaltfläche BACK (Control) 9a - Interessenten|Schaltfläche zuAdressen (Control) 9a - Interessenten|Schaltfläche START (Control) 9b - InteressentenAdressen|Schaltfläche START (Control) 9b - InteressentenAdressen|Schaltfläche zu StromGas (Control) 9b - InteressentenAdressen|Schaltfläche Listendaten (Control) 9c - InteressentenStromGas|Schaltfläche START (Control) 9d - InteressentenBriefe|Schaltfläche START (Control) Über...|Schaltfläche START1a (Control) | 
     12 | 
     SUB Zu_Formular_von_Formular(oEvent AS OBJECT) 	Ansicht100 	DIM stTag AS STRING 	stTag = oEvent.Source.Model.Tag 	aForms() = Split(stTag, ",")		ThisDatabaseDocument.FormDocuments.getByName( Trim(aForms(0)) ).open  Symbolleisten_Ausblenden 	ThisDatabaseDocument.FormDocuments.getByName( Trim(aForms(1)) ).close END SUB  | 
    
    
     | Standard | 
     Navigation | 
     Zu_Formular_von_Formular_mit_Ordner | 
       | 
     Basic | 
       | 
     21 | 
     SUB Zu_Formular_von_Formular_mit_Ordner(oEvent AS OBJECT) 	Ansicht100 				DIM stTag AS STRING 	stTag = oEvent.Source.Model.Tag 	aForms() = Split(stTag, ",")		aForms1() = Split(aForms(0),"/") 	aForms2() = Split(aForms(1),"/") 	IF UBound(aForms1()) = 0 THEN 		ThisDatabaseDocument.FormDocuments.getByName( Trim(aForms1(0)) ).open 	ELSE 		ThisDatabaseDocument.FormDocuments.getByName( Trim(aForms1(0)) ).getByName( Trim(aForms1(1)) ).open 	END IF 	IF UBound(aForms2()) = 0 THEN 		ThisDatabaseDocument.FormDocuments.getByName( Trim(aForms2(0)) ).close 	ELSE 		ThisDatabaseDocument.FormDocuments.getByName( Trim(aForms2(0)) ).getByName( Trim(aForms2(1)) ).close 	END IF END SUB  | 
    
    
     | Standard | 
     Projekte | 
     ProjektdatenEintragen | 
       | 
     Basic | 
     8d - DividendenZentrale|SchaltflächeProjekte (Control) | 
     191 | 
     SUB ProjektdatenEintragen(oEvent AS OBJECT)  	stSerie = oEvent.Source.Model.Tag 	oPForm = oEvent.Source.Model.Parent  	oConnection = oPForm.activeConnection() 	oSQL_Statement = oConnection.createStatement() 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Start") 	oFeld = oForm.getByName("TabellenElementDividendenHistorie") 	oSpalte=oFeld.getByName("DatF_TagEintrag")  	TagEintrag = oSpalte.CurrentValue 	oSpalte=oFeld.getByName("DatF_TagZahlung")  	TagZahlung = oSpalte.CurrentValue 	oSpalte=oFeld.getByName("NF_AusProzent")  	AusProzent = oSpalte.CurrentValue 	oSpalte=oFeld.getByName("NF_KEStproz")  	KEStProzent = oSpalte.CurrentValue 	oSpalte=oFeld.getByName("NF_Soliproz")   	SoliProzent = oSpalte.CurrentValue  	oSpalte=oFeld.getByName("NF_PV")   	PVorgangID = oSpalte.CurrentValue  	oSpalte=oFeld.getByName("TF_VWZ")  	VWZweck = oSpalte.CurrentValue 	oSpalte=oFeld.getByName("NF_ProjektID") 	stAktProjekt = oSpalte.CurrentValue msgbox "aktuelle Projektnummmer: " & staktProjekt				 	f_dat = TagEintrag.Year & "-" & TagEintrag.Month & "-" & TagEintrag.Day 	f_datZ = TagZahlung.Year & "-" & TagZahlung.Month & "-" & TagZahlung.Day 	f_ausproz = join(split(AusProzent, ","), ".")	 	f_kestproz = join(split(KEStProzent, ","), ".")	 	f_soliproz = join(split(SoliProzent, ","), ".")	 	oSQL_StatementmNRD = oConnection.createStatement() 	oSQL_StatementmNRD.ResultSetType =com.sun.star.sdbc.ResultSetType.SCROLL_SENSITIVE 	stSql_mNRD =  " SELECT ""Mitgliedsnummer"" FROM ""ProjektDaten"" WHERE ""ProjektDaten"".""ProjektID"" = '" + staktProjekt + "' AND ""ProjektDaten"".""ProjVID"" = '1' " 	oResultmNRD = oSQL_StatementmNRD.executeQuery(stSql_mNRD) 	WHILE oResultmNRD.next 	WEND 	anzNRD = oResultmNRD.Row - 1 msgbox "Anzahl der Mitglieder mit Projektnummer " & staktProjekt & " : " & anzNRD 	DIM mitNRDListe(anzNRD) 	oResultmNRD.first 	jn=1 	mitNRDListe(jn) = oResultmNRD.getInt(1) 	WHILE oResultmNRD.next 		jn = jn + 1 		mitNRDListe(jn) = oResultmNRD.getInt(1) 	WEND 	stSql = "SELECT * FROM ""von_bis"" WHERE ""ID"" = '0'" 	oResult = oSQL_Statement.executeQuery(stSql) 	oResult.next 	oColumns = oResult.columns() 	IF oColumns.hasByName("von") THEN indexvon = oColumns.findColumn("von") 	stvon = oResult.getInt(indexvon) 	IF oColumns.hasByName("bis") THEN indexbis = oColumns.findColumn("bis") 	stbis = oResult.getInt(indexbis) msgbox stvon & " - " & stbis		
  	janein = msgbox("Sind wirklich ALLE Nichtveranlagungsdaten" & Chrund3) &  "und Freistellungsaufträge" & Chreingetragenngetragen Im,256+32+4,"Im Zweifel bitte JETZT NEIN sagen!") 	if janein = 7 then goto Labelraus
  	i = 1 	txanzahl = 0 	stMitglListe = "Einträge für Mitgliedsnummer " & chr(10) DO WHILE (i < anzNRD+1)  stMitgl = mitNRDListe(i)
  IF  (stMitgl >= stvon) AND (stMitgl <= stbis) THEN
  	stSql_VID1 =  " SELECT * FROM ""ProjektDaten"" WHERE  ""ProjVID"" = '1' AND ""Mitgliedsnummer"" = '" + stMitgl + "' AND ""ProjektID"" = '" + staktProjekt + "' " 	oResult = oSQL_Statement.executeQuery(stSql_VID1) 	oResult.next
  	oColumns = oResult.columns() 	IF oColumns.hasByName("Betrag") THEN inIndex = oColumns.findColumn("Betrag") 	stBetrag=oResult.getInt(inIndex) msgbox "Mitglied " & stMitgl & "  Betrag: " & stBetrag 	 	Ausschuettung = stBetrag * AusProzent / 100 	f_kapertrag = join(split(Ausschuettung, ","), ".")	 	stSql = "INSERT INTO ""ProjektDaten"" (""Mitgliedsnummer"",""ProjektID"",""ProjVID"",""Datum"",""Betrag"",""ProjVID"")" 	stSql = stSql & " VALUES('" + stMitgl + "','" + stAktProjekt + "','3','" + f_dat +  "','" + f_kapertrag +  "','" + PVorgangID + "')"  	oResult = oSQL_Statement.executeQuery(stSql)
  		stSql = "SELECT * FROM ""SteuerDaten"" WHERE ""Mitgliedsnummer"" = " + i  		oResult = oSQL_Statement.executeQuery(stSql) 		While oResult.next 			MitNr = oResult.getInt(1)					KiStproz = oResult.getFloat(4)				isNV = oResult.getBoolean(5)				isFSA = oResult.getBoolean(7)				FSARest = oResult.getFloat(9) 		Wend
  	InAnspruch = 0		 	SPAusschuettung = Ausschuettung 	if isFSA then 		FSARestneu = FSARest - Ausschuettung 		if FSARestneu < 0 then  			FSARestneu = 0 			SPAusschuettung = Ausschuettung - FSARest  			InAnspruch = FSARest 		else 			SPAusschuettung = 0 			InAnspruch = Ausschuettung				 		end if 	end if 	 	KESt = SPAusschuettung * KEStProzent / 100 	KiSt = KESt * KiStproz / 100 	SoliZu = KESt * SoliProzent / 100
  	KESt2 = KESt / (1 + (KiStproz / 100) * (KEStProzent / 100))
  	Auszahlung = Ausschuettung - KESt2 - SoliZu - KiSt 	 	f_kistproz = join(split(KiStproz, ","), ".")		f_kist = join(split(KiSt, ","), ".")		f_soli = join(split(SoliZu, ","), ".")	 	InAnspruch = InAnspruch * (-1) 	f_fsa =  join(split(InAnspruch, ","), ".")		f_fsarest = join(split(FSARestneu, ","), ".")		f_kest2 = join(split(KESt2, ","), ".")		f_auszahl = join(split(Auszahlung, ","), ".")	 	stSql = "INSERT INTO ""Dividenden"" (""Mitgliedsnummer"",""DividID"",""TagEintrag"",""KapErtr"",""KapErtrSt"",""Soli"",""KiSt"",""Kennung"",""Auszahlung"",""AusProzent"",""KEStproz"",""Soliproz"",""KiStproz"",""FSABetrag"",""ausgezahlt"",""ProjektID"")" 	stSql = stSql & " VALUES('" + stMitgl + "','2','" + f_dat + "','" + f_kapertrag + "','" + f_kest2 + "','" +  f_soli + "','"  + f_kist + "','" + VWZweck  + "','" + f_auszahl  + "','" + f_ausproz + "','"+  f_kestproz + "','" + f_soliproz + "','" + f_kistproz + "','" +  f_fsa + "', FALSE,'" + stAktProjekt + "')"
 
 
  	oResult = oSQL_Statement.executeQuery(stSql) 	stMitglListe = stMitglListe & stMitgl & ", " 	txanzahl = txanzahl + 1 END IF 	i = i + 1 LOOP
  Select Case txanzahl  	Case 0 		msgbox ("Kein Datensatz geschrieben.",64,"Dividenden-Eintragung") 	Case 1	  		msgbox ("Ein Datensatz geschrieben.",64,"Dividenden-Eintragung") 		msgbox ("Einträge für Mitgliedsnummer " & stMitgl,64,"Dividenden-Eintragung")  	Case Else  		msgbox (txanzahl & " Datensätze geschrieben.",64,"Dividenden-Eintragung") 		msgbox (stMitglListe,64,"Dividenden-Eintragung") End Select
  	stSql = "UPDATE ""von_bis"" SET ""aktuell"" ='" + stvon + "' WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql) 	oPForm.reload()	 	wait 100
  Labelraus: END SUB  | 
    
    
     | Standard | 
     Projekte | 
     ProjektID_lesen | 
       | 
     Basic | 
     8d - DividendenZentrale|TabellenElementDividendenHistorie (Control) | 
     39 | 
     SUB ProjektID_lesen(oEvent AS OBJECT) 	DIM stTag AS STRING 	stTag = oEvent.Source.Model.Tag 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oForm2 AS OBJECT 	DIM oFeld AS OBJECT 	DIM oButton0 AS OBJECT 	DIM oButton50 AS OBJECT 	DIM oSpalte AS OBJECT 	oDatenquelle = ThisComponent.Parent.CurrentController 	If NOT (oDatenquelle.isConnected()) THEN 		oDatenquelle.connect() 	END IF 	oVerbindung = oDatenquelle.ActiveConnection() 	oSQL_Anweisung = oVerbindung.createStatement() 	 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Start") 	oFeld = oForm.getByName("TabellenElementDividendenHistorie") 	oSpalte=oFeld.getByName("NF_ProjektID") 	oForm2 = oDrawpage.forms.getByName("Formular_Serie") 	oButton0 = oForm2.getByName("SchaltflächeAnteile") 	oButton50 = oForm2.getByName("SchaltflächeProjekte") 	oButton0.EnableVisible = FALSE 	oButton50.EnableVisible = FALSE 	SELECT CASE oSpalte.CurrentValue 		CASE 0  			oButton0.EnableVisible = TRUE 		CASE ELSE 			oButton50.EnableVisible = TRUE 	END SELECT		
  END SUB  | 
    
    
     | Standard | 
     Projekte | 
     test | 
       | 
     Basic | 
       | 
     235 | 
     SUB test
  	oPForm = oEvent.Source.Model.Parent  	oVerbindung = oPForm.activeConnection()
  	oSQL_Statement = oVerbindung.createStatement() 	stSql =  " SELECT ""Integer"" FROM ""Projekt_aktID"" WHERE ""ID"" = 0 " 	oResult = oSQL_Statement.executeQuery(stSql) 	oResult.next 	stProjekt = oResult.getInt(1) msgbox "aktuelle Projektnummmer: " & stProjekt	 			 	oSQL_Statement = oVerbindung.createStatement() 	oSQL_Statement.ResultSetType =com.sun.star.sdbc.ResultSetType.SCROLL_SENSITIVE 	stSql =  " SELECT ""Mitgliedsnummer"" FROM ""Anteile"" WHERE ""VorgangID"" = 50 ORDER BY ""Mitgliedsnummer"" " 	oResult = oSQL_Statement.executeQuery(stSql) 		WHILE oResult.next 		WEND 		anzProjekt = oResult.Row - 1 msgbox "Anzahl der Mitglieder mit Projekt ist " & anzProjekt 		DIM mitProjektListe(anzProjekt) 		oResult.first 		jn=1 		mitProjektListe(jn) = oResult.getInt(1) 		WHILE oResult.next 			jn = jn + 1 			mitProjektListe(jn) = oResult.getInt(1) msgbox jn & ": " & mitProjektListe(jn) 		WEND EXIT SUB
 
  	oEForm = oPForm.getByName("Ehemalige") 	soviele = oEForm.RowCount 	DIM negativListe(soviele) 	oEForm.reload() 	oEForm.first() 	stehemaligField = oEForm.findColumn("Mitgliedsnummer") 	ineg=0 	negativListe(ineg) = oEForm.getInt(1) 	WHILE oEForm.next 		ineg = ineg + 1 		negativListe(ineg) = oEForm.getInt(1) 	WEND
  	stSql = "SELECT ""Wert"" FROM ""Fixwerte"" WHERE ""Fixwerte"".""Art""=" + "'1Anteil'" 	oResult = oSQL_Statement.executeQuery(stSql) 	oResult.next 	Wert1Anteil = oResult.getFloat(1)	 	 	DHZeile = DivHistoZeile() 	stSql = "SELECT * FROM ""DividendenHistorie"" WHERE ""ID""="+DHZeile+"" 	oResult = oSQL_Statement.executeQuery(stSql) 	oResult.next 	TagEintrag = oResult.getDate(2) 	TagZahlung = oResult.getDate(3) 	AusProzent = oResult.getFloat(4) 	VWZweck = oResult.getString(5) 	KEStProzent = oResult.getFloat(6)  	SoliProzent = oResult.getFloat(7) 	f_dat = TagEintrag.Year & "-" & TagEintrag.Month & "-" & TagEintrag.Day 	f_datZ = TagZahlung.Year & "-" & TagZahlung.Month & "-" & TagZahlung.Day 	f_ausproz = join(split(AusProzent, ","), ".")	 	f_kestproz = join(split(KEStProzent, ","), ".")	 	f_soliproz = join(split(SoliProzent, ","), ".")	
  	stIDField = oPForm.findColumn("ID") 	stID = oPForm.getString(stIDField) 	stvonField = oPForm.findColumn("von") 	stvon = oPForm.getInt(stvonField) 	stbisField = oPForm.findColumn("bis") 	stbis = oPForm.getInt(stbisField) 	anzdiff = stbis - stvon +1 	janein = msgbox("Wirklich die Daten mit ID=" & DHZeile & " in alle (außer übersprungene) " & anzdiff & " Konten durchführen?",256+32+4,"Überleg nochmal:") 	IF janein = 7 THEN EXIT SUB
  	staktuellField = oPForm.findColumn("aktuell") 	i = stvon 	oPForm.updateInt(staktuellField,i)
  txanzahl=0
  	janein = msgbox("Sind wirklich ALLE Nichtveranlagungsdaten" & Chrund3) &  "und Freistellungsaufträge" & Chreingetragenngetragen Im,256+32+4,"Im Zweifel bitte JETZT NEIN sagen!") 	if janein = 7 then goto Labelraus
 
 
  DO WHILE i < stbis+1 	drucken = TRUE 	j=0 	WHILE (j < ineg + 1) 		if negativListe(j) = i then  			drucken = FALSE 		end if	 		j=j+1 	WEND 	IF NOT drucken THEN  		GOTO Labelnichtweiter 	ELSE 		stSql = "UPDATE ""von_bis"" SET ""aktuell"" ='" + i + "' WHERE ""ID""=0" 		oResult = oSQL_Statement.executeQuery(stSql) 	END IF 	txanzahl=txanzahl + 1 	 	stSql = "SELECT ""Anteile"".""Mitgliedsnummer"", SUM( ""Anteile"".""AnteilePlusMinus"" ) ""AnteileSumme"" FROM ""Anteile"", ""von_bis"" WHERE ""Anteile"".""Mitgliedsnummer"" = ""von_bis"".""aktuell"" GROUP BY ""Anteile"".""Mitgliedsnummer""" 	oResult = oSQL_Statement.executeQuery(stSql) 	While oResult.next 		MitNr = oResult.getInt(1) 		AnteileSumme = oResult.getInt(2) 	Wend 	Ausschuettung = Wert1Anteil * AnteileSumme * AusProzent / 100 	f_ausschuett = join(split(Ausschuettung, ","), ".")	 	stSql = "INSERT INTO ""Anteile"" (""Mitgliedsnummer"",""VorgangID"",""TagEintrag"",""AnteileSaldo"",""AusProzent"",""Ausschuettung"")" 	stSql = stSql & " VALUES('" + MitNr + "','20','" + f_dat + "','" + AnteileSumme + "','" + f_ausproz + "','"+ f_ausschuett + "')" 	oResult = oSQL_Statement.executeQuery(stSql)
  		stSql = "SELECT * FROM ""SteuerDaten"" WHERE ""Mitgliedsnummer"" = " + i  		oResult = oSQL_Statement.executeQuery(stSql) 		While oResult.next 			MitNr = oResult.getInt(1)					KiStproz = oResult.getFloat(4)				isNV = oResult.getBoolean(5)				isFSA = oResult.getBoolean(7)				FSARest = oResult.getFloat(9) 		Wend
  	InAnspruch = 0		 	SPAusschuettung = Ausschuettung 	if isFSA then 		FSARestneu = FSARest - Ausschuettung 		if FSARestneu < 0 then  			FSARestneu = 0 			SPAusschuettung = Ausschuettung - FSARest  			InAnspruch = FSARest 		else 			SPAusschuettung = 0 			InAnspruch = Ausschuettung				 		end if 	end if 	 	KESt = SPAusschuettung * KEStProzent / 100 	KiSt = KESt * KiStproz / 100 	SoliZu = KESt * SoliProzent / 100
  	KESt2 = KESt / (1 + (KiStproz / 100) * (KEStProzent / 100))
  	Auszahlung = Ausschuettung - KESt2 - SoliZu - KiSt 	 	f_kistproz = join(split(KiStproz, ","), ".")		f_kist = join(split(KiSt, ","), ".")		f_soli = join(split(SoliZu, ","), ".")	 	InAnspruch = InAnspruch * (-1) 	f_fsa =  join(split(InAnspruch, ","), ".")		f_fsarest = join(split(FSARestneu, ","), ".")		f_kest2 = join(split(KESt2, ","), ".")		f_auszahl = join(split(Auszahlung, ","), ".")	 	stSql = "INSERT INTO ""Dividenden"" (""ausgezahlt"",""Mitgliedsnummer"",""DividID"",""Kennung"",""TagEintrag"",""AnteileSaldo"",""KEStproz"",""Soliproz"",""KiStproz"",""AusProzent"",""KapErtr"",""KapErtrSt"",""Soli"",""KiSt"",""FSABetrag"",""Auszahlung"" )" 	stSql = stSql & " VALUES('FALSE','" + MitNr + "','1','" + VWZweck + "','" + f_dat + "','" + AnteileSumme + "','" + f_kestproz + "','" + f_soliproz + "','" + f_kistpro + "','" + f_ausproz + "','"+ f_ausschuett + "','" + f_kest2 + "','" + f_soli + "','"  + f_kist + "','" + f_fsa + "','" + f_auszahl  + "')"
  	oResult = oSQL_Statement.executeQuery(stSql)
  	if InAnspruch < 0 then 		stSql = "INSERT INTO ""Dividenden"" (""Mitgliedsnummer"",""DividID"",""TagEintrag"",""FSABetrag"" )" 		stSql = stSql & " VALUES('" + MitNr + "','3','" + f_dat + "','" +  f_fsarest + "')" 		oResult = oSQL_Statement.executeQuery(stSql) 		stSql = "UPDATE ""SteuerDaten"" SET ""FSARest"" = '" + f_fsarest + "' WHERE ""Mitgliedsnummer"" = '" + MitNr + "'" 		oResult = oSQL_Statement.executeQuery(stSql) 	end if
  Labelnichtweiter: 	i = i + 1 	stAusgabeb = stAusgabeb & chr(10) 	oPForm.updateInt(staktuellField,i) LOOP
  Select Case txanzahl  	Case 0 		 msgbox ("Kein Datensatz geschrieben.",64,"Dividenden-Eintragung") 	Case 1	  		 msgbox ("Ein Datensatz geschrieben.",64,"Dividenden-Eintragung") 	Case Else msgbox (txanzahl & " Datensätze geschrieben.",64,"Dividenden-Eintragung")	  End Select
  	stSql = "UPDATE ""von_bis"" SET ""aktuell"" ='" + stvon + "' WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql) 	oPForm.reload()	 	wait 100 Labelraus: END SUB  | 
    
    
     | Standard | 
     Serienbrief | 
     Datumgedreht | 
       | 
     Basic | 
       | 
     4 | 
     FUNCTION Datumgedreht ( stDat AS STRING ) AS STRING 			stmutad() = split (stDat,"-")	 			Datumgedreht = stmutad(2) & "." & stmutad(1) & "." & stmutad(0) END FUNCTION  | 
    
    
     | Standard | 
     Serienbrief | 
     Einzeldruck_obsolet | 
       | 
     Basic | 
       | 
     32 | 
     SUB Einzeldruck_obsolet(oEvent AS OBJECT) 	DIM oPFormF AS OBJECT 	DIM stSerie AS STRING 	DIM stIDField AS STRING 	DIM stID AS STRING 	DIM oConnection AS OBJECT 	DIM oSQL_Statement AS OBJECT  	DIM stSql AS STRING  	DIM oResult AS OBJECT
 
  	stSerie = oEvent.Source.Model.Tag
  	oPFormF = oEvent.Source.Model.Parent 	oConnection = oPFormF.activeConnection() 	oSQL_Statement = oConnection.createStatement() 	 	stIDField = oPFormF.findColumn("Integer") 	stID = oPFormF.getString(stIDField)
  	stSql = "UPDATE ""von_bis"" SET ""von"" ='" +stID+ "' WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql) 	stSql = "UPDATE ""von_bis"" SET ""bis"" ='" +stID+ "' WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql) 	stSql = "UPDATE ""von_bis"" SET ""aktuell"" ='" +stID+ "' WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql) wait 100 Seriendruck(oEvent) END SUB  | 
    
    
     | Standard | 
     Serienbrief | 
     Filter_I_holen_Einzelbrief | 
       | 
     Basic | 
     9d - InteressentenBriefe|Schaltfläche_Einzeldruck (Control) | 
     33 | 
     SUB Filter_I_holen_Einzelbrief Dim oDoc As Object Dim oDrawpage As Object Dim oneuMit As Object 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage
  DIM oConnection AS OBJECT DIM oSQL_Statement AS OBJECT DIM stSql AS STRING DIM oResult AS OBJECT  	oForm = oDrawpage.forms.getByName( "Formular_Filter") 	oConnection = oForm.activeConnection() 	oSQL_Statement = oConnection.createStatement() 	stSql = "SELECT ""Integer"" FROM ""Filter_I"" WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql) 	oResult.next 	stID = oResult.getint(1) 	stSql = "UPDATE ""von_bis_I"" SET ""von"" ='" +stID+ "' WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql) 	stSql = "UPDATE ""von_bis_I"" SET ""bis"" ='" +stID+ "' WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql) 	stSql = "UPDATE ""von_bis_I"" SET ""aktuell"" ='" +stID+ "' WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql)
  	oFormS = oDrawpage.forms.getByName(	"Formular_Serie" ) wait 100 oFormS.reload() END SUB  | 
    
    
     | Standard | 
     Serienbrief | 
     Filter_M_holen_Einzelbrief | 
       | 
     Basic | 
     7a - MitgliederBriefe|Schaltfläche_Einzeldruck (Control) 8d - DividendenZentrale|Schaltfläche_Einzeldruck (Control) 8i - Ueberweisungen|Schaltfläche_Einzeldruck (Control) | 
     33 | 
     SUB Filter_M_holen_Einzelbrief Dim oDoc As Object Dim oDrawpage As Object Dim oneuMit As Object 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage
  DIM oConnection AS OBJECT DIM oSQL_Statement AS OBJECT DIM stSql AS STRING DIM oResult AS OBJECT  	oForm = oDrawpage.forms.getByName( "Formular_Filter") 	oConnection = oForm.activeConnection() 	oSQL_Statement = oConnection.createStatement() 	stSql = "SELECT ""Integer"" FROM ""Filter_M"" WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql) 	oResult.next 	stID = oResult.getint(1) 	stSql = "UPDATE ""von_bis"" SET ""von"" ='" +stID+ "' WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql) 	stSql = "UPDATE ""von_bis"" SET ""bis"" ='" +stID+ "' WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql) 	stSql = "UPDATE ""von_bis"" SET ""aktuell"" ='" +stID+ "' WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql)
  	oFormS = oDrawpage.forms.getByName(	"Formular_Serie" ) wait 100 oFormS.reload() END SUB  | 
    
    
     | Standard | 
     Serienbrief | 
     Inhalt_zusammenstellen_Serie | 
       | 
     Basic | 
     Seriendruck (Procedure) | 
     264 | 
     FUNCTION Inhalt_zusammenstellen_Serie(stPfadvor, stDateivor, stPfadDruck, stMuster, stAbfrage, inSpalten, stSerie) AS BOOLEAN
  REM
  Inhalt_zusammenstellen_Serie = TRUE
  	DIM oDatenquelle AS OBJECT 	DIM oVerbindung AS OBJECT 	DIM oSQL_Anweisung AS OBJECT 	DIM oAbfrageergebnis AS OBJECT 	DIM oPForm AS OBJECT 	DIM oForm AS OBJECT 	DIM oColumns AS OBJECT 	DIM oDB AS OBJECT 	DIM oNewDoc AS OBJECT 	DIM oTabelle AS OBJECT 	DIM oRows AS OBJECT 	DIM oTextfields AS OBJECT 	DIM oTextfield AS OBJECT 	DIM stColumnname AS STRING 	DIM stDir AS STRING 	DIM stSql AS STRING 	DIM stText AS STRING 	DIM inIndex AS Long 	DIM i AS INTEGER 	DIM loID AS LONG 	DIM MitNr AS INTEGER 	DIM stDatum AS STRING 	DIM stBetrag AS STRING 	DIM intAnteilePlusMinus AS INTEGER 	DIM intAnteilesaldo AS INTEGER 	Dim params As Variant
  	oPForm = thisComponent.Drawpage.Forms.getByName("Formular_Serie")
  	wait 100 	oPForm.reload() 	oPForm.last()
  	oDatenquelle = ThisComponent.Parent.CurrentController 	If NOT (oDatenquelle.isConnected()) THEN 		oDatenquelle.connect() 	END IF 	oVerbindung = oDatenquelle.ActiveConnection() 	oDatenDatei = oDatenquelle.DataSource 	oAbfragen = oDatenDatei.getQueryDefinitions()
 
  	mitNamenFeld = oPForm.getByName("Markierfeld_Namen") 	mitNamen = mitNamenFeld.State 	mitMitNrFeld = oPForm.getByName("Markierfeld_MitNr") 	mitMitNr = mitMitNrFeld.State 	nurOdtFeld = oPForm.getByName("Markierfeld_odt") 	nurOdt = nurOdtFeld.State
  	oDB = ThisComponent.Parent 	stDir = Left(oDB.Location,Len(oDB.Location)-Len(oDB.Title)) 	stPrintDir = stDir  & stPfadDruck & "/"  	stDir = stDir & stPfadvor & "/" & stDateivor
 
  IF stAbfrage <> "" THEN 	oAbf = oAbfragen.getByName( stAbfrage ) 	stQuery = oAbf.command 	oSQL_Anweisung = oVerbindung.createStatement() 	oForm = oSQL_Anweisung.executeQuery(stQuery)  	oForm.next 	oColumns = oForm.Columns 	splast= oForm.Columns.Count
  	IF oColumns.hasByName("Betrag") THEN	 		inIndexBetrag = oForm.findColumn("Betrag") 		On Error Goto ErrorHandlerLeer 		EUROBetrag = oForm.getString(inIndexBetrag)			params = Array(EUROBetrag,"de-DE") 		stinWorten = inWorten(params()) 	END IF ELSE 	msgbox ("Abfrage fehlt!" & ChrVorgang "Vorgang wird abgebrochen.",48,"Problem") 	Reset 	Inhalt_zusammenstellen_Serie = FALSE 	EXIT FUNCTION END IF
  	DIM args(0) AS NEW com.sun.star.beans.PropertyValue 	args(0).Name = "AsTemplate" 	args(0).Value = True On Error GoTo ErrorHandlerVorlage	 	oNewDoc = StarDesktop.loadComponentFromURL(stDir,"_blank",0,args) 	oNewDocView = oNewDoc.CurrentController.Frame.ContainerWindow 	oNewDocView.Visible = False
  	oTextfields = oNewDoc.Textfields.createEnumeration 	DO WHILE oTextfields.hasMoreElements 		oTextfield = oTextfields.nextElement   		IF oTextfield.supportsService("com.sun.star.text.TextField.JumpEdit") THEN 			stColumnname = oTextfield.PlaceHolder	 			IF oColumns.hasByName(stColumnname) THEN	 				inIndex = oForm.findColumn(stColumnname)
  				IF stColumnname = "_INWORTEN" THEN  					oTextfield.Anchor.String = stinWorten 				ELSE	
 
  On Error Goto ErrorHandlerLeer 				oTextfield.Anchor.String = oForm.getString(inIndex) 				IF stColumnname = "Mitgliedsnummer" THEN 					MitNr = oForm.getInt(inIndex)							END IF 				 				IF stSerie = "Interessenten" THEN  					IF  stColumnname = "ID" THEN 						MitNr = oForm.getInt(inIndex) 					END IF 				END IF 				END IF 			END IF 		END IF 	LOOP
  IF inSpalten > 0 THEN 		oTabellen = oNewDoc.getTextTables 	 	oTabelle = oTabellen.getByName("Tabelle_Anteilekonto")		 	oSQL_Anweisung = oVerbindung.createStatement() 	 	stSql = "SELECT RIGHT( '0' || DAY( ""a"".""TagEintrag"" ), 2 ) || '.' || RIGHT( '0' || MONTH(""a"".""TagEintrag"" ), 2 ) || '.' || YEAR( ""a"".""TagEintrag"" ), " 	stSql = stSql + "REPLACE( ""a"".""AnteilePlusMinus"" * ( SELECT ""Wert"" FROM ""Fixwerte"" WHERE ""ID"" = 2 ) || ' €','.',',') AS ""PlusMinusBetrag"", " 	stSql = stSql + """a"".""AnteilePlusMinus"", " 	stSql = stSql + """a"".""AnteileSaldo"" FROM ""Anteile"" AS ""a"", ""Mitglieder"", ""von_bis""" 	stSql = stSql + "WHERE ""a"".""Mitgliedsnummer"" = ""Mitglieder"".""Mitgliedsnummer"" AND ""Mitglieder"".""Mitgliedsnummer"" = ""von_bis"".""aktuell"" " 	stSql = stSql + "AND ( ""a"".""VorgangID"" > 1 AND ""a"".""VorgangID"" < 12 ) ORDER BY ""a"".""TagEintrag"" ASC, " 	 	stSql = stSql + """a"".""AnteileSaldo"" ASC"
  	 	oAbfrageergebnis = oSQL_Anweisung.executeQuery(stSql) 	i = 0 	WHILE oAbfrageergebnis.next 		stDatum = oAbfrageergebnis.getString(1) 		stBetrag = oAbfrageergebnis.getString(2) 		intAnteilePlusMinus = oAbfrageergebnis.getInt(3) 		intAnteileSaldo = oAbfrageergebnis.getInt(4) 		 		oTabelle.getCellByPosition(0,i).setString(stDatum) 		oTabelle.getCellByPosition(1,i).setString(stBetrag)	 		oTabelle.getCellByPosition(2,i).setValue(intAnteilePlusMinus)	 		oTabelle.getCellByPosition(3,i).setValue(intAnteileSaldo) 		oRows = oTabelle.getrows() 		oRows.insertByIndex(oRows.getCount(),1) 		i = i + 1 	WEND 	oRows.removeByIndex(oRows.getCount()-1,1)
  END IF 
  stMitNr = ""
  IF mitMitNr THEN  	stMitNr = "_" & Right("0000" & MitNr, 4) END IF
  IF stSerie = "Interessenten" THEN stMitNr = ""
  stNachname = "" stVorname = "" stOrga = "" IF mitNamen Then  	IF oColumns.hasByName("_ORGA") THEN	 		inIndex = oForm.findColumn("_ORGA") 		stOrga = "_" & oForm.getString(inIndex)			 	END IF 	IF oColumns.hasByName("_NNAME") THEN	 		inIndex = oForm.findColumn("_NNAME") 		stNachname = "_" & oForm.getString(inIndex)			 	END IF 	IF oColumns.hasByName("_VNAME") THEN	 		inIndex = oForm.findColumn("_VNAME") 		stVorname = "_" & oForm.getString(inIndex)			 	END IF END IF
  IF stOrga <> "_" THEN 	stDatei = stMuster & stMitNr & stOrga & ".pdf" 	stWriterDatei = stMuster & stMitNr & stOrga & ".odt" ELSE	 	stDatei = stMuster & stMitNr & stNachname & stVorname & ".pdf" 	stWriterDatei = stMuster & stMitNr & stNachname & stVorname & ".odt" END IF 	stPrintDatei = stPrintDir & stDatei 	stWriterDatei = stPrintDir & stWriterDatei
  IF nurOdt Then 	DIM prop(0) AS NEW com.sun.star.beans.PropertyValue 	prop(0).name = "Overwrite" 	prop(0).value = False 	oNewDoc.storeToURL(stWriterDatei, prop())	 	oNewDoc.close(true) ELSE	 	DIM arg(0) AS NEW com.sun.star.beans.PropertyValue 	arg(0).name = "FilterName" 	arg(0).value = "writer_pdf_Export" 	oNewDoc.storeToURL(stPrintDatei, arg())	 	oNewDoc.close(true) END IF wait 1000
  	EXIT FUNCTION ErrorHandlerLeer:     Reset 	Inhalt_zusammenstellen_Serie = FALSE 	EXIT FUNCTION ErrorHandlerVorlage:	     Reset    	msgbox ("Dateivorlage " & stdir & " nicht gefunden!" & ChrVorgang "Vorgang wurde abgebrochen.",48,"Problem") 	Inhalt_zusammenstellen_Serie = FALSE 	EXIT FUNCTION ErrorHandlerAbfrage:     Reset    	msgbox ("Abfrage " & stAbfrage & " nicht gefunden!" & ChrVorgang "Vorgang wurde abgebrochen.",48,"Problem") 	Inhalt_zusammenstellen_Serie = FALSE END FUNCTION  | 
    
    
     | Standard | 
     Serienbrief | 
     inWorten | 
       | 
     Basic | 
     Inhalt_zusammenstellen_Serie (Procedure) | 
     5 | 
     Function inWorten(liste As Variant) As String Dim acceder As Object acceder = CreateUnoService("com.sun.star.sheet.FunctionAccess") inWorten = acceder.callFunction("NUMBERTEXT", liste) End Function  | 
    
    
     | Standard | 
     Serienbrief | 
     min_bis_max | 
       | 
     Basic | 
     7a - MitgliederBriefe|Bereich_alle (Control) 8d - DividendenZentrale|Bereich_alle (Control) 8i - Ueberweisungen|Bereich_alle (Control) | 
     39 | 
     SUB min_bis_max(oEvent AS OBJECT) 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oSubForm AS OBJECT 	DIM oFeld AS OBJECT 	DIM minwert AS INTEGER 	DIM letzter AS INTEGER 	DIM oColumns AS OBJECT 	DIM oConnection AS OBJECT 	DIM oSQL_Statement AS OBJECT 	DIM stSql AS STRING 	DIM oResult AS OBJECT 	steinzelalle = oEvent.Source.Model.Tag 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Serie") 	oConnection = oForm.activeConnection() 	oSQL_Statement = oConnection.createStatement() 	stSql = "SELECT MIN(""Mitgliedsnummer"") AS ""MINIMIT"", MAX(""Mitgliedsnummer"") AS ""MAXIMIT"" FROM ""Mitglieder""" 	oResult =  oSQL_Statement.executeQuery(stSql) 	oResult.next 	oColumns = oResult.columns() 	IF oColumns.hasByName("MINIMIT") THEN inIndex = oColumns.findColumn("MINIMIT") 	erster=oResult.getInt(1) 	IF oColumns.hasByName("MAXIMIT") THEN inIndex = oColumns.findColumn("MAXIMIT") 	letzter=oResult.getInt(2) 	oFeld = oForm.getByName("Num_von") 	oFeld.value=erster 	oFeld.commit() 	oFeld = oForm.getByName("Num_bis") 	oFeld.value=letzter 	oFeld.commit() END SUB  | 
    
    
     | Standard | 
     Serienbrief | 
     min_bis_max_I | 
       | 
     Basic | 
     9d - InteressentenBriefe|Bereich_alle (Control) | 
     48 | 
     SUB min_bis_max_I(oEvent AS OBJECT)
  	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oSubForm AS OBJECT 	DIM oFeld AS OBJECT 	DIM minwert AS INTEGER 	DIM letzter AS INTEGER 	DIM oColumns AS OBJECT 	DIM oConnection AS OBJECT 	DIM oSQL_Statement AS OBJECT 	DIM stSql AS STRING 	DIM oResult AS OBJECT  	steinzelalle = oEvent.Source.Model.Tag 	 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage
  	oDoc = thisComponent 	oDrawpage = oDoc.drawpage
  	oForm = oDrawpage.forms.getByName("Formular_Serie") 	oConnection = oForm.activeConnection() 	oSQL_Statement = oConnection.createStatement() 	stSql = "SELECT MIN(""ID"") AS ""MINIMIT"", MAX(""ID"") AS ""MAXIMIT"" FROM ""Interessenten""" 	oResult =  oSQL_Statement.executeQuery(stSql) 	oResult.next 	oColumns = oResult.columns() 	IF oColumns.hasByName("MINIMIT") THEN inIndex = oColumns.findColumn("MINIMIT") 	erster=oResult.getInt(1) 	IF oColumns.hasByName("MAXIMIT") THEN inIndex = oColumns.findColumn("MAXIMIT") 	letzter=oResult.getInt(2)
  	oFeld = oForm.getByName("Num_von") 	oFeld.value=erster 	oFeld.commit()
  	oFeld = oForm.getByName("Num_bis") 	oFeld.value=letzter 	oFeld.commit() END SUB  | 
    
    
     | Standard | 
     Serienbrief | 
     OberOrdner | 
       | 
     Basic | 
       | 
     9 | 
     SUB OberOrdner 	DIM oDoc AS OBJECT 	DIM oFeld AS OBJECT 	oDoc = thisComponent 	oDB = ThisComponent.Parent 	stDBDir = Left(oDB.Location,Len(oDB.Location)-Len(oDB.Title)) 	xstDBDir = Mid(stDBDir,9) 	msgbox xstDBDir	 END SUB  | 
    
    
     | Standard | 
     Serienbrief | 
     Pfadzeile | 
       | 
     Basic | 
     Seriendruck (Procedure) | 
     20 | 
     FUNCTION Pfadzeile AS LONG 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oFeld AS OBJECT 	DIM oZ AS OBJECT 	oDoc = thisComponent	 	oDrawpage = oDoc.Drawpage 	oForm = oDrawpage.Forms.getByName("Formular_Pfad") 	oFeld = oForm.getByName("Tabellen-KontrollfeldPfade") 	oSpalte = oFeld.getByName("TextField_PfadVor") 	oSpalte.HelpText = "HALLO" 	wait 100 	oZ=oFeld.getRowSet() 	wait 100 	Pfadzeile = oZ.Row END FUNCTION  | 
    
    
     | Standard | 
     Serienbrief | 
     Projektfilter_umschalten | 
       | 
     Basic | 
     7a - MitgliederBriefe|Markierfeld_NRD (Control) | 
     16 | 
     SUB Projektfilter_umschalten 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oSubForm AS OBJECT 	DIM oFeld AS OBJECT 	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_ProjID") 	oFeld = oForm.getByName("KF_Projekt_ID") 	oFeld.EnableVisible = NOT oFeld.EnableVisible END SUB  | 
    
    
     | Standard | 
     Serienbrief | 
     Schalterfarbe | 
       | 
     Basic | 
     7a - MitgliederBriefe|Markierfeld_odt (Control) 9d - InteressentenBriefe|Markierfeld_odt (Control) | 
     19 | 
     SUB Schalterfarbe (oEvent AS OBJECT) DIM oSchalter AS OBJECT
  	oPForm = oEvent.Source.Model.Parent 	nurOdtFeld = oPForm.getByName("Markierfeld_odt") 	nurOdt = nurOdtFeld.State
  	oSchalter = oPForm.getByName("SchaltflächeSeriendruck")
  IF nurOdt THEN 	oSchalter.BackgroundColor = 16737992 	oschalter.Label = "Briefe als .odt - Dateien erzeugen" 	oSchalter.HelpText = "Die Writer-Datei(en) können bearbeitet und dann als .pdf gespeichert weerden."  ELSE 	oSchalter.BackgroundColor = 16737792 	oschalter.Label = "Briefe als .pdf - Dateien erzeugen" 	oSchalter.HelpText = "Automatische Erstellung der .pdf-Datei(en)" END IF		 END SUB  | 
    
    
     | Standard | 
     Serienbrief | 
     Seriendruck | 
       | 
     Basic | 
     7a - MitgliederBriefe|SchaltflächeSeriendruck (Control) 9d - InteressentenBriefe|SchaltflächeSeriendruck (Control) Einzeldruck_obsolet (Procedure) | 
     337 | 
     SUB Seriendruck(oEvent AS OBJECT) 	DIM oPForm AS OBJECT 	DIM oEForm AS OBJECT 	DIM stSerie AS STRING 	DIM stIDField AS Integer 	DIM stvonField AS Integer 	DIM stbisField AS Integer 	DIM staktuellField AS Integer 	DIM stID AS Integer 	DIM stvon AS Integer 	DIM stbis AS Integer 	DIM i AS Long 	DIM PZeile AS Long 	DIM oConnection AS OBJECT 	DIM oSQL_Statement AS OBJECT 	DIM oSQL_StatementoM AS OBJECT 	DIM stSql AS STRING 	DIM oResult AS OBJECT  	stSerie = oEvent.Source.Model.Tag
  	oPForm = oEvent.Source.Model.Parent 	oConnection = oPForm.activeConnection()
  	oohneEMailFeld = oPForm.getByName("Markierfeld_nurohneEmail") 	ohneEMail = oohneEMailfeld.State 	IF ohneEMail Then  		msgbox ("Ausgabe nur für EmpfängerInnen ohne Email",,"Info") 	END IF
  	IF stSerie = "Mitglieder" THEN 		onurNachrangDFeld = oPForm.getByName("Markierfeld_NRD") 		nurmitNRD = onurNachrangDFeld.State 		IF nurmitNRD Then  			msgbox ("Ausgabe nur für EmpfängerInnen mit Nachrangdarlehen",,"Info") 		END IF 	ELSE 		nurmitNRD = FALSE 	END IF
  	omitStromFeld = oPForm.getByName("Markierfeld_Strom") 	nurmitStrom = omitStromFeld.State 	IF nurmitStrom Then  		msgbox ("Ausgabe nur für StromkundInnen",,"Info") 	END IF
  IF stSerie = "Mitglieder" THEN 	oexignoreFeld = oPForm.getByName("Markierfeld_exignore") 	exignore = oexignorefeld.State 	IF exignore Then  		msgbox ("Ausgabe auch für ehemalige Mitglieder, die normalerweise übersprungen werden",,"Info") 	END IF 	oEForm = oPForm.getByName("Ehemalige") 	soviele = oEForm.RowCount 	DIM negativListe(soviele) 	oEForm.reload() 	oEForm.first() 	stehemaligField = oEForm.findColumn("Mitgliedsnummer") 	ineg=0 	negativListe(ineg) = oEForm.getInt(1) 	WHILE oEForm.next 		ineg = ineg + 1 		negativListe(ineg) = oEForm.getInt(1) 	WEND END IF
  IF stSerie = "Interessenten" THEN 	oSQL_Statement_IID =  oConnection.createStatement() 	oSQL_Statement_IID.ResultSetType =com.sun.star.sdbc.ResultSetType.SCROLL_SENSITIVE 	stSql_IID = " SELECT ""ID"" FROM ""Interessenten"" ORDER BY ""ID"" ASC " 	oIvorhanden = oSQL_Statement_IID.executeQuery(stSql_IID) 	WHILE oIvorhanden.NEXT  	WEND 	letzteID=oIvorhanden.Row - 1 	DIM IvorhandenListe(letzteID) 	oIvorhanden.first 	ji = 1 	IvorhandenListe(ji) = oIvorhanden.getInt(1) 	WHILE oIvorhanden.NEXT 		ji = ji+ 1 		IvorhandenListe(ji) =  oIvorhanden.getInt(1) 	WEND END IF
  	IF ohneEMail THEN 		oSQL_StatementoM = oConnection.createStatement() 		oSQL_StatementoM.ResultSetType =com.sun.star.sdbc.ResultSetType.SCROLL_SENSITIVE 		stSql_oM =  " SELECT ""Mitgliedsnummer"" FROM ""Kontakte"" WHERE ""Email1"" IS NULL" 		IF stSerie = "Interessenten" THEN stSql_oM =  " SELECT ""ID"" FROM ""Interessenten"" WHERE ""Email1"" IS NULL" 		oResultoM = oSQL_StatementoM.executeQuery(stSql_oM) 		WHILE oResultoM.next 		WEND 		anzohne = oResultoM.Row - 1 		DIM ohneMailListe(anzohne) 		oResultoM.first 		jj=1 		ohneMailListe(jj) = oResultoM.getInt(1) 		WHILE oResultoM.next 			jj = jj + 1 			ohneMailListe(jj) = oResultoM.getInt(1) 		WEND 	END IF
  	IF nurmitStrom THEN 		oSQL_StatementoM = oConnection.createStatement() 		oSQL_StatementoM.ResultSetType =com.sun.star.sdbc.ResultSetType.SCROLL_SENSITIVE 		stSql_mS =  " SELECT ""Mitgliedsnummer"" FROM ""StromGas_Mitglieder"" WHERE ""StatusStromID"" = 1 OR ""StatusStromID"" = 2 " 		IF stSerie = "Interessenten" THEN stSql_mS =  " SELECT ""ID"" FROM ""StromGas_Interessenten"" WHERE  ""StatusStromID"" = 1 OR ""StatusStromID"" = 2 " 		oResultmS = oSQL_StatementoM.executeQuery(stSql_mS) 		WHILE oResultmS.next 		WEND 		anzstrom = oResultmS.Row - 1 		DIM mitStromListe(anzstrom) 		oResultmS.first 		js=1 		mitStromListe(js) = oResultmS.getInt(1) 		WHILE oResultmS.next 			js = js + 1 			mitStromListe(js) = oResultmS.getInt(1) 		WEND 	END IF
  	IF nurmitNRD THEN 		oSQL_Statement = oConnection.createStatement() 		stSql =  " SELECT ""Integer"" FROM ""Projekt_aktID"" WHERE ""ID"" = 0 " 		oResult = oSQL_Statement.executeQuery(stSql) 		oResult.next 		staktProjekt = oResult.getInt(1) msgbox "aktuelle Projektnummmer: " & staktProjekt				 		oSQL_StatementmNRD = oConnection.createStatement() 		oSQL_StatementmNRD.ResultSetType =com.sun.star.sdbc.ResultSetType.SCROLL_SENSITIVE 		stSql_mNRD =  " SELECT ""Mitgliedsnummer"" FROM ""ProjektDaten"" WHERE ""ProjektDaten"".""VorgangID"" = 1 AND ""ProjektDaten"".""ProjektID"" = '" + staktProjekt + "' " 		oResultmNRD = oSQL_StatementmNRD.executeQuery(stSql_mNRD) 		WHILE oResultmNRD.next 		WEND 		anzNRD = oResultmNRD.Row - 1 msgbox "Anzahl der Mitglieder mit NRD ist " & anzNRD 		DIM mitNRDListe(anzNRD) 		oResultmNRD.first 		jn=1 		mitNRDListe(jn) = oResultmNRD.getInt(1) 		WHILE oResultmNRD.next 			jn = jn + 1 			mitNRDListe(jn) = oResultmNRD.getInt(1) 		WEND 	END IF
  	stIDField = oPForm.findColumn("ID") 	stID = oPForm.getString(stIDField)
  	stvonField = oPForm.findColumn("von") 	stvon = oPForm.getInt(stvonField)
  	stbisField = oPForm.findColumn("bis") 	stbis = oPForm.getInt(stbisField)
  	IF ohneEmail THEN 		janein = msgbox("Wirklich (höchstens) " & anzohne & " Briefe nur an Empfänger ohne Email ausgeben?",256+32+4,"Überleg nochmal !") 		IF janein= 7 THEN EXIT SUB 	ELSEIF nurmitStrom THEN 		janein = msgbox("Wirklich (höchstens) " & anzstrom & " Briefe nur an StromkundInnen ausgeben?",256+32+4,"Überleg nochmal !") 		IF janein= 7 THEN EXIT SUB 	ELSEIF nurmitNRD THEN 		janein = msgbox("Wirklich (höchstens) " & anzNRD & " Briefe nur an Mitglieder mit Projekt-ID " & staktProjekt & " ausgeben?",256+32+4,"Überleg nochmal !") 		IF janein= 7 THEN EXIT SUB 	ELSE 		anzdiff = stbis - stvon +1 		janein = msgbox("Wirklich alle (außer übersprungene) " & anzdiff & " Briefe ausgeben?",256+32+4,"Überleg nochmal:") 		IF janein = 7 THEN EXIT SUB 	END IF
  	staktuellField = oPForm.findColumn("aktuell") 	i = stvon 	oPForm.updateInt(staktuellField,i)
  	PZeile = Pfadzeile() 	 	oSQL_Statement = oConnection.createStatement() 	stSql = "SELECT * FROM ""Pfade_Briefe"" WHERE ""ID""="+PZeile+"" 	IF stSerie = "Interessenten" THEN 	stSql = "SELECT * FROM ""Pfade_Briefe_I"" WHERE ""ID""="+PZeile+""
  	oResult = oSQL_Statement.executeQuery(stSql) 	oResult.next 	stPfadvor = oResult.getString(2) 	stDateivor = oResult.getString(4) 	stPfadDruck = oResult.getString(3) 	stMuster = oResult.getString(5) 	inSpalten = oResult.getInt(6) 	stAbfrage = oResult.getString(7)
  	i = stvon 	txanzahl = 0 	Durchmarsch = FALSE  DO WHILE i < stbis+1 	drucken = TRUE
  	IF ohneEmail THEN 		drucken = FALSE 		jj = 1 		WHILE (jj < anzohne + 1) 			if ohneMailListe(jj) = i then drucken = TRUE 			jj = jj + 1 		WEND 	END IF 	IF NOT drucken THEN GOTO Labelnichtdrucken
  	IF nurmitStrom THEN 		drucken = FALSE 		js = 1 		WHILE (js < anzstrom + 1) 			if mitStromListe(js) = i then drucken = TRUE 			js = js + 1 		WEND 	END IF 	IF NOT drucken THEN GOTO Labelnichtdrucken
  	IF nurmitNRD THEN 		drucken = FALSE 		jn = 1 		WHILE (jn < anzNRD + 1) 			if mitNRDListe(jn) = i then drucken = TRUE 			jn = jn + 1 		WEND 	END IF 	IF NOT drucken THEN GOTO Labelnichtdrucken
  	IF stSerie = "Mitglieder" THEN 		j=0 		WHILE (j < ineg + 1) 			if negativListe(j) = i then  				drucken = FALSE 				if exignore then  					janein = msgbox ("Soll der Brief für Mitgliedsnummer " & i & " trotzdem ausgegeben werden?",256+32+4,"Mitgliedsnummer " & i & "wird normalerweise übersprungen!") 					if janein = 6 then drucken = TRUE 				end if 			end if	 			j=j+1 		WEND 	END IF
  	IF stSerie = "Interessenten" THEN 		Iistda = FALSE 		j=0 		WHILE (j < ji + 1) 			if IvorhandenListe(j) = i then  				Iistda = TRUE 			end if	 			j=j+1 		WEND 		IF NOT Iistda THEN drucken = FALSE 	END IF
 
  	IF drucken THEN	 		stSql = "UPDATE ""von_bis"" SET ""aktuell"" ='" + i + "' WHERE ""ID""=0" 		IF stSerie = "Interessenten" THEN 			stSql = "UPDATE ""von_bis_I"" SET ""aktuell"" ='" + i + "' WHERE ""ID""=0" 		END IF 		oResult = oSQL_Statement.executeQuery(stSql)
  		IF NOT Inhalt_zusammenstellen_Serie(stPfadvor, stDateivor, stPfadDruck, stMuster, stAbfrage,inSpalten, stSerie) THEN 			IF NOT Durchmarsch THEN 				janein = msgbox("Trotzdem weitere Briefe erstellen?",256+32+4,"Evtl. leerer Datensatz bei Nummer " & i & " !?") 				IF janein = 7 THEN GOTO hinterLoop 				IF janein = 6 THEN Durchmarsch = TRUE 			ENDIF 		ELSE	 			txanzahl = txanzahl + 1 		END IF 	END IF 	 Labelnichtdrucken: 	i = i + 1 	oPForm.updateInt(staktuellField,i) LOOP
  hinterLoop: Select Case txanzahl  	Case 0 		 msgbox ("Kein Brief geschrieben.",64,"") 	Case 1	  		 msgbox ("Ein Brief geschrieben.",64,"") 	Case Else msgbox (txanzahl & " Briefe geschrieben.",64,"") End Select
  	stSql = "UPDATE ""von_bis"" SET ""aktuell"" ='" + stvon + "' WHERE ""ID""=0" 	IF stSerie = "Interessenten" THEN 		stSql = "UPDATE ""von_bis_I"" SET ""aktuell"" ='" + stvon + "' WHERE ""ID""=0" 	END IF 	oResult = oSQL_Statement.executeQuery(stSql) 	oPForm.reload()	 	wait 100 END SUB  | 
    
    
     | Standard | 
     Serienbrief | 
     vonbis_aktualisieren | 
       | 
     Basic | 
     7a - MitgliederBriefe|Aktualisiere (Control) 8d - DividendenZentrale|Aktualisiere (Control) 8i - Ueberweisungen|Aktualisiere (Control) | 
     66 | 
     SUB vonbis_aktualisieren 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oSubForm AS OBJECT 	DIM oFeld AS OBJECT 	DIM minwert AS INTEGER 	DIM letzter AS INTEGER 	DIM oColumns AS OBJECT 	DIM oConnection AS OBJECT 	DIM oSQL_Statement AS OBJECT 	DIM stSql AS STRING 	DIM oResult AS OBJECT  	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Serie")
  oConnection = oForm.activeConnection() oSQL_Statement = oConnection.createStatement()
  stSql = "SELECT MAX(""Mitgliedsnummer"") AS ""MAXIMIT"" FROM ""Mitglieder""" oResult =  oSQL_Statement.executeQuery(stSql) oColumns = oResult.columns() IF oColumns.hasByName("MAXIMIT") THEN inIndex = oColumns.findColumn("MAXIMIT") oResult.next letzter=oResult.getInt(1)
  	oFeld = oForm.getByName("Num_von") 	minwert=oFeld.value 	IF minwert > letzter THEN 		msgbox(letzter & " ist die höchste Mitgliedsnummer!",1,"Nööö!") 		minwert=1 		oFeld.value=minwert 	ENDIF	 	oFeld.commit() 	 	oFeld = oForm.getByName("Num_bis") 	maxwert=oFeld.value 	IF maxwert > letzter THEN 		msgbox(letzter & " ist die höchste Mitgliedsnummer!",1,"Nööö!")	 		maxwert=letzter 	ENDIF	 	IF maxwert < minwert THEN  		msgbox("bis kann nicht kleiner sein als von!",1,"Nööö!")		 		maxwert=minwert 	ENDIF 	oFeld.value=maxwert 	oFeld.commit() 	 	oFeld = oForm.getByName("Num_aktuell") 	oFeld.value=minwert 	oFeld.commit() 	 	oConnection = oForm.activeConnection() 	oSQL_Statement = oConnection.createStatement() 	stSql = "UPDATE ""von_bis"" SET ""von"" ='" + minwert + "' WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql) 	stSql = "UPDATE ""von_bis"" SET ""bis"" ='" + maxwert + "' WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql) 	stSql = "UPDATE ""von_bis"" SET ""aktuell"" ='" + minwert + "' WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql) END SUB  | 
    
    
     | Standard | 
     Serienbrief | 
     vonbis_aktualisieren_I | 
       | 
     Basic | 
       | 
     66 | 
     SUB vonbis_aktualisieren_I 	DIM oDoc AS OBJECT 	DIM oDrawpage AS OBJECT 	DIM oForm AS OBJECT 	DIM oSubForm AS OBJECT 	DIM oFeld AS OBJECT 	DIM minwert AS INTEGER 	DIM letzter AS INTEGER 	DIM oColumns AS OBJECT 	DIM oConnection AS OBJECT 	DIM oSQL_Statement AS OBJECT 	DIM stSql AS STRING 	DIM oResult AS OBJECT  	oDoc = thisComponent 	oDrawpage = oDoc.drawpage 	oForm = oDrawpage.forms.getByName("Formular_Serie")
  oConnection = oForm.activeConnection() oSQL_Statement = oConnection.createStatement()
  stSql = "SELECT MAX(""ID"") AS ""MAXIMIT"" FROM ""Interessenten""" oResult =  oSQL_Statement.executeQuery(stSql) oColumns = oResult.columns() IF oColumns.hasByName("MAXIMIT") THEN inIndex = oColumns.findColumn("MAXIMIT") oResult.next letzter=oResult.getInt(1)
  	oFeld = oForm.getByName("Num_von") 	minwert=oFeld.value 	IF minwert > letzter THEN 		msgbox(letzter & " ist die höchste ID!",1,"Nööö!") 		minwert=1 		oFeld.value=minwert 	ENDIF	 	oFeld.commit() 	 	oFeld = oForm.getByName("Num_bis") 	maxwert=oFeld.value 	IF maxwert > letzter THEN 		msgbox(letzter & " ist die höchste ID!",1,"Nööö!")	 		maxwert=letzter 	ENDIF	 	IF maxwert < minwert THEN  		msgbox("bis kann nicht kleiner sein als von!",1,"Nööö!")		 		maxwert=minwert 	ENDIF 	oFeld.value=maxwert 	oFeld.commit() 	 	oFeld = oForm.getByName("Num_aktuell") 	oFeld.Value=minwert 	oFeld.commit() 	 	oConnection = oForm.activeConnection() 	oSQL_Statement = oConnection.createStatement() 	stSql = "UPDATE ""von_bis_I"" SET ""von"" ='" + minwert + "' WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql) 	stSql = "UPDATE ""von_bis_I"" SET ""bis"" ='" + maxwert + "' WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql) 	stSql = "UPDATE ""von_bis_I"" SET ""aktuell"" ='" + minwert + "' WHERE ""ID""=0" 	oResult = oSQL_Statement.executeQuery(stSql) END SUB  |