6.1 Arrayzuordnungen für ScrolledTabList in Dialogen
Aufbau der GritId
EKA751
„EKA751_D_Txx“
D
Dialognummer
Txx
letzter Teil des GritIds der ScrolledTabList
Die ScrolledTab-Listen haben 2 verschiedene Aufbauten und entsprechend verschiedene Zugriffsmechanismen. Der Unterschied ist aus dem Zeichen „T“ ersichtlich.
T
xx
Bedeutung
G
AB
Gelesene Positionen der ausgewählten Bestellung (Auftrags) im Register „aus Bestellung“ (links)
R
AB
Übernommene Positionen der ausgewählten Bestellung (Auftrags) im Register „aus Bestellung“ (rechts)
G
AL
Gelesene Positionen der ausgewählten Wareneingänge im Register „aus Wareneingang“ (links)
R
AL
Übernommene Positionen der ausgewählten Wareneingänge im Register „aus Wareneingang“ (rechts)
R
EM
Alle Positionen der Rechnung im Register „Prüfung“
EKA745
Nur eine STL: EKA745_1_PRK, wird wie EKA751_3_GAL behandelt. Intern sind die Daten in den Arrays wie 751 für GAL (siehe unten). 
Anzuzeigende Felder für ScrolledTabList „acpbSTLfld_Txx“
Dieses Array dient der Anzeige der Daten. Es enthält alle Felder, die in der ScrolledTabList angezeigt werden. Diese Felder werden aus den entsprechenden INI-Einträgen im Programm eingelesen. Die Angaben sind für jede ScrolledTabList für die Anzeige der Positionsdaten zwingend.
acpbSTL_Txx
column
row
[0]
[1]
[2]
[3]
[4]
[5]
Index in der ScrolledTabList = Reihenfolge der Felder
Spaltenüberschrift
Dateinummer des Feldes
Feldnummer bzw. Position im Puffer 255
Anzeigeformat
Nummer des Feldes aus dem INI-Eintrag
TRIM:
0 = nicht,
1 = TRIM
Gelesene Positionen für ScrolledTabList „acpbSTL_Gxx“ AB und AL
Dieses Array dient der Übernahme der Daten. Es enthält alle Positionen des Auftrags / der Wareneingänge eines Lieferscheins oder einer Bestellung.
745: Im Array acpbSTL_GAL sind die aktuellen Daten, im Array acpbSTL_GAB die geretteten für „Rückgängig“.
acpbSTL_Gxx
column
row
[0]
[1]
[2]
[3]
[4]
Index der ScrolledTabList
Verweis auf row im Array acpbBP
Rechnungsposition zu der Bestellposition (Satzaufbau wie D128, scsBFrep)
Bewegung (scsBFbew) wenn aus Wareneingang und 745, sonst leer
nur 745 (acpbSTL_GAL 751 im acpbSTL_REM[4]) Teil/Lieferantenbeziehung aktualisieren 0/1  (in scsErf Pis. 1441,60)
row 1. Zu-/ab zu Position: im Array acpbD129
Verweise auf Rechnungspositionen für ScrolledTabList „acpbSTL_Rxx“ AB, AL und EM
Dieses Array dient der Synchronisation zwischen der ScrolledTabList und den Daten. Die Arrays RAB und RAL sind Untermengen der ausgewählten und übernommenen Positionen des Auftrags bzw. der Wareneingänge aus dem Array REM.
acpbSTL_Rxx
column
row
[0]
[1]
Index der ScrolledTabList
Verweis auf row im Array acpbBP
Verweis auf row im Array acpbRE
Weitere Arrays mit Daten zu den ScrolledTabList
Bestellpositionen und Daten „acpbBP“
Dieses Array enthält die Daten der zu den Rechnungspositionen zugeordneter Bestellposition (n Rechnungspositionen zu 1er Bestell-/Wareneingangsposition).
acpbBP
column
row
[0]
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8)
3-dim
---
[0]
[1]
---
---
---
---
---
---
---
interner Index
Anzahl der zugehörigen Rechnungs-
positionen in allen
acpbSTL
_Rxx
aktuelle Bestell-
position (D107), leer (““) wenn manuell erfasst
gelesene
Bestell-
position
(D107),
leer (““)
wenn
manuell
erfasst
Disposition
(D023),
leer(““
wenn
manuell
erfasst
Teil
(D006)
Teil-EKA (D104)
Teil-
Lieferfant-
Beziehung (D116)
Teil-MWI (D027)
Lager (D024)
1. Textzeile nach Position mit selben PosNr, nur 755 und [EKA755] BuText = 1
 
Rechnungspositionen und ggf. zugehörige Bewegungen „acpbRE“
Dieses Array enthält die eigentlichen Rechnungspositionen. Jede Position kann in mehreren ScrolledTabList vorkommen.
acpbRE
column
row
[0]
[1]
[2]
[3]
[4]
[5]
[6]
[7]
3-dim
---
[0]
[1]
[2]
---
[0]
[1]
---
---
---
---
interner Index
Anzahl der Rechnungs-
positionen in allen acpbSTL_
Rxx, wenn = 0 und gelesen beim Zurück-
schreiben löschen bzw. nicht schreiben je nach ISN
aktuelle Rechnungs-
position
(D128) (scsBFrep)
gelesene
oder
initialisierte
leere) Rechnungs-
position (scsBFrep)
nur 753
und 755,
gelesene Rechnungs-
position in
LW (scsBF
repLW)
ISN oder 0 wenn neu
aktuelle Bewegung (scsBFbew) wenn aus Waren-
eingang, sonst leer
gelesene Bewegung (scsBFbew) wenn aus Waren-
eingang, sonst leer
nur 751
(acpbSTL_
REM,
745 im
acpbSTL_
GAL[3])
aus
Waren-
eingang:
Teil/
Lieferanten-
beziehung aktualisieren 0/1  und AH-
Rückmeldung (in scsErf Pis. 1441,60)
nur 753 und 755, Info laut Puffer 255, PIS 2477 ff.
row 1. Zu-/ab zu Position: im Array acpbD129
gerettete Position für Restore
 
