Automotive - Ersatzteilbestellung Bremse

Verschiedenste Beispiele rund um 3D PDFs
Benutzeravatar
basho84
Beiträge: 25
Registriert: 16.05.2008, 15:32

Automotive - Ersatzteilbestellung Bremse

Beitrag von basho84 » 29.05.2008, 18:20

Hallo Andi,

vielen Dank für Deine schnelle Antwort und Hilfe!

Zum Anlage-öffnen per JavaScript:

Also das Öffnen klappt jetzt prima nachdem der Anhang per Namen genannt wird:
OpenFile("Purchase Order.pdf", docname);

So einfach kann es funktionieren, wenn man konsequent ist und das Kind beim Namen nennt. :)

War nach der Benutzung Deines Tools nicht konsequent und hatte den richtigen Namen bei OpenFile() nicht angepasst.

Bin sehr froh, dass es nach langer Fehlersuche dank Deiner Hilfe nun wie gewünscht funktioniert!


Zum Anlage-Öffnen per "Gehe zu einer Seite eines anderen Dokuments":
(http://www.acronaut.de/forum10/127.html)

Dies war ein verzweifelter Alternativversuch. Außer, dass diese Methode ja eigentlich nicht zu diesem post passt, hat sie noch einen generellen Nachteil, wie ich finde; denn diese Methode schließt auch immer automatisch das Start-PDF, so dass nicht beide PDFs gleichzeitig geöffnet sind.


Zum Löschen der Zeilen im Bestellformular im LCD V8:

Wenn ich selber Buttons im Beispiel-Bestellformular im LCD V8 erstelle mit den Scripten:
[fontsize=2]
//hinzufügen
detail.instanceManager.addInstance(1);

//bzw. entfernen
detail.instanceManager.removeInstance(1);

funktioniert es in der Vorschau.

Wenn dann jedoch später Nach der AddPartToOrder-Funktion Werte eingetragen sind funktioniert es nicht mehr!?

Es ist ja ein Script im Original-PDF hinter dem "Button3" hinterlegt, dass sich auf das partNoScript im LCD Dokument bezieht.

Liegt es am partNoScript, dass ja für das ganze Dokument gilt, dass ein einfaches removeInstance() nicht funktioniert, um die Zeilen des Bestellformulars zu löschen?

Kannst Du diesen Beitrag in das LCD-Forum verlinken, da es ja mehr in diesen Bereich passt? Probiere solange was in der LCD V8 Hilfe zum InstanceManager zu finden.

Grüße!
Thomas


[/fontsize]

Benutzeravatar
basho84
Beiträge: 25
Registriert: 16.05.2008, 15:32

Automotive - Ersatzteilbestellung Bremse

Beitrag von basho84 » 01.06.2008, 23:38

Heiko hat geschrieben:Sehr geehrter Herr Vogel

das Beispiel zur Ersatzteilbestellung find ich sehr interessant.
Ich habe gesehen, dass die verschiedenen Produktdaten in einem
Array in der XML-Quelle eingetragen sind.
Meine Frage ist ob es auch möglich ist, diese Informationen aus einer Datenbank zu
holen? Für sieben Teile geht das natürlich schon wie im Beispiel augeführt problematisch wird es aber wenn mehr Teile die auch noch Änderungen unterzogen sind gehandhabt werden müssen.
Für Anregungen wäre ich sehr dankbar.

Mit freundlichen Grüßen
Heiko Winkler

Hallo Andreas,
hallo Heiko,

damit bei der Auswahl des Bauteils aus dem 3D-Inhalt, welches im Formularfeld "SelectedPart" angezeigt wird auch gleich die Bestellnummer im Formularfeld "BestNr" angezeigt wird, habe ich folgendes JavaScript hinter das Formularfeld als Berechnungsscript gelegt:

var item = getField("SelectedPart").value;
getField("BestNr").value = "";
if (getField("SelectedPart").value != null)
{
var BestNrWert = null;
    switch(item)
    {
        case "Bauteil_1":
            BestNrWert = "BN 1234 5678 9112";
            break;

        case "Bauteil_2":
            BestNrWert = "BN 6544 5454 8787";
            break;

        case "Bauteil_3":
            BestNrWert = "BN 2222 2222 2222";
            break;

        case Bauteil_4":
            BestNrWert = "BN 2222 2222 2223";
            break;
    }

    if(BestNrWert != null)
    {
       getField("BestNr").value = BestNrWert;
        }
    };

Dies funktioniert.

Wie kann ich diese recht umständliche switch-case-Funktion bei größeren Datenmengen vereinfachen?

Wie kann ich es z.B. einfacher mittels array schreiben, wenn ich z.B. 50 Bauteile hinterlegen möchte? Oder gibt es noch eine elegantere Lösung im 3D-PDF?

Grüße!
Thomas



Benutzeravatar
basho84
Beiträge: 25
Registriert: 16.05.2008, 15:32

Automotive - Ersatzteilbestellung Bremse

Beitrag von basho84 » 02.06.2008, 15:39

Habe eine Lösung zum Problem mit dem instanceManager in V8 gefunden :):

http://forms.stefcameron.com/category/instance-manager/
[fontsize=2]
...
There’s a bug currently logged against Acrobat 7.x where removing an instance of a dynamic subform, using the Instance Manager (IM)’s removeInstance(int) method, doesn’t cause an update to the IM’s count of currently instantiated subforms.

OK, so maybe that was a little too technical so I’ll try to simplify: In Acrobat 7.x, when you remove an instance of a dynamic subform using the IM’s removeInstance(int) method and then check the number of remaining instances using the count property, the number you’ll get won’t reflect the number that remains.

Adobe is aware of this bug and will hopefully be providing a fix for it in an up-coming release.

Fortunately, there’s a simple work-around (and even if the bug gets fixed in a future release, you should probably be checking the version of Acrobat that’s running your form to determine whether you need to be using the work-around or not):

Code: Alles auswählen

// Force a remerge of the form's current data set with its template
//  to cause an update to the "count" property of all IMs
xfa.form.remerge();[/fontsize]
...


[fontsize=2]Mit diesem Eintrag funktioniert es nun auch richtig in der LCD V8.[/fontsize]

[fontsize=2]Grüße!
[/fontsize][fontsize=2]Thomas[/fontsize]


Antworten