Calc: QR-Code automatisch per Formel aus Zellwert erzeugen lassen

Gerhard Weydt:

Hingegen scheint die bei OpenOffice
veröffentlichte Erweiterung "QR-Code generator"
(https://extensions.openoffice.org/de/node/17653) ein eingebettetes
Java-Script zu verwenden, das den QR-Code generiert. Ich habe das bloß
ausprobiert (es funktioniert), kann aber darüber hinaus nichts über die
Qualität sagen, genausowenig wie über die anderen.

Ich habe noch folgende Seite gefunden:

http://members.chello.at/easyfilter/barcode.html

Dort wird ein Makro für LO angeboten:
http://members.chello.at/easyfilter/barcode.ods

Ob/wie man ein Makro "wie eine Formel" verwenden kann, das muss ich noch
herausfinden.

ich wusste das mal, wie man ein Makro in Calc als Formel verwendet,
hatte das aber vergessen und musste es erst wieder nachschauen. Deshalb
fiel es mir auch bei den vorigen Mails nicht ein.
Der Weg ist grundsätzlich in
https://help.libreoffice.org/Calc/User-Defined_Functions beschrieben,
nur kannst du stattdessen das fertige Makro aus der von dir genannten
ots-Datei kopieren.

Ich habe vorhin die Datei bardcode.ods ausprobiert. Es funktioniert perfekt.

Die "User Defined Function" QRCODE() ist bereits enthalten - wie Du ja weiter unten
auch schreibst.

Allerdings benötigst du dann noch einige weitere functions aus diesem
Dokument, nämlich getPattern, getSheet und utf16to8, die du zusätzlich
kopieren musst; du kannst sie z. B. einfach nach der function QRCode
einfügen. Oder du kopierst gleich alles, da müsstest du nur
nachlesen/ausprobieren, wie du Module anlegst, oder mit Exportieren und
Importieren rumspielen; dann hast du halt bloß ein bisschen mehr Code in
deiner Datei.

Hier weiß ich noch nicht, warum Du denkst, dass ich die Datei barcode.ods nicht
einfach kopieren kann, damit die Formel verfügbar ist.

Ich finde das nun eine schöne Anwendung, nun wird dir dein Wunsch also
doch erfüllt.

Absolut. Ich habe ich mich sehr gefreut.

Interessant wäre übrigens SVG (Vektorgrafik) als Format, falls der Code als
Icon ausgegeben wird.

Die ImageMap hat als ImplementationName
org.openoffice.comp.svt.SvUnoImageMap, vielleich ist das also auch eine
scalable vector grafic.

Das werde ich morgen versuchen herauszufinden.

Hallo Andreas,

Gerhard Weydt:

...

Allerdings benötigst du dann noch einige weitere functions aus diesem
Dokument, nämlich getPattern, getSheet und utf16to8, die du zusätzlich
kopieren musst; du kannst sie z. B. einfach nach der function QRCode
einfügen. Oder du kopierst gleich alles, da müsstest du nur
nachlesen/ausprobieren, wie du Module anlegst, oder mit Exportieren und
Importieren rumspielen; dann hast du halt bloß ein bisschen mehr Code in
deiner Datei.

Hier weiß ich noch nicht, warum Du denkst, dass ich die Datei barcode.ods nicht
einfach kopieren kann, damit die Formel verfügbar ist.

Du kannst natürlich die Datei barcode.ods kopieren und sie dann massiv umgestalten, dass sie deinen Wünschen entspricht; dann ist tatsächlich alles drin, was du für den Barcode brauchst.
Ich hatte mir eher vorgestellt, dass du eine Datei hast, bei der vielleicht auch so manches schon drinsteckt, und die du nun um die Erzeugung des QR-Codes ergänzen willst.
Da hättest du nun das genannte Problem, wenn du nur diese eine function QRCode in dein vorhandenes Dokument kopiert hättest, das würdest du merken, sobald du versuchtest, das auszuführen: du erhieltest eine ziemlich unspezifische Meldung in der Art "Formel unbekannt" oder so ähnlich - ich habe keine Lust, das erneut zu provozieren, du wirst das, wenn du das so ausprobieren willst, schon selber sehen - , was daran liegt, dass der Autor dieser übrigens beeindruckenden Anwendung gewisse Teile der Logik in Prozeduren, also separate subs oder functions, ausgelagert hat, was grundsätzlich ein gutes Vorgehen ist, vielleicht auch, weil er die auch für andere Codes als QR benötigt, welche aber dann natürlich fehlen würden. Rauszufinden, was da fehlt, ist ziemlich mühsam, entweder sehr skrupulöse Prüfung des Codes oder Setzen ein paar Nachrichten im Code, um zu sehen wie weit man kommt, bevor der Fehler auftritt, was aber ein bisschen Makro-Erfahrung voraussetzt, daher dachte ich, ich teile dir mit, was du brauchst, nachdem ich das selbst herausgefunden hatte.
Aber wenn du damit klarkommst, dass du dir aus der Ursprungsdatei deine Anwendung bastelst, ist das OK.

Gruß

Gerhard