Bestellköpfe und Zu-/Abschläge „acpbBST“
In diesem Array wird die Bestellung verwaltet. Die Anzahl der Rechnungspositionen je Bestellung wird gepflegt. Bei neuer Bestellung wird der Kopf abgestellt und die Z-Zeilen eingelesen.
acpbBST
Column
row
[0]
[1]
[2]
[3]
[4]
[5]
3-dim
---
---
---
---
---
so viel wie Z-Zeilen in Bestellung
interner Index
Anzahl der Rechnungspositionen je Bestellung in acpbSTL_Rxx, 0 = keine Positionen aus der Bestellung
Bestellung (Vorgangsart + Auftragsnummer)
0 = sperren
1 = vorbemerkt für Update, Kopf „gelockt“
2 = Kopf von anderem Benutzer gesperrt, kein Update auf Bestellung
3 = nicht vorhanden
Bestellkopf (scsBFbko)
Anzahl Z-Zeilen
Z-Zeilen der Bestellung (scsBFzpo)
Behandlung der Arrays
Array
STL_GAB
STL_RAB
STL_REM
BP
RE
Aktion
->BP
Satz R
->BP
->RE
->BP
->RE
Anz
Sätze
Anz
Satz R
ISN
lesen R
 
 
 
 
 
 
6. +
+
 
3. +
 
+
4. suchen rowBP
 
3. =1
5. +1
 
aus R
1. +1
+
2. suchen B
n
lesen B
 
 
 
 
3. +
+
 
 
 
 
 
 
 
7. +
 
 
 
 
 
 
 
+
 
 
 
 
4. suchen B
 
 
 
 
 
2. =0
6. +1
1. suchen B
aus B
 
 
 
 
 
5. +1
.
x
übernehmen aus GAB
1. >
 
 
 
5. +
4. suchen in RE
+
 
 
 
7. +
6. suchen in RE
+
3. +2
 
2. =2
+ aus GAB
0
löschen RAB
 
 
1. rows
5. del_row
 
 
6. del_row
2. über rowRE suchen
3. -2
 
4. -2
 
 
löschen REM
 
 
5. del_row
2. über rowRE suchen
1. rows
8. del_row
 
3. -2
6. -1
 
4. -2
7. -1
 
 
Einlesen Rechnung in STL_REM
Alle Positionen der Rechnung, übrige STL_XXX sind leer.
 
anhängen ins „RE“, Anzahl RE + 1, rowREnew
 
suchen Bestellposition im „RE“ rückwärts, rowRE
 
- wenn nicht vorhanden im „BP“ anhängen (Anzahl „BP“ = 1), rowBP
 
nur wenn vorhanden
 
- suchen in „STL_REM“ mit rowRE, rowBP
 
- Anzahl „BP“ + 1
 
anhängen in „STL_REM“ mit Vereis rowREnew und rowBP
Einlesen Bestellung in STL_GAB
Alle Positionen der Bestellung abstellen, ggf. vorhandenen Positionen aus der Bestellung müssen auch in STL_RAB angezeigt werden.
 
suchen Bestellposition in „BP“: rowBP
 
- wenn nicht vorhanden in „BP“ row anhängen (Anzahl „BP“ = 0), rowBP
 
anhängen ins „STL_GAB“ mit Verweis an „BP“, Anzeigen
 
suchen in „STL_REM“ nach Bestellposition über rowBP, rowRE
 
nur wenn im „STL_REM“ vorhanden
 
- Anzahl „RE“ +1
 
- Anzahl „BP“ +1
 
- dann im „STL_RAB“ anhängen mit rowBP und rowRE, Anzeigen
Übernehmen aus STL_GAB
Position muss in STL_RAB und STL_REM angezeigt werden.
 
aus „STL_GAB“ Satz und rowBP
 
in „RE“ anhängen, Anzahl „RE“ = 2, rowRE
 
Anzahl „BP“ +2
 
suchen wo im „STL_RAB“ einfügen (über „STL_RAB“ in „RE“), rowRAB
 
in „STL_RAB“ einfügen; Verweise auf rowRE und rowBP
 
suchen wo im „STL_REM“ einfügen (über „STL_REM“ in „RE“), rowREM
 
in „STL_REM“ einfügen; Verweise auf rowRE und rowBP
Position Löschen über STL_RAB
Position wird auch aus STL_REM entfernt.
 
über Zeilenindex aus row in „STL_RAB“ rowRE und rowBP holen
 
in „STL_REM“ über rowRE Zeile in „STL_REM“ suchen, rowREM
 
Anzahl „BP“ -2
 
Anzahl „RE“ -2
 
„STL_RAB“ löschen
 
„STL_REM“ löschen
Position Löschen über STL_REM
ggf. muss Position auch aus STL_RAB entfernt werden.
 
über Zeilenindex aus row in „STL_REM“ rowRE und rowBP holen
 
in „STL_RAB“ über rowRE Zeile in „STL_RAB“ suchen, rowRAB
 
- wenn vorhanden
 
- Anzahl „BP“ -2
 
- Anzahl „RE“ -2
 
- „STL_RAB“ löschen
 
- wenn nicht vorhanden
 
- Anzahl „BP“ -1
 
- Anzahl „RE“ -1
 
„STL_REM“ löschen
Einfügen
Anhängen ins „RE“
Wenn Bestellposition noch nicht im „BP“ vorhanden, row anhängen (Anzahl = 1) oder in vorhandenen row Anzahl erhöhen.
In allen nötigen „STL_xxx“ row mit Vereisen auf „RE“ und „BP“ einfügen, Anzahl in „RE“ jedes Mal erhöhen, anzeigen
Markieren
Über Zeilenindex „ScrolledTabList“ im Dialog aus row = Zeilenindex in „STL_xxx“ row mit Verweisen auf  Daten holen.