0

QR Code in Formular drucken (neue Einzahlungsscheine in der Schweiz)

Hallo

Ich bin die neuen Einzahungsscheine mit dem neuen QR Code am programmieren.

Ich habe den QR Code generiert via hmtl, funktinoniert alles bestens, leider wird der Code beim Ausdrucken nicht angezeigt. Im Drucklayout ist er sichtbar.

Hat jemand ein Idee warum der QR Code nicht gedruckt wird?

Danke für Euren Input.

Gruss

Markus

21 Antworten

null
    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Markus,

    am besten generierst du den QR-Code als PNG. Ninox hat probleme beim drucken von HTML.

    Leo

    • Megge
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Leo

    Danke für Deine Antwort. ich bin kein html Kenner. Ich habe auf der Website, welche den QR-Code für den EZ erstellt den html code herunter kopiert und leicht angepasst. Der imagetype stand auf Guf und ich habe diesen aug png ungeschrieben. Das Resultat ist dasselbe, Bild nicht gedruckt.

    Vielleicht kannst Du mir anhand des Codes sagen was ich noch anders machen könnte. Ansonsten versuche ich den Webseitenbetreiber anzuschreiben.

    html("<div style='text-align: center;'>

    <img style='margin:1px' height='170px'
    src='https://barcode.tec-it.com/barcode.ashx?data=" + 'QR-Text' + "&code=SwissQRCodeV2&translate-esc=false&unit=Fit&dpi=96&imagetype=png&rotation=0&color=%23000000&bgcolor=%23ffffff&qunit=Mm&quiet=0&eclevel=M'/>
    </div>
    <div style='padding-top:8px; text-align:center; font-size:15px; font-family: Source Sans Pro, Arial, sans-serif;'>
    <!-- back-linking to www.tec-it.com is required -->
    <a href='https://www.tec-it.com' title='Barcode Software by TEC-IT' target='_blank'>

    </a>
    </div>")

    Markus

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Markus,

    Ich würde es komplett ohne html machen.

    Versuch biite folgendes:

    1-Erstell ein Bildfeld namens "QR"

    2- Erstell ein Button mit dem Code:

    ...

    QR:=importFile(this,"https://barcode.tec-it.com/barcode.ashx?data=" + 'QR-Text' + "&code=SwissQRCodeV2&translate-esc=false&unit=Fit&dpi=96&imagetype=png&rotation=0&color=%23000000&bgcolor=%23ffffff&qunit=Mm&quiet=0&eclevel=M","myQR.png")

    ...

    3. Setzt dein Bildfeld in dein Printlayout

     

    So sollte es funktionieren

     

    Leo

    • Megge
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Leo

    Danke für den Typ. Leider funktioniert es nicht. Das Bild wird  nicht generiert. Ich bekomme die Fehlermedlung zurück "Invalid data format. ...." von der Website.

    Markus

    • Megge
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Leo

    In dieser Form funktioniert die Geschichte. Es ist jedoch so, dass die im data= Teil gesetzten Informationen entsprechend dem Record mit unterschiedlichen Daten gefüllt werden müssen (Adressen, Rechnungsbetrag etc). Ich habe diesen DATA-Teil in einem Funktionsfeld zusammengebaut und danach in den Befehl https:// ... eingebaut. Diese Variable habe ich dann auch als text() formatiert etc. ich habe auch den ganzen Befehl in eine Varibale gesetzt. der befehl sieht dann so aus:

    QR := importFile(this, 'QR-Text', "myQR.png")

    Es scheint mir jedoch, dass diese Variable in der Funktion importFile nicht interpretiert werden kann.

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Markus,

    wenn die Formel als html funktioniert hat, dann sollte sie auch mit importFile() funktionieren. Der String muss allerdings "internetfähig" sein. Versuch es mal mit urlEncode(string):

    QR:=importFile(this,"https://barcode.tec-it.com/barcode.ashx?data=" + urlEncode('QR-Text')+ "&code=SwissQRCodeV2&translate-esc=false&unit=Fit&dpi=96&imagetype=png&rotation=0&color=%23000000&bgcolor=%23ffffff&qunit=Mm&quiet=0&eclevel=M","myQR.png")

    Leo

    • Megge
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Leo

    Funktioniert auch nicht.

    Ich fasse zusammen, im hmtl funktioniert der QR Code mit der Variablen integriert. Mit der Importfunktion funtioniert es, wenn der String vollständig in Anführunsgzeichen steht. -> zusammnegesetzt mit urlEncode() funktioniert es nicht.

    Wäre ein möglicher Ansatz, den ganzen String

    "https://barcode.tec-it.com/barcode.ashx?data=" + urlEncode('QR-Text')+ "&code=SwissQRCodeV2&translate-esc=false&unit=Fit&dpi=96&imagetype=png&rotation=0&color=%23000000&bgcolor=%23ffffff&qunit=Mm&quiet=0&eclevel=M"

    in eine separate Variable zu setzten und in diesem am Anfang und am Ende noch zusätzlich die Anführungszeichen zu setzen. Ich habe das versucht, konnte jedoch keine Anführungszeichen hinzufügen.

    Markus

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    kannst du bitte hier den String von 'QR-Text' posten?

    • Megge
    • vor 4 Jahren
    • Gemeldet - anzeigen

    QR-Text

    var BETRAG := "0";
    var NAMEZP := "";
    var ADRZP := replace(Strasse_Rech, " ", "+");
    var ORTZP := PLZ_Lief + "+" + Ort_Rech;
    var MITTEILUNG := "RNG+NR:+" + Rechnungsnummer + "+REF:+" + Ref_Kunde;
    if Mandant = 1 then
    BETRAG := format('Summe Brutto', "0.00")
    end;
    if Mandant = 2 then
    BETRAG := format('Summe Brutto inkl MwSt', "0.00");
    void
    end;
    if Firma_Rech = null then
    NAMEZP := replace(Vorname_Rech, " ", "+") + "+" + replace(Nachname_Rech, " ", "+");
    void
    else
    NAMEZP := replace(Firma_Rech, " ", "+");
    void
    end;
    "SPC%0A0200%0A1%0ACH2609000000601867509%0AK%0ABoite+à+Brico%0ARue+du+Rhône+12%0A1963+Vétroz%0A%0A%0ACH%0A%0A%0A%0A%0A%0A%0A%0A" + BETRAG + "%0ACHF%0AK%0A" + NAMEZP + "%0A" + ADRZP + "%0A" + ORTZP + "%0A%0A%0ACH%0ANON%0A%0A" + MITTEILUNG + "%0AEPD%0A%0A%0A"

    Befehlschaltfläche

    QR := importFile(this, "https://barcode.tec-it.com/barcode.ashx?data= " + urlEncode('QR-Text') + "&code=SwissQRCodeV2&multiplebarcodes=false&translate-esc=false&unit=Fit&dpi=96&imagetype=png&rotation=0&color=%23000000&bgcolor=%23ffffff&qunit=Mm&quiet=0&eclevel=M", "myQR.png")

    • Megge
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Leo

    Ich habe noch einwenig herumprobiert und mit alert() den String ausgegeben. Der String ist in Ordnung und stimmt mit dem String welcher im html eingegeben wird überein.

    Ich kann mir nicht erklären wo der Fehler liegt.

    Hast Du noch ein Idee?

    Gruss

    Markus

    • Megge
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo

    Ich denke, dass der Code in Ordnung ist und die Funktionalität ledigllich nur vom Webseitenbetreiber abhängt.

    Danke Leo für die Unterstützung.

    Gruss

    Markus 

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Markus,

    sorry for delay. Ich kann hier leider nicht viel beitragen, weil ich die Datenbank nicht habe. Wenn der Code grundsätzlich funktioniert, dann kann man es versuchen, die Adresse als String in ein Textfeld zu packen und  dann in importFile() hinzufügen. Ich glaube die Lösung liegt ganz nah.
    Mach doch ein screensharing Termin mit Ninox-Support, da wird bestimmt geholfen.

    Leo

    • info.41
    • vor 3 Jahren
    • Gemeldet - anzeigen

    HAllo Megge

    Ich ban auch daran interesier meine Rechnugen mit einem QR zu verehen und da du das alles schon gemacht hast wäre es möglich von dir den Aaufbau zu erhalten?

    • Megge
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Zughund

    Ich habe dir auf die email adresse info@zughund.ch

    einige Erklärungen geschickt.

    Hast diese bekommen?

    Gruss

    Megge

    • Sodeli GmbH
    • Miladin_M
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Megge

    Ich hätte ebenfalls interesse an dem. Könntest du mir die Erklärung auch via Mail zustellen?

    mila4din@gmail.com

    Lg

    Mila

    • Noel_Gloor
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Megge kann kannst du mir die Erklärung auch per Mail zustellen unter noel.gloor@gmail.com

    • stefan
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Guten Tag zusammen, hallo Markus

    Ich habe etwas Zeit verstreichen lassen um den neuen Swiss-QR ZS zu impelmentieren, in der Hoffnung eine Lösung zu integrieren, die aus dem Gesichtspunkt der Datenhoheit einwandfrei ist. Jetzt muss ich umsetzten, was ich bisher getan habe:

    Ich zapfe mit openURL und einem anhand der Rechnungsdaten generierter URL den Dienst https://qr-rechnung.net ab. Dieser wird lokal im Browser gecacht und generiert direkt ein pdf, dass in den Downloads landet. Versuche mit verschiedenen Drucker und Einzahlung am Postschalter sind am laufen, die Grundfunktionalität wenn der dryrun abgeschlossen wird ist somit abgedeckt. Der Dienst bietet den QR-Code auch als SVG an, was Ninox bekannterweise nicht direkt verarbeiten kann. Was nicht geht ist mittels import(File this...) das pdf direkt in Ninox zu laden.

    Was noch fehlt, ein Generator der den reinen Swiss-QR Code als Bild generiert. Ziel dieses Elementes ist es, "hübsche" Rechnungen erstellen zu können. Dafür habe ich von GitHub diese Applikation installiert. Auch die wird über URL gefüttert und generiert wahlweise png, pdf oder eps Bilder.

    Auch bei dieser App ist es nicht möglich via import(File this...) das Bild abzuholen und es Ninox zu integrierten. 

    Hat jemand eine Idee, weshalb das nicht geht? Auch bin ich für alternative Lösungen dankbar.

    Danke für die Antworten, ich grüsse Euch

     

    Stefan

    Beispiellose:

    QR := importFile(this, "http://localhost:9933/qr?format=png&udname=Mary+Jane&udaddr1=Artikel+19b", "Rechnung.png")
    
    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Mit Carbone als Druckeditor hat man auch die Möglichkeit Rechnungen mit QR-Code zu generieren. Es werden über 100 verschiedene QR-Codes angeboten. SwissCode ist auch enthalten. Sollte ein QR-Code nicht enthalten sein, kann man sich mit den Entwicklern in Verbindung setzten. Meist bekommt man schnelle eine Antwort ob die Implementierung möglich ist und wie zeitnah.

      • john_eans
      • vor 2 Jahren
      • Gemeldet - anzeigen

      UweG Gibts da irgendwo eine kleine Dokumentation wie ich Ninox und Carbone verbunden bekomme? Ich wüsste nichtmal in welcher Anleitung von Carbone ich schauen müsste...

      • UweG
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Johannes Faller Im NX-API Team habe ich eine Beispieldatenbank für die Anbindung von Ninox an Carbone reingestellt. Darin sind verschiedene Beispiele enthalten wie der Aufbau der Daten in Ninox stattfinden muss, die an Carbone übertragen werden. Den ScriptCode habe ich meist auskommentiert. Momentan überarbeite ich die Datenbank um die enthaltenen Beispielbilder auszulagern und trotzdem in Ninox verfügbar zu halten. Auch ergänze ich die DB um weitere Carbone-Beispiele. Die Daten nach Carbone zu senden ist nicht so schwierig. Man benötigt jedoch ein Drittprogramm wie Make oder n8n um einmalig das Drucktemplate für den Ausdruck an Carbone zu übertragen.