eigenartiges Problem mit Ausblenden von Textfelder

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
Antworten
1kenny@gmx.de
Beiträge: 26
Registriert: 21.09.2009, 14:13

eigenartiges Problem mit Ausblenden von Textfelder

Beitrag von 1kenny@gmx.de » 26.11.2015, 08:05

Hallo!

Ich habe ein eigenartiges Problem zum Thema Felder ausblenden. Ich habe im Adobe LC Designer ES3 ein Formular mit zwei Textfeldern „gruppe“ und „bis“ erstellt.
Das Textfeld „gruppe“ wird mittels Java und iText (v5.5.7) gefüllt. Wenn die Gruppe „4.0“ eingetragen wird, soll das Feld „bis“ ausgeblendet werden.
Zuerst habe ich mittels iText versucht das Feld „zu“ auszublenden, wenn diese Gruppe auftritt. Leider ohne Erfolg. Daraufhin wollte ich dies mittels Javascript direkt im LC Designer machen. Zum Textfeld „gruppe“ habe ich folgendes Javaskript hinterlegt:

Code: Alles auswählen

rowgroup.#subform[0].gruppe::ready:layout - (JavaScript, client)

if (gruppe.rawValue == "4.0"){
    //app.alert(gruppe.rawValue);
    zu.presence = "hidden";
    }
Das Skript funktioniert leider auch nicht. Das Feld „zu“ wird nicht ausgeblendet. Das komische dabei ist aber, dass die if-Anweisung aber funktioniert. Wenn ich beispielsweise ein Textfenster in die If-Anweisung packe, dann wird es auch im Fall von „gruppe“= „4.0“ aufgerufen. Nur das Textfeld „zu“ wird einfach nicht ausgeblendet. Ironischerweise funktioniert das Ausblenden, wenn ich die If-Anweisung weg lasse und nur

Code: Alles auswählen

zu.presence = "hidden";
stehen lasse. Dann wird das Textfeld „zu“ ausgeblendet.
Ich habe gestern den ganzen Tag an diesem Problem gehangen und einfach keine Lösung gefunden. Dabei ist das Grundproblem doch ganz trivial, oder?

Habt Ihr eine Idee?

VG Sven


1kenny@gmx.de
Beiträge: 26
Registriert: 21.09.2009, 14:13

eigenartiges Problem mit Ausblenden von Textfelder

Beitrag von 1kenny@gmx.de » 30.11.2015, 13:13

Hat keiner eine Idee? Schade.

Benutzeravatar
radzmar
Beiträge: 962
Registriert: 26.10.2011, 10:18

eigenartiges Problem mit Ausblenden von Textfelder

Beitrag von radzmar » 30.11.2015, 20:17

Wieso nimmst Du das layout:Ready Event?
Versucht mal dieses Skript im change Event.

Code: Alles auswählen

zu.presence = xfa.event.newText === "4.0" ? "hidden" : "visible";
Wenn das bei Dir auch nix bewirkt, ändere mal die Feldnamen, da diese evtl. mit einer Methode oder Variablen aus einem kollidieren.

1kenny@gmx.de
Beiträge: 26
Registriert: 21.09.2009, 14:13

eigenartiges Problem mit Ausblenden von Textfelder

Beitrag von 1kenny@gmx.de » 01.12.2015, 06:36

Vielen Dank für die Antwort und den Hinweis. Aber leider hat es auch nicht funktioniert. Weder die Änderung der Eventmethode, noch die Umbenennung des Feldes in xyz. :(

Ich habe mal alle unrelevanten Felder aus dem PDF geschmissen und es hier einmal hochgeladen. Vielleicht lässt sich so der Fehler schneller finden.


VG Sven
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

1kenny@gmx.de
Beiträge: 26
Registriert: 21.09.2009, 14:13

eigenartiges Problem mit Ausblenden von Textfelder

Beitrag von 1kenny@gmx.de » 01.12.2015, 10:10

Ich konnte das Problem ein wenig eingrenzen.

Wenn das PDF im LC Designer als dynamisches Formular abgespeichert wurde, dann funktioniert das Ausblenden. Als statisches Formular funktioniert es nicht.

Mein Problem ist aber nun, dass wenn ich es als dynamisches Formular abspeichere, dann funktioniert die Befüllung durch die DB nicht mehr...

Code: Alles auswählen

        public static void fillPDF(String Arg1, String Arg2, String Arg3, String Arg4, String Arg5, String Arg6, String Arg7, String Arg8, String Arg9, String Arg10, String Arg11 ) throws IOException
        {
                try
                {
                        PdfReader reader = new PdfReader("LVVO_LV_xsd2.pdf");
                        ByteArrayOutputStream baos = new ByteArrayOutputStream();
                        PdfStamper stamper = new PdfStamper(reader, baos);
                        AcroFields form = stamper.getAcroFields();
                        form.setField("pgd_join_id", Arg1);
                        form.setField("g45", Arg2);
                        form.setField("pdp_institut", Arg3);
                        form.setField("pgd_name", Arg4);
                        form.setField("pgd_vornamen", Arg5);
                        form.setField("anrede", Arg6);
                        form.setField("gruppe", Arg7);
                        form.setField("pdp_stunden", Arg8);
                        form.setField("fakultaet", Arg9);
                        if (Arg10==null) {form.setField("pmi_minderungen","0");} 
                                    else {form.setField("pmi_minderungen",Arg10);};
                        form.setField("semester", Arg11);
                        form.setField("gesamtname", Arg6+ " " +Arg5 +" " +Arg4);
                        stamper.close();
                        FileOutputStream fos = new FileOutputStream("out\\LVVO_LV_out_" +Arg3 +"_" +Arg4 +".pdf");
                        baos.writeTo(fos);
                        fos.flush();
                        reader.close();
                }
                catch (Exception ex)
                {
                        System.out.println(ex.getMessage());
                }
        
        
        }

 
Muss dann im Code was geändert werden?

VG Sven

Antworten