Search  
Thursday, October 22, 2020 ..:: 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  Clase - VCX si PRG  Grid footer...
 Grid footer
 
 11/6/2006 9:49:15 AM
User is offlineDorin Vasilescu
1369 posts
1st




Grid footer
 (Romania)
O intrebare
Sa presupunem ca ati avea o clasa de tip grid footer, cu totaluri , care se "lipeste" de gridul sursa prin Bindevent() si actualizeaza totalurile la cerere
In cazul in care gridul respectiv ar avea scrollbar orizontal, ce varianta ati alege?
1. pozitionarea sub bara de scroll a gridului sursa
2."capturarea" respectivei bare de scroll si adaugarea acesteia la gridul de totaluri, cu transmiterea scroll prin RaiseEvent()


 11/6/2006 12:19:03 PM
User is offlineTibisan
269 posts
4th


Re: Grid footer
 (Romania)

cred ca a 2-a varianta ar arata mai bine, chiar daca trebuie sa calculezi (prin memorarea si compararea lui LeftColumn, de ex.) cate coloane s-au deplasat in cazul in care faci scroll cu click and drag in gridul de totaluri.

 11/6/2006 1:17:48 PM
User is offlinecostin_mentor
723 posts
www.accessoft.ro
1st




Re: Grid footer
 (N/A)
Personal inclin si eu spre a 2-a varianta.
 11/6/2006 1:58:18 PM
User is offlineAlin Berce
371 posts
3rd




Re: Grid footer
 (Romania)
Ofer si eu un vot variantei nr. 2. Chiar mi-ar place sa vad o asemenea clasa... Banuiesc ca te-ai apucat Dorin de lucru. Right ?
VFP, C#, SQL Server 2005/2008
"Proud to be a ProFox member".
 11/6/2006 2:01:41 PM
User is offlineDorin Vasilescu
1369 posts
1st




Re: Grid footer
 (Romania)
Asa sa fie, pare mai ok, intr-adevar

Alta problema interesanta...
Cum se poate afla daca o coloana dintr-un grid cu LockColumns setat este "dedesubt" ?
Mi se pare imposibil de aflat, ce ziceti?


 11/6/2006 2:04:26 PM
User is offlineDorin Vasilescu
1369 posts
1st




Re: Grid footer
 (Romania)
 Alin Berce wrote
Ofer si eu un vot variantei nr. 2. Chiar mi-ar place sa vad o asemenea clasa... Banuiesc ca te-ai apucat Dorin de lucru. Right ?


E practic gata, dar m-am impotmolit la cazul cu LockColumns. Nu am nimic la care sa ma raportez pentru a face scroll dreapta/stanga la schimbare coloane cu tastatura, ca FirstColumn nu se mai schimba iar Scrolled() nu e declansat  :(
 11/6/2006 2:39:42 PM
User is offlineTibisan
269 posts
4th


Re: Grid footer
 (Romania)

in schimb se schimba relativecolumn, intr-un mod haotic recunosc....

nu poti implementa si in before / afterrowcolchange codul de la scroll atunci cand se foloseste tastatura?

 11/6/2006 2:44:25 PM
User is offlineTibisan
269 posts
4th


Re: Grid footer
 (Romania)
si devine si mai dificil cand ai split si lockcolumns si lockcolumnsleft > 0
 11/6/2006 3:15:41 PM
User is offlineDorin Vasilescu
1369 posts
1st




Re: Grid footer
 (Romania)

Cine vrea cu SplitBar, sa-si faca :)

E simplu, in AfterRowColChange la ambele compar FirstColumn.  Daca sunt diferite,  fac scroll dreapta/stanga sa le sincronizez.
Daca e setat LockColums ... gata, s-a dus comparatia mea

Apropo, stiati ca un click dreapta pe linia dintre coloane din header seteaza/deseteaza LockColumns?

O sa ma uit la RelativeColumn, sa vad ce se poate face.

Cam asa arata:

test_gridfooter1.jpg

test_gridfooter2.jpg 

 11/7/2006 12:33:15 AM
User is offlineGhiorghiu Bogdan
929 posts
1st




Re: Grid footer
 (Romania)

Felicitari Dorin!


Ghiorghiu Bogdan >>> Dacă tot te apuci să faci o treabă, fă-o bine de la inceput!
 11/7/2006 2:32:10 PM
User is offlineAlin Berce
371 posts
3rd




Re: Grid footer
 (Romania)
Felicitari si din partea mea. Asa ceva chiar ca e foarte util. Dorine, tot clase de clase vad ca faci.
VFP, C#, SQL Server 2005/2008
"Proud to be a ProFox member".
 11/7/2006 7:15:46 PM
