von pcdirk91 » So, 15.12.2019 15:46
Hi Marcek,
habe jetzt erst gesehen das du geschrieben hast. Das mit dem Profi sehe ich bei weiten noch nicht. oder wolltest Du mich auf den Arm nehmen???
Na ich versuche halt zu lernen
Bin jetzt etwas verwirrt. Ganz am Anfang unseres Kontaktes habe ich dich so verstanden, dass ich die Deklaration der Variablen im Modulkopf zu ausführlich gemacht habe. Es waren mal 41 Variablen. Derzeit sind es nur noch 15. Dadurch sind im Bereich:
Code: Alles auswählen
Function F_Mat_KeyPressed(oEvt) As Boolean ' Funktion mit der Object Var "oEvt" die die Tastatureingaben abprüft
Dim Lg as Integer ' Die Integer Var. "Lg" als Unteger belegen
Dim oCell as Object ' Die Object Var. "oCell" als Object deklarieren
Dim oOk as Object : oOk = odlg_Dialog.model.controlModels(0) ' Die Object Var. "oOk" mit dem CommandButton1 belegen
Dim oOk1 as Object : oOk1 = odlg_Dialog.getControl("CommandButton1") ' Die Object Var. "oOk1" mit dem CommandButton1 belegen
Dim oAb as Object : oAb = odlg_Dialog.model.controlModels(1) ' Die Object Var. "oAb" mit dem CommandButton1 belegen
Dim Bez as Object : Bez = odlg_Dialog.getControl("MatBez") ' Die Object Var. "Bez" mit dem EingabeFeld "MatBez" belegen
Dim St as Object : St = odlg_Dialog.getControl("MatSt") ' Die Object Var. "St" mit dem EingabeFeld "MatSt" belegen
Dim Nr as Object : Nr = odlg_Dialog.getControl("MatNr") ' Die Object Var. "Nr" mit dem Eingabefeld "MatNr" belegen
Dim F1 as Object : F1 = odlg_Dialog.getControl("oTextFehler") ' Die Object Var. "F1" mit dem Labelfeld "oTextFehler" belegen
Dim A1 as Object : A1 = odlg_Dialog.getControl("oTextAnweisg") ' Die Object Var. "A1" mit dem Labelfeld "oTextAnweisg" belegen
Dim TSt as Object : TSt = odlg_Dialog.getControl("oTextSt") ' Die Object-Var. "oTextSt" mit dem Labeldfeld "oTextSt" belegen
Dim TEin as Object : TEin = odlg_Dialog.getControl("oTextEinheit") ' Die Object-Var. "oTextEinheit" mit dem Labeldfeld "oTextEinheit" belegen
Dim TNr as Object : TNr = odlg_Dialog.getControl("oTextNr") ' Die Object-Var. "oTextNr" mit dem Labeldfeld "oTextNr" belegen
Dim oDatNr as Object : oDatNr = oTbEin.getCellByPosition( 3,5) ' Die Adresse der Object Var. "DatNr" mit Zelle "Einstellungen!K6" belegen
Dim Feld as String : Feld = oEvt.source.Model.Name ' Die Object Var. "Feld" mit dem Object "oEvt.Source.Name" belegen
Dim GM as String : GM = oTbEin.getCellByPosition( 4,24).String ' Die String Var. "Gmenu" mit der Prozedur die gestartet wurde belegen
Dim anzMat as Integer : anzMat = oTbEin.getCellByPosition(12,24).Value -1 ' Die Integer Var. "anzMat" mit der Ssumme aller angelegten Materialien minus dem Wert "1" belegen
Dim ZNrID as Integer : ZNrID = oTbEin.getCellByPosition(13,24).Value ' Die Integer Var. "ZNrID" mit dem Wert der 1. blegten Zeilennummer asl Index belegen
Dim LfdNr1 as Integer : LfdNr1 = oTbEin.getCellByPosition(12,24).Value+1 ' Die Integer Var. "LfdNr1" mit dem Wert (aller angelegten Materialien + dem Wert "1") belegen
Dim LfdNr2 as Integer : LfdNr2 = oTbEin.getCellByPosition(11,24).Value ' Die Integer Var. "LfdNr1" mit dem Wert (Nr des ausgewählten Material-Datensatzes) belegen
so viele Definiert. Auf dIe Idee mit den globalen Variablen in der "Start" _Prozedur als Glpbal umzusetzen bin ich nicht gekommen. (Werde ich aber umsetzen). Stand derzeit:
Ich muss ja mehere Module entwickeln (zb. Material. Platten,Hexaeder usw) Durch Deine Mithilfe habe ich die Functionen nun in ein Modul gepackt und dabei ist mir aufgefallen, ich könnte ja aus jedem MOdul auf die Finctionen zugreifen (*bitte lach nicht. Ich weiss das ist Sinn von Functionen).Aber ich wusste nicht wie ichdas realisieren soll Ich habe auch das Blatt Einstellungen vollkommen umgemodelt. und bin jetzt am Testen ob meine Idee Funzt. Was mich jetzt wieder zu den Globalen Variablen bringt. Ist die ANzahl dieser Variablen wichtig (* jeder var bedutet doch Speicherplatz) Vin früher her war das immer ein Arbeitsspeicherproblem (*Aussage meines Onkels der Programmierer war).
Ich werde Dir mal den Code senden. Ist vielleicht einfacher
Code: Alles auswählen
'*******************************
'* Prozedur zum Anlegen eines *
'* Benutzers *
'*******************************
Sub P_BenAnlegen ' Prozedur zum Anlegen eines neuen Benutzers
Dim oTbHin as Object,oTbEin as Object,oTbBen as Object ' Die Object Var. "oTbHin", "oTbEin" und "oTbBen" deklarieren
Dim Pos_x as Long,Pos_y as Long,BildBr as Long,BildHo as Long ' Die Long Var. "Pos_x", "Pos_y", "BildBr" und "BildHo" deklarieren
Dim AnzFeld as Integer, AnzEing as Integer ' Die Integer Var. "AnzFeld" und "AnzEing" deklarieren
Dim Htext00 as Integer, Ftext00 as Integer ' Die Integer Var. "HText00" und "FText00" deklarieren
Dim DlgName as String,GM as String,DlgTit as String,Button1 as String ' Die String Var. "DlgName", "GM", "DlgTit" und "Button1" deklarieren
Dim Button2 as String,TAweisg as String ' Die String Var. "Button2" und "TAweisg" deklarieren
Dim HText as String,HText01 as String,HText02 as String,HText03 as String,HText04 as String ' Die String Var. "HText", "HText01", "HText02", "HText03" und "HText04" deklarieren
Dim HText05 as String,HText06 as String,HText07 as String,HText08 as String,HText09 as String ' Die String Var. "HText05", "HText06", "HText07", "HText08" und "HText09" deklarieren
Dim HText10 as String,HText11 as String,HText12 as String,HText13 as String,HText14 as String,HText15 as String ' Die String Var. "HText10", "HText11", "HText12", "HText13", "HText14" und "HText15" deklarieren
Dim FText as String,FText01 as String,FText02 as String,FText03 as String,FText04 as String ' Die String Var. "FText", "FText01", "FText02", "FText03" und "FText04" deklarieren
Dim FText05 as String,FText06 as String,FText07 as String,FText08 as String,FText09 as String ' Die String Var. "FText05", "FText06", "FText07", "FText08" und "FText09" deklarieren
Dim FText10 as String,FText11 as String,FText12 as String,FText13 as String,FText14 as String,FText15 as String ' Die String Var. "FText10", "FText11", "FText12", "FText13", "FText14" und "FText15" deklarieren
Dim TbHin as String : TbHin = "Hintergrund" ' Die String Var. "TbHin" mit "Hintergrund" belegen
Dim TbEin as String : TbEin = "Einstellungen" ' Die String Var. "TbEin" mit "Einstellungen" belegen
Dim TbBen as String : TbBen = "Benutzer" ' Die String Var. "TbBen" mit "Benutzer" belegen
'Das Blatt "Hintergrund" aktivieren
' oView.setActiveSheet(oDoc.Sheets.getByName(TbHin)) ' Das Blatt Hintergrund aktivieren
'Die benötigten Blätter für das Modul "Benutzer"
oTbHin = oDoc.Sheets.getByName(TbHin) ' Die Object Var. "oTbHin" mit dem Blatt "Hintergrund" verknüpfen
oTbEin = oDoc.Sheets.getByName(TbEin) ' Die Object Var. "oTbEin" mit dem Blatt "Einstellungen" verknüpfen
oTbBen = oDoc.Sheets.getByName(TbBen) ' Die Object Var. "oTbBen" mit dem Blatt "Benutzer" verknüpfen
'Die Definition des benötigten Dialoges Start in Blatt "Einstellungen.$D25"
Pos_x = StarDesktop.getCurrentFrame().getContainerWindow().PosSize.x ' Die x-Position der Anwendung ermitteln
Pos_y = StarDesktop.getCurrentFrame().getContainerWindow().PosSize.y ' Die y-Position der Anwendung ermitteln
BildBr = StarDesktop.getCurrentFrame().getContainerWindow().Size.Width ' Die Bildbreite der Anwendung ermitteln
BildHo = StarDesktop.getCurrentFrame().getContainerWindow().Size.Height ' Die BildHoehe der Anwendung ermitteln
DSpalte = 3 ' Die Var. "DSpalte" mit dem Spalten-Index "3" belegen (die erste Spalte hat den Buchstaben "D")
DZeile = 24 ' Die Var. "DZeile" mit dem Zeilen-Index "24" belegen (die erste Zeile hat die Ziffer "25")
DlgName = "BenutzerAnAeLoe" ' Die String Var. "DlgName" mit dem Namen des benötigten Dialoges belegen
GM = "Anlegen" ' Die String Var. "Gm" mit dem Eigenschaft der gewählten Prozedur belegen
DlgTit = "Benutzer anlegen" ' Die String Var. "DlgTit" mit dem Titel des gewählten DIaloges belegen
Button1 = "Benutzer "& chr(126) & "anlegen" ' Die String Var. "Button1" mit entsprechenden Beschriftung belegen
Button2 = "A"& chr(126) & "bbrechen" ' Die String Var. "Button2" mit entsprechenden Beschriftung belegen
TAweisg = "Nehmen Sie die notwendigen Eingaben vor !!!" ' Die String Var. "TAnweisg" mit dem Text der Anweisung belegen
AnzFeld = 16 ' Die Integer Var. "AnzFeld" mit der Anzahl der Felder des gwählten Dialoges belegen
AnzEing = 13 ' Die Integer Var. "AnzEing" mit der Anzahl der EingabeFelder des gwählten Dialoges belegen
' Die Definition der Hilfstexte Start in Blatt "Einstellungen.$E39"
HSpalte = 4 ' Die Var. "HSpalte" mit dem Spalten-Index "4" belegen (die erste Spalte hat den Buchstaben "E")
HZeile = 38 ' Die Var. "HZeile" mit dem Zeilen-Index "38" belegen (die erste Zeile hat die Ziffer "39")
HText = chr(8222) & "ENTER" & chr(8220) ' Die String Var. "HText" aus den Zeichen "ENTER" bilden
HText00 = 13 ' Die Anzahl der def. Hilfetexte ins Blatt "Einstellungen" Zelle "E39" eintragen
HText01 = "Geben Sie die Firma, oder ein Leerzeichen ein und bestätigen Sie mit " & HText & "." ' Den Hilfetext01 für das Feld "BenFir" ins Blatt "Einstellungen" Zelle "F39" eintragen
HText02 = "Geben Sie den Vornamen ein, und bestätigen Sie mit " & HText & "." ' Den Hilfetext02 für das Feld "BenVor" ins Blatt "Einstellungen" Zelle "G39" eintragen
HText03 = "Geben Sie den Nachnamen ein, und bestätigen Sie mit " & HText & "." ' Den Hilfetext03 für das Feld "BenNam" ins Blatt "Einstellungen" Zelle "H39" eintragen
HText04 = "Geben Sie die Strasse, oder ein Leerzeichen ein und bestätigen Sie mit " & HText & "." ' Den Hilfetext04 für das Feld "BenStr" ins Blatt "Einstellungen" Zelle "I39" eintragen
HText05 = "Geben Sie die Plz, oder ein Leerzeichen ein und bestätigen Sie mit " & HText & "." ' Den Hilfetext05 für das Feld "BenPlz" ins Blatt "Einstellungen" Zelle "J39" eintragen
HText06 = "Geben Sie den Ort, oder ein Leerzeichen ein und bestätigen Sie mit " & HText & "." ' Den Hilfetext06 für das Feld "BenOrt" ins Blatt "Einstellungen" Zelle "K39" eintragen
HText07 = "Geben Sie das Land, oder ein Leerzeichen ein und bestätigen Sie mit " & HText & "." ' Den Hilfetext07 für das Feld "BenLan" ins Blatt "Einstellungen" Zelle "L39" eintragen
HText08 = "Geben Sie einen Titel, oder ein Leerzeichen ein und bestätigen Sie mit " & HText & "." ' Den Hilfetext08 für das Feld "BenTit" ins Blatt "Einstellungen" Zelle "M39" eintragen
HText09 = "Geben Sie eine Position, oder ein Leerzeichen ein und bestätigen Sie mit " & HText & "." ' Den Hilfetext09 für das Feld "BenPos" ins Blatt "Einstellungen" Zelle "N39" eintragen
HText10 = "Geben Sie die Telefon-Nr., oder ein Leerzeichen ein und bestätigen Sie mit " & HText & "." ' Den Hilfetext10 für das Feld "BenPrv" ins Blatt "Einstellungen" Zelle "O39" eintragen
HText11 = "Geben Sie die Telefon-Nr., oder ein Leerzeichen ein und bestätigen Sie mit " & HText & "." ' Den Hilfetext11 für das Feld "BenGes" ins Blatt "Einstellungen" Zelle "P39" eintragen
HText12 = "Geben Sie die Telefax-Nr., oder ein Leerzeichen ein und bestätigen Sie mit " & HText & "." ' Den Hilfetext12 für das Feld "BenFax" ins Blatt "Einstellungen" Zelle "Q39" eintragen
HText13 = "Geben Sie eine Email Adresse, oder ein Leerzeichen ein und bestätigen Sie mit " & HText & "." ' Den Hilfetext13 für das Feld "BenMai" ins Blatt "Einstellungen" Zelle "R39" eintragen
' Die Definition der Fehlermeldungen Start in Blatt "Einstellungen.$E53"
FSpalte = 4 ' Die Var. "FSpalte" mit dem Spalten-Index "4" belegen (die erste Spalte hat den Buchstaben "E")
FZeile = 52 ' Die Var. "FZeile" mit dem Zeilen-Index "52" belegen (die erste Zeile hat die Ziffer "53")
FText = "darf durch ein Leerzeichen ersetzt werden, oder muss mindestens 3 Zeichen lang sein !!!" ' Die Var. "Ftext" mit dem entsprechenden STring belegen
FText00 = 13 ' Die Anzahl der def. Fehlertexte ins Blatt "Einstellungen" Zelle "E53" eintragen
FText01 = "Die Firma " & FText ' Den Fehlertext01 für das Feld "BenFir" ins Blatt "Einstellungen" Zelle "F53" eintragen
FText02 = "Der Vorname muss mindestens 3 Zeichen lang sein" ' Den Fehlertext02 für das Feld "BenVor" ins Blatt "Einstellungen" Zelle "G53" eintragen
Ftext03 = "Der Nachname muss mindestens 3 Zeichen lang sein" ' Den Fehlertext03 für das Feld "BenNam" ins Blatt "Einstellungen" Zelle "H53" eintragen
FText04 = "Die Strasse " & FText ' Den Fehlertext04 für das Feld "BenStr" ins Blatt "Einstellungen" Zelle "I53" eintragen
FText05 = "Die Plz darf durch ein Leerzeichen ersetzt werden, oder muss 5 Ziffern lang sein !!!" ' Den Fehlertext05 für das Feld "BenPlz" ins Blatt "Einstellungen" Zelle "J53" eintragen
FText06 = "Der Ort " & FText ' Den Fehlertext06 für das Feld "BenOrt" ins Blatt "Einstellungen" Zelle "K53" eintragen
FText07 = "Das Land " & FText ' Den Fehlertext07 für das Feld "BenLan" ins Blatt "Einstellungen" Zelle "L53" eintragen
FText08 = "Der Titel " & FText ' Den Fehlertext08 für das Feld "BenTit" ins Blatt "Einstellungen" Zelle "M53" eintragen
FText09 = "Die Position " & FText ' Den Fehlertext09 für das Feld "BenPos" ins Blatt "Einstellungen" Zelle "N53" eintragen
FText10 = "Die Telefon-Nr. " & FText ' Den Fehlertext10 für das Feld "BenPrv" ins Blatt "Einstellungen" Zelle "O53" eintragen
FText11 = "Die Telefon-Nr." & FText ' Den Fehlertext11 für das Feld "BenGes" ins Blatt "Einstellungen" Zelle "P53" eintragen
FText12 = "Die Telefax-Nr. " & FText ' Den Fehlertext12 für das Feld "BenFax" ins Blatt "Einstellungen" Zelle "Q53" eintragen
FText13 = "Die Mail-Adresse " & FText ' Den Fehlertext13 für das Feld "BenMai" ins Blatt "Einstellungen" Zelle "R53" eintragen
' Die Arrays erstellen
Blatt = Array(TbHin,TbEin,TbBen) ' Das Array "Blatt" für die benptigten Blätter für dieses Modul
Bild = Array(BildBr,BildHo) ' Das Array "Bild" für die Blidbreite und BildHoehe erstellen
Dialog = Array(DlgName,GM,DlgTit,Button1,Button2,TAweisg,AnzFeld,AnzEing) ' Das Array "Dialog" für die Var. des Dialoges erstellen
Hilfe = Array(Htext00,Htext01,Htext02,Htext03,Htext04,Htext05,Htext06,Htext07,_
Htext08,Htext09,Htext10,Htext11,Htext12,Htext13) ' Das Array "Hilfe" für die Hilfetexte erstellen
Fehler = Array(Ftext00,Ftext01,Ftext02,Ftext03,Ftext04,Ftext05,Ftext06,Ftext07,_
Ftext08,Ftext09,Ftext10,Ftext11,Ftext12,Ftext13) ' Das Array "Fehler" für die Fehlertexte erstellen
Zeile = Array(DSpalte,DZeile,HSpalte,HZeile,FSpalte,FZeile) ' Das Array "Zeile" für die Spalten- und Zeilen-Bezeichnungen erstellen
' Die erzeugten Arrays in das Blatt Einstellungen eintragen
Infos= Array(Blatt,Bild,Dialog,Hilfe,Fehler,Zeile) ' Das Array "Infos" aus den bisherigen definierten Array's zusammenfassen
SetF_VarErstellen(Infos) ' Die Funktion SteF_VarErstellen aufrufen und ausführen
' Prozedur zum Erstellen und Einstellen des Dialoges "MaterialAnAeLoe"
' Dialog_BenutzerAnAeLoe(Blatt,Bild,Dialog,Hilfe,Fehler) ' Die Prozedur zum Erstellen und Einstellen des Dialoges "MaterialAnAeLoe" ausführen
End Sub
Die entsprechende Function dazu im Modul Function
Code: Alles auswählen
'************************************
'* Funktion zum Einsetzen der Var. *
'* in Das Blatt "Einstellungen" *
'************************************
Public Function SetF_VarErstellen(o1) ' Funktion in der die in den Prozedurren "P*_Anlegen" und "P*_Aendern" angelegten Einträge in das Blatt "Einstellungen" eingetragen werden
oTbEin = ThisComponent.Sheets.GetByName(o1(0)(1)) ' Die Var "oTbEin" durch das zuweisen der verschiedenen Objekte als aktives Blatt erstellen
'Die BildBreite und BildHoehe in Blatt "Einstellungen" eintragen
For i=0 to UBound(o1(1)) ' Die Schleife durchlaufen solange das Array "Bild" (o1(1)) Einträge hat
oTbEin.getCellByPosition(4,3+i).Value = o1(1)(i) ' Die BildBreite und die BildHöhe in das Blatt "Einstellungen" Zelle "E4" und "E5" eintragen
Next ' Der Zähler i wird um 1 erhöht
'Die Var für den Dialog "BenutzerAnAeLoe" in Blatt "Einstellungen" eintragen
Spalte= o1(5)(0) ' Die Var. "Spalte" mit dem Wert der Var. "DSpalte" belegen
For i=0 to UBound(o1(2)) ' Die Schleife durchlaufen solange das Array "Dialog" (o1(2)) Einträge hat
If i>=6 then ' Wenn i den Eintrag für "anzFelder" bzw. "anzEing" betrifft den Wert eintragen
oTbEin.getCellByPosition(Spalte,o1(5)(1)).Value = o1(2)(i) ' Die Infos für den Dialog in das Blatt "Einstellungen" Zellen "J&DZeile:K&DZeile" eintragen
Else ' Bei allen anderen Werten von i den String eintragen
oTbEin.getCellByPosition(Spalte,o1(5)(1)).String = o1(2)(i) ' Die Infos für den Dialog in das Blatt "Einstellungen" Zellen "D&DZeile:I&DZeile" eintragen
End If
Spalte=Spalte+1 ' Die Var. "Spalte" um den Wert "1" erhöhen
Next ' Der Zähler i wird um 1 erhöht
'Die Hilfetexte in Blatt "Einstellungen" eintragen
Spalte= o1(5)(2) ' Die Var. "Spalte" mit dem Wert der Var. "HSpalte" belegen
For i=0 to UBound(o1(3)) ' Die Schleife durchlaufen solange das Array "Hilfetexte" (o1(3)) Einträge hat
oTbEin.getCellByPosition(Spalte,o1(5)(3)).String = o1(3)(i) ' Die Infos für den Dialog in das Blatt "Einstellungen" Zellen "E&FZeile:U&fZeile" eintragen
Spalte=Spalte+1 ' Die Var. "Spalte" um den Wert "1" erhöhen
Next ' Der Zähler i wird um 1 erhöht
'Die Fehlertexte in Blatt "Einstellungen" eintragen
Spalte= o1(5)(4) ' Die Var. "Spalte" mit dem Wert der Var. "FSpalte" belegen
For i=0 to UBound(o1(4)) ' Die Schleife durchlaufen solange das Array "Fehlertexte" (o1(4)) Einträge hat
oTbEin.getCellByPosition(Spalte,o1(5)(5)).String = o1(4)(i) ' Die Infos für den Dialog in das Blatt "Einstellungen" Zellen "E&FZeile:U&fZeile" eintragen
Spalte=Spalte+1 ' Die Var. "Spalte" um den Wert "1" erhöhen
Next ' Der Zähler i wird um 1 erhöht
End Function
Habe ich getestet und funzt wie ich meine. Ich werde wohl diese Bariablen FText01....Ftext15 usw als Globale Variablen definieren (*Mein derzeituger Gedanke) .
So nu ist die Katze aus dem Sack ubd ich stehe bibbernd in der Ecke und warte auf meine Hinrichtung.
Jetzt aber zu Deiner , wie sagtest Du , "spontaner Idee ... zu dugitalisieren????? Ähm ich dachte Bibliotheken werden am Rechner entwickelt und Rechner = Digital??? oder schreibst du das erst auf Papier???
Na ich wünsche Dir jedenfalls viel Erfolg und ein Schnelles Ergebnis.
Ein schnes Rest WE und bitte sei nicht zu hart mit Deinem Urteil meiner Idee
Gruss Dirk
Hi Marcek,
habe jetzt erst gesehen das du geschrieben hast. Das mit dem Profi sehe ich bei weiten noch nicht. oder wolltest Du mich auf den Arm nehmen???
Na ich versuche halt zu lernen :)
Bin jetzt etwas verwirrt. Ganz am Anfang unseres Kontaktes habe ich dich so verstanden, dass ich die Deklaration der Variablen im Modulkopf zu ausführlich gemacht habe. Es waren mal 41 Variablen. Derzeit sind es nur noch 15. Dadurch sind im Bereich:
[code]
Function F_Mat_KeyPressed(oEvt) As Boolean ' Funktion mit der Object Var "oEvt" die die Tastatureingaben abprüft
Dim Lg as Integer ' Die Integer Var. "Lg" als Unteger belegen
Dim oCell as Object ' Die Object Var. "oCell" als Object deklarieren
Dim oOk as Object : oOk = odlg_Dialog.model.controlModels(0) ' Die Object Var. "oOk" mit dem CommandButton1 belegen
Dim oOk1 as Object : oOk1 = odlg_Dialog.getControl("CommandButton1") ' Die Object Var. "oOk1" mit dem CommandButton1 belegen
Dim oAb as Object : oAb = odlg_Dialog.model.controlModels(1) ' Die Object Var. "oAb" mit dem CommandButton1 belegen
Dim Bez as Object : Bez = odlg_Dialog.getControl("MatBez") ' Die Object Var. "Bez" mit dem EingabeFeld "MatBez" belegen
Dim St as Object : St = odlg_Dialog.getControl("MatSt") ' Die Object Var. "St" mit dem EingabeFeld "MatSt" belegen
Dim Nr as Object : Nr = odlg_Dialog.getControl("MatNr") ' Die Object Var. "Nr" mit dem Eingabefeld "MatNr" belegen
Dim F1 as Object : F1 = odlg_Dialog.getControl("oTextFehler") ' Die Object Var. "F1" mit dem Labelfeld "oTextFehler" belegen
Dim A1 as Object : A1 = odlg_Dialog.getControl("oTextAnweisg") ' Die Object Var. "A1" mit dem Labelfeld "oTextAnweisg" belegen
Dim TSt as Object : TSt = odlg_Dialog.getControl("oTextSt") ' Die Object-Var. "oTextSt" mit dem Labeldfeld "oTextSt" belegen
Dim TEin as Object : TEin = odlg_Dialog.getControl("oTextEinheit") ' Die Object-Var. "oTextEinheit" mit dem Labeldfeld "oTextEinheit" belegen
Dim TNr as Object : TNr = odlg_Dialog.getControl("oTextNr") ' Die Object-Var. "oTextNr" mit dem Labeldfeld "oTextNr" belegen
Dim oDatNr as Object : oDatNr = oTbEin.getCellByPosition( 3,5) ' Die Adresse der Object Var. "DatNr" mit Zelle "Einstellungen!K6" belegen
Dim Feld as String : Feld = oEvt.source.Model.Name ' Die Object Var. "Feld" mit dem Object "oEvt.Source.Name" belegen
Dim GM as String : GM = oTbEin.getCellByPosition( 4,24).String ' Die String Var. "Gmenu" mit der Prozedur die gestartet wurde belegen
Dim anzMat as Integer : anzMat = oTbEin.getCellByPosition(12,24).Value -1 ' Die Integer Var. "anzMat" mit der Ssumme aller angelegten Materialien minus dem Wert "1" belegen
Dim ZNrID as Integer : ZNrID = oTbEin.getCellByPosition(13,24).Value ' Die Integer Var. "ZNrID" mit dem Wert der 1. blegten Zeilennummer asl Index belegen
Dim LfdNr1 as Integer : LfdNr1 = oTbEin.getCellByPosition(12,24).Value+1 ' Die Integer Var. "LfdNr1" mit dem Wert (aller angelegten Materialien + dem Wert "1") belegen
Dim LfdNr2 as Integer : LfdNr2 = oTbEin.getCellByPosition(11,24).Value ' Die Integer Var. "LfdNr1" mit dem Wert (Nr des ausgewählten Material-Datensatzes) belegen
[/code]
so viele Definiert. Auf dIe Idee mit den globalen Variablen in der "Start" _Prozedur als Glpbal umzusetzen bin ich nicht gekommen. (Werde ich aber umsetzen). Stand derzeit:
Ich muss ja mehere Module entwickeln (zb. Material. Platten,Hexaeder usw) Durch Deine Mithilfe habe ich die Functionen nun in ein Modul gepackt und dabei ist mir aufgefallen, ich könnte ja aus jedem MOdul auf die Finctionen zugreifen (*bitte lach nicht. Ich weiss das ist Sinn von Functionen).Aber ich wusste nicht wie ichdas realisieren soll Ich habe auch das Blatt Einstellungen vollkommen umgemodelt. und bin jetzt am Testen ob meine Idee Funzt. Was mich jetzt wieder zu den Globalen Variablen bringt. Ist die ANzahl dieser Variablen wichtig (* jeder var bedutet doch Speicherplatz) Vin früher her war das immer ein Arbeitsspeicherproblem (*Aussage meines Onkels der Programmierer war).
Ich werde Dir mal den Code senden. Ist vielleicht einfacher
[code]
'*******************************
'* Prozedur zum Anlegen eines *
'* Benutzers *
'*******************************
Sub P_BenAnlegen ' Prozedur zum Anlegen eines neuen Benutzers
Dim oTbHin as Object,oTbEin as Object,oTbBen as Object ' Die Object Var. "oTbHin", "oTbEin" und "oTbBen" deklarieren
Dim Pos_x as Long,Pos_y as Long,BildBr as Long,BildHo as Long ' Die Long Var. "Pos_x", "Pos_y", "BildBr" und "BildHo" deklarieren
Dim AnzFeld as Integer, AnzEing as Integer ' Die Integer Var. "AnzFeld" und "AnzEing" deklarieren
Dim Htext00 as Integer, Ftext00 as Integer ' Die Integer Var. "HText00" und "FText00" deklarieren
Dim DlgName as String,GM as String,DlgTit as String,Button1 as String ' Die String Var. "DlgName", "GM", "DlgTit" und "Button1" deklarieren
Dim Button2 as String,TAweisg as String ' Die String Var. "Button2" und "TAweisg" deklarieren
Dim HText as String,HText01 as String,HText02 as String,HText03 as String,HText04 as String ' Die String Var. "HText", "HText01", "HText02", "HText03" und "HText04" deklarieren
Dim HText05 as String,HText06 as String,HText07 as String,HText08 as String,HText09 as String ' Die String Var. "HText05", "HText06", "HText07", "HText08" und "HText09" deklarieren
Dim HText10 as String,HText11 as String,HText12 as String,HText13 as String,HText14 as String,HText15 as String ' Die String Var. "HText10", "HText11", "HText12", "HText13", "HText14" und "HText15" deklarieren
Dim FText as String,FText01 as String,FText02 as String,FText03 as String,FText04 as String ' Die String Var. "FText", "FText01", "FText02", "FText03" und "FText04" deklarieren
Dim FText05 as String,FText06 as String,FText07 as String,FText08 as String,FText09 as String ' Die String Var. "FText05", "FText06", "FText07", "FText08" und "FText09" deklarieren
Dim FText10 as String,FText11 as String,FText12 as String,FText13 as String,FText14 as String,FText15 as String ' Die String Var. "FText10", "FText11", "FText12", "FText13", "FText14" und "FText15" deklarieren
Dim TbHin as String : TbHin = "Hintergrund" ' Die String Var. "TbHin" mit "Hintergrund" belegen
Dim TbEin as String : TbEin = "Einstellungen" ' Die String Var. "TbEin" mit "Einstellungen" belegen
Dim TbBen as String : TbBen = "Benutzer" ' Die String Var. "TbBen" mit "Benutzer" belegen
'Das Blatt "Hintergrund" aktivieren
' oView.setActiveSheet(oDoc.Sheets.getByName(TbHin)) ' Das Blatt Hintergrund aktivieren
'Die benötigten Blätter für das Modul "Benutzer"
oTbHin = oDoc.Sheets.getByName(TbHin) ' Die Object Var. "oTbHin" mit dem Blatt "Hintergrund" verknüpfen
oTbEin = oDoc.Sheets.getByName(TbEin) ' Die Object Var. "oTbEin" mit dem Blatt "Einstellungen" verknüpfen
oTbBen = oDoc.Sheets.getByName(TbBen) ' Die Object Var. "oTbBen" mit dem Blatt "Benutzer" verknüpfen
'Die Definition des benötigten Dialoges Start in Blatt "Einstellungen.$D25"
Pos_x = StarDesktop.getCurrentFrame().getContainerWindow().PosSize.x ' Die x-Position der Anwendung ermitteln
Pos_y = StarDesktop.getCurrentFrame().getContainerWindow().PosSize.y ' Die y-Position der Anwendung ermitteln
BildBr = StarDesktop.getCurrentFrame().getContainerWindow().Size.Width ' Die Bildbreite der Anwendung ermitteln
BildHo = StarDesktop.getCurrentFrame().getContainerWindow().Size.Height ' Die BildHoehe der Anwendung ermitteln
DSpalte = 3 ' Die Var. "DSpalte" mit dem Spalten-Index "3" belegen (die erste Spalte hat den Buchstaben "D")
DZeile = 24 ' Die Var. "DZeile" mit dem Zeilen-Index "24" belegen (die erste Zeile hat die Ziffer "25")
DlgName = "BenutzerAnAeLoe" ' Die String Var. "DlgName" mit dem Namen des benötigten Dialoges belegen
GM = "Anlegen" ' Die String Var. "Gm" mit dem Eigenschaft der gewählten Prozedur belegen
DlgTit = "Benutzer anlegen" ' Die String Var. "DlgTit" mit dem Titel des gewählten DIaloges belegen
Button1 = "Benutzer "& chr(126) & "anlegen" ' Die String Var. "Button1" mit entsprechenden Beschriftung belegen
Button2 = "A"& chr(126) & "bbrechen" ' Die String Var. "Button2" mit entsprechenden Beschriftung belegen
TAweisg = "Nehmen Sie die notwendigen Eingaben vor !!!" ' Die String Var. "TAnweisg" mit dem Text der Anweisung belegen
AnzFeld = 16 ' Die Integer Var. "AnzFeld" mit der Anzahl der Felder des gwählten Dialoges belegen
AnzEing = 13 ' Die Integer Var. "AnzEing" mit der Anzahl der EingabeFelder des gwählten Dialoges belegen
' Die Definition der Hilfstexte Start in Blatt "Einstellungen.$E39"
HSpalte = 4 ' Die Var. "HSpalte" mit dem Spalten-Index "4" belegen (die erste Spalte hat den Buchstaben "E")
HZeile = 38 ' Die Var. "HZeile" mit dem Zeilen-Index "38" belegen (die erste Zeile hat die Ziffer "39")
HText = chr(8222) & "ENTER" & chr(8220) ' Die String Var. "HText" aus den Zeichen "ENTER" bilden
HText00 = 13 ' Die Anzahl der def. Hilfetexte ins Blatt "Einstellungen" Zelle "E39" eintragen
HText01 = "Geben Sie die Firma, oder ein Leerzeichen ein und bestätigen Sie mit " & HText & "." ' Den Hilfetext01 für das Feld "BenFir" ins Blatt "Einstellungen" Zelle "F39" eintragen
HText02 = "Geben Sie den Vornamen ein, und bestätigen Sie mit " & HText & "." ' Den Hilfetext02 für das Feld "BenVor" ins Blatt "Einstellungen" Zelle "G39" eintragen
HText03 = "Geben Sie den Nachnamen ein, und bestätigen Sie mit " & HText & "." ' Den Hilfetext03 für das Feld "BenNam" ins Blatt "Einstellungen" Zelle "H39" eintragen
HText04 = "Geben Sie die Strasse, oder ein Leerzeichen ein und bestätigen Sie mit " & HText & "." ' Den Hilfetext04 für das Feld "BenStr" ins Blatt "Einstellungen" Zelle "I39" eintragen
HText05 = "Geben Sie die Plz, oder ein Leerzeichen ein und bestätigen Sie mit " & HText & "." ' Den Hilfetext05 für das Feld "BenPlz" ins Blatt "Einstellungen" Zelle "J39" eintragen
HText06 = "Geben Sie den Ort, oder ein Leerzeichen ein und bestätigen Sie mit " & HText & "." ' Den Hilfetext06 für das Feld "BenOrt" ins Blatt "Einstellungen" Zelle "K39" eintragen
HText07 = "Geben Sie das Land, oder ein Leerzeichen ein und bestätigen Sie mit " & HText & "." ' Den Hilfetext07 für das Feld "BenLan" ins Blatt "Einstellungen" Zelle "L39" eintragen
HText08 = "Geben Sie einen Titel, oder ein Leerzeichen ein und bestätigen Sie mit " & HText & "." ' Den Hilfetext08 für das Feld "BenTit" ins Blatt "Einstellungen" Zelle "M39" eintragen
HText09 = "Geben Sie eine Position, oder ein Leerzeichen ein und bestätigen Sie mit " & HText & "." ' Den Hilfetext09 für das Feld "BenPos" ins Blatt "Einstellungen" Zelle "N39" eintragen
HText10 = "Geben Sie die Telefon-Nr., oder ein Leerzeichen ein und bestätigen Sie mit " & HText & "." ' Den Hilfetext10 für das Feld "BenPrv" ins Blatt "Einstellungen" Zelle "O39" eintragen
HText11 = "Geben Sie die Telefon-Nr., oder ein Leerzeichen ein und bestätigen Sie mit " & HText & "." ' Den Hilfetext11 für das Feld "BenGes" ins Blatt "Einstellungen" Zelle "P39" eintragen
HText12 = "Geben Sie die Telefax-Nr., oder ein Leerzeichen ein und bestätigen Sie mit " & HText & "." ' Den Hilfetext12 für das Feld "BenFax" ins Blatt "Einstellungen" Zelle "Q39" eintragen
HText13 = "Geben Sie eine Email Adresse, oder ein Leerzeichen ein und bestätigen Sie mit " & HText & "." ' Den Hilfetext13 für das Feld "BenMai" ins Blatt "Einstellungen" Zelle "R39" eintragen
' Die Definition der Fehlermeldungen Start in Blatt "Einstellungen.$E53"
FSpalte = 4 ' Die Var. "FSpalte" mit dem Spalten-Index "4" belegen (die erste Spalte hat den Buchstaben "E")
FZeile = 52 ' Die Var. "FZeile" mit dem Zeilen-Index "52" belegen (die erste Zeile hat die Ziffer "53")
FText = "darf durch ein Leerzeichen ersetzt werden, oder muss mindestens 3 Zeichen lang sein !!!" ' Die Var. "Ftext" mit dem entsprechenden STring belegen
FText00 = 13 ' Die Anzahl der def. Fehlertexte ins Blatt "Einstellungen" Zelle "E53" eintragen
FText01 = "Die Firma " & FText ' Den Fehlertext01 für das Feld "BenFir" ins Blatt "Einstellungen" Zelle "F53" eintragen
FText02 = "Der Vorname muss mindestens 3 Zeichen lang sein" ' Den Fehlertext02 für das Feld "BenVor" ins Blatt "Einstellungen" Zelle "G53" eintragen
Ftext03 = "Der Nachname muss mindestens 3 Zeichen lang sein" ' Den Fehlertext03 für das Feld "BenNam" ins Blatt "Einstellungen" Zelle "H53" eintragen
FText04 = "Die Strasse " & FText ' Den Fehlertext04 für das Feld "BenStr" ins Blatt "Einstellungen" Zelle "I53" eintragen
FText05 = "Die Plz darf durch ein Leerzeichen ersetzt werden, oder muss 5 Ziffern lang sein !!!" ' Den Fehlertext05 für das Feld "BenPlz" ins Blatt "Einstellungen" Zelle "J53" eintragen
FText06 = "Der Ort " & FText ' Den Fehlertext06 für das Feld "BenOrt" ins Blatt "Einstellungen" Zelle "K53" eintragen
FText07 = "Das Land " & FText ' Den Fehlertext07 für das Feld "BenLan" ins Blatt "Einstellungen" Zelle "L53" eintragen
FText08 = "Der Titel " & FText ' Den Fehlertext08 für das Feld "BenTit" ins Blatt "Einstellungen" Zelle "M53" eintragen
FText09 = "Die Position " & FText ' Den Fehlertext09 für das Feld "BenPos" ins Blatt "Einstellungen" Zelle "N53" eintragen
FText10 = "Die Telefon-Nr. " & FText ' Den Fehlertext10 für das Feld "BenPrv" ins Blatt "Einstellungen" Zelle "O53" eintragen
FText11 = "Die Telefon-Nr." & FText ' Den Fehlertext11 für das Feld "BenGes" ins Blatt "Einstellungen" Zelle "P53" eintragen
FText12 = "Die Telefax-Nr. " & FText ' Den Fehlertext12 für das Feld "BenFax" ins Blatt "Einstellungen" Zelle "Q53" eintragen
FText13 = "Die Mail-Adresse " & FText ' Den Fehlertext13 für das Feld "BenMai" ins Blatt "Einstellungen" Zelle "R53" eintragen
' Die Arrays erstellen
Blatt = Array(TbHin,TbEin,TbBen) ' Das Array "Blatt" für die benptigten Blätter für dieses Modul
Bild = Array(BildBr,BildHo) ' Das Array "Bild" für die Blidbreite und BildHoehe erstellen
Dialog = Array(DlgName,GM,DlgTit,Button1,Button2,TAweisg,AnzFeld,AnzEing) ' Das Array "Dialog" für die Var. des Dialoges erstellen
Hilfe = Array(Htext00,Htext01,Htext02,Htext03,Htext04,Htext05,Htext06,Htext07,_
Htext08,Htext09,Htext10,Htext11,Htext12,Htext13) ' Das Array "Hilfe" für die Hilfetexte erstellen
Fehler = Array(Ftext00,Ftext01,Ftext02,Ftext03,Ftext04,Ftext05,Ftext06,Ftext07,_
Ftext08,Ftext09,Ftext10,Ftext11,Ftext12,Ftext13) ' Das Array "Fehler" für die Fehlertexte erstellen
Zeile = Array(DSpalte,DZeile,HSpalte,HZeile,FSpalte,FZeile) ' Das Array "Zeile" für die Spalten- und Zeilen-Bezeichnungen erstellen
' Die erzeugten Arrays in das Blatt Einstellungen eintragen
Infos= Array(Blatt,Bild,Dialog,Hilfe,Fehler,Zeile) ' Das Array "Infos" aus den bisherigen definierten Array's zusammenfassen
SetF_VarErstellen(Infos) ' Die Funktion SteF_VarErstellen aufrufen und ausführen
' Prozedur zum Erstellen und Einstellen des Dialoges "MaterialAnAeLoe"
' Dialog_BenutzerAnAeLoe(Blatt,Bild,Dialog,Hilfe,Fehler) ' Die Prozedur zum Erstellen und Einstellen des Dialoges "MaterialAnAeLoe" ausführen
End Sub
[/code]
Die entsprechende Function dazu im Modul Function
[code]
'************************************
'* Funktion zum Einsetzen der Var. *
'* in Das Blatt "Einstellungen" *
'************************************
Public Function SetF_VarErstellen(o1) ' Funktion in der die in den Prozedurren "P*_Anlegen" und "P*_Aendern" angelegten Einträge in das Blatt "Einstellungen" eingetragen werden
oTbEin = ThisComponent.Sheets.GetByName(o1(0)(1)) ' Die Var "oTbEin" durch das zuweisen der verschiedenen Objekte als aktives Blatt erstellen
'Die BildBreite und BildHoehe in Blatt "Einstellungen" eintragen
For i=0 to UBound(o1(1)) ' Die Schleife durchlaufen solange das Array "Bild" (o1(1)) Einträge hat
oTbEin.getCellByPosition(4,3+i).Value = o1(1)(i) ' Die BildBreite und die BildHöhe in das Blatt "Einstellungen" Zelle "E4" und "E5" eintragen
Next ' Der Zähler i wird um 1 erhöht
'Die Var für den Dialog "BenutzerAnAeLoe" in Blatt "Einstellungen" eintragen
Spalte= o1(5)(0) ' Die Var. "Spalte" mit dem Wert der Var. "DSpalte" belegen
For i=0 to UBound(o1(2)) ' Die Schleife durchlaufen solange das Array "Dialog" (o1(2)) Einträge hat
If i>=6 then ' Wenn i den Eintrag für "anzFelder" bzw. "anzEing" betrifft den Wert eintragen
oTbEin.getCellByPosition(Spalte,o1(5)(1)).Value = o1(2)(i) ' Die Infos für den Dialog in das Blatt "Einstellungen" Zellen "J&DZeile:K&DZeile" eintragen
Else ' Bei allen anderen Werten von i den String eintragen
oTbEin.getCellByPosition(Spalte,o1(5)(1)).String = o1(2)(i) ' Die Infos für den Dialog in das Blatt "Einstellungen" Zellen "D&DZeile:I&DZeile" eintragen
End If
Spalte=Spalte+1 ' Die Var. "Spalte" um den Wert "1" erhöhen
Next ' Der Zähler i wird um 1 erhöht
'Die Hilfetexte in Blatt "Einstellungen" eintragen
Spalte= o1(5)(2) ' Die Var. "Spalte" mit dem Wert der Var. "HSpalte" belegen
For i=0 to UBound(o1(3)) ' Die Schleife durchlaufen solange das Array "Hilfetexte" (o1(3)) Einträge hat
oTbEin.getCellByPosition(Spalte,o1(5)(3)).String = o1(3)(i) ' Die Infos für den Dialog in das Blatt "Einstellungen" Zellen "E&FZeile:U&fZeile" eintragen
Spalte=Spalte+1 ' Die Var. "Spalte" um den Wert "1" erhöhen
Next ' Der Zähler i wird um 1 erhöht
'Die Fehlertexte in Blatt "Einstellungen" eintragen
Spalte= o1(5)(4) ' Die Var. "Spalte" mit dem Wert der Var. "FSpalte" belegen
For i=0 to UBound(o1(4)) ' Die Schleife durchlaufen solange das Array "Fehlertexte" (o1(4)) Einträge hat
oTbEin.getCellByPosition(Spalte,o1(5)(5)).String = o1(4)(i) ' Die Infos für den Dialog in das Blatt "Einstellungen" Zellen "E&FZeile:U&fZeile" eintragen
Spalte=Spalte+1 ' Die Var. "Spalte" um den Wert "1" erhöhen
Next ' Der Zähler i wird um 1 erhöht
End Function
[/code]
Habe ich getestet und funzt wie ich meine. Ich werde wohl diese Bariablen FText01....Ftext15 usw als Globale Variablen definieren (*Mein derzeituger Gedanke) .
So nu ist die Katze aus dem Sack ubd ich stehe bibbernd in der Ecke und warte auf meine Hinrichtung. :shock:
Jetzt aber zu Deiner , wie sagtest Du , "spontaner Idee ... zu dugitalisieren????? Ähm ich dachte Bibliotheken werden am Rechner entwickelt und Rechner = Digital??? oder schreibst du das erst auf Papier???
Na ich wünsche Dir jedenfalls viel Erfolg und ein Schnelles Ergebnis.
Ein schnes Rest WE und bitte sei nicht zu hart mit Deinem Urteil meiner Idee
Gruss Dirk