Search  
Tuesday, May 22, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Rapoarte si generatoare de rapoarte  Doua rapoarte p...
 Doua rapoarte pe aceeasi pagina
 
 2/10/2009 3:53:32 PM
User is offlineberja
42 posts


Doua rapoarte pe aceeasi pagina
 (N/A)

Am si eu un raport (este facut de altcineva si nu pot da multe detalii despre el pt ca nu prea ma pricep) si asta este codul care lanseaza crearea lui la apasare unui buton dintrun formular

USE

*aici fac conversia numarului la caracter

IF numar2<10

numar="000"+STR(numar2,1)

ELSE

IF numar2<100

numar="00"+STR(numar2,2)

ELSE

IF numar2<1000

numar="0"+STR(numar2,3)

ELSE

IF numar2<10000

numar=STR(numar2,4)

ENDIF

ENDIF

ENDIF

ENDIF

*aici se termina

comentariu=thisform.text12.Text

use facturi.dbf

DELETE FILE factura.txt

SET REPORTBEHAVIOR 80

_ASCIIROWS = 80

_ASCIICOLS = 110

REPORT FORM raport.frx FOR nume=cumparator AND nr=numar2 TO FILE factura.txt ASCII

REPORT FORM raport.frx FOR nume=cumparator AND nr=numar2 TO FILE factura.txt ADDITIVE ASCII noconsole noeject preview

COPY FILE factura.txt TO "C:\Documents and Settings\x2\Desktop\factura.txt"

USE

use firme.dbf

Acest raport este pus intrun fisier text de unde trebuie listat.Raportul (care este o factura de fapt) este pus de doua ori in acel fisier pentru ca factura trebuie sa o listez in dublu exemplar si este destul de mica incat sa incapa doua pe aceeasi pagina.Problema mea este ca rapoartele sunt puse in acel fisier text cu distante destul de mari intre ele, asa ca nu mai incap pe aceeasi pagina la listare si trebuie sa mai sterg eu randurile libere dintre ele.

Intrebarea mea este: pot sa modific ceva in codul de mai sus astfel incat rapoartele sa fie puse mai aproape unul de altul in acel fisier text si sa nu mai fiu nevoit sa sterg manual randurile libere dintre ele inainte de listare? Sau aveti o alta idee prin care sa listez acel raport in dublu exemplar, dar pe aceeasi pagina?

Sper ca ati inteles ceva din ce am spus mai sus si va multumesc pentru ajutor.

 2/10/2009 7:15:35 PM
User is offlineDaniel Buduru
2330 posts
1st




Re: Doua rapoarte pe aceeasi pagina
 (N/A)
In primul rand, conversia din numeric in string se face mult mai simplu:
numar=TRANSFORM(numar2, '@L 9999')
sau
numar=PADL(TRANSFORM(numar2),4,'0')

In ceea ce priveste distanta dintre cele doua rapoarte, in mod normal se modifica inaltimea benzilor Page Header si Page Footer din raport.
Daca nu poti modifica raportul, se poate modifica din program fisierul text rezultat, inainte de a doua rulare a raportului.
Ex:
cFactura=FILETOSTR('factura.txt')
cFactura=LEFT(cFactura, LEN(cFactura)-X) && x reprezinta numarul de octeti cu care trebuie scurtat fisierul

X se poate determina prin incercari. Daca liniile in plus sunt la incepotul textului:

cFactura=RIGHT(cFactura, LEN(cFactura)-X)

Apoi se rescrie fisierul
STRTOFILE
(cFactura,'Factura.txt',0)




Daniel Buduru
 2/11/2009 7:58:18 AM
User is offlineberja
42 posts


Re: Doua rapoarte pe aceeasi pagina
 (N/A)

Multumesc mult!!!!

Merge, dar numai partial. Adica sterge spatiile libere din fisier intre cele doua rapoarte, dar nu si spatiile dupa cel de-al doilea raport.Pot sa mai fac ceva in sensul asta?

 2/11/2009 8:07:16 AM
User is offlineberja
42 posts


Re: Doua rapoarte pe aceeasi pagina
 (N/A)

Am rezolvat !!! Traiasca HELP-ul!!!!!! Am facut asa:

REPORT FORM raport.frx FOR nume=cumparator AND nr=numar2 TO FILE factura.txt ASCII

cFactura=FILETOSTR('factura.txt')

cFactura=LEFT(cFactura, LEN(cFactura)-80)

STRTOFILE(cFactura,'Factura.txt',0)

STRTOFILE(cFactura,'Factura.txt',1)

Si am scos a doua rulare a raportului.

 2/11/2009 8:44:54 AM
User is offlineDaniel Buduru
2330 posts
1st




Re: Doua rapoarte pe aceeasi pagina
 (N/A)
Sau:

Factura=FILETOSTR('factura.txt')

cFactura=LEFT(cFactura, LEN(cFactura)-80)

STRTOFILE(cFactura+cFactura,'Factura.txt',0)




Daniel Buduru
 2/11/2009 9:25:10 AM
User is offlineberja
42 posts


Re: Doua rapoarte pe aceeasi pagina
 (N/A)
Mai am o intrebare totusi: exista posibilitatea sa mai adug ceva la sfarsitul codului, astfel incat in loc sa-mi copieze factura.txt pe desktop sa o trimita direct la imprimanta?
 2/11/2009 9:48:47 AM
User is offlineDaniel Buduru
2330 posts
1st




Re: Doua rapoarte pe aceeasi pagina
 (N/A)
SET HEADINGS OFF
TYPE factura.txt TO PRINTER PROMPT



Daniel Buduru
 2/11/2009 11:14:20 AM
User is offlineberja
42 posts


Re: Doua rapoarte pe aceeasi pagina
 (N/A)

Se poate si ca dupa ce se realizeaza copierea factura.txt pe desktop sa si deschida fisierul factura.txt tot din cod asa cum l-as deschide cu un dublu click pe el?

Pentru ca am o problema: daca dau listare la imprimanta cu codul de mai sus nu mai este aranjat in pagina asa cum este in fisierul factura.txt pe care il copiez pe desktop.Si as prefera sa si vad fisierul factura.txt ininte de a-l printa.

 2/11/2009 11:22:34 AM
User is offlinegy.fischer
2 posts


Re: Doua rapoarte pe aceeasi pagina
 (Romania)

Ceva de genul

RUN NOTEPAD FACTURA.TXT

Eventual va trebui sa specifici calea catre factura.txt

  Visual FoxPro  Rapoarte si generatoare de rapoarte  Doua rapoarte p...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement