| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- DEF VAR ii AS INT.
- DEFINE VARIABLE iSf AS INTEGER NO-UNDO.
- DEFINE VARIABLE lFound AS LOGICAL NO-UNDO.
- DEFINE VARIABLE cFirma AS CHARACTER NO-UNDO INIT '1000'.
- DEFINE TEMP-TABLE tHoReLager LIKE HoReLager
- FIELD lBenutzt AS LOG
-
- INDEX tHoReLager-k1 IS PRIMARY
- Firma
- Art
- Lager
- Regal
- Platz
- Niveau
- Sf
- INDEX tHoReLager-k3
- Firma
- Art
- Lager
- Artnr
- Inhalt
- Jahr
- .
- DEFINE TEMP-TABLE tExcel
- FIELD cRegal AS CHARACTER /* Spalte A */
- FIELD cPlatz AS CHARACTER /* Spalte B */
- FIELD cNiveau AS CHARACTER /* Spalte C */
- FIELD iArtnr AS INTEGER /* Spalte D */
- FIELD cBez AS CHARACTER /* Spalte E */
- FIELD iJahr AS INTEGER /* Spalte F */
- FIELD AlkGehalt AS CHARACTER /* Spalte G */
- FIELD cGebinde AS CHARACTER /* Spalte H */
- FIELD iBestand AS CHARACTER /* Spalte I */
- FIELD cSf AS CHARACTER
-
- INDEX tExcel-k1 IS PRIMARY
- cRegal
- cPlatz
- cNiveau
- cSf
- .
- /* FOR EACH HoReLager: */
- /* DELETE HoReLager. */
- /* END. */
- DISABLE TRIGGERS FOR LOAD OF ArtLager.
- FOR EACH HoReLager NO-LOCK
- WHERE HoReLager.Firma = cFirma:
-
- CREATE tHoReLager.
- BUFFER-COPY HoReLager TO tHoReLager
- ASSIGN tHoReLager.lBenutzt = FALSE
- tHoReLager.Sf = ''
- tHoReLager.iStatus = 0.
- IF HoReLager.Artnr = 0 THEN NEXT.
-
- ASSIGN tHoReLager.iStatus = 1
- tHoReLager.lBenutzt = TRUE.
-
- FIND FIRST ArtLager OF HoReLager NO-ERROR.
- IF AVAILABLE ArtLager THEN ArtLager.Ort = ''.
- END.
- INPUT FROM 'C:\Entwicklung\TEMP\Huber\Lagerliste_20201229_1.csv' NO-MAP NO-CONVERT.
- REPEAT TRANSACTION ON STOP UNDO, LEAVE:
- CREATE tExcel.
- IMPORT DELIMITER ';' tExcel.
- ii = ii + 1.
- END.
- INPUT CLOSE.
- MESSAGE ii
- VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
- FOR EACH tExcel
- WHERE tExcel.cRegal <> ''
- AND tExcel.cNiveau <> ''
- AND tExcel.cPlatz <> ''
- AND tExcel.iArtnr > 0
- :
-
- /* lFound = FALSE. */
- /* FOR EACH tHoReLager USE-INDEX tHoReLager-k3 */
- /* WHERE tHoReLager.Firma = cFirma */
- /* AND tHoReLager.Art = 1 */
- /* AND tHoReLager.Lager = 0 */
- /* AND tHoReLager.Artnr = tExcel.iArtnr */
- /* AND tHoReLager.Regal = tExcel.cRegal */
- /* AND tHoReLager.Platz = tExcel.cPlatz */
- /* AND tHoReLager.Niveau = tExcel.cNiveau : */
- /* lFound = TRUE. */
- /* LEAVE. */
- /* END. */
- /* IF lFound THEN DO: /* Artikel an diesem Platz bereits vorhanden */ */
- /* tHoReLager.lBenutzt = TRUE. */
- /* NEXT. */
- /* END. */
- /* */
- /* FIND FIRST tHoReLager USE-INDEX tHoReLager-k3 */
- /* WHERE tHoReLager.Firma = cFirma */
- /* AND tHoReLager.Art = 1 */
- /* AND tHoReLager.Lager = 0 */
- /* AND tHoReLager.Artnr = tExcel.iArtnr NO-ERROR. */
- /* IF AVAILABLE tHoReLager THEN DO: /* Artikel an einem anderen Platz vorhanden */ */
- /* DELETE tHoReLager. */
- /* ii = ii + 1. */
- /* END. */
- CREATE tHoReLager.
- ASSIGN tHoReLager.Firma = cFirma
- tHoReLager.Lager = 0
- tHoReLager.Art = 1
- tHoReLager.Regal = tExcel.cRegal
- tHoReLager.Platz = tExcel.cPlatz
- tHoReLager.Niveau = tExcel.cNiveau
- tHoReLager.Artnr = tExcel.iArtnr
- tHoReLager.Jahr = tExcel.iJahr
- tHoReLager.iStatus = (IF tExcel.iArtnr = 0 THEN 0 ELSE 1)
- tHoReLager.lBenutzt = TRUE.
- END.
- FOR EACH HoReLager
- WHERE HoReLager.Firma = cFirma
- AND HoReLager.Art = 1
- AND HoReLager.Lager = 0:
- DELETE HoReLager.
- END.
- FOR EACH tHoReLager
- BREAK BY tHoReLager.Regal
- BY tHoReLager.Platz
- BY tHoReLager.Niveau
- BY tHoReLager.Artnr:
- IF FIRST-OF ( tHoReLager.Niveau ) AND
- LAST-OF ( tHoReLager.Niveau ) THEN DO:
- CREATE HoReLager.
- BUFFER-COPY tHoReLager
- EXCEPT Sf HoReLager_Id
- TO HoReLager
- ASSIGN HoReLager.Sf = ''.
- NEXT.
- END.
-
- IF FIRST-OF ( tHoReLager.Niveau ) THEN iSf = 0.
- iSf = iSf + 1.
- CREATE HoReLager.
- BUFFER-COPY tHoReLager
- EXCEPT Sf HoReLager_Id
- TO HoReLager
- ASSIGN HoReLager.Sf = STRING(iSf,'99').
- END.
- FOR EACH HoReLager
- WHERE HoReLager.Firma = cFirma
- AND HoReLager.Art = 1
- AND HoReLager.Lager = 0:
-
- HoReLager.cSort = SUBSTITUTE('&1-&2-&3', HoReLager.Regal, HoReLager.Platz, HoReLager.Niveau).
- IF HoReLager.Sf <> '' THEN HoReLager.cSort = HoReLager.cSort + '-' + HoReLager.Sf.
- IF HoReLager.Artnr = 0 THEN NEXT.
-
- FOR EACH ArtLager
- WHERE ArtLager.Firma = cFirma
- AND ArtLager.Lager = HoReLager.Lager
- AND ArtLager.Artnr = HoReLager.Artnr:
- ArtLager.Ort = HoReLager.cSort.
- END.
- END.
|