/* 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.