Inhalt von Textfeld in Textfeld kopieren
Verfasst: So, 14.06.2020 16:05
Hallo zusammen
Mein Bedürfnis: Ein Textfeld in einem Eingabeformular soll eine URL aus einer x-beliebigen Dateiablage auf meinem Computer enthalten (am besten per Dateiablage einfügbar) und danach sollte das Zieldokument (PDF-Datei) auch direkt per Mausklick geöffnet werden können. Der Feldinhalt muss bei Abschluss der Erfassung in das Datenfeld Beleg (Text VARCHAR) in die Tabelle Belege geschrieben werden.
Das genannte Textfeld im Eingabeformular heisst bei mir txtBeleg, welches aus dem Datenfeld Beleg (Text VARCHAR) aus der Tabelle Belege kommt.
Was ich bis jetzt geschafft habe:
Wenn das Feld txtBeleg im Eingabeformular eine von mir manuell eingefügte URL enthält, kann das Zieldokument per folgendem Makro (Ereignisse: Maustaste gedrückt) geöffnet werden:
SUB Website_Aufruf(oEvent AS OBJECT)
REM Aufruf einer Website oder des Mailprogramms mit einer vorgegebenen Mailadresse
DIM oFeld AS OBJECT
DIM oShell AS OBJECT
DIM stFeld AS STRING
oFeld = oEvent.Source
REM Den Text aus der Dateiauswahl auslesen
stFeld = oFeld.Text
IF stFeld = "" THEN
EXIT SUB
END IF
IF InStr(stFeld,"@") THEN
stFeld = "mailto:"+stFeld
ELSEIF InStr(stFeld,"http://") THEN
stFeld = convertToUrl(stFeld) 'convertToUrl erkennt, dass mit http:// bereits eine Verbindung vorgegeben ist. file:/// wird nicht gesetzt
ELSE
stFeld = "file:///"+stFeld
stFeld = convertToUrl(stFeld) 'convertToUrl erkennt, dass mit http:// bereits eine Verbindung vorgegeben ist. file:/// wird nicht gesetzt
END IF
REM Start des Files mit der entsprechenden URL-Verbindung
oShell = createUnoService("com.sun.star.system.SystemShellExecute")
oShell.execute(stFeld,,0)
END SUB
Was ich noch geschafft habe:
Ich habe im Eingabeformular ein Dateiauswahlfeld eingefügt, welches eine ZielURL einfügt.
Jedoch kann ich den Feldinhalt aus dem Dateiauswahlfeld nicht automatisch in das Feld txtFeld kopieren lassen, damit es dann auch in meine Tabelle Belege geschrieben wird.
Kann mir da jemand einen Tipp geben oder geht das alles eventuell sogar viel einfacher?
Besten Dank für eure Bemühungen
Oldie63
Mein Bedürfnis: Ein Textfeld in einem Eingabeformular soll eine URL aus einer x-beliebigen Dateiablage auf meinem Computer enthalten (am besten per Dateiablage einfügbar) und danach sollte das Zieldokument (PDF-Datei) auch direkt per Mausklick geöffnet werden können. Der Feldinhalt muss bei Abschluss der Erfassung in das Datenfeld Beleg (Text VARCHAR) in die Tabelle Belege geschrieben werden.
Das genannte Textfeld im Eingabeformular heisst bei mir txtBeleg, welches aus dem Datenfeld Beleg (Text VARCHAR) aus der Tabelle Belege kommt.
Was ich bis jetzt geschafft habe:
Wenn das Feld txtBeleg im Eingabeformular eine von mir manuell eingefügte URL enthält, kann das Zieldokument per folgendem Makro (Ereignisse: Maustaste gedrückt) geöffnet werden:
SUB Website_Aufruf(oEvent AS OBJECT)
REM Aufruf einer Website oder des Mailprogramms mit einer vorgegebenen Mailadresse
DIM oFeld AS OBJECT
DIM oShell AS OBJECT
DIM stFeld AS STRING
oFeld = oEvent.Source
REM Den Text aus der Dateiauswahl auslesen
stFeld = oFeld.Text
IF stFeld = "" THEN
EXIT SUB
END IF
IF InStr(stFeld,"@") THEN
stFeld = "mailto:"+stFeld
ELSEIF InStr(stFeld,"http://") THEN
stFeld = convertToUrl(stFeld) 'convertToUrl erkennt, dass mit http:// bereits eine Verbindung vorgegeben ist. file:/// wird nicht gesetzt
ELSE
stFeld = "file:///"+stFeld
stFeld = convertToUrl(stFeld) 'convertToUrl erkennt, dass mit http:// bereits eine Verbindung vorgegeben ist. file:/// wird nicht gesetzt
END IF
REM Start des Files mit der entsprechenden URL-Verbindung
oShell = createUnoService("com.sun.star.system.SystemShellExecute")
oShell.execute(stFeld,,0)
END SUB
Was ich noch geschafft habe:
Ich habe im Eingabeformular ein Dateiauswahlfeld eingefügt, welches eine ZielURL einfügt.
Jedoch kann ich den Feldinhalt aus dem Dateiauswahlfeld nicht automatisch in das Feld txtFeld kopieren lassen, damit es dann auch in meine Tabelle Belege geschrieben wird.
Kann mir da jemand einen Tipp geben oder geht das alles eventuell sogar viel einfacher?
Besten Dank für eure Bemühungen
Oldie63