Search  
Saturday, February 11, 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  Raport din tabe...
 Raport din tabela cu numar variabil de campuri !!!
 
 8/6/2010 3:44:43 PM
User is offlinevaly.m
221 posts
4th


Raport din tabela cu numar variabil de campuri !!!
 (N/A) Modified By valy.m  on 8/6/2010 3:39:23 PM)
Salutare!
Hmmm... Nu-mi trece prin cap cum  sa construiesc un raport pe baza unei tabele cu un numar variabil de campuri, creata interactiv! Pentru ca nu stiu cate field object-uri sa pun pe report si ce campuri sa le atribui! Ceva idei?

Multumesc anticipat!

Editat:
M-a "sagetat" o idee ... sa ma folosesc de .frx ca tabela si sa inserez linii...  La objectType sa pun 8, (adica trebuie urmarit in functie de ce obiect pun, unde il pun si cum se modifica datele in functie de cum il modific fizic in raport). E putin cam complicat totusi... exista oare vreo modalitate mai simpla?

Valy Maties - Beginner programmer
 8/6/2010 4:38:59 PM
User is offlineaflorin
838 posts
1st


Re: Raport din tabela cu numar variabil de campuri !!!
 (N/A)
O metoda este asta, cu umblat in FRX. E destul de complicat, dar se poate.

A doua metoda este sa te folosesti de PrintWhen-ul din ReportDesigner. Pui campurile fixe in stanga, si cele variabile spre dreapta. Mai adaugi in cursor un cimp numeric care sa iti zica cate campuri variabile ai si o sa iasa.

A treia metoda e sa generezi raportul in tabela. Faci un cimp char(255) si pui acolo totul, inclusiv un separator de coloane. Doar ca nu o sa iasa la fel de elegant la tiparire.

Florin Aparaschivei - Iasi
 8/6/2010 4:47:14 PM
User is offlinevaly.m
221 posts
4th


Re: Raport din tabela cu numar variabil de campuri !!!
 (N/A)
Metoda a treia nu e deloc pe gustul meu... Ideea asta a avut-o un coleg, dar nu imi place cum o sa iasa, pentru ca trebuie sa faci multe verificari in ceea ce priveste lungimea continutului campului ca sa stii cate TAB-uri sa pui, sa fie totusi aliniat si sa arate cat de cat bine! E intr-un cuvant cam "urat".
Te folosesti intr-adevar de printwhen, dar nu te poti folosi decat in momentul cand campul este real. Daca nu e real o sa dea eroare, pentru ca in Expresion trebuie sa treci denumirea campului caruia obiectul ii va afisa valoarea! M-am gandit si la verificarea cu vartype a existentei campului si sa pun in expresion un iif()... Dar e posibil sa nu fie el si sa fie urmatorul (ca denumire) si asa va ramane un spatiu intre primul si al treilea camp!
Cred ca modalitatea cea mai buna (cred) este modificarea frx-ului.

Valy Maties - Beginner programmer
 8/6/2010 5:19:09 PM
User is offlineaflorin
838 posts
1st


Re: Raport din tabela cu numar variabil de campuri !!!
 (N/A)
Plec de la premisa ca vei crea un cursor. Atunci:
1. Cursorul poate avea din start toate campurile, doar ca in unele nu vor fi date. Asta iti rezolva una din probleme.
2. Daca acele campuri variabile au lungimi apropiate, poti sa faci ceva de genul repo_camp1, repo_camp2, etc. Acolo trantesti datele, in ordinea in care tre sa apara pe raport, iar intr-un camp numeric (un flag) pui numarul de astfel de repo_xx pe care le vei printa.
3. Iti mai raman titlurile de coloane. Dar daca ai ajuns aici, sigur gasesti o solutie.

Florin Aparaschivei - Iasi
 8/6/2010 7:03:19 PM
User is offlinedni
420 posts
2nd


Re: Raport din tabela cu numar variabil de campuri !!!
 (N/A)
Cimpurile de tiparit cind le selectezi inainte sau in timpul raportului, si cum le selectezi ?
 8/9/2010 9:27:33 AM
User is offlinevaly.m
221 posts
4th


Re: Raport din tabela cu numar variabil de campuri !!!
 (N/A)
 dni wrote
Cimpurile de tiparit cind le selectezi inainte sau in timpul raportului, si cum le selectezi ?

Inainte...Problema sta in felul urmator:
La un moment dat intr-un folder vor fi unu sau mai multe fisiere cu denumirea fisier_unu.dbf (,fisier_doi.dbf, etc.). Fisierele au aceeasi structura, camp1, camp2, camp3. In functie de cate fisiere sunt eu voi construi un fisiere cu urmatoarea structura: camp1, camp2, camp3_fis1,camp3_fis2 (, camp3_fis3, etc.). In folder pot aparea combinatii de fisiere, adica prima oara poate aparea fisierul 1 cu fisierul2, alta data fisierul 2 cu fisierul 3, sau fisierul 1 cu fisierul 3 (ca si denumiri...) Asa ca nu pot sa il fac cu campuri deja prestabilite, pentru ca e posibil sa mai apara un fisier nou, exemplu fisier6. Asa ca eu creez tabela (cursorul) in functie de cate si care fisiere sunt disponibile in folderul X. Vreau cumva sa generalizez, nu sa modific de fiecare data manual raportul daca imi apare cumva un fisier nou...

Valy Maties - Beginner programmer
 8/9/2010 12:13:16 PM
User is offlineaflorin
838 posts
1st


Re: Raport din tabela cu numar variabil de campuri !!!
 (N/A)
Daca fisierele au aceeasi structura, metoda pe care ti-am descris-o ar trebui sa functioneze:
1. creezi din prima cursorul cu, sa zicem, 10 bucati: camp1_01, camp2_01, camp3_01, camp1_02, ..., camp3_10

2. bagi datele in cursor
daca, de ex, in folder ai fis1 si fis4, datele din fis1 ajung in campurile cu _01, cele din fis4 ajung in campurile cu _02
daca, de ex, in folder ai fis2, fis3 si fis7: fis2 --> _01, fis3 --> _02, fis7 --> _03

3. cursorul mai are un camp numeric, NoOfFields. in primul meu exemplu are 2 (de sus pina jos, pe toate randurile), in al doilea exemplu are 3

4. faci raportul cu designer, tot pentru 10 campuri. Si bagi PrintWhen: la primul set de 3 coloane (pentru camp1, camp2 si camp3) conditia este NoOfFields >= 1, la al doilea set >=2, etc

5. mai ai de rezolvat problema titlurilor de coloane. Pe exemplul al doilea, ar trebui sa ai
camp1_fis2, camp2_fis2, camp3_fis2
camp1_fis3, camp2_fis3, camp3_fis3
camp1_fis7, camp2_fis7, camp3_fis7
Aici ai mai multe solutii:
a. variabile globale (not my favourite)
b. coloane aditionale in cursor in care tii in string fix aceste caption-uri: deci inca 3 coloane * 10 campuri
c. o singura coloana in cursor, un string de 255, in care concatenezi toate aceste caption-uri

Florin Aparaschivei - Iasi
 8/9/2010 4:35:25 PM
User is offlinedni
420 posts
2nd


Re: Raport din tabela cu numar variabil de campuri !!!
 (N/A) Modified By dni  on 8/9/2010 3:36:24 PM)

1. Poti sa te joci cu comanda CREATE REPORT care iti va crea un raport autonmat cu cimpurile pe care le ai la un moment dat:

http://msdn.microsoft.com/en-us/library/0hy313bd(v=VS.80).aspx

de exemplu : http://www.foxite.com/archives/create-report-programmatically-0000221207.htm

2. De asemenea si modificind fisierul frx:  http://support.microsoft.com/kb/188403

3. Folosind  http://weblogs.foxite.com/reportsculptor/archive/2008/10/22/7142.aspx

4. Folosind reportlistener (vfp9, sp2)

...depinde ce "design" final vrei sa obtii.

 

 8/10/2010 1:11:33 AM
User is offlineGrigore Dolghin
3522 posts
www.class-software.eu
1st






Re: Raport din tabela cu numar variabil de campuri !!!
 (N/A)
http://www.report-sculptor.com/
Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
  Visual FoxPro  Rapoarte si generatoare de rapoarte  Raport din tabe...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement