Acronaut Diskussions Forum Home

Freies User Forum für

ADOBE® ACROBAT®

Navigation
Nicht angemeldet

Login | Registrieren 

  

Suche

Erweiterte Suche

Newsletter

Mitgliederliste

Kalender

Moderatoren/Partner

Hilfe

Banner

Kontakt/Impressum
Automotive - Ersatzteilbestellung Bremse
 Moderiert von: acronaut Produkt: Adobe Acrobat 3D V7  

Neue Diskussion

Antworten

Drucken
VerfasserBericht
acronaut
Administrator


Eintragen seit: 13 Sep 2006
Herkunft: München, Deutschland
Berichte: 643
Status:  Offline
 Geschrieben: 28 Mai 2008 15:17

Text übernehmen

Antworten
Hi,

wenn man sich das Original-PDF mal genauer anschaut, dann gibt es hier noch Document-Level-Scripte, die entsprechend angepasst werden müssen. Evtl. liegt's daran. Ansonsten einfach mal die Datei zuschicken, oder hier einstellen, dann kann ich mir das mal genauer anschaun.

Gruß,
Andreas Vogel

basho84
Member


Eintragen seit: 15 Mai 2008
Herkunft: Deutschland
Berichte: 25
Status:  Offline
 Geschrieben: 29 Mai 2008 09:07

Text übernehmen

Antworten
Hallo,

also habe nochmal die Dokument-Level-Scripts vom Originalbeispiel kopiert und auch das Bestellformular übernommen.

Entscheidend scheint wohl die genaue Referenzierung der Felder und der XML-Struktur des Zielfeldes "AddItemField" zu sein.

Auch der xfa.form Pfad der AddPartToOrder-Funktion muss passen, desshalb hat es scheinbar nicht mit meinem selbsterstellten Bestellformular geklappt, da dort nicht die folgende Hierarchie (im LifeCycle Designer) der Objekte eingehalten wurde. Mit dem Originalpfad:

ODoc = FindOpenDoc("Purchase Order.pdf";

oDoc.xfa.form.form1.purchaseOrder.header.AddItemField.rawValue = partNo;

funktioniert es.

Also nun werden meine Teile automatisch zur Bestellung per Knopfdruck hinzugefügt :)

Folgende Baustellen gibt es noch:
  • Leider öffnet sich die Anlage der pdf-Datei nach wie vor trotz OpenFile-Funktion nicht automatisch per Klick auf den Button (Haupt-PDF) :?
  • das Entfernen von der Bestellung per Button funktioniert nicht (Bestell-PDF) :?
Auf dem "Bestellung-Enfernen-Button" liegt im LifeCycle Designer ein JavaScript, das per instanceManager.removeInstance die Zeile entfernen sollte. Aber es fubktioniert nicht:

...

var oSubform1 = xfa.resolveNode("detail");
oSubform1.instanceManager.removeInstance(this.parent.index);
...

Kann ich ein ein beliebiges PDF-Dokument als Bestellformular per "xfa.form..." ansprechen, oder muss man vorher noch etwas im LifeCycle Designer definieren?

Leider kann ich die Datei hier nicht einstellen, aber ich sende Sie mal.

Vielen Dank schon mal für die Hilfe!
Thomas

Letzte Änderung am 29 Mai 2008 17:26 von basho84

basho84
Member


Eintragen seit: 15 Mai 2008
Herkunft: Deutschland
Berichte: 25
Status:  Offline
 Geschrieben: 29 Mai 2008 10:09

Text übernehmen

Antworten

Letzte Änderung am 29 Mai 2008 10:10 von basho84

basho84
Member


Eintragen seit: 15 Mai 2008
Herkunft: Deutschland
Berichte: 25
Status:  Offline
 Geschrieben: 29 Mai 2008 10:10

Text übernehmen

Antworten
Also im Beitrag:

Forumsbeitrag http://www.acronaut.de/forum10/127.html

wird ja der Trick über "Gehe zu einer Seite wählen" vorgestellt. Dies ist auf den Acrobat 3D Version 7 bezogen.

