Acronaut Diskussions Forum Home

Freies User Forum für

ADOBE® ACROBAT®

Acronaut Diskussions Forum > Adobe Livecycle Designer > Alles zum Thema Ein-/Ausblenden > Pflichtfelder vor Drucken prüfen, Optionsfelder beim Öffnen
Navigation
Nicht angemeldet

Login | Registrieren 

  

Suche

Erweiterte Suche

Newsletter

Mitgliederliste

Kalender

Moderatoren/Partner

Hilfe

Banner

Kontakt/Impressum
Pflichtfelder vor Drucken prüfen, Optionsfelder beim Öffnen
 Moderiert von: WebZopp, Gentleman, FileAffairs, acronaut Produkt: Adobe LiveCycle Designer V4  

Neue Diskussion

Antworten

Drucken
VerfasserBericht

Member
 

Eintragen seit: 18 Apr 2013
Herkunft: Erfurt, Deutschland
Berichte: 6
Status:  Offline
 Geschrieben: 22 Apr 2013 12:42

Text übernehmen

Antworten
:(
Hallo an alle Acronauten,
wer kann mir bei meinen ersten Schritten helfen?

Ich habe ein Formular zu gestalten, das ein klein wenig mitdenken soll. Ich habe es abgespeckt angehängt.
  • In Abhängigkeit von der Eingabe in der Optionsgruppe  „Art“, soll das Teilformular TFIKHA angezeigt werden.
Gleiches gilt für die Optionsgruppe "Rechtsform" und das Teilformular TFInhaber2. Die Werte 1 sollen dabei jeweils als Standard gesetzt werden. Das funktioniert auch.
Aber wie sage ich dem Formular, dass es beim Öffnen auch die entsprechenden Teilformulare ausblendet. Diese werden erst nach dem erneuten Aktivieren der entsprechenden Option unsichtbar.
  • Vor dem Drucken soll eine Abfrage prüfen, ob alle Pflichtfelder ausgefüllt sind. Im Forum habe ich so einiges gefunden und eingebaut – aber es funktioniert nicht so richtig.
Schaltfläche „Drucken“
Die Pflichtfelder werden über diese Schaltfläche eines nach dem anderen geprüft und in Abhängigkeit vom Ergebnis auch in der Sammelmeldung angezeigt. Wenn alle Pflichtfelder ausgefüllt sind, sollte gedruckt werden. Die Sammelmeldung kommt aber immer noch … und gedruckt wird auch nicht.
Hier möchte ich auch die Felder IK und IKHA in Abhängigkeit von der "Art" prüfen … Analog TFInhaber2 in Abhängigkeit von der "Rechtsform".
Schaltfläche „Formular drucken“
Hier habe ich den gefundenen Programmteil eingebaut – funktioniert aber nicht. Wie kann ich den Parameter für Pflichtfeld abfragen?  
 
Vielen Dank sagt im Voraus schon mal


PS: Version LCD ES4 11.0...

Anlage: Anfrage.pdf (65 Mal aufgenommen)

Letzte Änderung am 23 Apr 2013 09:02 von

armine
Administrator
 

Eintragen seit: 15 Mai 2009
Herkunft:  
Berichte: 2304
Status:  Offline
 Geschrieben: 24 Apr 2013 05:57

Text übernehmen

Antworten
Hallo A²,

deine Datei hat bei mir auch nicht funktioniert, also habe ich die relevanten Felder in ein vorhandenes PDF kopiert und siehe, mein Code tut, was ich erwarte.

Klickt man auf den Printbutton bekommt man deine Fehlermeldung, aber auch Schlauberger, die ^p drücken kommen nicht zum Drucken.

Bei "Firma" kannst du sehen, wie der rote Rand verschwindet, wenn das Feld ausgefüllt ist.
Wozu den roten Rand bei den Kontrollkästchen? Dank Vorbelegung mit der "1" sind die immer ausgefüllt (und werden auch nicht abgeprüft).
Wozu ein Teilformular um ein einzelnes Textfeld?
Statt endlosem "if" habe ich die Pflichtfelder in ein Array geschrieben und arbeite alles in einer Schleife ab.

vg armine

Anlage: TestdruckPflicht.V2.pdf (212 Mal aufgenommen)


Member
 

Eintragen seit: 18 Apr 2013
Herkunft: Erfurt, Deutschland
Berichte: 6
Status:  Offline
 Geschrieben: 24 Apr 2013 09:52

Text übernehmen

Antworten
:D
Hallo armine,
vielen lieben Dank für Deine Hilfe. Ich habe den restlichen Formularinhalt in Deine Datei eingefügt und bin happy – es geht.  EDV heißt eben doch nicht umsonst „Ende der Vernunft“.
Was ich u.a. besonders gut finde:  Du hast den Drucker-Schlaubergern einen Strich durch die Rechnung gemacht. Ich habe es immer wieder erlebt, dass Fbl. irgendwie ausgedruckt und dann per Hand ausgefüllt wurden – obwohl ich einen Druckbutton (natürlich ohne Prüfung) eingebaut hatte.
Meine Programmierung ist alles andere als elegant, das ist mir schmerzlich bewusst. Aber da ich mit JavaScript  fast überhaupt nicht auskenne, habe ich gedacht „viele Wege führen nach Rom“ … daher auch die vielen If’s. Ein  Array war mehrere Nummern zu groß für meine Kenntnisse. Dank Deiner Hilfe kann ich mich jetzt an dieses heranwagen.
Die Teilformulare habe ich eingebaut, weil ich in einem Lehrgang zum LCD auf DVD gesehen habe, dass man in dynamischen Formularen bestimmte Bereiche mittels des Aktionsgenerators ein- und ausblenden kann. Nun will ich nicht sagen, dass mein Fbl. ein dynamisches ist – aber es funktionierte.
Du fragst in der For-Schleife:  „Prüffeld.length“. Kann man den Beschriftungstext des betreffenden Feldes auch auslesen? Hintergrund: Die Feldnamen sind manchmal nicht so richtig aussagekräftig. Ich muss eine eindeutige und verständliche Information geben – sonst klingelt mein Telefon womöglich am laufenden Band.
Der rote Rand bei den Optionsfeldern kommt daher, dass ich zuerst keinen Standardwert eingestellt hatte. Sondern die Ausfüllung als Pflichfeld vorgesehen war.

So, jetzt muss ich mich noch einmal blamieren: Wo hast Du das Click-Ereignis der Optionsfelder versteckt?
VG A²
PS: Kannst Du mir eine gute Quelle sagen, wo ich Informationen (Syntax und auch Beschreibung von Befehlen)  zu JavaScript  finden kann?  Ich meine sowas für Dummis  …

armine
Administrator
 

Eintragen seit: 15 Mai 2009
Herkunft:  
Berichte: 2304
Status:  Offline
 Geschrieben: 24 Apr 2013 13:26

Text übernehmen

Antworten
Hallo A²,

richtig, viele Wege führen nach Rom. Damit du den richtigen findest, kannst du Google nach "javascript tutorial" befragen und dir etwas hübsches ausuchen.

Das Click-Ereignis der Optionsfelder habe ich nicht versteckt (kann ich auch gar nicht), sondern einfach ignoriert. Statt dessen habe ich Code im Change-Ereignis, der wird nur ausgeführt, wenn sich etwas geändert hat.

Den Drucker-Schlaubergern hab’ nicht ich einen Strich durch die Rechnung gemacht, da lass ich dem Reader/Acrobat freien Lauf.

Mit "caption.value.text.value" kann man den Beschriftungstext eines Feldes auch auslesen. Brauchst du aber nicht. Ein 2. Array gibt dir alle Veränderungsmöglichkeiten an die Hand.
 
vg armine

Anlage: TestdruckPflicht.V2.pdf (82 Mal aufgenommen)


Member
 

Eintragen seit: 18 Apr 2013
Herkunft: Erfurt, Deutschland
Berichte: 6
Status:  Offline
 Geschrieben: 25 Apr 2013 08:00

Text übernehmen

Antworten
:?
Hallo armine,
auf meinem PC zu Hause ist leider der LCD nicht installiert. Darum komme ich erst jetzt dazu, Deine Tipps von gestern einzubauen.
Die Fehlermeldung ist, dank des 2. Arrays jetzt ok. Nach der Fehlermeldung wird der Focus auf das erste leere Feld gesetzt.

Folgende Punkte habe ich noch nicht richtig im Griff, möchte das Formular aber vorher nicht freigeben - negatives bleibt beim User länger hängen, als positives:
  • Beim Drucken wird mehr als 1 Exemplar geduckt.
    ;) erledigt: Schaltfläche Drucken hat nach dem Drucken nochmal Drucken aktiviert.
  • Wie sage ich der Schaltfläche "Drucken" auf der 2. Seite, dass das erste leere Feld auch auf dem Bildschirm sichtbar positioniert wird. Jetzt muss man immer noch nach oben scrollen.
  • Zwischenzeitlich habe ich bei „sonstige Änderungen“versucht, ein dynamisches Textfeld einzufügen. Ist es möglich, den Cursor nicht vertikal mitten im Feld sondern links oben zu positionieren?
  • Das Change-Ereignis der Optionsfelder - ich kann auch das nicht finden.
    Bei den Optionsfeldern ist „Ereignisse mit Scripten“ eingestellt  - aber es ist kein Script zu sehen. Auch dann nicht, wenn ich alle Scripte anzeigen lasse. Da kommt zwar die  1. Befehlszeile, aber nichts dahinter.
    Das Teilformular „TFInhaber2“ soll entfernt und ein neues Feld für den 2. Inhaber eingebaut werden. Ebenso das TF für das 2. IK.
    ;) erledigt: bin davon ausgegangen, dass sich der Code hinter jedem Optionsfeld verbirgt - nicht hinter der ganzen Gruppe
