4D v16.3

LISTBOX DUPLICATE COLUMN

Home

 
4D v16.3
LISTBOX DUPLICATE COLUMN

LISTBOX DUPLICATE COLUMN 


 

LISTBOX DUPLICATE COLUMN ( {* ;} Objekt ; SpaltePos ; SpalteName ; SpalteVariable ; KopfName ; KopfVariable {; FußName ; FußVariable} )  
Parameter Typ   Beschreibung
Operator in Mit *: Objekt ist Objektname (String)
Ohne *: Objekt ist eine Variable
Objekt  Formularobjekt in Objektname (mit *) oder Variable (ohne *) der zu duplizierenden Spalte
SpaltePos  Lange Ganzzahl in Position der neu duplizierten Spalte
SpalteName  String in Name der neuen Spalte
SpalteVariable  Array, Feld, Variable, Nil pointer in Name der Variable Array Spalte oder Feld oder Variable
KopfName  String in Objektname Spaltenkopfteil
KopfVariable  Variable Ganzzahl, Nil pointer in Variable Spaltenkopfteil
FußName  String in Objektname Spaltenfußteil
FußVariable  Variable, Nil pointer in Variable Spaltenfußteil

Der Befehl LISTBOX DUPLICATE COLUMN dupliziert per Programmierung im Formular in der Ausführung die Spalte, definiert durch die Parameter Objekt und * (Anwendungsmodus). Das Originalformular, das im Designmodus erstellt wurde, wird nicht verändert.

Hinweis: Diese Funktionalität war bereits im Designmodus von 4D vorhanden, und zwar im Kontextmenü des Formulareditors über den Befehl Spalte duplizieren.

Standardmäßig werden alle Stiloptionen der Ausgangsspalte (Größe, Farbe, Formate, etc.), die über die Eigenschaftenliste oder Befehle zur Objektverwaltung (OBJECT SET COLOR, etc.) gesetzt wurden, auch auf die Kopie angewendet. Auch die Objektmethode und die Einstellungen der Formularereignisse werden duplizieren. Die Datenquelle (Listbox vom Typ Array oder Auswahl) sowie Stil und Farb-Arrays werden dagegen nicht dupliziert. Sie müssen selbst dafür sorgen, dass diese nach dem Duplizieren jeder neuen Spalte zugewiesen wird.

Die Parameter Objekt und * bestimmen die Spalte zum Duplizieren. Mit dem optionalen Parameter * ist Objekt ein Spaltenname (String). Ohne * ist Objekt eine Spaltenvariable. In diesem Fall übergeben Sie eine Variablenreferenz anstelle eines String.

Hinweis: Dieser Befehl führt nichts aus, wenn er auf die erste Spalte einer Listbox im hierarchischen Modus angewandt wird.

Die duplizierte Spalte wird genau vor die Spalte gesetzt, die im Parameter SpaltePosition angegeben ist. Ist SpaltePosition größer als die Gesamtanzahl der Spalten, wird sie nach der letzten Spalte gesetzt.

In den Parametern SpalteName und SpalteVariable übergeben Sie den Objektnamen und die Variable der neuen duplizierten Spalte.

  • Für Listboxen vom Typ Array entspricht der Variablenname dem Namen des Array, dessen Inhalt in der Spalte angezeigt wird. in einem dynamischen Kontext können Sie einen Zeiger Nil (->[]) übergeben (siehe unten).
  • Für Listboxen vom Typ Auswahl können Sie im Parameter SpalteVariable ein Feld oder eine Variable übergeben. Dann ist der Inhalt der Spalte der Wert dieses Feldes oder der Variable, der für jeden Datensatz in der Auswahl für die Listbox gewertet wird. Dafür muss die Eigenschaft "Datenquelle" der Listbox auf "aktuelle Auswahl" oder "temporäre Auswahl" gesetzt sein.

Beachten Sie, dass die Datenquelle der ursprünglichen Spalten nicht dupliziert wird: Sie müssen für die neue duplizierte Spalte ein Quellvariable, Array oder Feld setzen.

In den Parametern KopfteilName und KopfteilVariable übergeben Sie Objektname und Variable für den Kopfteil der neuen duplizierten Spalte.
In den Parametern FußteilName und FußteilVariable können Sie Objektname und Variable für den Fußteil der neuen duplizierten Spalte übergeben. Lassen Sie FußteilVariable weg, verwendet 4D eine dynamische Variable.

Hinweis: Objektnamen im Formular müssen einmalig sein. Sie müssen sicherstellen, dass die Namen in den Parametern SpalteName, KopfteilName und FußteilName noch nicht verwendet wurden. Andernfalls wird die Spalte nicht dupliziert und ein Fehler wird generiert.

Dieser Befehl muss beim Anzeigen eines Formulars verwendet werden. Er wird normalerweise im Ereignis On Load des Formulars oder in Folge einer Benutzeraktion aufgerufen (Ereignis (On Clicked).

Ab 4D v14 R3 können Sie Spalten von Listboxen dynamisch duplizieren und 4D verwaltet automatisch die Definition der erforderlichen Variablen (Spalten, Fußteil und Kopfteil).

Dazu akzeptiert LISTBOX DUPLICATE COLUMN einen Zeiger Nil (->[]) als Wert für die Parameter SpalteVariable (nur für Listboxen vom Typ Array), KopfVariable und FußVariable. In diesem Fall erstellt 4D beim Ausführen des Befehls die erforderlichen Variablen dynamisch. Weitere Informationen dazu finden Sie im Abschnitt Dynamische Variablen

Beachten Sie, dass Variablen für Kopf- und Fußteil immer mit den spezifischen Typ Lange Ganzzahl bzw. Text erstellt werden. Im Gegensatz dazu lassen sich Variablen für Spalten nicht beim Erstellen typisieren, da die Listbox für diese Variable verschiedene Arraytypen erlaubt (Array Text, Array Ganzzahl, etc.). Es ist wichtig, den Arraytyp vor Verwenden von Befehlen wie [#cmd id="913"/] zu setzen, um neue Elemente in das Array einzufügen. Alternativ lässt sich auch der Befehl APPEND TO ARRAY verwenden, um gleichzeitig den Arraytyp zu setzen und das Einfügen von Elementen zu starten.

In einer Listbox vom Typ Array die Spalte "Vorname" zur Eingabe des 2. Vornamens duplizieren

Der Code der Schaltfläche lautet:

 ARRAY TEXT(arrFirstNames2;Records in table([Mitglieder]))
 LISTBOX DUPLICATE COLUMN(*;"column2";3;"col2bis";arrFirstNames2;"FirstNameA";vHead2A)
 OBJECT SET TITLE(*;"FirstNameA";"2. Vorname")
 EDIT ITEM(*;"col2A";0)

Klicken Sie auf die Schaltfläche am unteren Rand, erhalten Sie folgende Listbox:

Eine Spalte vom Typ Boolean duplizieren und ihren Titel ändern:

 C_POINTER($ptr)
 LISTBOX DUPLICATE COLUMN(*;"boolCol";3;"duplBoolCol";$ptr;"duplBoolHeader";$ptr;"duplBoolFooter";$ptr)
 colprt:=OBJECT Get pointer(Object named;"duplBoolCol")
 ARRAY BOOLEAN(colprt->;10)
 headprt:=OBJECT Get pointer(Object named;"duplBoolHeader")
 OBJECT SET TITLE(headprt->;"Neue duplizierte Spalte")



Siehe auch 

LISTBOX MOVE COLUMN

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Listbox
Nummer: 1273

 
GESCHICHTE 

Erstellt: 4D v14
Geändert: 4D v14 R3

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)