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  Clase - VCX si PRG  Clasa formular ...
 Clasa formular cu doua griduri parent-child
 
 3/5/2006 9:13:10 PM
User is offlineoviciandrus
762 posts
www.comptech.ro
1st




Clasa formular cu doua griduri parent-child
 (N/A)

Încerc să proiectez o clasă formular cu doua griduri. Clasa se aşteaptă să găsească în DataEnvironment două tabele între care există o relaţie una la mai multe. Spre exemplu o tabelă este FACTURI şi cealaltă este FACTURILINII. Gridurile sunt legate la cele două tabele. Formularul funcţionează într-o sesiune de date privată iar tabelele au ambele bufferingul setat la 3 - optimistic row buffering. Odată cu formularul se instanţiază şi un toolbar care permite operaţii de actualizare a tabelelor. Toolbarul are DataSession = 1 - Default. Printre altele, pe toolbar există două butoane pentru adăugarea de înregistrări noi. Un buton pentru tabela părinte (FACTURI), celălalt buton pentru tabela copil (FACTURILINII). La acţionarea lor porneşte un alt formular în care trebuie completate textboxuri cu informaţii despre noua înregistrare (produs, cantitate etc.). Fiecare textbox este legat la câmprile din tabela de actualizat (textbox.controlsource = tabelă.numecâmp). În mare, acest nou formular se sincronizează cu sesiunea de date a formularului cu griduri, selectează tabela de actualizat, apoi face un APPEND BLANK.

Acum urmează problema mea: când vreau să adaug înregistrare nouă în tabela copil (FACTURILINII), înregistrarea curentă nu este înregistrarea BLANK tocmai adăugată în tabelă, ci prima înregistrare potrivită cu tabela părinte (prima linie din factură) şi toate textboxurile îmi arată conţinutul primei înregistrări (eu mă aşteptam să văd numai textboxuri goale). În plus, dacă încerc să editez un textbox apare eroarea "Record is used by another user". Întrebarea mea este de ce se mută indicatorul de înregistrări de pe înregistrarea BLANK înapoi pe prima înregistrare din FACTURILINII potrivită cu înregistrarea părinte din FACTURI imediat ce formularul de aduăugare este activat?

Vă mulţumesc pentru răbdare şi eventualul ajutor.

 3/5/2006 10:40:10 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Clasa formular cu doua griduri parent-child
 (Romania)

Pentru ca SET RELATION asta face - afiseaza inregistrarile relationate. Cum aia proaspat adaugata n-are inca valori in campurile pe care se face relationarea, SET RELATION ti-o da afara. Dupa append blank fa un REPLACE pe campul de relationare, si n-o sa se mai mute.

Renunta la buffering 3. Treci pe 5. Buffering 3 salveaza necontrolat datele in tabela sursa in momentul in care pointerul de inregistrare se muta de pe inregistrarea curenta, si dupa aia poti sa dai ROLLBACK pana iti sta pulsul, ca datele s-au salvat deja. Altfel spus, buffering 3 nu te ajuta sa iti protejezi data entry-ul daca lucrezi pe seturi de inregistrari.


Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 3/6/2006 7:20:52 AM
User is offlineDaniel Buduru
2335 posts
1st




Re: Clasa formular cu doua griduri parent-child
 (N/A)
In afara de ce ti-a recomandat Grig, mai renunta si la APPEND BLANK, foloseste in loc de asta 
INSERT INTO facturilinii (camp_cheie) values (camp_cheie_din_facturi).
In caset mod, inregistrarea nou adaugata va corespunde de la inceput relatiei.

Daniel Buduru
 3/6/2006 9:12:22 PM
User is offlineoviciandrus
762 posts
www.comptech.ro
1st




Re: Clasa formular cu doua griduri parent-child
 (N/A)

Cred ca m-am prins. Multam fain pentru indicatii!

Abia astept sa incerc maine cum functioneaza!

  Visual FoxPro  Clase - VCX si PRG  Clasa formular ...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement