∴ Overlay-ek mozgatása nyomtatáskor
Ahol a történet véget ér..., oda teszünk aláírást
2014.04.26. 21:02
Pár napja írtam az overlay-ekről. Akkor azt ígértem, megmutatom hogyan lehet ezeket adott pontba helyezni nyomtatáskor. Nos, nézzük is, hogy mondjuk egy aláírást hogyan lehet a megfelelő helyre mozgatni. Ehhez természetesen az kell, hogy a pozícióját futás időben tudjuk megadni, ne pedig fix értékkel a printerfájlban. Beállíthatóságához szükségünk lesz két változóra, amit a printerfájlban veszünk fel, ott deklarálunk.
.....AAN01N02N03T.Name++++++RLen++TDpBLinPosFunctions++++++++++++++++++
A R WRALAIRAS
A OVERLAY(ALAIRAS &XD1 &YD1)
A XD1 5S 3P
A YD1 5S 3P
illetve ha egy változót (pl. megnevezés) is mozgatunk, akkor annál az alábbiak szerint kell a beállításokat megejteni:
A R WRDETAIL
A DTERMEKKOD 10 TEXT('TERMÉKKÓD')
A POSITION(&XD2 &YD1)
A DMEGNEVEZ 30 TEXT('MEGNEVEZÉS')
A POSITION(&XD2 &YD2)
A XD2 5S 3P
A YD1 5S 3P
A YD2 5S 3P
A programban pedig értéket adunk a változóknak, majd kiíratjuk a rekordot:
CL0N01Factor1+++++++Opcode&ExtFactor2+++++++Result++++++++Len++D+HiLoEq
* Aláírás
C EVAL XD1=19.6
C EVAL YD1=17.0
C WRITE WRALAIRAS
* Detail - tételek
C EVAL XD2=10.2
C EVAL YD1=2.0
C EVAL YD2=5.2
C WRITE WRDETAIL
Természetesen az értékeket számolni kell, itt csak az értékadást mutattam be. Én mindig egy változót szoktam használni annak rögzítésére, hogy éppen hol járok a papíron. Mondjuk kiíratom a fejrészt, ami 9 cm-rel a lap tetejétől ér véget. Akkor a változót (mondjuk AktPoz) feltöltöm a szükséges értékkel:
DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++
D AktPoz S 5 3
D SorTavolsag S 5 3
/Free
AktPoz = 9,0;
/End-Free
Én a sortávolságra is fel szoktam venni egy változót, mert akkor még azt is tudom változtatni:
/Free
SorTavolsag = 0,6; // 6 mm lesz a sortávolság
/End-Free
Ha kiírok egy sort, akkor az aktuális pozíciót is növelni kell, mégpedig a sortávolsággal:
/Free
AktPoz = AktPoz + SorTavolsag; // Ekkor AktPoz 9,6 cm lesz (9,0 + 0,6)
/End-Free
Természetesen a lap alját figyelni kell, és ha túl közel vagyunk hozzá, akkor lapdobást kell eszközölnünk. Ehhez a printerfájlban fel kell vennünk egy új rekordot:
A R NEWPAGE
A ENDPAGE
A programban pedig így tudunk lapdobást végrehajtani, ha elértük mondjuk a 27 cm-t:
* lapdobás
C IF AktPoz > 27,0
C WRITE NEWPAGE
C EVAL AktPoz = 9,0
C ENDIF
A bejegyzés trackback címe:
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.