METRI Soft Mérleggyártó KFT PortaWin (PW2) Jármű mérlegelő program 6800 Hódmezővásárhely Jókai u. 30 Telefon: (62) 246-657, Fax: (62) 249-765 e-mail: merleg@metrisoft.hu Web: http://www.metrisoft.hu Módosítva: 2014. 1. 15. Ver:1.0 Érvényes:2014. 1. 15. D:\R\PW2\Leiras\Uzem\Ukieg05.odt PortaWin (PW2) Jármű mérlegelő program Üzemeltetési Kézikönyv kiegészítés 5. Kezelői CSV alapú mérési eredmény export Hódmezővásárhely, 2014. 1. 15. Készítette: Petényi István programozó METRISoft Kft.
13/2 PW2 Jármű Mérlegelő Program METRISoft KFT Üzemeltetési Kézikönyv kiegészítés 5. Hmvhely Jókai u.30. Http://www.metrisoft.hu
METRISoft KFT PW2 Jármű Mérlegelő Program 13/3 Hmvhely Jókai u.30. Kezelői CSV alapú mérési eredmény export Tartalomjegyzék 1. KEZELŐI TEXT EXPORT SZOLGÁLTATÁS ÁLTALÁNOS ISMÉRVEI...4 2. ÁLTALÁNOS BEÁLLÍTÁSOK...4 2.1. ÁLTALÁNOS EXPORT OPCIÓK KONFIGURÁLÁSA...4 2.1.1. Tipikus export szekció definíció bemutatása...6 2.2. GUID ADATOSZLOP A TÁBLÁZATOKBAN...6 2.3. AZ EXPORTÁLHATÓ ADATOSZLOPOK...6 2.4. EGYSZERŰ (FORMÁZOTT) REKORD EXPORT TARTALMI BEÁLLÍTÁSOK AZ ADATSZÓTÁRBAN...6 2.4.1. Exportálandó mezők meghatározása 'Egyszerű rekord export'...6 2.4.2. Exportálandó tábla oszlopok formázása...7 2.4.3. Tábla adatoszlop kiíratás (formálisan)...7 2.4.4. Speciális változó kiíratás...8 2.4.4.1 [C] Karakteres adatok formázása (STRCUT)...9 2.4.4.2 [D] Dátum mezők formázása...9 2.4.4.3 [F] Fixpontos (float) számok formázása...11 2.4.4.4 [L] Logikai adat formázása...11 2.4.4.5 [I] Egész számok formázása...11 2.5. FORMÁZÁS KÜLÖN FORMÁTUMFÁJL SEGÍTSÉGÉVEL...12 Mellékletek: További dokumentumok: Uzkieg01 Üzemeltetési Kézikönyv kiegészítés 1. (Felhasználó által konfigurálható listák) Uzkieg02 Üzemeltetési Kézikönyv kiegészítés 2. (Recept - anyag statisztikák konfigurálása) Uzkieg03 Üzemeltetési Kézikönyv kiegészítés 3. (Automatikus adatcserék tömegrögzítéskor) Uzkieg04 Üzemeltetési Kézikönyv kiegészítés 4. (Automatikus CSV alapú mérési eredmény export) File:D:\R\PW2\Leiras\Uzem\Ukieg05.odt
13/4 PW2 Jármű Mérlegelő Program METRISoft KFT Üzemeltetési Kézikönyv kiegészítés 5. Hmvhely Jókai u.30. 1. Kezelői text export szolgáltatás általános ismérvei Az Napi adatmentés, távadat továbbítás export szolgáltatás egy opció, melyet megrendelés esetén a Szoftver Licensz engedélyez! Ennek alkalmazási területe: a mérlegkezelő személy tetszőleges időpontban egy erre kialakított funkcióban kijelöli és exportálja a méréseket. Ez a technika arra jó, hogy a mérési bizonylatok ellenőrzése, pl. napi zárások, stornók, javítások stb. elvégzése után, illetve adott időszakot összevárva lehessen a mérlegelési eredményeket más rendszerek számára továbbítani. A Napi adatmentés, távadat továbbítás szolgáltatás használatához egy CSV alapú, széles körben konfigurálható átadási formát lehet konfigurálni. A kezelő határozza meg az átadásra kerülő adatok körét (pl. időszak), a program a bizonylatokat a konfigurált formában és helyre hozza létre. A CSV export szolgáltatás minden vonatkozásban igen változatosan konfigurálható, így jól illeszthető a feldolgozó rendszerek bemenetéhez. 2. Általános beállítások Az általános paraméterek a PW2.INI konfigurációs fájlban állítandók be. Egyéb paraméterezés lehetséges a program adatszótárában (hozzáférés DBGEN.EXE) és onnan kiindulva, szükség szerint külön konfigurációs fájlokban. A fileműveletek definiciója a PW2 rendszerben * A mentési folyamat indításakor az export fájlok az első adatsor kiírásakor jönnek létre. * A fileművelethez a file-ok exclusive megnyitása történik meg. * Az adatok átvétele után a file szabadon törölhető. * Ha az export file nem létezik, a PW2 automatikusan létrehozza az első rekord kiírásával, ezért az átvevő rendszer tetszése szerint törölheti a file-t feldolgozás után. Ügyelni kell arra, hogy az átvevő program a feldolgozást követően a file zárása után késedelem nélkül törölje a file-t, nehogy a két művelet közti időrés alatt a PW2 újabb rekordot írjon a végére. * Minden eredményrekord egyetlen alkalommal kerül exportra, ennek ismétlése nem lehetséges. * Konfigurálható, hogy az export egy saját TMP útvonalra történjen. A mentési folyamat lezárása után a PW2 a háttérben átmozgatja a fájlokat a végleges, küldési útvonalra. Ezáltal a közös hozzáférésből származó ütközés kivédhető. 2.1. Általános export opciók konfigurálása Elérési mód: PW2.INI => [EXPORT] szekció SYNCEXPORTOBJECTS=<exportálandó táblák felsorolása ; elválasztással> default: nincs kitöltve (szolgáltatás off) Itt kell felsorolni, hogy mely táblákat kell exportálni. Csak az alábbi táblázatok sorolhatók fel: Tábla azonosító (adatszótárban) NAPLO GNAPLO DNAPLO KESZLET ACENYILV Pl: NAPLO;GNAPLO;KESZLET megjegyzés mérési napló mérési naplóhoz kapcsolt göngyölegek táblázata mérési naplóhoz kapcsolt diszpozíciók táblázata készlet egyenleg táblázat Mérési naplóhoz kapcsolt CE minőségi bizonylatok táblázata SYNCEXPORTTMPPATH=<útvonal> default: %DBFPATH%EXPORT\SYNCTMP\ A létrehozandó export fájlok elsődleges tárolási útvonala. A program mindig ide teszi le a fájlokat. SYNCEXPORTPATH=<útvonal> default: üres Az export fájlok küldés útvonala. Feladata: a már elkészült, lezárt export fájlokat a program gyors művelettel átmozgatja. A fogadó/továbbító alkalmazás innen veszi át. Ha az útvonal nem kerül megadásra, akkor a SYNCEXPORTTMPPATH útvonalon maradnak a fájlok. Ütközés esetén a fájlok felülírásra kerülnek, ezért a fájlnév specifikációt ehhez igazodva kell kialakítani! Http://www.metrisoft.hu
METRISoft KFT PW2 Jármű Mérlegelő Program 13/5 Hmvhely Jókai u.30. Kezelői CSV alapú mérési eredmény export SYNCEXPORFILENAME=<fájlnév specifikálás> default: %DEFAULTPCNEV%_%DTT%_EXP_%TB%%TELEPN%.SYN Itt alapvetően egy tetszőleges fájlnév szerepelhet, azonban speciális változó és konstans hivatkozások is beépíthetők. Ez alkalmas lehet pl. egyedi fájlnevek kialakítására. %DEFAULTPCNEV%: a PW2.INI fájlban megadott [STARTUP].DEFMHNEV paraméter értéke. %DTT% időbélyeg. Tömör, kurrens ansi időpont. Pl: 20140115123459 %TB% A tulajdonos tábla fizikai neve kiterjesztés nélkül. A tábla export neve explicit is előírható az adatszótárban. Az adatszótárban a tábla fejsorában a PRGPARAMS oszlopban definiálható a 'DBSYNCTBNEV(konstans szöveg);' paraméter. Ha ez meg van adva, akkor az itt levő konstans szöveg kerül beszerkesztésre a %TB% kifejezés helyére. %TELEPN% A mérésrekordból kiolvasott TELEP adatoszlopban levő követő számérték. A TELEP oszlop hiányában a program konfigurációban levő MHAZON mérőhely azonosító konstans követő számértéke. Követő számérték: az adatértékben visszafelé olvasott szám karakterek numerikus értéke. Pl: 'W04034' esetén '4034'. SYNCCOLDELMITER=<delimiter karakter kódja> default:9 (tab) Az adatoszlopok kiírásakor ezt a karaktert használja a program az elválasztásra. Ha az adatértékben ez a karakter szerepel, akkor egy '?' karaktert szerkeszt be a helyére. (Ha az elválasztó karakter?, akkor ez feltehetően feldolgozási hibához vezet a fogadó alkalmazásban, ezért ez nem javasolt!) SYNCFILEHEADER=<export fájlheader specifikáció> pl: %FIELDS% default:üres Ha ez a paraméter ki van töltve, akkor minden export fájl első sorában szerepel. Itt tipikusan a kiírásra kerülő adatoszlop nevekre van szükség. Ennek érdekében megadható néhány kifejezés, amely az export során kerül feloldásra. Az export formátum fájlban történő definiálásakor ez a paraméter nincs figyelembe véve: a header-t a formátum fájlban kell meghatározni! %FIELDS% a kurrens táblából exportra kerülő adatoszlop nevek felsorolása. A nevek között a SYNCCOLDELMITER kerül alkalmazásra. Ezután új sorban (SYNROWDELIMITER értéke szerint) indulnak az adatsorok. <DELIMITER> Ezt a kifejezést a program a SYNROWDELIMITER karakterrel helyettesíti be. %TB% Lásd fent. %TELEPN% Lásd fent. SYNCKIZARTMEZOK=<kizárt adatoszlopok > default:üres Itt sorolandók fel tábla azonosítókkal az exportból kizárt adatoszlop nevek. Pl: NAPLO.RECEPT; NAPLO.SQLKEY; KESZLET.SQLKEY; KESZLET.NR; KESZLET.EXPORTED; ACENYILV.RTFDATA; A felsorolásban tehát a tábla azonosító.oszlopnév;... szerkezet kötelező. Az export formátum fájlban történő definiálásakor ez a paraméter nincs figyelembe véve: a header-t a formátum fájlban kell meghatározni! SYNCWITHGUID=<True/false> Default:false Az export során előírható, hogy csak olyan adatsorok küldhetők, amelyek rendelkeznek egy 'GUID' nevű adatoszloppal és annak van kitöltött tartalma. Ennek célja, hogy az export utólagos bevezetésekor a guid értékkel (lásd 2.2. pont) még nem rendelkező adatrekordok ne kerülhessenek exportra. SYNROWDELIMITER=<adatsor elválasztó> default:$0d$0a Egy export fájlban az adatsorokat, fejlécet elválasztó karaktersor meghatározása. Tipikusan a CrLf karakterek szolgálnak erre. Az export formátum fájlban történő definiálásakor ez a paraméter akkor van figyelembe véve, ha a forma fájlban nincs definiálva. (Ez az alapértelmezett oszlop elválasztójel) File:D:\R\PW2\Leiras\Uzem\Ukieg05.odt
13/6 PW2 Jármű Mérlegelő Program METRISoft KFT Üzemeltetési Kézikönyv kiegészítés 5. Hmvhely Jókai u.30. 2.1.1. Tipikus export szekció definíció bemutatása [EXPORT] SYNCEXPORTTMPPATH=D:\R\PW2\S-1724-07\PW213043\DBF\EXPORT\SYNCTMP\ SYNCEXPORTPATH=D:\R\PW2\S-1724-07\PW213043\DBF\EXPORT\SYNCIN\ SYNCEXPORTOBJECTS=NAPLO;ACENYILV;KESZLET SYNCEXPORFILENAME=%DEFAULTPCNEV%_%DTT%_EXP_%TB%%TELEPN%.SYN SYNCFILEHEADER=%TB%%TELEPN%<DELIMITER>%FIELDS% SYNCKIZARTMEZOK=NAPLO.RECEPT;NAPLO.SQLKEY;KESZLET.SQLKEY;KESZLET.NR;KESZLET. EXPORTED;ACENYILV.RTFDATA; SYNCWITHGUID=TRUE SYNCCOLDELMITER=9 SYNROWDELIMITER=$0D$0A 2.2. GUID adatoszlop a táblázatokban Bármely adattáblázat rendelkezhet egy GUID Char(50) adatoszloppal. Ha az adatszótárban a GUID adatmezőnél a DEFAULT cellában szerepel a '%GUID%' kifejezés, akkor a program új rekord létrehozásakor generál (kér a Windows-tól) egy új 'GUID' értéket. Ez egy nem ismétlődő karaktersor, amely egyedi azonosítóként használható. Oly módon kerül generálásra, hogy nagy eséllyel egyedi bármely rendszerben. pl.: '{0244FF76-9BCD-440C-9801-CDEB5C281019}' egy tipikus 'GUID' karaktersor. 2.3. Az exportálható adatoszlopok A program adatállományainak leírása és paraméterezése külön ún. adatszótár táblázatban van megadva. Ez a táblázat egyrészt befogadja az exportáláshoz szükséges paraméterek nagy részét, másrészt információs táblaként szolgálhat arról, hogy mely adatmezőket, milyen tartalommal lehet a külső rendszerek számára átadni. Az adatszótár elérése a külső DBGEN programmal történik. Használata előtt adott esetben a mérlegprogramból ki kell lépni. Módosítási igény esetén előtte mindenképpen készüljön egy mentés a CONF\Conf_DBF és Conf_IDX táblákról!! A programot indítva és a Szótár nyit gombra kattintva a beadható jelszó: modeng módosítási igény esetén. Csak megtekintéshez nem szükséges jelszó. A táblázatban blokkos felépítésben megtalálhatók a program adattábláinak leírása. Kezdve a fej leíróval, folytatva az adatoszlopok leírásával. A DBF_NAME oszlop tartalma fogja össze az egy állományhoz tartozó definíciókat. A FIELD_NAME oszlopban vannak az adatmező nevek. 2.4. Egyszerű (formázott) rekord export tartalmi beállítások az adatszótárban Ha a FeladForma = 0, 1 vagy 2, akkor egyszerű rekord exportról vagy egyszerű formázott rekord exportról beszélünk! Ennek a beállítása is egyszerű. Ha nincs speciális beállítás, akkor az összes NAPLO adattábla oszlop küldésre kerül. Az adatoszlopok sorrendje megegyezik a táblamezők sorrendjével. 2.4.1. Exportálandó mezők meghatározása 'Egyszerű rekord export' Ha egyszerű rekord export történik, akkor a rekord export során a program alapértelmezett formázásokat használ, melyhez az adatszótárban levő beállításokat használja /Az adatmezőknél található LEN (karakterszám) és DEC (tizedesjegyek) ehhez felhasználásra kerülnek/: * A dátum kiírása konfigurálható, gyárilag a BDE (Borland Database Engine) aktuális beállítása szerint történik. * A fixpontos numerikus számok kiírása fixpontos alakban történik a (Len, Dec) szerint. A tizedesjel a rendszer DecimalSeparator globális változója, tehát a Windows határozza meg (általában vessző) * Logikai mezők kiírása 'True'/'False' értékkel történik (vagy üres, ha nem inicializált a mező. Ezt tekintsük False értéknek) Dátum nyomtatási formák speciális formázása /Picture_tx oszlop az adatszótárban/: Maximális forma: yyyy.mm.dd hh:nn:ss A fentiek szerint a dátum - óra bármely része kiírható vagy elhagyható. yyyy esetén yy alkalmazható. A dátumban az év-hó-nap sorrend változtatható. Az elválasztó karakterek fix értékek, szabadon megadhatók, elhagyhatók. példák: yymmdd, hhnn, mm/dd/yyyy, dd-mm-yy, stb. Ha nem adnak meg speciális előírást, akkor a kiírást a BDE dátumforma határozza meg. Http://www.metrisoft.hu
METRISoft KFT PW2 Jármű Mérlegelő Program 13/7 Hmvhely Jókai u.30. Kezelői CSV alapú mérési eredmény export Az exportálandó tábla fejleíró sor PRGPARAM cellában lehet elhelyezni az alapértelmezett formázástól eltérő adatoszlop formázást. Ha ez nincs megadva, akkor a fenti, alapértelmezett formázással kerülnek kiírásra az adatértékek. A program minden adatoszlopot kiír, amelyre nincs letiltás a SYNCKIZARTMEZOK paraméterben. Nem kerülnek kiírásra az ún. kalkulált adatoszlopok. 2.4.2. Exportálandó tábla oszlopok formázása Az adatoszlopok formázását egy blokkban kell definiálni a PRGPARAMS cellában. Legegyszerűbb ezt egy példán bemutatni: DBSYNCFIELDFORMATS( %(&NR;I) ##%(&RKOD;C;L,1,5) ##%(&AKOD;C;L,1,5) ##%(&ARKOD;C;L,1,10) ##%(&ASZAM;C;L,1,14) ##%(&RNEV;C;L,1,45) ##%(&ANEV;C;L,1,30) ##%(&ATDIM;C;L,1,2) ##%(&AFAJS;F;%-11.2f) ##%(&RKESZLET;F;%-11.2f) ##%(&IDATE;D;yyyy.mm.dd hh:nn:ss) ##%(&MDATE;D;yyyy.mm.dd hh:nn:ss) ##%(&TMAXJEL;F;%-11.2f) ##%(&TMAX;F;%-11.2f) ##%(&JELZOSZINT;F;%-11.2f) ##%(&NYUGTA;L;1,0) ##%(&EXPORTED;L;1,0) ##%(&TELEP;C;L,1,6) ##%(&SQLKEY;C;L,1,16) ##%(&GUID;C;L,1,50) )DBSYNCFIELDFORMATS; Tehát: a DBSYNCFIELDFORMATS blokkon belül, ## karakterekkel elválasztva felsorolunk kifejezéseket, amelyek az adatoszlop kiírását befolyásolják. A formázási kifejezésben egy adatoszlop név és a formázási paraméterek találhatók. A kifejezések a %(...) al blokkban találhatók. A formázás nem kötelező, ilyen esetben az adatmező formázás egyéb előírásai hatásosak (pl. az adatszótár LEN oszlopa a karakter/számjegy számot határozza meg általánosan, a DEC oszlop fixpontos számok esetén a tizedesjegyek számát) A formázás blokkban a mezőnév lezárásaként egy ^ karakter helyezhető el. Ez a kiíráskor szimpla idézőjelet eredményez az adatérték kereteként. A blokk fő paramétereit egy ; karakter választja el. A mezőnevet egy típus karakter követi. Ez kötelező. Értékei: C karakteres I egész szám F fixpontos szám D dátum típus L logikai típus Ezt követheti opcionálisan a formázási kifejezés. Ez típusonként eltérő kifejezést jelent. Az alábbiakban a típus szerinti formázási kifejezéseket tárgyaljuk. 2.4.3. Tábla adatoszlop kiíratás (formálisan) Mezőkifejezés: %(&<mezőnév>[^];<mezőtípus>;<formázási utasítás>) mezőnév: az adattábla (NAPLO vagy NYITVA) bármelyik adatoszlop neve nagybetűkkel opcionálisan egy ^ jel követheti, amely az adatérték keretezését írja elő. Ez általában karakteres és dátum típusú adatmezők esetében szokásos. A keretezés szimpla idézőjelekkel történik. Mezőtipus: egyetlen karakter, amely a kiírandó adat formázási típusát határozza meg. Értékei: C=Karakteres, I=Integer, F=fixpontos, L=Logikai, D=Dátum-időpont. formázási utasítás: a kiírandó adat formátuma szerinti további formázási lehetőség. Opcionális. File:D:\R\PW2\Leiras\Uzem\Ukieg05.odt
13/8 PW2 Jármű Mérlegelő Program METRISoft KFT Üzemeltetési Kézikönyv kiegészítés 5. Hmvhely Jókai u.30. Formázás karakteres mezőre: %(&<fieldname>;c;l,1,7) Ez a formázás azonos a 2.4.4.1. fejezet szerinti STRCUT kifejezések egyikével. Formázás fixpontos számokra: %(&<fieldname>;f;'%-7.2f') vagy %(&<fieldname>;f;'%-7.2f'^hatványkitevő) Ez előírhatja, hogy a számjegy mennyi karaktert tartalmazhat és ebből mennyi a tizedesek száma. Figyelem: ha a forrásadat nem fér az előírt számjegyszámba, ez küldési hibát okoz és az adatrekord továbbítása nem lehetséges. Ha nincs megadva a formázás, akkor a szám az adatbázisban levő egyéb előírás szerint kerül formázásra. A ^hatványkitevő 1 opcionális és előírható, hogy a számot 10,100,1000 vagy 0.1, 0.01, 0.001 szorzás után alakítsa át. Tehát a ^-3 esetén (0.001 * érték ) kerül elvégzésre, ^2 esetén (100 * érték). A tizedesjel alapértelmezés szerint pont. Ha más, pl vessző szükséges, akkor ezt a PW2.INI konfigurációs fájlban kell elhelyezni. Ennek szabálya: a napló tábla fej IMPORT mezőben levő SQL(SQLxx);bejegyzésből az SQLxx címkével jelölten megtalálható egy INI bejegyzés az [SQLSCRIPTPARAMS] szekcióban. A tizedesjelet ott lehet vesszőre cserélni! Pl keressünk egy ilyet: [SQLSCRIPTPARAMS] SQL01DECIMALSEPARATOR=, Formázás dátum típusra: %(&<fieldname>;d;'yyyy.mm.dd hh:nn:ss) Ezzel a dátum, időpont mezők küldése formázható meg. A szokásos formázási jelek yyyymmddhhnnss. (év hónap nap óra perc másodperc). A mezők közé elválasztójelek helyezhetők (pl. pont, kötőjel stb.). Az évszám átadható kétjegyűen is (yy). A mezők sorrendje is módosítható. A formázáshoz az adatszótárban az IMPORTPAR oszlopban külön elhelyezhető egy @(CANNULL); vagy @(CANZERO); opció. Formázás logikai mezőre: %(&<fieldname>;l;'truestr','falsestr') Ezzel megadható, hogy egy logikai mező false és true tartalma miként legyen a kimenetre írva. Megadási forma: trueérték,falseérték. Pl: %(&USAJAT^;L;Saját,Nem saját); >> False >> 'Nem saját' Integer mező formázása: jelenleg integer számokra nem adható meg formázás. 2.4.4. Speciális változó kiíratás Mezőkifejezés: %(#<változónév>[^];<mezőtípus>;<formázási utasítás>) változónév:ez néhány címkeszöveg, amely a programban speciális adatérték kiíratását teszi lehetővé. MHAZON TELEPEK %LIC*% DEFAULTURF DEFAULTLICENCE DEFAULTPCINDEX DEFAULTPCNEV WS_ID WS_LEVEL A program konfigruráció MHAZON konstans kiíratása. Ez az érték a mérési rekord létrejöttekor kerül betöltésre a rekord TELEP adatoszlopába. 'Mérlegelés több cég számára' opció esetén az MHAZON és TELEP értékek eltérhetnek, egyébként a TELEP oszlop kiíratása javasolt. 'Mérlegelés több cég számára' opció esetén a programban használható telephely azonosító lista a LICENSZ.DB adattáblázatból. Az azonosítók ';' karakterrel vannak elválasztva. Ha a konfigurációban levő MHAZON konstans értéke '*' karakter, akkor a kiadott érték üres string, egyébként a pillanatnyi szoftver licenc sorszám 5 számjegyen. Programindításkor, az ini-ből beolvasott, licensz fájlból megerősített URF eladási sorszám. Az INI fájlban az azonos nevű paraméterben lehet megadni a program számára az alapértelmezett cég licenc sorszámot. Ennek 'Mérlegelés több cég számára' opció esetén van jelentősége. Programindítás után, DEFAULTLICENCE szerint a licensz táblából/cm.mhazon-ból beolvasott mérőhely konstans. Ennek 'Mérlegelés több cég számára' opció esetén van jelentősége. Programindítás után, DEFMHIDX szerinti kód (több PW2 együttműködéséhez) Programindítás után, DEFMHNEV szerinti rövid mérőhely címke (több PW2 együttműködéséhez). A konfigurációban levő WS_ID konstans aktuális értéke. A konfigurációban levő WS_LEVEL konstans aktuális értéke. 1 A PW2 program V2.5.1.1 (131104) verziótól alkalmazható! Http://www.metrisoft.hu
METRISoft KFT PW2 Jármű Mérlegelő Program 13/9 Hmvhely Jókai u.30. Kezelői CSV alapú mérési eredmény export WS_TYPE BIZ_TYPE 2 BIZ_SORSZ A programban érvényes munkaállomás működési mód értéke. 0=mérlegelő hely, 1=beléptető állomás, 2=minősítő hely A mérésrekordban prioritás szerint érvényes bizonylat típus. 0:Mérlegjegy 1:Szállítólevél 2:Számla (Prioritása: 2 > 1 > 0) A mérésrekordban prioritás szerint kiadott Mérlegjegy / Szállítólevél / Számla sorszám (Prioritása: szlasz > szallsz > mjegy). BIZ_HSORSZ A mérésrekordban prioritás szerint kiadott stornózott Mérlegjegy / Szállítólevél / Számla sorszám (Prioritása: szlasz > szallsz > mjegy). TMPVAR1 TMPVAR2 A tulajdonos tábla fizikai neve kiterjesztés nélkül. A tábla export neve explicit is előírható az adatszótárban. Az adatszótárban a tábla fejsorában a PRGPARAMS oszlopban definiálható a 'DBSYNCTBNEV(konstans szöveg);' paraméter. Ha ez meg van adva, akkor az itt levő konstans szöveg kerül beszerkesztésre a %TB% kifejezés helyére. A mérésrekordból kiolvasott TELEP adatoszlopban levő követő számérték. A TELEP oszlop hiányában a program konfigurációban levő MHAZON mérőhely azonosító konstans követő számértéke. Követő számérték: az adatértékben visszafelé olvasott szám karakterek numerikus értéke. Pl: 'W04034' esetén '4034'. A változó kiíratás egyéb paramétereit lásd a további alfejezetekben! 2.4.4.1 [C] Karakteres adatok formázása (STRCUT) STRCUT Karakteres formázás (ez lehet karakter és egész szám típusú adatoszlopokra is): Kifejezés példa megjegyzés L,x,y L,2,3 ABCDEF > BCD Copy(Value,x,y) R,x,y R,3,2 ABCDEF > DE Right(Value,x,y) GL,s,y GL,:,3 ABCD:EFGH > ABC Copy(GetStr(Value,s,jfLeft),1,y) //Ha y=0: nincs Copy GR,s,y GR,:,3 ABCD:EFGH > EFG Copy(GetStr(Value,s,jfRight),1,y) //Ha y=0: nincs Copy JL,s,Y JL,*,5 ABC >> ABC** Justify(Value,y,s,jfLeft) (s követő karakterrel Y hosszra kiegészít) JR,s,Y JR,*,5 ABC >> **ABC Justify(Value,y,s,jfRight) (s vezető karakterrel Y hosszra kiegészít) CL,s,Y,Z CL,*,3,5 ABCDEFG > ABC** Cut and Justify left (Y hosszra levág és Z hosszra s karakterrel kiegészit) XC,s XC,ABCDEFG Value=3 >> C 'Indexed Char' Value kötelezően számérték '0'..Length(s) Result:=s[Int(Value)+1] CR,s,Y,Z CR,*,3,5 ABCDEFG > **EFG Cut and Justify right: StrZero(Right(Value,Y),s,Z) jobbról Y karakter, vezető s karakterrel Z hosszra kiegészítve NR,s,Y[,Z] NR,0,5 123 >> 00123 Numeric justify right: StrZero(StrToInt(Value),s,Y) számmá alakítva jobbra illeszt s karakterrel Y hosszban Ha van Z akkor az a default érték, ha nem lehet számmá alakítani! IB,x IB,8 65535 >> 11111111 Integer value to Bin str. x = Output length LT,s,"Y","Z" LT,AB,IGEN,NEM AB >> IGEN Logical TRUE (Ha az érték = s, "Y" string, egyébként "Z" string kerül beszerkesztésre. Case insensitive!) LS,s,"Y","Z LS,A B C,IGEN,NEM A >> IGEN LS,A B C,IGEN,NEM D >> NEM Logical SET (Ha az érték az [s] felsorolásban van, "Y" string, egyébként "Z" string kerül beszerkesztésre. Case insensitive!) s = '[érték érték... érték]' 2.4.4.2 [D] Dátum mezők formázása Egy standard ANSI HUN formázás pl. 'yyyy.mm.dd hh:nn:ss'. Ha nem kerül meghatározásra a formázás, akkor a program megpróbálja a Windows Shortdateformat formázását végrehajtani! 2 BIZ_TYPE, BIZ_SORSZ, BIZ_HSORSZ paraméterek a V2.5.1.6 verziótól! File:D:\R\PW2\Leiras\Uzem\Ukieg05.odt
13/10 PW2 Jármű Mérlegelő Program METRISoft KFT Üzemeltetési Kézikönyv kiegészítés 5. Hmvhely Jókai u.30. Speciális dátum formázási előírások arra az esetre, ha a tárolt dátumérték nem valós (nincs feltöltve értékkel) megadható az adatszótár IMPORTPAR oszlopában elhelyezett @(konstans); definícióval. Az alábbi konstans értékek adhatók itt meg: 'CANNULL' a kimenetre a dátum helyett a 'NULL' szöveg kerül 'CANZERO' a kimenetre dátumként az '1899.12.30 12:00' kerül (az előírás szerint formázva) pl. @(CANNULL) >> hibás dátum esetén 'NULL', egyébként a dátum, formázva Példa: %(&MDATE;D;yyyy.mm.dd hh:nn:ss) esetén egy időpont kiírása: '2014.01.15 12:34:59'. A dátum (óra, dátumóra) típusú adatok formázásának általános módja az alábbi: Ha a program adatszótárában egy dátum típusú adatmezőre a kiíratási forma paraméterezhető, akkor az alábbi Delphi help kivonat által ismertetett paraméterezés tehető meg: FormatDateTime formats the date-and-time value given by DateTime using the format given by Format. The following format specifiers are supported: Specifier c Displays Displays the date using the format given by the ShortDateFormat global variable, followed by the time using the format given by the LongTimeFormat global variable. The time is not displayed if the fractional part of the DateTime value is zero. d Displays the day as a number without a leading zero (1-31). dd Displays the day as a number with a leading zero (01-31). ddd dddd ddddd dddddd m mm mmm mmmm Displays the day as an abbreviation (Sun-Sat) using the strings given by the ShortDayNames global variable. Displays the day as a full name (Sunday-Saturday) using the strings given by the LongDayNames global variable. Displays the date using the format given by the ShortDateFormat global variable. Displays the date using the format given by the LongDateFormat global variable. Displays the month as a number without a leading zero (1-12). If the m specifier immediately follows an h or hh specifier, the minute rather than the month is displayed. Displays the month as a number with a leading zero (01-12). If the mm specifier immediately follows an h or hh specifier, the minute rather than the month is displayed. Displays the month as an abbreviation (Jan-Dec) using the strings given by the ShortMonthNames global variable. Displays the month as a full name (January-December) using the strings given by the LongMonthNames global variable. yy Displays the year as a two-digit number (00-99). yyyy Displays the year as a four-digit number (0000-9999). h Displays the hour without a leading zero (0-23). hh Displays the hour with a leading zero (00-23). n Displays the minute without a leading zero (0-59). nn Displays the minute with a leading zero (00-59). s Displays the second without a leading zero (0-59). ss Displays the second with a leading zero (00-59). t tt am/pm Displays the time using the format given by the ShortTimeFormat global variable. Displays the time using the format given by the LongTimeFormat global variable. Uses the 12-hour clock for the preceding h or hh specifier, and displays 'am' for any hour before noon, and 'pm' for any hour after noon. The am/pm specifier can use lower, upper, or mixed case, and the result is displayed accordingly. Http://www.metrisoft.hu
METRISoft KFT PW2 Jármű Mérlegelő Program 13/11 Hmvhely Jókai u.30. Kezelői CSV alapú mérési eredmény export Specifier a/p ampm Displays Uses the 12-hour clock for the preceding h or hh specifier, and displays 'a' for any hour before noon, and 'p' for any hour after noon. The a/p specifier can use lower, upper, or mixed case, and the result is displayed accordingly. Uses the 12-hour clock for the preceding h or hh specifier, and displays the contents of the TimeAMString global variable for any hour before noon, and the contents of the TimePMString global variable for any hour after noon. / Displays the date separator character given by the DateSeparator global variable. : Displays the time separator character given by the TimeSeparator global variable. 'xx'/"xx"characters enclosed in single or double quotes are displayed as-is, and do not affect formatting. Format specifiers may be written in upper case as well as in lower case letters--both produce the same result. If the string given by the Format parameter is empty, the date and time value is formatted as if a 'c' format specifier had been given. 2.4.4.3 [F] Fixpontos (float) számok formázása Fixpontos számok kiíratása lehetséges alapértelmezett formázással és egyszerű fixpontos formázással. Ha nincs formázási előírás, akkor a fixpontos szám kiíratása az adatszótárban megadott számjegyszámmal (LEN) és tizedesjegy számmal (DEC) történik Egyszerű fixpontos formázás esetén a formázási utasítás '%' jellel kezdődik: Formálisan % [:] [-] [számjegyek száma] [. tizedesjegy szám] f [] közöttiek opcionálisak, - jel balra illesztést jelent (ha nem, akkor számjegyek számára jobbra illeszti). Tizedesjegyek száma a számjegyek számából vesz el! A % és az f jel kötelező. pl. -%-12.2f >> '1223.125' >> 1223.13 kerül a kimenetre 2.4.4.4 [L] Logikai adat formázása A logikai adatok IGEN / NEM értékkel rendelkezhetnek. Formázás nélkül a kimenetre az adott gép nyelvének megfelelően 'IGEN', 'NEM', 'TRUE', 'FALSE' stb. kerül kivitelre. Formázási igény esetén az STRCUT formázási kifejezések használhatók azzal, hogy adatként a függvény számára az Igen = '1', illetve Nem= '0', tehát '1' vagy '0' karakterek kerülnek kiadásra. Példa: %(STERM;L;1,tilt); >> igen esetét (1), nem esetén 'tilt' kerül kiírásra. 2.4.4.5 [I] Egész számok formázása Az egész számok formázása a fenti formázási lehetőségekből adódik. Ha nincs formázás, akkor maga a szám kerül kiírásra. Ha az adatbázisban nincs értéke (NULL), akkor 0 kerül kiírásra. Ha meg van adva formázási paraméter, akkor annak definiálása: Lehet egyetlen '@' karakter. A program ekkor az adatszótárban az IMPORTPAR cellában keres egy '@(formázási utasítás);' bejegyzést. Ha van ilyen, akkor ezzel végrehajt egy standard formázott kiíratást a lenti táblázat szerint. Ha a '@' után közvetlenül vannak további karakterek, akkor a formázási utasítás itt található, ez kerül felhasználásra. Ha nem '@' karakterrel kezdődik a formázás, akkor a számértékre, mint alfanumerikus karaktersorra az STRCUT formázási szabályok kerülnek alkamazásra. Példák: %(&NR;I) nincs formázás %(&NR;I;@00000000) formázás 8 számjegyre %(&NR;I;IB,8) formázás bináris '0'/'1' karaktersorra 8 számjegyen. Character Meaning in mask! If a! character appears in the mask, optional characters are represented in the returned string as leading blanks. If a! character is not present, optional characters are represented in the returned string as trailing blanks. File:D:\R\PW2\Leiras\Uzem\Ukieg05.odt
13/12 PW2 Jármű Mérlegelő Program METRISoft KFT Üzemeltetési Kézikönyv kiegészítés 5. Hmvhely Jókai u.30. > If a > character appears in the mask, all characters that follow are in uppercase until the end of the mask or until a < character is encountered. < If a < character appears in the mask, all characters that follow are in lowercase until the end of the mask or until a > character is encountered. <> If these two characters appear together in a mask, no case checking is done and the data is formatted with the case present in the Value parameter. \ The character that follows a \ character is a literal character. Use this character to use any of the mask special characters as a literal. L l A a C c The L character requires an alphabetic character only in this position. For the US, this is A-Z, a-z. The l character permits only an alphabetic character in this position, but doesn't require it. The A character requires an alphanumeric character only in this position. For the US, this is A-Z, a-z, 0-9. The a character permits an alphanumeric character in this position, but doesn't require it. The C character requires an arbitrary character in this position. The c character permits an arbitrary character in this position, but doesn't require it. 0 The 0 character requires a numeric character only in this position. 9 The 9 character permits a numeric character in this position, but doesn't require it. # The # character permits a numeric character or a plus or minus sign in this position, but doesn't require it. : The : character is used to separate hours, minutes, and seconds in times. If the character that separates hours, minutes, and seconds is different in the regional settings of the Control Panel, that character is substituted in the returned string. / The / character is used to separate months, days, and years in dates. If the character that separates months, days, and years is different in the regional settings of the Control Panel, that character is substituted in the returned string. _ The _ character automatically inserts spaces into the returned string. Példa: @(00000000); esetén az adott szám 8 számjegyen, vezető nullával kerül kiírásra. 2.5. Formázás külön formátumfájl segítségével Ha formátum fájlt alkalmazunk, a 2.4.2. fejezetben bemutatott kiírás formázó blokk nincs figyelembe véve. Ezen túlmenően, a program nem veszi figyelembe a PW2.ini fájlban elhelyezett SYNCFILEHEADER és SYNCKIZARTMEZOK paramétereket sem. Ebben az esetben a mérési rekord küldését a külső forma vezérlő fájl határozhatja meg! Ez egy egyszerű szöveges fájl. A fájlban, mint egy nyomtatványon, fix szövegek adhatók meg, valamint az adott napló adatrekord adatoszlopaira lehet hivatkozni egy speciális formázási kifejezéssel. Ezen kívül a fájlban elhelyezhetők megjegyzés sorok és egy általános paraméterezés, amely pl. a kiírás néhány egyéb feltételtét határozhatja meg. A formátumfájl konfigurálása a táblafej PRGPARAMS cellában történik a DBSYNCFMTFILE(<full path>); definícióval. Az elérési út tartalmazhat néhány útvonal hivatkozást, amely a program mindenkori telepítési helyéhez relatív. Javasolt a %CNFPATH% kifejezés alkalmazása, ami a program konfigurációs könyvtárát definiálja. További hasznos kifejezések: %EXEPATH% program indítási útvonala (PW2.INI [STARTUP].STARTDIR) %CNFPATH program konfiguráció útvonala (PW2.INI [STARTUP].CNFDIR) %DBFPATH% program adatállományok útvonala (PW2.INI [STARTUP].DBFDIR) %MAILPATH% program 'Mail' útvonala (PW2.INI [STARTUP].MAILDIR) %LOGPATH% program 'log' útvonala (PW2.INI [STARTUP].SYSLOG) Példa: Http://www.metrisoft.hu
METRISoft KFT PW2 Jármű Mérlegelő Program 13/13 Hmvhely Jókai u.30. Kezelői CSV alapú mérési eredmény export --------------------------------------------------------------------------- -- CSV EXPORT -- 2014.01.15 --------------------------------------------------------------------------- DELIMITER($2C); NWL(<NWL>); --------------------------------------------------------------------------- INSERT INTO %(#TMPVAR1;C)%(#TMPVAR2;C) (NR@@ BIZSORSZ@@ ELMERSZ@@ SZAMSZ@@ SZALLSZ@@ GKRSZ@@ GKNEV@@ LANCNR@@ KDATUM@@ ZDATUM@@ UDATUM@@ AKOD@@ ANEV@@ ASZAM@@ AEAR@@ ATDIM@@ AAFA@@ AFAJS@@ SZJKOD@@ KONYV) <NWL> VALUES( %(&NR;I)@@ %(&BIZSORSZ;I)@@ %(&ELMERSZ;I)@@ %(&SZAMSZ;I)@@ %(&SZALLSZ;I)@@ %(&GKRSZ^;C;L,1,24)@@ %(&GKNEV^;C;L,1,20)@@ %(&LANCNR;I)@@ %(&KDATUM^;D;yyyy.mm.dd hh:nn:ss)@@ %(&ZDATUM^;D;yyyy.mm.dd hh:nn:ss)@@ %(&UDATUM^;D;yyyy.mm.dd hh:nn:ss)@@ %(&AKOD^;C;L,1,5)@@ %(&ANEV^;C;L,1,30)@@ %(&ASZAM^;C;L,1,14)@@ %(&AEAR;F;%-11.2f)@@ %(&ATDIM^;C;L,1,1)@@ %(&AAFA;F;%-11.2f)@@ %(&AFAJS;F;%-11.2f)@@ %(&SZJKOD^;C;L,1,10)@@ %(&KONYV^;C;L,1,8)) --------------------------------------------------------------------------- A példában látható: a komment sorok két db '-' (mínusz jel) karakterrel kezdődnek. Az első nem komment sorban elhelyezhetők az általános paraméterek. Ebből kétféle van (jelenleg). Az üres sorokat és sortöréseket a feldolgozás figyelembe veszi, ha nincs az általános paraméter sorban elhelyezve az NWL(...) opció. Ha az el van helyezve, akkor a formafájlban levő sortöréseket a feldolgozás kiszűri és nem veszi figyelembe. Az NWL() opcióban azt a mintát kell elhelyezni, amelyet a feldolgozás sortörésre (CR-LF karakterek) konvertálhat. (A példában egy <NWL> be van helyezve, tehát azon a ponton lesz sortörés.) A DELIMITER($<hex>); opció felülírhatja a PW2.ini fájlban a SYNCCOLDELMITER paramétert. Ha nincs megadva a hex érték /pl. DELIMITER();/ akkor nincs behelyettesítés, mert a kiírási szöveg eleve tartalmazza azt. A program a @@ karaktereket jelen példa szerint vesszőre helyettesíti. A példában szerepeltetjük a #TMPVAR1 és #TMPVAR2 program változót, amely a 2.4.4. pont szerinti táblanév és TELEP oszlop tartalom kiírást hajtja végre. File:D:\R\PW2\Leiras\Uzem\Ukieg05.odt