Listen von IDs des Typs IDType
Listen von IDs des Typs IDType
static IDTypeList idtypelist::alloc(int panelID = 0, int selection_type = 0)
Erzeuge eine neue Liste von IDs. Ist eine gültige Paletten-ID angegeben, wird die Liste mit den gewünschten IDs der dieser Palette gefüllt. Die Liste muss mit idtypelist::release wieder gelöscht werden.
Bei Angabe einer Palette-ID ermittelt die Funktion lediglich die IDs der gefundenen Objekte. Wenn Sie weitere Informationen über die gefundenenn Objekte benötigen, z.B. die URL einer Publikation, müssen die Objekte mit Hilfe der Funktion list::alloc ermittelt werden. Mit der so definierten Liste können mit Hilfe der Funktionen list::gettext, list::getint und list::getint weitere objekt-spezifische Daten erfragt werden.
Name | Typ | Default | Beschreibung |
Return | IDTypeList | Neue Liste für IDs des Typs IDType. Ist eine gültige Paletten-ID angegeben, wird die Liste mit den gewünschten IDs dieser Palette gefüllt. | |
panelID | int | - | KlassenID der Palette Die folgenden Paletten werden unterstützt:
|
selection_type | int | kAll | Welche Datensätze sollen ermittelt werden? kAll : Alle Datensätze der Palette kEyeMarked : Nur die mit dem Auge markierten Datensätze der Palette kSelected : Nur die selektierten Einträge der Palette |
Schreibe alle ausgewählten Einträge der Publikationspalette ins Logfile.
int main () { IDTypeList publications = idtypelist::alloc (kPanelPublications, kSelected); IDType id;
// Collect all selected documents // Loop over all selected entries of the publication panel // for (id = idtypelist::first (publications); id; id = idtypelist::next (publications)) { wlog ("", "%s", ittype::stringid (id)); }
idtypelist::alloc (publications);
return 0; }
Ein etwas ausgefeilteres Beispiel, das alle in der Auswahl enthaltenen Dokumente sammelt, finden Sie hier.
publication.2.html#dive_into>publication::dive_into
static int idtypelist::release(IDTypeList li, int releaseItems = 1)
Lösche eine mit idtypelist::alloc erzeugte Liste wieder.
Name | Typ | Default | Beschreibung |
li | IDTypeList | - | Zu löschende Liste |
releaseItems | int | 1 | Sollen die IDs der Liste ebenfalls gelöscht werden? 1 : Ja 0 : Nein, Listeneinträge nicht löschen |
static int idtypelist::length(IDTypeList li)
Ermittle die Anzahl der Elemente einer Liste
Name | Typ | Default | Beschreibung |
Return | int | Anzahl der Einträge der Liste | |
li | IDTypeList | - | Liste |
static IDType idtypelist::first(IDTypeList li)
Hole den ersten Eintrag einer nichtleeren einer IDTypeListe
Name | Typ | Default | Beschreibung |
Return | IDType | Erster Wert der Liste. | |
li | IDTypeList | - | Liste mit mindestens einem Element |
static IDType idtypelist::next(IDTypeList li)
Hole den nächsten Eintrag einer Liste.
Name | Typ | Default | Beschreibung |
Return | IDType | Nächster Wert der Liste. | |
li | IDTypeList | - | Liste mit mindestens einem Element nach dem aktuellen Listenzeiger |
static IDType idtypelist::prev(IDTypeList li)
Hole den vorherigen Eintrag einer Liste.
Name | Typ | Default | Beschreibung |
Return | IDType | Wert der Vorgängers in der Liste. | |
li | IDTypeList | - | Liste mit mindestens einem Element nach dem aktuellen Listenzeiger |
static IDType idtypelist::last(IDTypeList li)
Hole den letzten Eintrag einer nichtleeren einer Liste
Name | Typ | Default | Beschreibung |
Return | IDType | Letzter Wert der Liste. | |
li | IDTypeList | - | Liste mit mindestens einem Element |
static int idtypelist::get_pos(
IDTypeList li,
IDType val,
int setPos = 0)
Suche die Position eines gegebenen IDType-Wertes in der Liste. Wird der Wert nicht gefunden, gibt die Funktion -1 zurück. Listenposition sind 0-basiert, das erste Element hat also die Position 0, das letzte die Position length-1.
Name | Typ | Default | Beschreibung |
Return | int | >= 0 : Erstes Auftreten des Wertes in der Liste -1 : Wert nicht gefunden |
|
li | IDTypeList | - | Liste, in der der Wert gesucht werden soll |
val | IDType | - | Dieser Wert wird gesucht |
setPos | int | 0 | 0 : Listenposition unverändert lassen 1 : Aktuelle Listenposition auf Fundstelle setzen |
static int idtypelist::find(
IDTypeList li,
int val,
int setPos = 0)
Suche nach der Position einer bestimmten ID1 in der Liste. Wird der Wert nicht gefunden, gibt die Funktion -1 zurück. Listenposition sind 0-basiert, das erste Element hat also die Position 0, das letzte die Position length-1.
Im Gegensatz zu get_pos müssen Sie hier nicht die gesamte ID wissen sonder nur deren ersten Wert. Die Liste kann damit als einfaches Key-Value-Mapping verwendet werden.
Die id1-Werte der Liste müssen eindeutig sein!
Name | Typ | Default | Beschreibung |
Return | int | >= 0 : Erstes Auftreten des Wertes in der Liste -1 : Wert nicht gefunden |
|
li | IDTypeList | - | Liste, in der der Wert gesucht werden soll |
val | int | - | Dieser Wert wird gesucht |
setPos | int | 0 | 0 : Listenposition unverändert lassen 1 : Aktuelle Listenposition auf Fundstelle setzen |
static int idtypelist::find_id2(
IDTypeList li,
int val,
int setPos = 0)
Suche nach der Position einer bestimmten ID1 in der Liste und gib das zugehörige ID2 zurück. Wird der Wert nicht gefunden, gibt die Funktion -1 zurück. Die Funktion wird also für Key-Values mit Werten gleich -1 nicht funktionieren. Verwenden Sie in diesem Fall die Funktion find!
Die id1-Werte der Liste müssen eindeutig sein!
Name | Typ | Default | Beschreibung |
Return | int | >= 0 : Gefundener Wert id2 der Liste -1 : Wert nicht gefunden |
|
li | IDTypeList | - | Liste, in der der Wert gesucht werden soll |
val | int | - | Dieser Wert wird gesucht |
setPos | int | 0 | 0 : Listenposition unverändert lassen 1 : Aktuelle Listenposition auf Fundstelle setzen |
static IDType idtypelist::get(
IDTypeList li,
int pos,
int setPos= 0)
Hole das i-te Element der Liste. Listenposition sind 0-basiert, das erste Element hat also die Position 0, das letzte die Position length-1.
Name | Typ | Default | Beschreibung |
Return | IDType | Wert der Liste an der Stelle i oder 0. | |
li | IDTypeList | - | Liste, aus der das Element geholt werden soll |
pos | int | - | 0-basierte Listenposition |
setPos | int | 0 | 0 : Listenposition unverändert lassen 1 : Aktuelle Listenposition auf pos setzen |
static int idtypelist::append(IDTypeList li, IDType ID)
Element an die Liste anfügen. In die Liste wird eine ID mit den Werten der gegebenen ID eingefügt, nicht die ID selbst. Spätere Änderungen an der übergebenen ID ändern das eigefügte Objekt nicht mehr.
Name | Typ | Default | Beschreibung |
Return | IDType | angefügtes neu erzeugtes Objekt oder 0 | |
li | IDTypeList | - | Liste, an die angefügt werden soll |
⇨ Werte aus einem IDType-Objekt übernehmen | |||
ID | IDType | - | ID mit den Werten für das anzufügendene Objekt |
⇨ Werte direkt übergeben | |||
id1 | int | - | Erste Zahl der neuen ID |
id2 | int | - | Zweite Zahl der neuen ID |
id3 | int | - | Dritte Zahl der neuen ID |
strid | String oder char* | - | StringID der neuen ID |
static int idtypelist::insert(
IDTypeList li,
int pos,
IDType val)
Element in die Liste einfügen. In die Liste wird eine ID mit den Werten der gegebenen ID eingefügt, nicht die ID selbst. Spätere Änderungen an der übergebenen ID ändern das eigefügte Objekt nicht mehr.
Name | Typ | Default | Beschreibung |
Return | int | eingefügtes neu erzeugtes Objekt oder 0 | |
li | IDTypeList | - | Liste, in dieeingefügt werden soll |
pos | int | - | 0-basierte Einfügestelle Werte < 0 oder >= length : Anfügen sonst : An dieser Listenposition einfügen |
⇨ Werte aus einem IDType-Objekt übernehmen | |||
ID | IDType | - | ID mit den Werten für das einzufügendene Objekt |
⇨ Werte direkt übergeben | |||
id1 | int | - | Erste Zahl der neuen ID |
id2 | int | - | Zweite Zahl der neuen ID |
id3 | int | - | Dritte Zahl der neuen ID |
strid | String oder char* | - | StringID der neuen ID |
static int idtypelist::remove(IDTypeList li, IDType val)
Entferne dieses Objekt aus der Liste .Der Eintrag wird nicht gelöscht. Es wird nur der erste gefundene Eintrag aus der Liste entfernt.
Name | Typ | Default | Beschreibung |
Return | int | 1 : Aktion erfolgreich 0 : sonst |
|
li | IDTypeList | - | Liste, aus der gelöscht werden soll |
val | IDType | - | Wert, der aus der Liste entfernt werden soll |
static IDType idtypelist::remove_pos(IDTypeList li, int pos)
Entferne eine Position aus der Liste. Listenposition sind 0-basiert, das erste Element hat also die Position 0, das letzte die Position length-1. Der aus der Liste entfernte Eintrag wird nicht automatisch gelöscht.
Name | Typ | Default | Beschreibung |
Return | IDType | Aus der Liste entfernter Eintrag oder 0 | |
li | IDTypeList | - | Liste |
pos | int | - | 0-basierte Löschposition |
Ein aus einer idtypelist mit idtypelist::remove_pos entfernter Eintrag wird nicht automatisch selbst gelöscht. Mit idtype::release kann der Eintrag gelöscht werden. ACHTUNG: Umgekehrt führt das Löschen einer IDTypes-Variable, die in einer Liste verwendet wird, zu einem nicht definierten Listenobjekt!
id = idtypelist::remove_pos (0); if (id) idtype::release (id);
static int idtypelist::clear(IDTypeList li, int releaseItems = 1)
Entferne alle Elemente der Liste
Name | Typ | Default | Beschreibung |
Return | int | 1 : Aktion erfolgreich 0 : sonst |
|
li | IDTypeList | - | Liste |
releaseItems | int | 1 | Sollen die aus der Liste entfernten Objekte gleich gelöscht werden? 1 : Ja 0 : Nein, Listeneinträge nicht löschen |
int idtypelist::sort(
IDTypeList li,
int sortBy = 1,
int direction = 0)
Sortiere die Liste.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
li | IDTypeList | - | Liste, die sortiert werden soll |
sortBy | int | 1 | Nach welchen Werten soll sortiert werden? 1 : ID 2 : ID2 3 : ID3 4 : StringID |
direction | int | 0 | Sortierreihenfolge 0 : aufsteigend 2 : absteigend |
Anlegen einer Liste mit drei Einträgen. Die Einträge werden danach sortiert.
int wid (IDType id) { if (id) { wlog ("", " %d, %d, %d, '%s'\n", idtype::id (id), idtype::id2 (id), idtype::id3 (id), idtype::stringid (id)); }
return 0; }
int main () { IDTypeList li = idtypelist::alloc (); IDType id;
id = idtype::alloc (18, 3, 1962, "Tilly"); idtypelist::append (li, id); id = idtype::alloc (9, 4, 1963, "Bastel"); idtypelist::append (li, id); id = idtype::alloc (14, 1, 1961, "Matth"); idtypelist::append (li, id);
wlog ("", "Unsortiert\n"); for (id = idtypelist::first (li); id; id = idtypelist::next (li)) wid (id);
idtypelist::sort (li, 1, 0); wlog ("", "Sortiert nach id1\n"); for (id = idtypelist::first (li); id; id = idtypelist::next (li)) wid (id);
idtypelist::sort (li, 2, 0); wlog ("", "Sortiert nach id2\n"); for (id = idtypelist::first (li); id; id = idtypelist::next (li)) wid (id);
idtypelist::sort (li, 4, 0); wlog ("", "Sortiert nach stringid\n"); for (id = idtypelist::first (li); id; id = idtypelist::next (li)) wid (id);
idtypelist::sort (li, 1, 1); wlog ("", "Absteigend sortiert nach id1\n"); for (id = idtypelist::first (li); id; id = idtypelist::next (li)) wid (id);
idtypelist::sort (li, 2, 1); wlog ("", "Absteigend sortiert nach id2\n"); for (id = idtypelist::first (li); id; id = idtypelist::next (li)) wid (id);
idtypelist::sort (li, 4, 1); wlog ("", "Absteigend sortiert nach stringid\n"); for (id = idtypelist::first (li); id; id = idtypelist::next (li)) wid (id);
return 0; }
static IDTypeList idtypelist::get_from_panel(
IDTypeList li,
int panelID,
int selection_type = 0)
Fülle die Liste mit den gewünschten IDs der angegebenen Palette.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
li | IDTypeList | - | allokierte IDTypeList |
panelID | int | - | KlassenID der Palette Die folgenden Paletten werden unterstützt:
|
selection_type | int | kAll | Welche Datensätze sollen ermittelt werden? kAll : Alle Datensätze der Palette kEyeMarked : Nur die mit dem Auge markierten Datensätze der Palette kSelected : Nur die selektierten Einträge der Palette |
static IDTypeList idtypelist::mark_in_panel(
int panelID,
IDTypeList li = 0,
int state = 1,
int type = -1L,
int isText = -1L,
int plid = -1L,
int pnum = -1L,
ItemRef frameRef = 0,
int inOverset = -1L,
int start = -1L,
int len = -1L)
Ändern der Markierung von Paletteneinträgen (Auge, Startflagge).
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
panelID | int | - | KlassenID der Palette Die folgenden Paletten werden unterstützt:
|
li | IDTypeList | 0 | Liste der Einträge, deren Status geändert werden soll 0 oder leer : alle Einträge der Palette |
state | int | 1 | 0 : Markierung entfernen 1 : Markierung setzen |
⇨ Die folgenden Parameter werden nur in der Aufgabenpalette (kPanelToDoList) ausgewertet. Die Eigenschaften werden auf UND geprüft. | |||
type | int | -1 | Objekttyp -1 beliebig 1 : Datenbank 2 : Platzhalter |
isText | int | -1 | Text oder Rahmen? -1 beliebig 0 : Rahmen 1 : Text |
plid | int | -1 | Platzhalter-ID. Es kann immer nur ein Platzhalter angegeben werden. Wollen Sie die Einträge mehrerer Platzhalter
markieren, muss die Funktion mehrfach aufgerufen werden. -1 : beliebig |
pnum | int | -1 | Seitennummer (1-basiert). Es kann immer nur eine Seitennummer angegeben werden. Wollen Sie die Einträge mehrerer Seiten
markieren, muss die Funktion mehrfach aufgerufen werden. -1 : beliebig |
frameRef | int | 0 | Rahmenreferenz. Es kann immer nur ein Rahmen angegeben werden. Wollen Sie die Einträge mehrerer Rahmen
markieren, muss die Funktion mehrfach aufgerufen werden. 0 : beliebig |
start, len | int, int | -1,0 | Textbereich. Es kann immer nur ein Textbereich angegeben werden. Wollen Sie die Einträge mehrerer Bereiche
markieren, muss die Funktion mehrfach aufgerufen werden. -1, 0 : beliebig |
Markiere alle Einträge der Publikationspalette.
#include "internal/panels.h"
int main () { idtypelist::mark_in_panel (kPanelPublications, 0, 1);
return 0; }
Markiere alle Produkte mit einer bestimmten ID.
#include "internal/panels.h"
int main () { IDTypeList li = idtypelist::alloc ();
idtypelist::append (li, 120, 1401, 1702, "abc'120");
idtypelist::mark_in_panel (kPanelProducts, 0, 0); idtypelist::mark_in_panel (kPanelProducts, li, 1);
return 0; }
Markiere alle geänderten Textplatzhalter, die den Bereich [17, 36] des aktuellen Rahmen schneiden.
#include "internal/panels.h" int main () { IDTypeList li = idtypelist::alloc ();
idtypelist::mark_in_panel (kPanelToDoList, 0, 0); idtypelist::mark_in_panel (kPanelToDoList, 0, 1, 2, // type -1, // istext -1, // plid -1, // pnum gFrame, // frame -1, // isOverset 17, // start 29 // len );
return 0; }
static char* idtypelist::to_xml(IDTypeList list, char* rootElementName = "recordids")
Generiere die XML Struktur eines IDTypeList-Objekts.
Wenn Sie über die Verwendung dieser Funktion nachdenken, sind Sie möglicherweise an näheren Informationen zur Interaktion von cscript mit auf dem PubServer als PlugIn bereitgestellten Java-Methoden interessiert. Mehr Informationen dazu finden Sie hier.
Name | Typ | Default | Beschreibung |
Return | char * | xml string oder 0 bei Fehlern. Der Ergebnisstring ist nur bis zum nächsten Aufruf einer to_xml-Funktion gültig und darf nicht verändert oder freigegeben werden. | |
list | IDTypeList | - | Object |
rootElementName | String oder char* | recordids | Name des Root-Elements |
static IDTypeList idtypelist::from_xml(char* xml)
Generiere eine IDTypeList-Objekt aus einer XML Struktur.
Wenn Sie über die Verwendung dieser Funktion nachdenken, sind Sie möglicherweise an näheren Informationen zur Interaktion von cscript mit auf dem PubServer als PlugIn bereitgestellten Java-Methoden interessiert. Mehr Informationen dazu finden Sie hier.
Name | Typ | Default | Beschreibung |
Return | IDTypeList | Objekt vom Typ IDTypeList. Dieses Objekt muss mit idtypelist::release wieder freigegeben werden. | |
xml | String oder char* | - | xml string |
static int idtypelist::add_all(
IDTypeList target,
IDTypeList src,
int deleteFromSource)
Füge alle Elemente der Liste src in die Liste target ein. Bei deleteFromSource != 0 werden die Elemente aus der Quellliste entfernt (aber nicht freigegeben)
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode. | |
target | IDTypeList - | Zielliste | |
src | IDTypeList - | Quellliste | |
deleteFromSource | 0 | Elemente aus der Quelliste entfernen |
static int idtypelist::get_responsibles()
Hole die Liste, in der die Namen der Personen enthalten sind, die als Zuständige einer Comet-Notiz eingetragen werden können. Die Liste wird durch diesen Aufruf nicht automatisch gefüllt!
Tragen Sie in diese Liste alle Namen von Zuständigen für Comet-Notizen ein. Informationen zu Zuständigkeiten für Comet-Notizen finden Sie hier. Für die Einträge der Liste gilt:
Die Liste darf nicht gelöscht werden! Beim Trennen der aktuellen Datenverbindung wird die Liste automatisch geleert.
Name | Typ | Default | Beschreibung |
Return | IDTypeList | Gültige Liste für die Namen für Zuständigkeiten von Comet-Notizen |
idtypelist::append (idtypelist::get_responsibles (), 1, 0, 0, "aaa"); idtypelist::append (idtypelist::get_responsibles (), 2, 0, 0, "bbb"); idtypelist::append (idtypelist::get_responsibles (), 3, 0, 0, "ccc"); idtypelist::append (idtypelist::get_responsibles (), 4, 1, 0, "Geneviève");
Alphabetic index HTML hierarchy of classes or Java