Wenn ich dies im Adobe Acrobat 3d Version 8 machen möchte, ist das Ergebnis dieser Aktion folgendes:

Gehe zu einer Seite eines anderen Dokuments / Detei: PDF-Anlage / Seite:1 :?

Warum kommt dort nicht der Text:

Gehe zu einer Seite in diesem Dokument / Seite:1

Thomas

 

acronaut
Administrator


Eintragen seit: 13 Sep 2006
Herkunft: München, Deutschland
Berichte: 643
Status:  Offline
 Geschrieben: 29 Mai 2008 11:10

Text übernehmen

Antworten
Hi Thomas,

jetzt müssen wir aber aufpassen, dass wir hier nicht 2 Sachen vermischen. Das Beispiel hier kann eben nicht einfach nur über das anhängen der Datei klappen, sondern muss über das von dir auch angesprochene Tool passieren. In dem Post: http://www.acronaut.de/forum10/127.html
geht es darum einfach nur das dokument aufzumachen. Dies funktioniert in dem Beispiel von unserer Diskussion hier deshalb nicht, weil sonst jedes mal beim Klicken auf den "Bestell-Button" die datei erneut aufgerufen werden würde und schließlich sollen ja einfach nur die neuen teile mit in die Liste reingezogen werden, wenn das Formular schon offen ist.

Deine Frage bzgl.
Gehe zu einer Seite eines anderen Dokuments / Detei: PDF-Anlage / Seite:1
und
Gehe zu einer Seite in diesem Dokument / Seite:1
lässt sich ganz einfach so beantworten: Du macht ja ein Attachment, also ein anderes Dokument auf und bewegst Dich nicht innerhalb des derzeit aktiven Dokuments einfach nur von Seite 1 auf Seite 3.


Nun aber zu den Problemen die wirklich mit diesem Post hier zu tun haben.

1. Ich hab Dir ja schon per Email geschrieben, dass Du einfach bei dem Script hinter dem "Bestell-Button" das "Untitled Document" mit dem eigentlichen Namen des Attachments austauschen musst. Dann sollte das schon mal funktionieren.

2. bzgl. des Instance Managers  für das Löschen der Zeilen im Bestellformular kam auf Grund einer Änderung beim Instance Manager im LCD von V7 zu V8. Sollte aber hoffentlich in der Hilfe (LCD-Hilfe) der richtige Weg beschrieben sein. Ich hab mir das jetzt erst mal auch nicht genauer angesehen, aber evtl. findest Du sogar im  Forumsbereich über den LCD hier sog schon eine Lösung. (Dieser Bereich wird ja hauptsächlich von gentleman und Webzopp bearbeitet. Hab da grad nicht mehr den kompletten Überblick)

Hoffe, ich konnte Dir aber damit schon mal weiter helfen.

Gruß,
Andi

basho84
Member


Eintragen seit: 15 Mai 2008
Herkunft: Deutschland
Berichte: 25
Status:  Offline
 Geschrieben: 29 Mai 2008 17:20

Text übernehmen

Antworten
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:

//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


Letzte Änderung am 29 Mai 2008 17:27 von basho84

basho84
Member


Eintragen seit: 15 Mai 2008
Herkunft: Deutschland
Berichte: 25
Status:  Offline
 Geschrieben: 1 Jun 2008 22:38

Text übernehmen

Antworten
Heiko schrieb: 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


basho84
Member


Eintragen seit: 15 Mai 2008
Herkunft: Deutschland
Berichte: 25
Status:  Offline
 Geschrieben: 2 Jun 2008 14:39

Text übernehmen

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

http://forms.stefcameron.com/category/instance-manager/

...
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):
// 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();[/b][/size]
...


Mit diesem Eintrag funktioniert es nun auch richtig in der LCD V8.

Grüße!
Thomas

Letzte Änderung am 2 Jun 2008 14:41 von basho84


 Uhrzeit 11:24
Seite:  Erste Seite Vorherige Seite  1  2   





Powered by WowBB 1.7 - Copyright © 2003-2006 Aycan Gulez
Seite erstellt in 0.1306 Sekunden (45% DB + 55% PHP). 21 verarbeitete Abfragen.