User is offlineDorin Vasilescu
1369 posts
1st




Re: Grid footer
 (N/A)
Cred ca va intrebati : Unde e clasa, totusi?
Am vrut sa incerc si rezolvarea LockColumns, dar la munca am fost cam prins cu altele.
Pana la urma am reusit, desi mi-a luat mai mult timp decat clasa in sine. Ar trebui sa-mi dea MSFT un premiu.  A trebuit sa trec de o gramada de kestii cu ActiveColumn, RelativeColumn, etc.
Tot nu inteleg de ce te trezesti ca se fac 0 desi la un SetFocus VFP stie exact unde a ramas?
gridfooter.zip 
 11/7/2006 7:56:54 PM
User is offlineCLASSOFT
315 posts
www.classoft.ro
3rd


Re: Grid footer
 (N/A) Modified By CLASSOFT  on 11/7/2006 8:57:30 PM)
Chiar ar fi util ca MS s-o includa ca o optiune la GridBuider :)
Felicitari!

Cristi Birlea
 11/7/2006 9:04:09 PM
User is offlineGhiorghiu Bogdan
929 posts
1st




Re: Grid footer
 (Romania)

Premiul il meriti! Multumesc sau mai bine multumim ca ai atashat codul.


Ghiorghiu Bogdan >>> Dacă tot te apuci să faci o treabă, fă-o bine de la inceput!
 11/9/2006 2:39:12 PM
User is offlineDorin Vasilescu
1369 posts
1st




Re: Grid footer
 (Romania)
La includerea clasei pe formuri au aparut niste probleme legate de faptul ca primea focusul cu tastatura
Am rezolvat si asta, acum se poate "intra" in el doar cu mausul, pentru scroll



gridfooter_20061109.zip 
 11/13/2006 11:42:54 PM
User is offlineedyshor
1450 posts
1st




Re: Grid footer
 (Romania) Modified By edyshor  on 11/14/2006 12:43:29 AM)
Superb Dorine, m-am jucat un pic cu ea merge de minune, initial am crezut ca trebuie s-o aranjez sa se potriveasca cu grid-ul, si am fost placut surprins sa vad ca dintr-un patratel de 10x10 pixeli pus undeva in coltul din stanga sus se transforma si se pozitioneaza cum trebuie la rulare, inca odata, superb... :)
 11/14/2006 8:21:37 AM
User is offlineDorin Vasilescu
1369 posts
1st




Re: Grid footer
 (N/A) Modified By Dorin Vasilescu  on 11/14/2006 9:31:25 AM)
Mai am scris putintel cod la clasa, am adaugat o proprietate noua , cSourceGrid, in care se poate seta grid-ul de care sa se lege singur, in Init(), fara sa mai trebuiasca executata attachToGrid() in gridul sursa.
Trebuie sa fie ambele in acelasi parent (form,page,container)

gridfooter_20061111.zip 
 11/17/2006 9:22:11 AM
User is offlineroxy
70 posts




Re: Grid footer
 (Romania)

In primul rand, thanks a lot Dorine, clasa asta e excelenta. Incercasem si eu sa fac ceva asemnator ca rezultat, insa mult mai primitiv.

Eu am nevoie de asa ceva in multe formuri ale mele, care au un singur grid, insa as avea cateva observatii.

Nu stiu daca e general valabil sau util, dar ar fi fain sa pot afisa in acest gridfooter si nr total de pozitii din gridul mare.

Am reusit asta  in clasa ta , setand:

cTotalLabelExpresion =  'TOTAL POZITII :" + str( reccount( this.cSourceGrdAlias)  ,6)

O fi bine? Se poate si altfel ? (de mers, merge...)

Inca o problema: daca pe sursa de date a gridului mare pun o filtrare,  "set filter to....",   atunci totalurile nu mai sunt corecte.

Cum as putea rezolva asta?

Rodica

 

 

 

 11/17/2006 9:34:02 AM
User is offlineGrigore Dolghin
4001 posts
www.class-software.ro
1st






Re: Grid footer
 (N/A)

RecCount() intoarce numarul total de inregistrari, indiferent daca sunt sterse sau nu, si indiferent daca ai o clauza de filtrare activa sau nu. Mai fa o metoda in grid-ul ala, numita CalculInregistrari() sau whatever, care sa salveze recno-ul, apoi sa faca un count() to lnTotal For <clauza_filtrare>, sa restaureze recno-ul (asta ca sa nu ti se mute pointerul - COUNT() il lasa pe EOF()) apoi returnezi valoarea lui lnTotal. In ctotalLabelExpression scrii ceva de genul asta:

cTotalLabelExpression = "Total pozitii: " + Transform(This.CalculInregistrari())

Nu uita parantezele, altfel nu-ti returneaza valoarea.


Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 11/17/2006 9:52:57 AM
User is offlineroxy
70 posts




Re: Grid footer
 (Romania)

Good point, asa am sa fac. Intr-adevar reccount() nu tine cont de cele marcate la stergere si uitasem. Iar count() deplaseaza pointerul.Multumesc.

Pentru problema cu filtarea, eu m-am gandit asa :  in metoda CalcTotal a lui gridfooter,   intercalez urmatoarea secventa, inainte de &cSQL.

IF NOT EMPTY( FILTER())

cfil=FILTER()

cSQL = cSQL + [ where ] + cfil

ENDIF

O fi bine?

 

 

 11/17/2006 11:37:03 AM
User is offlineDorin Vasilescu
1369 posts
1st




Re: Grid footer
 (N/A)
Ai dreptate. Cum folosesc numai cursoare, a fost usor sa uit. Si SET KEY e de luat in considerare.
Poate ar fi fost mai bine sa generez o comanda SUM , cu memorare Recno() si revenire la loc.



 11/17/2006 1:58:58 PM
User is offlineDorin Vasilescu
1369 posts
1st




Re: Grid footer
 (N/A)
Am refacut metoda CalcTotal sa genereze SUM care va fi executata cu revenirea la inregistrare. Problema care imi vine in minte ar fi cazul cursoarelor RV sau CA, ca se va face update pe server daca Buffering=3. Ce parere aveti? . Parca tot mai bine ar fi folosirea FILTER() in clauza WHERE

Oarecum bonus: _tally va contine cate inregistrari au fost procesate de aceasta si poate fi folosit in expresia de 'Total' +...
gridfooter_20061117.zip 
 11/21/2006 10:52:23 AM
User is offlineDorin Vasilescu
1369 posts
1st




Re: Grid footer
 (N/A)
Pana la urma am decis ca e mai convenabil cu SQL. Avantaje: nu paraseste inregistrarea curenta, nu determina un update la cursoare SPT/RV/CA. Am incercat (sper sa fi reusit ) sa filtrez si SET KEY si SET FILTER.
Multumesc pentru sugestii



gridfooter_20061120.zip 
 11/21/2006 12:53:15 PM
User is offlinecostin_mentor
723 posts
www.accessoft.ro
1st




Re: Grid footer
 (N/A)
O intrebare : cursorul trebuie sa existe inainte de instantierea clasei , problema mea este ca am un form parametrizat , care imi creeaza cursorul in functie de ce parametru primeste( eveniment ce are loc la Init-ul formei) . Pot sa o rezolv daca creez cursorul in load formei si apoi aplic un set filter apoi in init-ul formei . O alta solutie ar fi ?
 11/21/2006 1:35:54 PM
User is offlineDorin Vasilescu
1369 posts
1st




Re: Grid footer
 (N/A)
Foloseste gridfooter.attachToGrid( referinta_grid ) dupa ce e in regula tot, fara a pune nimic in cSourceGrid
Ar trebui sa functioneze


 11/21/2006 3:27:35 PM
User is offlinecostin_mentor
723 posts
www.accessoft.ro
1st




Re: Grid footer
 (N/A)
Daca esti amabil sa luminezi un nestiutor :
De atasat l-am atasat, nu mi-a dat nici o eroare, dar cand am incercat sa apelez metoda "calctotal" imediat dupa imi da eroare:
"Alias '' is not found."
 11/21/2006 6:34:56 PM
User is offlineDorin Vasilescu
1369 posts
1st




Re: Grid footer
 (N/A)
Nu gaseste aliasul :))

Nu stiu, nu poti pune un exemplu mic pe site?

 11/22/2006 9:17:20 AM
User is offlinecostin_mentor
723 posts
www.accessoft.ro
1st




Re: Grid footer
 (N/A)
Comentariile mele sunt in init-ul formei .
ctest.zip 
 11/22/2006 9:59:29 AM
User is offlineDorin Vasilescu
1369 posts
1st




Re: Grid footer
 (Romania)
Mie imi merge
Am inlocuit crearea cursorului si tabelei cu un SQLExec() si functioneaza.
Ai descarcat ultimul zip?

 11/22/2006 10:58:47 AM
User is offlinecostin_mentor
723 posts
www.accessoft.ro
1st




Re: Grid footer
 (N/A) Modified By costin_mentor  on 11/22/2006 11:59:23 AM)
