Seite 1 von 1

Benutzereingabe abfangen und Zellenwert ändern.

Verfasst: Sa, 07.12.2013 00:36
von Andre_B
Hi,
kann ich irgendwie die Eingabe des Benutzers nach verlassen des Feldes abfangen und die Eingabe in der Zelle ändern? So wie man es halt aus JavaScript kennt. GetElementByID(xyz).value....
Gibt es sowas? Ich bin leider kein häufiger Nutzer in der Tiefe des Programms und muss leider diese Einfach Frage stellen.

Selbst beim einfachem Hallo Welt Script bekomme ich schon eine Fehlermeldung und das macht mich echt irre.

Code: Alles auswählen

    importClass(Packages.com.sun.star.uno.UnoRuntime);
    importClass(Packages.com.sun.star.text.XTextDocument);
    var oModel = XSCRIPTCONTEXT.getDocument();
    var oTextdoc = UnoRuntime.queryInterface(XTextDocument, oModel);
    var oText = oTextdoc.getText();
    var oCursor = oText.createTextCursor();
    oText.insertString(oCursor, "Hello World", false);
Fehlermeldung:
TypeError: Cannot call method "getText" of null (vnd.sun.star.tdoc:/1/Scripts/javascript/jscript_bib/checkValue.js/ucb/#5
Was auch immer er mir damit sagen will, ich verstehe es nicht und kann es nicht beheben. Wäre nett, wenn jemand mir nen Hinweis oder gar eine Lösung geben könnte.

lg und Danke

Re: Benutzereingabe abfangen und Zellenwert ändern.

Verfasst: Sa, 07.12.2013 02:57
von F3K Total
Hi,
ich kann kein Java, aber ein

Code: Alles auswählen

com.sun.star.text.XTextDocument
ist sicherlich ein Writer Dokument und kein Calc.
Anbei ein Basic Beispiel dass beimTabellenereignis auf Tabelle 1, "Inhalt geändert" in der Spalte A (A2:A500) dieTextveränderung auslöst. Extras/Zellinhalte/Autoeingabe muss ausgestellt werden.

Code: Alles auswählen

Sub S_R_W(oEvt)
    oSheet = Thiscomponent.sheets.getbyname("Tabelle1")
    oCellRange = oSheet.getCellRangeByName("A2:A500")'aktiver Bereich in dem die Änderungen vorgenommen werden sollen
    if oEvt.supportsService("com.sun.star.sheet.SheetCell") then
       if oCellRange.queryIntersection(oEvt.RangeAddress).count = 1 then'
           select case oEvt.String
           case "r"
           oEvt.String = "readable"
           case "R"
           oEvt.String = "readable"
           case "w"
           oEvt.String = "writable"
           case "W"
           oEvt.String = "writable"
           end select
       endif
    endif
End Sub
Gruß R