A VisualFoxpro adatbázisfejlesztő rendszer
-
#52
Szia !
VFP 5.0-ben csináltam hasonlót. Draft-ban kellet mátrix nyomtatóra müldenem számlákat meg szállítót. Úgy csináltam meg, hogy a report fájl minden sora egy mezőből állt és ebben adtam meg a nyomtatandó string kifejezést és az ESC vezérlő karaktereket is. Ezek után ezt némi átalakítás után a Copy parancsal kiküldtem a nyomtatóra. Itt a kód :
*>> Leporellóra :
cFnp = Substr(cFn,2)
noszel = _ASCIICOLS
_ASCIICOLS = 150
Osszlap = 1
peldany = 1
** Ellenőrzés, nyomtatás :
On Error lHiba = .T.
*teszteléshez******************************
* Report All Form &cFn Noconsole Preview
*******************************************
For nCik = 1 To 5
lHiba = .F.
*lf = Sys(2023)+"\"+Alltrim(Sys(3))+".TXT"
lf = Sys(2023)+"\"+SUBSTR(SYS(2015), 3, 10)+".TXT"
Report All Form &cFn Noconsole To File (lf) ASCII
If lHiba = .F.
Exit
EndIf
EndFor
ON ERROR ErrHand(ERROR(),PROGRAM(),LINENO())
*messagebox(cfn+space(1)+lf)
*>> Nyomtatás, ha nincs hiba
If !lHiba
Osszlap = _pageno
If Thisform.Megjel.Listindex > 1
Sele bizfej
Report All Form &cFnp Noconsole Preview
Endif
If Thisform.Megjel.Listindex < 3
Sele bizfej
Report All Form &cFn Noconsole To File (lf) ASCII
* Konverzió :
*lc = Sys(2023)+"\"+Alltrim(Sys(3))+".TXT"
lc = Sys(2023)+"\"+SUBSTR(SYS(2015), 3, 10)+".TXT"
f1 = FOPEN(lf,12)
f2 = FCREATE(lc)
IF f1 < 0 or f2 < 0
MessageBox("Listafájlt nem tudom elérni !",16,"A nyomtatás sikertelen !")
ELSE
Do While !Feof(f1)
cS = CpConvert(CpCurrent(),852,FGet(f1))
=FPUTS(f2, cS)
EndDo
ENDIF
*Utolsó soremelésjel :
=FCLOSE(f1)
=FCLOSE(f2)
* DOS Nyomtatás :
* if Messagebox("Nyomtat ?",4,"") = 6
For nMs = Thisform.Nyompld2.Value To ig
peldany = nMs
lHiba = .F.
On Error lHiba = .T.
Do Case
Case lepo = 1
Copy File (lc) To LPT1
Case lepo = 2
Copy File (lc) To LPT2
Otherwise
Copy File (lc) To PRN
EndCase
ON ERROR ErrHand(ERROR(),PROGRAM(),LINENO())
If lHiba = .F.
*Utolsó soremelésjel :
??? Chr(12)
Else
MessageBox("Nyomtató nem elérhető !",16,"A nyomtatás sikertelen !")
Exit
EndIf
EndFor
Delete File (lc)
Delete File (lf)
*** Másolat küldése :
If Left(bsz,1) = "3"
ThisForm.printer.CopyPrinter
ig = nMs
For nMs = ig To epldsz+ig-1
Sele bizfej
peldany = peldany+nMs
Report All Form &cFn Noconsole To Printer
Endfor
Endif
Endif
_ASCIICOLS = noszel
Else
MessageBox("Listafájlt nem tudom elérni !",16,"A nyomtatás sikertelen !")
EndIf
Remélem valamiben tudtam Neked segíteni. :)