• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Barcode Feldeigenschaften

Florian186

New member
Hallo,

ich hoffe Ihr könnt mir helfen, denn ich sitze jetzt seit 10 Std am Rechner und weiss gar nicht was ich tue.

Ausgangslage: Ich möchte für die Arbeit ein PDF-Formular erstellen, dass bei Feldeingabe ein Qr Code erstellt.
Nach dem einscanen soll die Ausgabe auf dem Handy so aussehen:

Hersteller: 'Name'
Modell: 'Name'
Seriennr.: 'Nr'
Verkauft durch: 'Name'
Gekauft am: 'Datum'
Kaufpreis: 'Preis'
Garantie bis: 'Datum'

Das ist ziemlich einfach soweit mit den Mitteln die Adobe zur Verfügung stellt. Ich kann ein Formularfeld 'qr code' hinzufügen, die Felder auswählen, die in diesem kodiert werden sollen usw.

ABER: wenn ich den Code scanne, werden zuerst die Feldnamen in alphabetischer Reihenfolge nacheinander aufgelistet und dann die Werte, die ich eingegeben habe.

So: Garantie Hersteller Kaufdatum Modell Preis Serien Verkäufer 10.08.2016 Apple 15.06.2015 Mac Mini 499 7623471243125 Saturn

Das ist höchst unübersichtlich. Es gibt die Möglichkeit des benutzerdefinierten Berechnungsscriptes. Leider habe ich nicht die geringste Ahnung von Javascript, so dass es mir nicht möglich ist das Script umzuschreiben, zu ergänzen, nicht einmal es zu entziffern.
Es wäre super wenn einer von Euch dazu eine Idee hätte. Vielen Dank!

Hier das Script:

Code:
/* Customize: */
function bMemberOf(strName, aStrNames)
{
    for (var nMembIdx in aStrNames)
    {
        if (strName == aStrNames[nMembIdx])
            return true;
    }
    return false;
}

function strTabDelimited(oParam)
{
    var bNeedTab = false;
    var strNames = "";
    var strValues = "";
    for (var i = 0; i < oParam.oDoc.numFields; ++i)
    {
        var strFieldName = oParam.oDoc.getNthFieldName(i);
        if ((null == oParam.aFields || bMemberOf(strFieldName, oParam.aFields))
            && (null == oParam.strXclField || strFieldName != oParam.strXclField)
            && (oParam.oDoc.getField(strFieldName).type != "button"))
        {
            if (bNeedTab)
            {
                if (oParam.bFieldNames)
                    strNames += "\t";
                strValues += "\t";
            }
            if (oParam.bFieldNames)
                strNames += strFieldName;
            strValues += oParam.oDoc.getField(strFieldName).value;
            bNeedTab = true;
        }
    }
    if (oParam.bFieldNames)
        return strNames + "\n" + strValues;
    else
        return strValues;
}

try
{
    if ( app.viewerVersion >= ADBE.PMD_Need_Version )
        event.value = strTabDelimited({oDoc: this, aFields: ["Garantie", "Hersteller", "Kaufdatum", "Modell", "Preis", "Seriennr", "Verkäufer"], bFieldNames: true});
    else event.value = " ";
}
catch (e)
{
    event.value = " ";
}
 
Zuletzt bearbeitet von einem Moderator:
Grüße, die Variablen "strNames" und "strValues" in Arrays umwandeln und via push in der Schleife erweitern.
( Zur Zeit sind es nur zwei Strings die erweitert werden und nacheinander ausgegeben werden was dann die falsche Darstellung ergibt )
Den Ausgabestring dann mit einer Schleife entsprechend zusammenfügen ( ausgabestring += strNames + " : " + strValues + "\n"; ).
So sollte jeder Wert an die richtige Position gelangen.

[edit]
die Tabulatorabfrage kannst du dann auch entfernen ("bNeedTab") da du die Tabulatorzeichen auch direkt in den Ausgabestring in der Schleife einfügen kannst.
( ausgabestring += strNames + " \t " + strValues + "\n"; ).
[/edit]
 
Zuletzt bearbeitet:
Zurück
Oben