Search  
Wednesday, May 23, 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 form...
 raport din form cu filtrare
 
 2/22/2011 1:27:56 PM
User is offlineimihu
23 posts


raport din form cu filtrare
 (Romania)
Vreau sa fac un raport care sa preia filtrele dintr-un form.

Deci am un form cu mai multe textbox-uri, corespunzatoare campurilor dintr-o tabela.
Vreau ca aceste textbox-uri sa fie goale, sa nu imi afizeze nimic nici macar '0' la campurile numerice.
Apoi in oricare as scrie sa pot sa dau selectie prin-un buton si sa imi afiseze datele in raport conform selectiei.

Problema este ca in textbox-urile pe care le las libere compara o valoare vida cu campul in care am date si imi da eroare.

Am incercat si cu set filter, si cu select.




 2/22/2011 2:15:00 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: raport din form cu filtrare
 (N/A)
Si ce faci daca intr-un textbox care corespunde unui camp numeric userul introduce "vasile"?

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 2/22/2011 3:00:01 PM
User is offlineimihu
23 posts


Re: raport din form cu filtrare
 (Romania) Modified By imihu  on 2/22/2011 4:04:03 PM)
Am spus ca nu vreau sa afiseze nimic in textbox, nu ca as introduce caractere in loc de valori numerice.

Nu vreau sa faca filtrare decat doar dupa valorile introduse de mine, nu dupa altele, fie ele si cele numerice in care este afisata o valoare zero.
 2/22/2011 5:39:57 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: raport din form cu filtrare
 (N/A)
Corect, asta ai spus. Si daca in texboxurile care sunt asociate unor campuri numerice (adica ce scrii acolo e folosit pentru filtrarea pe un camp numeric) userul introduce altceva decat numere, cum procedezi?

(Ideea ca daca un textbox are value=0, valoarea lui va fi numerica si userul nu va putea introduce litere acolo. Da' tu vrei sa nu se vada nimic in textbox, deci nu poate fi declarat numeric (daca-l declari numeric se vede un 0 in el).

Cum rezolvi situatia asta? va trebui sa raspunzi mai intai la intrebarea asta si dupa aia trecem mai departe.

(eu stiu raspunsul, dar vreau sa-l gasesti singur, cu putin ajutor din partea mea)

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 2/23/2011 10:25:46 AM
User is offlineimihu
23 posts


Re: raport din form cu filtrare
 (Romania) Modified By imihu  on 2/23/2011 11:29:44 AM)
Text-boxurile le-am facut pe toate caracter iar select-ul e urmatorul:

SELECT * FROM contracte WHERE ALLTRIM(thisform.xnumar.value) =ALLTRIM(STR(numar)) AND ALLTRIM(thisform.xetapa.value)= ALLTRIM(STR(etapa)) AND ALLTRIM(thisform.xfaza.value) =ALLTRIM(faza) AND ALLTRIM(thisform.xact_adit.value)= ALLTRIM(STR(act_adit)) AND ALLTRIM(thisform.xfinalizat.value)=ALLTRIM(finalizat) AND ALLTRIM(STR(val_contr))>ALLTRIM(thisform.xval_contr1.value)

Problema e ca nu merge, nu afiseaza ce as vrea eu.
 2/23/2011 1:42:12 PM
User is offlineaflorin
840 posts
1st


Re: raport din form cu filtrare
 (N/A)
 imihu wrote
Text-boxurile le-am facut pe toate caracter iar select-ul e urmatorul:

SELECT * FROM contracte WHERE ALLTRIM(thisform.xnumar.value) =ALLTRIM(STR(numar)) AND ALLTRIM(thisform.xetapa.value)= ALLTRIM(STR(etapa)) AND ALLTRIM(thisform.xfaza.value) =ALLTRIM(faza) AND ALLTRIM(thisform.xact_adit.value)= ALLTRIM(STR(act_adit)) AND ALLTRIM(thisform.xfinalizat.value)=ALLTRIM(finalizat) AND ALLTRIM(STR(val_contr))>ALLTRIM(thisform.xval_contr1.value)

Problema e ca nu merge, nu afiseaza ce as vrea eu.


Hai sa le luam pe rand:
1. select-ul tau probabil va merge atunci cand user-ul va introduce valori valide (adica numere care exista in tabela) in TOATE textbox-urile
2. chiar si atunci, va merge greu al naibii - arunca o privire pe Rushmore optimization si, in general, pe SQL optimization
3. in orice alt caz, select-ul nu va returna nimic. De ce?
Pai daca, de ex, userul nu completeaza nimic textbox-ul xnumar, ALLTRIM(thisform.xnumar.value) da empty string. Empty string nu va fi niciodata egal cu ALLTRIM(STR(numar)) (STR(0) = '0'). Si cum conditiile sunt legate cu AND ...

Uite o idee:
lcWhereClause = '1 = 1'
IF VAL(thisform.xnumar.value) <> 0
lcWhereClause = lcWhereClause + ' AND numar = ' + ALLTRIM(thisform.xnumar.value)
ENDIF
** samd ....
** Obs: la campurile CHAR vezi ca mai trebuie niste ghilimele
** la final:
SELECT * FROM contracte WHERE &lcWhereClause

Succes.

Florin Aparaschivei - Iasi
 2/23/2011 2:35:05 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: raport din form cu filtrare
 (N/A) Modified By Grigore Dolghin  on 2/23/2011 3:35:14 PM)
Heh, Florin, mi-ai stricat argumentatia :)

Eu voiam sa-l duc catre Select * From tabela where camp Like "%"

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 2/23/2011 3:08:12 PM
User is offlineaflorin
840 posts
1st


Re: raport din form cu filtrare
 (N/A)
 Grigore Dolghin wrote
Heh, Florin, mi-ai stricat argumentatia :)

Eu voiam sa-l duc catre Select * From tabela where camp Like "%"

Am vazut ca vroiai sa il ghidezi pas cu pas, si asta e de bine. Dar cand am vazut cum arata SELECT-ul, m-am gandit ca e drum lung.

Florin Aparaschivei - Iasi
  Visual FoxPro  Rapoarte si generatoare de rapoarte  raport din form...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement