ich habe folgende Situation:
Ich habe ein Makro, welches ein Dialog öffnet und in dem 3 Textfelder sind. Wenn ich in die Textfelder klicke, öffnet sich ein weiterer Dialog. Hier kann man über eine Sucheingabe ein Emailadresse ermitteln.
Wenn ich eine Emailadresse ausgewählt habe und auf OK klicke, soll diese Adresse im Ausgangsdialog im Textfeld stehen. Ich habe es versucht folgendermaßen umzusetzen.
Dialog1
Code: Alles auswählen
Sub OpenEmailDialog
Dim DlgEmailSenden
Dim Abbruch
Dim oContent
Dim sURL as String
Dim sContent as String
Dim sTo as String
Dim sCc as String
Dim sSubject as String
Dim oDoc
Dim FileProperties(1) as new com.sun.star.beans.PropertyValue
FileProperties(0).Name = "FilterName"
FileProperties(0).Value = "Text"
DialogLibraries.LoadLibrary("WP_Wagner")
DlgEmailSenden = CreateUnoDialog(DialogLibraries.WP_Wagner.Email_senden)
select case DlgEmailSenden.execute()
'senden
case 1:
' -----> Hier sollen die Werte eingetragen werden!!! An die Controls "To_Text" und "Cc_Text"
sTo = DlgEmailSenden.getControl("To_Text").text
sUrl = "c:/OOoEmailSending/EmailData/To.txt"
writeFile(sUrl,sTo)
sCc = DlgEmailSenden.getControl("Cc_Text").text
sUrl = "c:/OOoEmailSending/EmailData/Cc.txt"
writeFile(sUrl,sCc)
sSubject = DlgEmailSenden.getControl("Subject").text
sUrl = "c:/OOoEmailSending/EmailData/Subject.txt"
writeFile(sUrl,sSubject)
oDoc = thisComponent
sUrl = "file:///c:/OOoEmailSending/EmailData/EmailBody.txt"
oDoc.storeToURL(sURl,FileProperties)
call runJar()
DlgEmailSenden.dispose()
'Abbruch
case 0:
DlgEmailSenden.dispose()
goto Ende
end select
Ende:
end sub
Dialog 2
Code: Alles auswählen
sub searchEmailadress
Dim Suchbegriff
Dim SuchBereich
Dim SQL, SQLBegin, SQLEnd
Dim oDlg
Dim olist
Dim DatabaseContext
Dim DataSource
Dim Connection
Dim InteractionHandler
Dim Statement
Dim ResultSet
Dim i, j
Const AnzFelder% = 5
Dim Adr$(AnzFelder,i) as String
Const Suc% = 0, Fa1% = 1, St1% = 2, PLZ% =3, Ema% = 4
Suchbegriff = InputBox("Suchname: ")
if Suchbegriff <> "" then
goTo Weiter
else
goTo Abbruch
end if
Weiter:
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName("wagnerDB_adressdaten")
if Not DataSource.isPassWordRequired then
Connection = DataSource.GetConnection("","")
else
InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
Connection = DataSource.ConnectWithCompletion(InteractionHandler)
end if
SQLBegin = "Select adr_suchname, adr_fa1, adr_strasse, adr_plz_ort, adr_email FROM Adressdaten INNER JOIN zuHanden ON adr_suchname = zhd_suchname WHERE (adr_suchname BETWEEN '"
SuchBereich = Suchbegriff & "' AND '" & Suchbegriff
SQLEnd = "ZZZ') ORDER BY adr_suchname ;"
SQL = SQLBegin + SuchBereich + SQLEnd
Statement = Connection.createStatement()
ResultSet = Statement.executeQuery(SQL)
if isNull(ResultSet) then
MsgBox "Keine passenden Datensatz zum Suchnamen '" + Suchbegriff + "' gefunden!"
GoTo Abbruch
else
i = -1
While ResultSet.next
i = i + 1
Redim Preserve Adr(AnzFelder, i + 1)
Adr(1, i) = ResultSet.getString(1)
Adr(2, i) = ResultSet.getString(2)
Adr(3, i) = ResultSet.getString(3)
Adr(4, i) = ResultSet.getString(4)
Adr(5, i) = ResultSet.getString(5)
'MsgBox ResultSet.getString(1)
wend
end if
if i <> 0 then
DialogLibraries.LoadLibrary("WP_Wagner")
oDlg = CreateUnoDialog(DialogLibraries.WP_Wagner.Email_Adressen)
olist = oDlg.getControl("EmailAdressen")
For j = 0 to i
olist.additem(Adr(Suc,j) + "/" + Adr(Fa1,j) + "/" + Adr(St1,j) + "/" + Adr(PLZ,j) + "/" + Adr(5,j) , j)
next
select case oDlg.execute()
case 1:
'----------------> Versuch der Wertübergabe an Dialog 1
i = olist.getselectedItempos
email = Adr(5,i)
DialogLibraries.LoadLibrary("WP_Wagner")
oDlg = CreateUnoDialog(DialogLibraries.WP_Wagner.Email_senden)
oDlg.getControl("To_Text").text = email
oDlg.dispose()
case 0:
goTo Abbruch
end select
if i = -1 then goto Abbruch
end if
Abbruch:
end sub
vg
Rom