| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 |
- /* Export der eShop-Artikel */
- DEFINE VARIABLE hBuffer AS HANDLE.
- DEFINE VARIABLE ix AS INTEGER.
- DEFINE VARIABLE cName AS CHARACTER.
- DEFINE VARIABLE inst AS INTEGER.
- DEFINE VARIABLE aktbetr AS DECIMAL.
- DEFINE VARIABLE cDesktop AS CHARACTER.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE TEMP-TABLE tArtst LIKE artst
- FIELD datum AS CHARACTER
- FIELD VK_Inkl AS CHARACTER
- FIELD VK_Aktion AS CHARACTER
- FIELD KGeb AS CHARACTER
- FIELD cwgr AS CHARACTER
- FIELD cPgr AS CHARACTER
- FIELD cagr AS CHARACTER
- FIELD Land AS CHARACTER
- FIELD xHerst AS CHARACTER
- FIELD xstyle AS CHARACTER
- FIELD region AS CHARACTER
- FIELD traube AS CHARACTER
- FIELD beschr AS CHARACTER
- FIELD xfarbe AS CHARACTER
- FIELD xBonus AS CHARACTER
- FIELD xkgeb AS CHARACTER
- .
- FOR EACH Artst NO-LOCK
- WHERE artst.firma = '1000'
- AND artst.EShop
- AND artst.aktiv:
-
- CREATE tArtst.
- BUFFER-COPY Artst TO tARtst.
-
- FIND FIRST artbez OF artst NO-LOCK NO-ERROR.
- IF NOT AVAILABLE artbez THEN NEXT.
- ASSIGN
- tartst.beschr = REPLACE(TRIM(artbez.bez1 + ' ' + artbez.bez2), ';', ':').
-
- FIND LAST ArtPreis NO-LOCK USE-INDEX artpreis-k1
- WHERE artpreis.firma = artst.firma
- AND artpreis.artnr = artst.artnr
- AND artpreis.inhalt = artst.inhalt
- AND artpreis.jahr = artst.jahr
- AND artpreis.preis_Grp = 1
- AND artpreis.ab_datum <= TODAY
- AND Artpreis.Aktion = FALSE
- AND Artpreis.Aktiv = TRUE NO-ERROR.
- IF AVAILABLE artpreis THEN ASSIGN tartst.datum = STRING(artpreis.ab_Datum,'99.99.9999')
- tartst.vk_inkl = TRIM(STRING(artpreis.vk_brutto,'>>>>>9.99')).
- FIND LAST AktPreis NO-LOCK USE-INDEX AktPreis-k1
- WHERE AktPreis.firma = artst.firma
- AND AktPreis.artnr = artst.artnr
- AND AktPreis.inhalt = artst.inhalt
- AND AktPreis.jahr = artst.jahr
- AND aktpreis.Grp = 1
- AND AktPreis.ab_datum <= TODAY
- AND AktPreis.Aktion BEGINS 'Discounted wine' NO-ERROR.
- IF AVAILABLE AktPreis AND
- AVAILABLE artpreis AND
- AktPreis.Bis_Datum >= TODAY THEN
- DO:
- IF AktPreis.Art = 0 THEN
- DO:
- aktbetr = artpreis.vk_brutto - aktpreis.Wert.
- tartst.vk_aktion = TRIM(STRING(aktbetr,'->>>>>>>9.99')).
- RUN RUNDEN ( INPUT-OUTPUT tartst.vk_Aktion ).
- END.
- ELSE
- DO:
- aktbetr = artpreis.vk_brutto * (100 - aktpreis.Wert) / 100.
- tartst.vk_aktion = TRIM(STRING(aktbetr,'>>>>>9.99')).
- RUN RUNDEN ( INPUT-OUTPUT tartst.vk_Aktion ).
- END.
- END.
-
- FIND KGebinde WHERE kGebinde.firma = ARtst.Firma AND kgebinde.Geb_Cd = Artst.KGeb_Cd NO-LOCK NO-ERROR.
- IF NOT AVAILABLE kgebinde THEN NEXT.
- tartst.kgeb = kgebinde.KBez.
- tartst.xkgeb = kgebinde.bez.
-
- FIND warengrp WHERE warengrp.Firma = artst.firma AND warengrp.Wgr = artst.Wg_grp NO-LOCK NO-ERROR.
- IF NOT AVAILABLE warengrp THEN NEXT.
- /* tartst.cwgr = (if warengrp.Bez1 begins 'bio' then 'yes' else 'no'). */
- tartst.cwgr = warengrp.Bez1.
-
- FIND prodgrp WHERE prodgrp.Firma = artst.firma AND prodgrp.Wgr = artst.Wg_grp AND prodgrp.Prod_Grp = Artst.Prod_grp NO-LOCK NO-ERROR.
- IF NOT AVAILABLE prodgrp THEN
- DO:
- /* message 'prodgrp fehlt ' artst.wg_grp artst.prod_grp view-as alert-box. */
- NEXT.
- END.
- tartst.cPgr = prodgrp.bez1.
-
- FIND artikgrp WHERE artikgrp.Firma = artst.firma
- AND artikgrp.Wgr = artst.Wg_grp
- AND artikgrp.Prod_Grp = Artst.Prod_grp
- AND artikgrp.art_grp = artst.Art_Grp NO-LOCK NO-ERROR.
- IF NOT AVAILABLE artikgrp THEN
- DO:
- /* message 'artikgrp fehlt ' artst.wg_grp artst.prod_grp artst.art_grp view-as alert-box. */
- NEXT.
- END.
- IF NOT AVAILABLE artikgrp THEN NEXT.
- tartst.cagr = artikgrp.Bez1.
-
- FIND tabel NO-LOCK
- WHERE tabel.firma = Artst.firma
- AND tabel.recart = 'TRAUB'
- AND tabel.codeC = ''
- AND tabel.CodeI = Artst.TRaub_Grp
- AND tabel.sprcd = 1 NO-ERROR.
- IF AVAILABLE tabel THEN tartst.traube = Tabel.bez1.
-
- FIND tabel NO-LOCK
- WHERE tabel.firma = Artst.firma
- AND tabel.recart = 'ABONUS'
- AND tabel.codeC = ''
- AND tabel.CodeI = Artst.Bonus_Grp
- AND tabel.sprcd = 1 NO-ERROR.
- IF AVAILABLE tabel THEN tartst.xBonus = Tabel.bez1.
-
- FIND tabel NO-LOCK
- WHERE tabel.firma = Artst.firma
- AND tabel.recart = 'AREG'
- AND tabel.codeC = ''
- AND tabel.CodeI = Artst.Reg_Grp
- AND tabel.sprcd = 1 NO-ERROR.
- IF AVAILABLE tabel THEN tartst.region = Tabel.bez1.
-
- FIND tabel NO-LOCK
- WHERE tabel.firma = Artst.firma
- AND tabel.recart = 'STYLE'
- AND tabel.codeC = ''
- AND tabel.CodeI = Artst.Style
- AND tabel.sprcd = 1 NO-ERROR.
- IF AVAILABLE tabel THEN tartst.xstyle = TRIM(STRING(Artst.Style,'>>>9')).
-
- FIND tabel NO-LOCK
- WHERE tabel.firma = Artst.firma
- AND tabel.recart = 'HERST'
- AND tabel.codeC = ''
- AND tabel.CodeI = Artst.Herst
- AND tabel.sprcd = 1 NO-ERROR.
- IF AVAILABLE tabel THEN
- DO:
- IF tabel.bez1 BEGINS 'Star'
- THEN tartst.xHerst = ENTRY(NUM-ENTRIES(Tabel.bez1, ' '), Tabel.bez1, '').
- END.
-
- FIND tabel NO-LOCK
- WHERE tabel.firma = Artst.firma
- AND tabel.recart = 'FARB'
- AND tabel.codeC = ''
- AND tabel.CodeI = Artst.Farbe
- AND tabel.sprcd = 1 NO-ERROR.
- IF AVAILABLE tabel THEN tartst.xfarbe = ENTRY(1, Tabel.bez1, ' ').
-
- FIND land NO-LOCK
- WHERE land.lkz = artst.herk_lkz NO-ERROR.
- IF AVAILABLE land THEN tartst.land = land.Bez.
-
- END.
- cDesktop = OS-GETENV('USERPROFILE') + '\Desktop\'.
- FILE-INFO:FILE-NAME = cDesktop NO-ERROR.
- DO WHILE TRUE:
- IF FILE-INFO:FULL-PATHNAME <> ? AND
- FILE-INFO:FULL-PATHNAME <> '' THEN
- DO:
- cDesktop = FILE-INFO:FULL-PATHNAME.
- LEAVE.
- END.
- cDesktop = OS-GETENV ('APPDATA').
- ii = INDEX(cDesktop, 'APPDATA').
- IF ii = 0 THEN
- DO:
- MESSAGE 'Datei kann nicht auf den Desktop geschrieben werden'
- VIEW-AS ALERT-BOX.
- RETURN.
- END.
- cDesktop = SUBSTRING(cDesktop,01,ii - 1) + 'Desktop\'.
- LEAVE.
- END.
- cname = cDesktop + 'Artst_liversedge.csv'.
- OUTPUT to value(cname) no-map convert source 'iso8859-1' target 'utf-8'.
- PUT CONTROL 'Artnr' ';' 'Inhalt' ';' 'Jahr' ';' 'Herst' ';' 'Bezeichnung' ';' 'Region' ';' 'Herkunftsland' ';'
- 'VK-Preis' ';' 'Aktions-Preis' ';' 'Style' ';' 'wgr' ';' 'pgr' ';' 'agr' ';' 'Farbe' ';' 'Rating' ';'
- 'Traube' ';' 'Bestand' ';' 'BonusGrp' ';' 'KGebinde' CHR(13) CHR(10).
-
- FOR EACH tartst WHERE tartst.artnr > 0 BY tartst.artnr BY tartst.inhalt BY tartst.jahr:
- EXPORT DELIMITER ';' STRING(tartst.Artnr,'999999')
- STRING(tartst.Inhalt,'9999')
- STRING(tartst.Jahr,'9999')
- tartst.Suchbe
- tartst.beschr
- tartst.region
- tartst.land
- tartst.vk_inkl
- tartst.vk_aktion
- tartst.xstyle
- tartst.cwgr
- tartst.cPgr
- tartst.cagr
- tartst.xfarbe
- tartst.xherst
- tartst.traube
- tartst.Bestand
- tartst.xbonus
- tartst.xkgeb
- .
- END.
- OUTPUT close.
- /*
- RUN ShellExecuteA(INPUT 0 ,
- INPUT 'open' ,
- INPUT cName ,
- INPUT '' ,
- INPUT '' ,
- INPUT 0 ,
- OUTPUT Inst ).
- PROCEDURE ShellExecuteA EXTERNAL "shell32.dll":
- DEF INPUT PARAMETER hwnd AS LONG. /* Handle to parent window */
- DEF INPUT PARAMETER lpOperation AS CHAR. /* Operation to perform: open, print */
- DEF INPUT PARAMETER lpFile AS CHAR. /* Document or executable name */
- DEF INPUT PARAMETER lpParameters AS CHAR. /* Command line parameters to executable in lpFile */
- DEF INPUT PARAMETER lpDirectory AS CHAR. /* Default directory */
- DEF INPUT PARAMETER nShowCmd AS LONG. /* whether shown when opened:
- 0 hidden, 1 normal, minimized 2, maximized 3,
- 0 if lpFile is a document */
- DEF RETURN PARAMETER hInstance AS LONG. /* Less than or equal to 32 */
- END PROCEDURE.
- */
- RETURN.
- PROCEDURE RUNDEN.
-
- DEFINE INPUT-OUTPUT PARAMETER ipWert AS CHARACTER.
-
- DEFINE VARIABLE VBetr AS DECIMAL DECIMALS 4.
- DEFINE VARIABLE VOp AS DECIMAL INIT 0.2.
- VBetr = DECIMAL(ipWert).
- VBetr = ROUND((VBetr / 100 * VOp), 4) / VOp * 100.
- ipWert = TRIM(STRING(VBetr,'->>>>>9.99')).
- END.
-
|