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.