kezdõlap | home

lapanet | blog | maroknyi X. - egy maroknyi gépírás


no ezt szerintem nem érdemlitek meg, de legyen. végülis a maroknyi a hatékonyságról szól, ez meg egy hatékonnyá tevő kis vakarcs.

bizonyára sokan ismerik a billentyűzet makró progikat, amik billentyűleütéseket, egérmozgatásokat és esetenként további parancsokat tudnak ismételgetni. aki nem tudja mi ez, annak továbbolvasni felesleges. igenám, de ezek a billzet makrók általában egyetlen szekvenciát ismételgetnek, így ami feladat ezen túlmutat, azzal nehezen bírkóznak meg. szintén igaz, hogy a makró programozása relatíve bonyolult, nem triviális mondjuk egy adatsor beküldése, ami táblázatos formában van meg. persze lehet trükközni ablakok váltogatásával és kopipészttel, aki már csinált ilyesmit, az csak legyint.

történt viszont, hogy valaki a fülembe súgta a mostanra egyik kedvenc alkalmazásom nevét, hogy dataload. ha valaha kellett adatot kézzel rögzítened egy programba, jó ötlet egyből a download basic gombra nyomni jobb oldalt. "free, not a trial". nekünk pont elég lesz. telepítsük nyugodt szívvel, semmi bajt nem csinál.

innentől pedig nézzünk egy konkrét példát, ahol rettenetes típusú terminálos erp programba szeretnénk bevinni 6 sornyi adatot. tegyük fel az sql mint olyan valamiért nem megoldás, de az adatbevitel egy mindig ugyanúgy ismétlődő szekvencia, csak más adattal. ezen a ponton elővesszük az excelt, és leírjuk az adatbevitel pontos menetét. valami ilyesmi lesz a példánk:



dl1


ez nyilván magyarázatra szorul. kezdjük ott, hogy az egyszerűség kedvéért ez - mint minden normális termelési szoftver - teljeskörűen irányítható billzetről. képzeljük el a feladatot úgy, hogy billzettel bemegyünk a menübe, kitöltjük a megfelelő mezőt az adattal, majd kilépünk onnan és végül a kiindulási helyzetbe jutunk. ez a fenti példánál a következőképp néz ki:

enter megnyom

001 beír (ez lesz a változó adat)

enter

lenyíl

lenyíl

enter

enter

4 beír

enter

/ beír

enter

ezt a szekvenciát mindenkinek le kell tudnia írni pontosan, hiszen egy programot készítünk. megjegyzem, hogy a dataload számára az egérkattintás sem jelent problémát, csupán most eltekintünk tőle.

amint látható, az excelben kicsit máshogy rögzítettem már a dolgot, ugyanis a dataload egy konkrét szintaxis szerint várja a programot. ezek röviden:

ENT = enter

\ és valami utána = szöveg

\{DOWN} = lefele nyíl

ez nem tutorial, a többi megtalálható a helpben. figyelni kell, mert spéci karakterek, mint az & megtréfálják az embert, ha nem jól van rögzítve. hogy a két leggyakrabban előforduló igényt lefedjem, álljon itt az excel függvény a szövegre:

="\"&B1

ha B1 tartalma asdf, akkor ez \asdf -et csinál belőle. az & jel cseréje a dataloadnak tetsző {&} alakra:

=SUBSTITUTE(B1;"&";"{&}")

legalábbis asszem, most fejből írtam. gondolom sejthető, hogy ebben az excel varázslatban rejlik a dataload igazi ereje, hiszen az adatok jellemzően rendelkezésre állnak excelben, akár több ezer soros listaként. további segítséggel az excel topikban szolgálnak, ha valakinek egy konkrét cserebere nem menne.

amint a megfelelő szintaxis az excelben rendelkezésre áll, már csak annyi dolgunk van, hogy átmásoljuk a dataloadba, majd az alábbiak szerint elindítjuk az akciót.



dl2


persze ez elsőre bátor lehet, javasolt kipróbálni először legalább 2 soron, hogy egy teljes szekvencián túl is működik-e. gondolom sejthető, hogy rossz program esetén köbö random események történhetnek, hiszen a láthatatlan kéz nyomkodja folyamatosan az entereket meg írogatja amit mondtunk neki, legfeljebb rossz helyre. ahogy látható van lehetőség kiválasztani csak bizonyos sorokat.

és itt hívom fel a figyelmet a másik veszélyre, az ismételt beírás elkerülésére. lehet, hogy az első 2 sor lefut hibátlanul a teszt során, de az azt követő igazi beküldésnél már egész máshogy viselkedhet a célprogram, ha az a mező már kitöltött (az iménti teszt futtatáskor). érdemes nem próbálkozni, és az első két sor sikeres tesztje után 3-tól indítani az igazi beküldést.

nagy mennyiségű adat és megfelelően gyors célprogram esetén látható, hogy kicsit lassú szegényke az alapértelmezett beállításokkal. beküldi, beküldi, de éppcsak mint a világ legjobb gépírója. ennél a legtöbb program képes gyorsabban is adatot fogadni, én a terminálhoz 0 delayt szoktam beállítani, még messzi citrixen is ("cell is processed" az egyetlen lényeges).



dl3


általában a programbeli kicsi lagok eleve nem zavarnak, mert a windows "emlékszik" az összes bill leütésre, pár másodpercen belül ledolgozza a hátrányt. vagy nem, és ilyenkor rémült kapkodás van az esc után, amire leáll a program (feltéve, hogy az az ablak aktív). nem jellemző egyébként.

természetesen megesik, hogy valami durva hálózati lassulás miatt mégis kiesik a szinkronból a dolog, de ugyanígy okozhat esetleg problémát az outlook új email ablaka is. érdemes figyelni, mi történik, mielőtt véletlen kitöröl vagy átír az ember valamit, amit nem akart. a lustaság ára.

a végére még egy trükk, ami tán többeknek hasznos lehet, lévén munkáról és vállalati rendszerekről beszélünk. én citrixben dolgozom, sajnos csak windowsról megközelíthetően (a vpn nem akarja). ezért eleve egy virtualbox virtuális windowson csinálom meg a távoli asztali kapcsolatot. a dataload is erre a virtuális windowsra van telepítve, a citrixet magát nem piszkáltam.

ettől függetlenül, ha a citrix-et leveszem teljes képernyőről, akkor egy hétköznapi ablakként viselkedik. azaz a virtuális winen futó dataload a citrixbe küldi az adatot. ez még önmagában annyira nem hangzik brilliánsan, de akkor már inkább, ha azt mondom ez a vbox virtuális gép innentől a mi billzetünktől függetlenül nyomja be az adatokat a saját ablakában, mi közben az igazi gép linuxán (windowsán) netezhetünk, trollkodhatunk, posztot írhatunk.

végül ne feledd: minden 10 óra, amit mostantól ezzel megspórolsz 1 kannásbor lapának.