Hallo zusammen,
hier noch eine kombinierte Idee dazu:
Das angehängte Dokument enthält
Feldbefehle, mit den Feldnamen "Vorname, Name, Strasse, PLZORT".
Und einen
Dialog mit Textfeldern, deren Namen identisch sind, und auch sein
müssen.
Der Dialog wird beim Öffen des Dokumentes angezeigt. Hier können die Kopfdaten eingegeben werden. Zum nächsten Feld springt man mit der Tabulatortaste.
Mit der Druck auf "fertig", bzw. dem Drücken der Eingabetaste, werden die in den Dialog eingegebenen Daten in die Feldbefehle übernommen.
Vorteil: Es entfällt das nervige Anklicken der OK-Taste, was bei der Eingabe über Eingabefelder pro Feld einmal notwendig ist.
Folgende zwei Makros bewerkstelligen dies:
Code: Alles auswählen
Dim oDlg as Object
Sub S_insert_header_data
DialogLibraries.loadLibrary("Standard")
oDlg = CreateUnoDialog(DialogLibraries.Standard.dlg)
oDlg.execute
End Sub
Sub S_Button_OK
sdlgElements = odlg.model.ElementNames
oTextFieldMasters = thiscomponent.TextFieldMasters
oTextFields = thiscomponent.TextFields
sTextfielElements = oTextFieldMasters.ElementNames
for i = 0 to ubound (sTextfielElements)
for k = 0 to ubound (sdlgElements)
if instr(sTextfielElements(i),"User") > 0 then
scurrentFieldname = replace(sTextfielElements(i),"com.sun.star.text.fieldmaster.User.","")
if scurrentFieldname = sdlgElements(k) then
ocontrol = odlg.getcontrol(sdlgElements(k))
oTextfield = oTextFieldMasters.getByName(sTextfielElements(i))
oTextfield.Content = ocontrol.Text
endif
endif
next k
next i
oTextFields.refresh
oDlg.endexecute
end sub
Viel Spaß damit!
Gruß R