A VisualFoxpro adatbázisfejlesztő rendszer
  • hadosoft
    #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. :)