Bei fast allen anderen Feldern ist die Anzeige der Scripte kein Problem – außer in der Masterseite. Ich wollte von Deinen Codes etwas kopieren – in meiner Datei komme ich an das Feld mit den Seitenzahlen nicht ran.
Jetzt noch 2 zweitrangige Fragen:
  • Prüfung PLZ und IK auf vollständige Ausfüllung 5 bzw. 7 Zeichen.
    Das IK hat auch noch eine richtige Prüfformel , aber die kann warten.
  • Auf der 2. Seite des Fbl. sind Angaben zu Änderungen möglich. Die Anzahl ist nach oben offen.  „Keine Änderungen“ ist dabei Standard. Wie kann ich ermitteln, ob wenigstens bei einer Position  „beitreten“ oder „beenden“ eingetragen wurde. Denn wenn alles auf „keine Änderung“ steht, ist das Fbl. ja auch nicht korrekt ausgefüllt.
Dank schon mal sagt A²
 


 

Anlage: Anfrage.pdf (30 Mal aufgenommen)

Letzte Änderung am 26 Apr 2013 09:59 von

armine
Administrator
 

Eintragen seit: 15 Mai 2009
Herkunft:  
Berichte: 2304
Status:  Offline
 Geschrieben: 26 Apr 2013 15:18

Text übernehmen

Antworten
Hallo A²

Wie sage ich der Schaltfläche "Drucken" auf der 2. Seite, dass das erste leere Feld auch auf dem Bildschirm sichtbar positioniert wird. Jetzt muss man immer noch nach oben scrollen.
Gar nicht. Der zweite Druckbutton sagt dem ersten, welches Programm abgespult werden soll. Und der positioniert den Cursor im ersten leeren Feld.
 
Zwischenzeitlich habe ich bei „sonstige Änderungen“ versucht, ein dynamisches Textfeld einzufügen. Ist es möglich, den Cursor nicht vertikal mitten im Feld sondern links oben zu positionieren?
Ja, dazu formatiert man den Absatz.
 
Das Change-Ereignis der Optionsfelder - ich kann auch das nicht finden.
Der Code steht bei der Gruppe – da hat man alle Felder im Griff, nicht bei den einzelnen Feldern.
 
Seitenzähler: Der angezeigte Text wird im calculate beigestellt. Im docReady knipse ich die Eingabefelder (samt Markierung der Pflichtfelder) an. Außerdem setze ich für die Eingabefelder eine mir passende Farbe ein. Im docClose setze ich die Farbe wieder auf den Adobe-Standard.
 
Prüfung PLZ: Entweder werden 5 Ziffern (und keine 2 führenden Nullen) erkannt, oder die Eingabe wird gelöscht.
 
Das IK hat auch noch eine richtige Prüfformel , aber die kann warten.
Jetzt kann man jeden Quatsch außer Leerzeichen eingeben. Hauptsache: 7 Stellen.
 
Auf der 2. Seite des Fbl. sind Angaben zu Änderungen möglich …
Ob die Vorgaben unverändert blieben, wird erkannt.
 
Anmerkungen:
Entweder absolut (mit vollständigem Pfad) oder relativ (nur das nötigste) referenzieren. Sonst funktioniert’s nicht.
Teilformulare bitte nur, wo nötig. Aber immer sinnvoll benannt.
Eine Hierarchie nach „Kraut und Rüben“ zu strukturieren macht dir das Leben schwer und es ist eine Zumutung für jemanden, der helfen will.
Auf eine „Seite 2“ verweisen, wenn vorher noch Texte für weitere Seiten sorgen können ist von geringer Pfiffigkeit.
Dein Reset-Button tut, was der Name besagt. Dass da Pflichtfelder existieren interessiert nicht. Lass ihn weg. So ein Formular kann man neu laden.
Warum Text und Linien separat, wenn man Text mit Linie haben kann und sich Arbeit beim Positionieren sparen kann?

Nun solltest du für alle Wechselfälle des Lebens gerüstet sein.
vg armine

Anlage: A2 Anfrage armine.pdf (91 Mal aufgenommen)


Member
 

Eintragen seit: 18 Apr 2013
Herkunft: Erfurt, Deutschland
Berichte: 6
Status:  Offline
 Geschrieben: 30 Apr 2013 15:21

Text übernehmen

Antworten
:)
Hallo armine,
vielen Dank für Deine letzten Tips. Ich habe sie beherzigt und bin inzwischen auch ganz zufrieden - gestern habe ich mein erstes Formular feigegeben und die eingehenden Rückmeldungen haben gezeigt, dass es funktioniert.

Für diese einfachen Formulare bin ich jetzt ganz gut gerüstet. Wenn ich mich das nächste Mal wg. eines Problems melde, habe ich bestimmt auch etwas mehr Ordnung in der Hirarchie und es sind keine unnötigen Felder, Linien etc. vorhanden ... 

VG A²






 


Guest
 

Eintragen seit: 
Herkunft:  
Berichte: 
Status:  Offline
 Geschrieben: 28 Mai 2013 14:28

Text übernehmen

Antworten
schrieb:
:)
Hallo armine,
vielen Dank für Deine letzten Tips. Ich habe sie beherzigt und bin inzwischen auch ganz zufrieden - gestern habe ich mein erstes Formular feigegeben und die eingehenden Rückmeldungen haben gezeigt, dass es funktioniert.

Für diese einfachen Formulare bin ich jetzt ganz gut gerüstet. Wenn ich mich das nächste Mal wg. eines Problems melde, habe ich bestimmt auch etwas mehr Ordnung in der Hirarchie und es sind keine unnötigen Felder, Linien etc. vorhanden ... 

VG A²


Hallo,
ein sehr interessanter Beitrag. Für meine Zwecke wollte ich das Dokument anpassen, geht aber leider nicht wegen LCD. Ich habe leider nur einen Mac und somit auch das Programm nicht.
Wäre es möglich den entsprechenden JavaScript Code zu bekommen der für die Überprüfungsfunktion vor dem Drucken notwendig ist? Das wäre Klasse.
Noch eine Frage: Ist es viel Arbeit das Script dann noch so anzupassen dass es auch vor dem Speichern die Prüfung durchführt und nur wenn alles ok ist speichert?
Viele Dank für Eure Hilfe.
Schönen Gruß,
Andreas

armine
Administrator
 

Eintragen seit: 15 Mai 2009
Herkunft:  
Berichte: 2304
Status:  Offline
 Geschrieben: 28 Mai 2013 15:30

Text übernehmen

Antworten
Hallo Andreas,

hinter dem DruckButton steht dieser Code:

 Formular1.Seite1.TFSo.Schaltfläche1::click - (JavaScript, client)

var Sammelmeldung = "", Sprungziel = "", Schlamperei = "";
var Prüffeld    = ["Firma", "Strasse", "PLZ", "Ort", "IK", "TFIKHA.IKHA", "Inhaber",    "Inhaber2"] ;
var Meldetext    = ["Firma", "Straße",  "PLZ", "Ort", "IK", "IK FA",          "1. Inhaber",    "2. Inhaber"] ;
for (i = 0; i < Prüffeld.length; i++) {
    if (xfa.resolveNode("Seite1.TFSo." + Prüffeld).rawValue == null && xfa.resolveNode("Seite1.TFSo." + Prüffeld).mandatory == "error") {
        if (Sammelmeldung == "") {
            Sprungziel = Prüffeld
        }
        Sammelmeldung = Sammelmeldung + "\n- " + Meldetext ;
    }
}
if (Kontrollkästchen1.rawValue + Kontrollkästchen2.rawValue == 0) {
    Schlamperei = "\n\nUm die Kontrollkästchen am Fuß der ersten Seite sollten Sie sich auch kümmern."
}
if (Seite2.OptionsGruppe.Optionsfeldliste01.Knackpunkt.rawValue + Seite2.OptionsGruppe.Optionsfeldliste02.Knackpunkt.rawValue == "11") {
    Schlamperei = Schlamperei + "\n\nAuf der letzten Seite sind Kontrollkästchen. Da haben Sie in beiden Fällen\n\"Keine Änderung\" stehen?"
}
if (Sammelmeldung > "" || Schlamperei > "") {
    if (Sammelmeldung > "") {
        Sammelmeldung = "Folgende Felder wurde nicht ausgefüllt.\n" + Sammelmeldung + "\n\nBitte füllen Sie diese aus!"
    }
    app.alert(Sammelmeldung + Schlamperei,1) ;
    xfa.host.setFocus(Sprungziel)
} else {
    xfa.host.print(1, "0", (xfa.host.numPages -1).toString(), 0, 0, 0, 0, 0);
}

 Formular1.Seite1.TFSo.Schaltfläche1::prePrint - (JavaScript, client)

this.execEvent("click")

Vor dem Speichern kann man diesen Code natürlich auch abarbeiten (Die Zeile Code im preprint zusätzlich ins preSave kopieren.). Bleibt zu beachten, dass beim Verlassen der Pflichtfelder formal geprüft ob ein Eintrag besteht. Gibt es einen, wird das Feld nicht mehr als Pflichtfeld geführt.

Gutes Gelingen
armine


sopuab
Member
 

Eintragen seit: 3 Dez 2012
Herkunft:  
Berichte: 13
Status:  Offline
 Geschrieben: 19 Jun 2013 16:22

Text übernehmen

Antworten
armine schrieb: Hallo A²,


Klickt man auf den Printbutton bekommt man deine Fehlermeldung, aber auch Schlauberger, die ^p drücken kommen nicht zum Drucken.


Hallo, ich habe mal ne Frage, wie schafft man denn das ? Genau das bekomme ich nicht hin, dass Strg+P bzw. Menü Datei-Drucken nicht unterbunden wird. Das Skript hinter dem Druckbutton funktioniert wunderbar.

armine
Administrator
 

Eintragen seit: 15 Mai 2009
Herkunft:  
Berichte: 2304
Status:  Offline
 Geschrieben: 19 Jun 2013 21:27

Text übernehmen

Antworten
Hallo sopuab,

hast du dir die Datei nicht angeschaut? Im preprint des Printbuttons steht:
this.execEvent("click")

vg armine

sopuab
Member
 

Eintragen seit: 3 Dez 2012
Herkunft:  
Berichte: 13
Status:  Offline
 Geschrieben: 20 Jun 2013 05:59

Text übernehmen

Antworten
Hallo armine,

vielen Dank, hatte ich echt übersehen. Bei mir ist es nur so, wenn ich diesen Eintrag bei prePrint mache, dann poppt einmal meine Sammelmeldung auf und anschliessend geht trotzdem der Druckdialog auf. irgendwas mache ich falsch.

Ich benutze übrigens den LCD ES2

armine
Administrator
 

Eintragen seit: 15 Mai 2009
Herkunft:  
Berichte: 2304
Status:  Offline
 Geschrieben: 20 Jun 2013 15:18

Text übernehmen

Antworten
Hallo sopuab,

was bei dir nicht klappt, kann ich ohne Datei (und ohne Hellseher-Diplom) nicht feststellen.

vg armine

sopuab
Member
 

Eintragen seit: 3 Dez 2012
Herkunft:  
Berichte: 13
Status:  Offline
 Geschrieben: 20 Jun 2013 20:25

Text übernehmen

Antworten
Hallo armine,

ich habe mein Problem gelöst, aber anders - über diesen Eintrag in der XML-Source :

<validate>prePrint</validate>

vielen Dank für deine Geduld und die schnellen Antworten ;-)

Berea
Member


Eintragen seit: 8 Aug 2013
Herkunft:  
Berichte: 4
Status:  Offline
 Geschrieben: 21 Aug 2013 10:12

Text übernehmen

Antworten
Hallo Armine,

jetzt habe ich es auch gefunden. Ich habe mir den Beitrag von sopuab durchgelesen und den Tag im XML gesetzt. Weiß jemand, warum dieser Eintrag manuell gesetzt werden muss?!

Gruß Berea

Letzte Änderung am 21 Aug 2013 10:45 von Berea


 Uhrzeit 15:09
Seite:    1  2  Nächste Seite Letzte Seite  





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