Mie imi da eroare daca ii dau
select * from test1 into CURSOR ctest
Daca ii dau
select * from test1 into TABLE ctest
este totul OK.
Sunt in ceata.
Da , l-am descarcat
 11/22/2006 12:44:57 PM
User is offlineDorin Vasilescu
1369 posts
1st




Re: Grid footer
 (N/A)
Incearca cu clauza nofilter
S-ar putea cursorul sa fie tot tabela si de aia sa faca figuri

 6/4/2007 1:37:56 PM
User is offlineedyshor
1450 posts
1st




Re: Grid footer
 (N/A)
Sugestie:
    - BindEvent() pe 'Visible' la coloeane - am o situatie unde ascund sau afisez 2 coloane in functie de parametrii de filtrare - am modificat si functioneaza fara probleme
    - de asemenea, la initializare ar putea sa preia si .AllowCellSelection
Bug?!
    - Cand scrolze la dreapat din tastatura (RightArrow) nu face si scroll pe footer (se desincronizeaza) iar apoi cand trec la urmatoarea inregistrare (.AfterRowColChange) gridului i se aplica un scroll si revine la pozitia initiala. - asta incerc sa o rezolv acum.
 12/18/2009 10:46:08 AM
User is offlinevicos
169 posts
5th


Re: Grid footer
 (N/A)
Nu merge download-ul!!!
 6/16/2010 1:43:38 AM
User is offlinevicos
169 posts
5th


Re: Grid footer
 (N/A)
Ai rezolvat cumva problema cu desincronizarea?
 6/16/2010 8:34:58 AM
User is offlineniculescu.adriana
31 posts


Re: Grid footer
 (N/A)
Foarte interesanta ideea si multumiri pentru codul oferit! Asa vad cat mai am de invatat.
 6/21/2010 7:57:40 PM
User is offlinevicos
169 posts
5th


Re: Grid footer
 (N/A)
edyshor, ai reusit cumva sa rezolvi problema cu desincronizarea?
 6/22/2010 3:19:45 PM
User is offlineSilviu
211 posts
4th


Re: Grid footer
 (Romania)
Salut ....... nu am reusit sa downloadez codul................ de unde as putea sa-l iau si eu.
Multumesc
 6/22/2010 3:58:21 PM
User is offlinecostin_mentor
723 posts
www.accessoft.ro
1st




Re: Grid footer
 (N/A)
De aici :
http://sites.google.com/site/dorinvas/
 6/23/2010 4:23:59 PM
User is offlineSilviu
211 posts
4th


Re: Grid footer
 (Romania)
Multumesc
 11/24/2011 12:33:48 PM
User is offlinejohny25
70 posts


Re: Grid footer
 (N/A) Modified By johny25  on 11/24/2011 1:51:50 PM)

Salut

Clasa este foarte utila si multumesc pentru ea !

Am totusi 2 probleme :

1.Atunci cind sint 0 (zero) inregistrari de calculat sa nu apara gridfooter-ul pe ecran

si am pus codul urmator in metoda calctotal al clasei :

IF RECCOUNT()=0

this.Visible=.F.

ELSE

this.Visible=.T.

ENDIF

Problema este ca acest cod merge doar daca nu sint aplicate filtre. In cazul cind se aplica un filtru codul pus de mine nu mai merge pt. ca reccount() este >0 si inregistrarile rezultate din filtru pot fi 0.

2. De ce nu mai merge

'TOTAL : ' + transform(_tally) + ' Articole' ?

Daca folosesc sintaxa din exemplul dat cu clasa , in cazul filtrelor nu obtin un rezultat exact.

'TOTAL: ' + transform(recc("test")) + ' recs'

Precizez ca am ultima versiune de clasa gridfooter de pe http://sites.google.com/site/dorinvas/gridfooter.zip

Va multumesc !

 11/24/2011 2:13:16 PM
User is offlinemmarius28
327 posts
3rd


Re: Grid footer
 (N/A)


1. Poti sa testezi o coloana care ar fi trebuit sa fie empty:

This.visible = !EMPTY(data_document)



2. _TALLY este completata automat dupa o instructiune SELECT SQL, nu si de SET FILTER

CALCULATE CNT() to lnArticole
'TOTAL : ' + transform(lnArticole) + ' Articole' ?

 11/24/2011 2:49:24 PM
User is offlinejohny25
70 posts


Re: Grid footer
 (N/A)

1. Eu vreau ca tot gridfooter-ul sa dispara in cazul in care lnArticole=0 sau reccount()=0.

2.Merge cu CALCULATE COUNT() to lnArticole dupa ce aplic filtrul.

Multumesc !

  Visual FoxPro  Clase - VCX si PRG  Grid footer...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2013 Profox   Terms Of Use  Privacy Statement