Search  
Friday, May 25, 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  Cod, sintaxa si comenzi  Problema cu Com...
 Problema cu Combo
 
 4/19/2006 4:49:59 PM
User is offlinepgs
12 posts


Problema cu Combo
 (N/A)
Am urmatoarea problema.
Am un combo (de tip list) si el sta pe un tabel (sau cursor) care are 2 campuri sa zicem 'Denumire' si "ID".
In mod normal pointerul tabelei se muta in concordanta cu ce ai selectat din combo. (Evident in combo afisez 'denumirea' ca n-0 sa-i arat ID -uri.)
Dar acum apare problema:
Daca utilizatorul face click si deschide combo se plimba prin el si da click afara (undeva in dreapta ) , combo se inchide si arata vechea valoare ca find selectata, dar pointerul tabelei e pa alta valoare (cea care era albastra cand a facut clik in dreapta in afara combo !!!
Daca dupa asta mai fac si un select ..din alta tabela...wher ID= ...
varza e gata !

Cum se poate face ca pointerul sa fi in concordanta mereu cu valoare afisata de combo ?
Desigur presupun ca un client face click pe langa combo din gresala si nu din rautate.
(in valid nu se poate pune cod ca nu-l face in acesta situatie)
Multumesc anticipat pt. orice sugestie.
 4/19/2006 4:59:11 PM
User is offlineanonymous
0 posts


Re: Problema cu Combo
 (Romania)
In primul rand verifica sa ai BoundTo pe .T. . Codul pentru selectia in combo ar trebui sa fie apelat de InteractiveChange. Probabil ca il ai pus in Click.
 4/19/2006 8:54:21 PM
User is offlinepgs
12 posts


Re: Problema cu Combo
 (N/A)
Bound este pe .T.

Cod pt. selectia combo nu exista !
Combo are rowsource chiar tabelul !

Deci nu exista nici un cod , e vorba de comportarea nativa a unui combo.
 4/19/2006 9:36:49 PM
User is offlineanonymous
0 posts


Re: Problema cu Combo
 (N/A)

Am incercat sa reproduc exemplul tau cu toate variantele posibile de a lega date de combo, setari etc. Nu am reusit sa mut cursorul in tabela plimbandu-ma prin combo si nu cred ca acesta ar fi comportamentul nativ al VFPro. Pentru a muta cursorul in tabela trebuie sa faci ceva sau sa faca VFPro ceva.

 Cred ca problema provine din alta parte. Incearca sa faci un exemplu "pe curat".

 4/20/2006 8:07:12 AM
User is offlinenae racaru
714 posts
www.rarom.ro
1st




Re: Problema cu Combo
 (Romania)
Poti folosi metoda MouseDown a formei, care la apasarea unei taste in afara comboului iti intoarce o valoare numerica in functie de ce buton ai apasat.

VFP 6 si 9 + Oracle
 4/20/2006 9:08:47 AM
User is offlineGrigore Dolghin
3592 posts
www.class-software.eu
1st






Re: Problema cu Combo
 (Romania)
Sugestia mea ar fi sa ignori complet faptul ca pointerul ala se muta cand faci selectia, si sa presupui ca NU se muta. Adica sa citesti Combo.VALUE pentru a afla chestia selectata si nimic altceva.
Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 4/20/2006 2:22:03 PM
User is offlinepgs
12 posts


Re: Problema cu Combo
 (N/A)
Imi pare rau dar nu s-a inteles problema!
Nu este vorba de cod scris ci de un comportament ciudat la combo atunci cand folosesti mouse un pic mai neatent.
Reiau explicatia :
Fac un form nou (curat)
in data envairoment aduc o tabela:
Denumire id
Popescu 1
Ionescu 2
Georgescu 3

Pun un combo si la rowsource aleg tabela
Deci nu am scris nici o linie de cod!

Daca rulez formul si dau click pe combo , se deschide, aleg Ionescu
facand click , se stringe combo si cursorul din tabela arata 2/3 .
Pana aici e normal, deoarece combo are "rowsource" tabela.
Orice nume aleg din combo cursorul din tabela se duce la pozitia corspunzatoare.

Dar ,probema :
Daca deschid combo si ma asez deasupra unui nume si nu dau click pe el ci undeva in dreapta depasind putin suprafata combo dar avand zona albastra din combo pe un alt nume si apoi fac clik ...combo se stringe si ramane cu valoare "veche" in el desi cursorul arata alt rec. no.
In acest moment combo parca nu mai are "recordsource" tabela ?!?
In combo ai thisform.combo1.valu="Popescu" iar in tabela ai tabela.denumire="Ionescu" !!!
Daca mai legi o alta tabela cu index pe valoare de ID din prima poti sa vezi comezile unui client ca fiind ale altuia !!!
Singura rezolvare care am gasiti pana acum este:
In lost focus sa verific daca vlaorea din combo difera de valoare din tabela si sa "mut" pointerul din tabela corespunzator ca sa simulez "rowsource" .
E drept ca asta nu poate functiona daca in form nu mai exista un alt obiect care sa ia focusul !
Poate ma ajuta cineva cu o solutie mai eleganta !
Comportamentul asta l-am gasit numai in VFP, in Visual C, sau Visul Basic nu face traznaia asta !








 4/20/2006 2:43:21 PM
User is offlinepgs
12 posts


Re: Problema cu Combo
 (N/A)
Deci concluzia ar fi cam asa:
La toate obiectele (Lista, Grid,...) pointerul se "tine" dupa elementul selectat(clicat) din obiect, ...si la Combo se tine in 99% din cazuri, mai putin atunci cand "greseti" un pic cu mouse !
Oricum, ciudat comportament la un Combo in VFP !

Este adevarat se poate lua mereu cobo.value !
Dar daca apoi faci un select ...pe un server este mult mai "costisitor" un select dupa un nume de 50 caractere decat dupa un ID ! care era la indemana in cursor !
 4/20/2006 5:06:11 PM
User is offlineDoru
160 posts
www.aquila.ro
5th




Re: Problema cu Combo
 (N/A) Modified By Doru  on 4/20/2006 5:13:56 PM)

In combo pui denumire si id ; setezi BoundColumn pe 2 si atunci in value vei avea nu denumirea ci id-ul.

Edit: da am testat si eu si intradevar asa face; nu am observat pina acum ... hmm; in 90% am folosit valoarea din value


Cristian Tenea
Aquila
 4/22/2006 12:16:07 PM
User is offlinepgs
12 posts


Re: Problema cu Combo
 (N/A)
Cand am deschis discutia asta cred ca am gresit titlul "Problema cu Combo"!
Nu EU am probleme cu combo (lucrez fox de cativa ani si m-am descucat), ci VFP are probleme cu Combo.
Personal cosider asta un BUG si as fi vrut sa va atentionez si pe voi.
Am gasit acest forum f.bun (apropo fecitari organizatorilor pt. conferinta!) si am zis sa pun aici din problemele care le-am avut si eu.
Deci eu nu cer ajutor sa rezolv o problema ci doar am "creat" o problema ca sa observati mai usor acest BUG. Desigur am primit sfaturi cum sa rezolv problema si multumesc celor care le-au dat, desi nu asta am urmarit eu.
Problema se poate "demonta" usor folosind combo.value sau punand bound to pe coloana 2 si luand de acolo ID. , apoi se face un select cu conditia respectiva sau un set filter to...DA! Dar toate astea nu fac decat sa ocoleasca "problema" prin cod scris...En nu am pus nici o linie de cod si formul respectiv functionaza 99% bine cu o mic problema.
Pentru cei care au 3-4 minute timp, si vor sa vada cu ochi lor BUG-ul pot sa incerce sa faca singuri unrmatorul Form in care nu trebuie sa scrie nici o linie de cod.
Ma scuzati daca repet, dar incercati:

Faceti un tabel (sa-i zicem client.dbf)
Introduceti in el:
Nume Id
A 1
B 2
C 3
Mai facet un tabel (sa-i zicem facturi.dbf)
Introduceti in el:
Nr Descriere Id_client
1 Fact._A 1
2 Fact._B 2
3 Fact._C 3

Puteti pun si mai multe facturi.
Am pus in Descriere si o litera din client ca sa "vedem" mai usor ce se intampla.

In rabela facturi creati un index pe Id_client.

Acum un form nou (curat)
In DataEnviroment adaugati tabela client si tabela facturi.
Faceti o relatie intre cilent.id si facturi.id_client.
Nu e nevoie de "set relation to ..."
Tregeti cu mousele de campul Id din tabela clienti peste campul Id_client din tabela facturi.
Adaugati in form un Combo si alegeti la RowSource tabela client
Adaugati in form un grid si alegeti la RecordSource tabela facturi

Daca rulati formul vedeti ca alegand un client vedem numai facturile lui.
Daca deschideti combo si apoi faceti click in stanga sau dreapta portiuni deschise veti putea vadea un client ales in combo si facturile altuia in grid !
Daca dupa deschiderea gridului se face clik in zona deschisa de la combo sau deasupra lui sau dedesubt nu e nici o broblema !
Puteti incerca sa stergeti Combo si sa-l inlocuiti cu un List (evident RowSource este tabela client) , va functona perfect. La fel daca-l inlocuiti cu nu grid !
In concluzie: daca un utilizator se pange ca din cand in cand programul factut de dvs. face "figuri" vrificati cum ati folosi combo, sa nu fi dat peste acest BUG !
In o data imi cer scuze pt. cei mai experimentati care cunosc aceasta problema, dar am vrut sa-i ajut pe cei care doresc.
  Visual FoxPro  Cod, sintaxa si comenzi  Problema cu Com...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement