Dynamische Tabelle: 2 unterschiedliche Zeilen auf Knopfdruck hinzufügen

Alles was sich mit dem Thema dynamische XML Formulare auf Basis des LiveCycleDesigners beschäftigt
Benutzeravatar
axelh
Beiträge: 73
Registriert: 10.08.2015, 13:10

Dynamische Tabelle: 2 unterschiedliche Zeilen auf Knopfdruck hinzufügen

Beitrag von axelh » 12.08.2015, 10:46

Hallo,

ich möchte über einen Button (das vordefinierte Objekt "Element in Teilformular einfügen") in meinem PDF (s. Anhang) jeweils die 2 unterschiedlichen Zeilen hinzufügen. Das funktioniert auch soweit, allerdings werden sie in der falschen Reihenfolge hinzugefügt. Es soll immer so aussehen: Zeile 1, Zeile 2, Zeile 1, Zeile 2 usw.

Desweiteren sollen über den "-"-Button die 2 Zeilen wieder entfernt werden.

Ich habe noch keine große Erfahrung mit JavaScript und habe mich an dem vom Programm automatisch erstellten Code versucht ("+"-Button). Ich habe das erstellen einer neuen Instanz kopiert. Das hinzufügen funktioniert, die Reihenfolge stimmt aber nicht. Liegt das am falschen Index?

Code: Alles auswählen

Formular.P1.sfrTabelle.Tabelle1.Zeile1.#subform[0].#subform[1].Teilformularschaltfläche1hinzufügen::click - (JavaScript, client)
/*
   This button will insert one instance of the repeating subform or table row.

   bCalc: Flag - true if the new instance might be referenced by other calculations, otherwise false.    
   message: The error message displayed.
*/    
var bCalc = true;
var message = "Sie haben die maximale Anzahl zulässiger Objekte erreicht.";


// DO NOT MODIFY THE CODE BEYOND THIS POINT - 9.0.0.2.20101008.1.725030.725025 - Subform_Instance_Controls_IRM.xfo.p2

var oWrapper = this.parent.parent;    // The outer subform built in to the object, enclosing the button group.
var oTargetSubform = oWrapper.parent;    // The subform or table row the controls are intended to manipulate.
var oTargetSubform1 = Formular.P1.sfrTabelle.Tabelle1.Zeile2;
var oManager = oTargetSubform.instanceManager; // Get the instance manager.
var oManager1 = oTargetSubform1.instanceManager; // Get the instance manager.
var nMaxCount = oManager.occur.max;         // Get the maximum number of subform occurrences allowed.
var nSubCount = oManager.count;            // Get the current number of instances.

// Proceed if the maximum number of subform occurrences has not been reached.
if ((nMaxCount == "-1") || (nSubCount < nMaxCount)) {
    
    // Invoke the Instance Manager.
    var oNewInstance = oManager.addInstance(1);

    // Fire the form calculations.
    if (bCalc == true) {    
    // Execute all the form calculations.
    xfa.form.recalculate(1);
    }

    // Move the new subform below the current one.
    var nIndexFrom = oNewInstance.index;
    var nIndexTo = oTargetSubform.index + 1;
    oManager.moveInstance(nIndexFrom, nIndexTo);
    
    // Invoke the Instance Manager.
    var oNewInstance1 = oManager1.addInstance(1);

    // Fire the form calculations.
    if (bCalc == true) {    
    // Execute all the form calculations.
    xfa.form.recalculate(1);
    }

    // Move the new subform below the current one.
    var nIndexFrom1 = oNewInstance1.index;
    var nIndexTo1 = oTargetSubform1.index + 1;
    oManager1.moveInstance(nIndexFrom1, nIndexTo1);    
    
    
} else {

    xfa.host.messageBox(message,"Insert Item", 3);
}

// END OF DO NOT MODIFY
Weiß jemand Rat?

Gruß,
Axel
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Dynamische Tabelle: 2 unterschiedliche Zeilen auf Knopfdruck hinzufügen

Beitrag von armine » 12.08.2015, 14:27

Hallo Axel,

Gruppierung ist der Trick.

vg armine
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
MaReh
Beiträge: 28
Registriert: 19.05.2015, 13:16

Dynamische Tabelle: 2 unterschiedliche Zeilen auf Knopfdruck hinzufügen

Beitrag von MaReh » 12.08.2015, 14:30

Hi Axelh,

Wenn ich das richtig verstanden habe, willst du eine Zeile ausfüllen, und die ausgefüllte Zeile direkt darunter nochmal anzeigen. Oder verstehe ich da was falsch?
Wenn + geklickt wird willst du, dass weitere 2 Zeilen zum ausfüllen angezeigt werden. Wobei eine die Daten anzeigt. Ich kann dir ein Beispiel bauen, aber dafür muss ich Wissen, was dir genau vorstellst.

Benutzeravatar
MaReh
Beiträge: 28
Registriert: 19.05.2015, 13:16

Dynamische Tabelle: 2 unterschiedliche Zeilen auf Knopfdruck hinzufügen

Beitrag von MaReh » 12.08.2015, 14:36

Danke Armine,

sehr schönes Beispiel. Und so schön übersichtlich. Einfach wunderbar.

Benutzeravatar
axelh
Beiträge: 73
Registriert: 10.08.2015, 13:10

Dynamische Tabelle: 2 unterschiedliche Zeilen auf Knopfdruck hinzufügen

Beitrag von axelh » 12.08.2015, 14:46

@armine
Vielen Dank, das ist das was ich suchte. Ich werde versuchen, das in meinen aktuellen Stand einzubauen.

@MaReh,
Habe mich blöd ausgedrückt. Ich möchte einen Abschnitt aus 2 Tabellenzeilen wiederholen, ohne eingegebene Daten. So wie armine es in seiner Anlage programmiert hat.

Gruß,
Axel

Benutzeravatar
axelh
Beiträge: 73
Registriert: 10.08.2015, 13:10

Dynamische Tabelle: 2 unterschiedliche Zeilen auf Knopfdruck hinzufügen

Beitrag von axelh » 12.08.2015, 15:10

Vom Ergebnis bin ich begeistert, den Code kann ich (noch) nicht 100%ig nachvollziehen.

Ich finde dieses Forum wirklich großartig. Hier wird man geholfen :-) .

Gruß,
Axel


Benutzeravatar
axelh
Beiträge: 73
Registriert: 10.08.2015, 13:10

Dynamische Tabelle: 2 unterschiedliche Zeilen auf Knopfdruck hinzufügen

Beitrag von axelh » 12.08.2015, 16:02

Eine Frage habe ich noch:

Kann man es so einstellen, das beim Hinzufügen der beiden Zeilen im Falle eines  Seitenumbruchs die beiden Zeilen zusammengehalten werden? Also wenn beide zusammen nicht mehr auf die Seite passen sollen beide zusammen auf der nächsten Seite erscheinen und nicht die 1. Zeile unten auf der 1. Seite und die 2. Zeile oben auf der 2. Seite.

Gruß,
Axel
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Dynamische Tabelle: 2 unterschiedliche Zeilen auf Knopfdruck hinzufügen

Beitrag von armine » 12.08.2015, 16:24

Hallo Axel,

die beiden Zeilen bleiben nun zusammen (Object > Pagination > Keep With ...

vg armine
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
axelh
Beiträge: 73
Registriert: 10.08.2015, 13:10

Dynamische Tabelle: 2 unterschiedliche Zeilen auf Knopfdruck hinzufügen

Beitrag von axelh » 12.08.2015, 17:07

Hallo armine,

perfekt, danke.

Gruß,
Axel

Benutzeravatar
axelh
Beiträge: 73
Registriert: 10.08.2015, 13:10

Dynamische Tabelle: 2 unterschiedliche Zeilen auf Knopfdruck hinzufügen

Beitrag von axelh » 13.08.2015, 07:41

Ich hoffe ich nerve nicht langsam aber ich habe noch zwei weitere Fragen:
  1. Wo ist die automatische Nummerierung der Positionen hinterlegt? Im Code kann ich das nicht finden und in den Objekteigenschaften auch nicht...
  2. Besteht die Möglichkeit eine Zelle aus der 1. Zeile mit der darunterliegenden Zelle aus der 2. Zeile zusammenzuführen? Ich möchte in einem Fall 1 Objekt über 2 Zeilen platzieren.
Grüße,
Axel

Antworten