von opiWahn » Mo, 04.04.2011 11:42
Hallo Karolus,
daß ich noch einiges, vorallem an Grundlagen, lernen muß weiss ich und mach ich auch. Hierzu hab' ich mir vor etwa 2 Wochen auch einen Wälzer für Schlappe 50,- Euronen zugelegt. Das Kapitel zu Thema Arrays umfasst jedoch nur 3 Seiten und geht auf die direkte Zuweisung nicht ein, zumindest nicht was Strings betrifft.
Soweit ich das verstanden habe sollte folgender Code auch funktionieren:
Code: Alles auswählen
' Database
Dim Context As Object, DB As Object, Connection As Object, QueryErg As Object
Dim DBName As String, SQL As String
Dim Statement As Variant
' FormObjects
Dim oForm As Object
Dim oText(11) as String
Sub Value_ANr
oANr = inputBox ("Auftragsnummer","Eingabe erforderlich","Bitte Auftragsnummer eingeben")
oForm = thisComponent.drawpage.forms.getbyindex(0)
oText() = Array ("o_anrede", "o_name", "o_titel", "o_strasse", "o_ort", "r_anrede", "r_name", "r_titel", "r_strasse", "r_ort", "langtext")
For i = 1 to 11
oText(i) = oForm.getByName(i)
next i
oEdit = oForm.getByName("chk_edit")
DBName = "REPARATUR"
Context = createUnoService("com.sun.star.sdb.DatabaseContext")
DB = Context.GetByName (DBName)
Connection = DB.GetConnection ("","")
Sql = "SELECT `objekt_anrede`,`objekt_name`,`objekt_titel`,`objekt_strasse`,`objekt_ort`,`rechnung_anrede`,`rechnung_name`,`rechnung_titel`,`rechnung_strasse`,`rechnung_ort`,`langtext` FROM `REPARATUR` WHERE `key` = '"+oANr+"';"
Statement = Connection.CreateStatement
QueryErg = Statement.ExecuteQuery(SQL)
for i = 1 to 11
oText(i).text = trim(QueryErg.GetString(i))
if i = 11 then
TempText = trim(QueryErg.GetString(i))
oText(i).text = Replace(TempText, Chr(10)+ Chr(13), "")
end if
next i
Connection.Close()
if oEdit.state(1) then
for i = 1 to 10
oText(i).ReadOnly = false
next i
end if
End Sub
bis jetzt, und das möchte ich ändern/verkürzen, sieht das so aus:
Code: Alles auswählen
' Database
Dim Context As Object, DB As Object, Connection As Object, QueryErg As Object
Dim DBName As String, SQL As String
Dim Statement As Variant
' FormObjects
Dim oForm As Object
Dim oText(11)
Sub Value_ANr
oANr = inputBox ("Auftragsnummer","Eingabe erforderlich","Bitte Auftragsnummer eingeben")
oForm = thisComponent.drawpage.forms.getbyindex(0)
oText(1) = oForm.getByName("o_anrede")
oText(2) = oForm.getByName("o_name")
oText(3) = oForm.getByName("o_titel")
oText(4) = oForm.getByName("o_strasse")
oText(5) = oForm.getByName("o_ort")
oText(6) = oForm.getByName("r_anrede")
oText(7) = oForm.getByName("r_name")
oText(8) = oForm.getByName("r_titel")
oText(9) = oForm.getByName("r_strasse")
oText(10) = oForm.getByName("r_ort")
oText(11) = oForm.getByName("langtext")
oEdit = oForm.getByName("chk_edit")
DBName = "REPARATUR"
Context = createUnoService("com.sun.star.sdb.DatabaseContext")
DB = Context.GetByName (DBName)
Connection = DB.GetConnection ("","")
Sql = "SELECT `objekt_anrede`,`objekt_name`,`objekt_titel`,`objekt_strasse`,`objekt_ort`,`rechnung_anrede`,`rechnung_name`,`rechnung_titel`,`rechnung_strasse`,`rechnung_ort`,`langtext` FROM `REPARATUR` WHERE `key` = '"+oANr+"';"
Statement = Connection.CreateStatement
QueryErg = Statement.ExecuteQuery(SQL)
for i = 1 to 11
oText(i).text = trim(QueryErg.GetString(i))
if i = 11 then
TempText = trim(QueryErg.GetString(i))
oText(i).text = Replace(TempText, Chr(10)+ Chr(13), "")
end if
next i
Connection.Close()
if oEdit.state(1) then
for i = 1 to 10
oText(i).ReadOnly = false <-- geht nicht (?)
next i
end if
End Sub
Hallo Karolus,
daß ich noch einiges, vorallem an Grundlagen, lernen muß weiss ich und mach ich auch. Hierzu hab' ich mir vor etwa 2 Wochen auch einen Wälzer für Schlappe 50,- Euronen zugelegt. Das Kapitel zu Thema Arrays umfasst jedoch nur 3 Seiten und geht auf die direkte Zuweisung nicht ein, zumindest nicht was Strings betrifft.
Soweit ich das verstanden habe sollte folgender Code auch funktionieren:
[code]
' Database
Dim Context As Object, DB As Object, Connection As Object, QueryErg As Object
Dim DBName As String, SQL As String
Dim Statement As Variant
' FormObjects
Dim oForm As Object
Dim oText(11) as String
Sub Value_ANr
oANr = inputBox ("Auftragsnummer","Eingabe erforderlich","Bitte Auftragsnummer eingeben")
oForm = thisComponent.drawpage.forms.getbyindex(0)
oText() = Array ("o_anrede", "o_name", "o_titel", "o_strasse", "o_ort", "r_anrede", "r_name", "r_titel", "r_strasse", "r_ort", "langtext")
For i = 1 to 11
oText(i) = oForm.getByName(i)
next i
oEdit = oForm.getByName("chk_edit")
DBName = "REPARATUR"
Context = createUnoService("com.sun.star.sdb.DatabaseContext")
DB = Context.GetByName (DBName)
Connection = DB.GetConnection ("","")
Sql = "SELECT `objekt_anrede`,`objekt_name`,`objekt_titel`,`objekt_strasse`,`objekt_ort`,`rechnung_anrede`,`rechnung_name`,`rechnung_titel`,`rechnung_strasse`,`rechnung_ort`,`langtext` FROM `REPARATUR` WHERE `key` = '"+oANr+"';"
Statement = Connection.CreateStatement
QueryErg = Statement.ExecuteQuery(SQL)
for i = 1 to 11
oText(i).text = trim(QueryErg.GetString(i))
if i = 11 then
TempText = trim(QueryErg.GetString(i))
oText(i).text = Replace(TempText, Chr(10)+ Chr(13), "")
end if
next i
Connection.Close()
if oEdit.state(1) then
for i = 1 to 10
oText(i).ReadOnly = false
next i
end if
End Sub
[/code]
bis jetzt, und das möchte ich ändern/verkürzen, sieht das so aus:
[code]
' Database
Dim Context As Object, DB As Object, Connection As Object, QueryErg As Object
Dim DBName As String, SQL As String
Dim Statement As Variant
' FormObjects
Dim oForm As Object
Dim oText(11)
Sub Value_ANr
oANr = inputBox ("Auftragsnummer","Eingabe erforderlich","Bitte Auftragsnummer eingeben")
oForm = thisComponent.drawpage.forms.getbyindex(0)
oText(1) = oForm.getByName("o_anrede")
oText(2) = oForm.getByName("o_name")
oText(3) = oForm.getByName("o_titel")
oText(4) = oForm.getByName("o_strasse")
oText(5) = oForm.getByName("o_ort")
oText(6) = oForm.getByName("r_anrede")
oText(7) = oForm.getByName("r_name")
oText(8) = oForm.getByName("r_titel")
oText(9) = oForm.getByName("r_strasse")
oText(10) = oForm.getByName("r_ort")
oText(11) = oForm.getByName("langtext")
oEdit = oForm.getByName("chk_edit")
DBName = "REPARATUR"
Context = createUnoService("com.sun.star.sdb.DatabaseContext")
DB = Context.GetByName (DBName)
Connection = DB.GetConnection ("","")
Sql = "SELECT `objekt_anrede`,`objekt_name`,`objekt_titel`,`objekt_strasse`,`objekt_ort`,`rechnung_anrede`,`rechnung_name`,`rechnung_titel`,`rechnung_strasse`,`rechnung_ort`,`langtext` FROM `REPARATUR` WHERE `key` = '"+oANr+"';"
Statement = Connection.CreateStatement
QueryErg = Statement.ExecuteQuery(SQL)
for i = 1 to 11
oText(i).text = trim(QueryErg.GetString(i))
if i = 11 then
TempText = trim(QueryErg.GetString(i))
oText(i).text = Replace(TempText, Chr(10)+ Chr(13), "")
end if
next i
Connection.Close()
if oEdit.state(1) then
for i = 1 to 10
oText(i).ReadOnly = false <-- geht nicht (?)
next i
end if
End Sub
[/code]