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  Baze de date, tabele, view-uri si indecsi  selectie tabele...
 selectie tabele ierarhice continuare
 
 10/20/2009 4:25:05 PM
User is offlinemururadu
2 posts


selectie tabele ierarhice continuare
 (Romania)

    Revin cu problema simplificata, am atasat o tabela exemplu (in vfp6) ma intereseaza sa selectez intr-o tabela toate articolele: subansambluri, repere, toata ierarhia pina la ultimul reper care apartin de ansamblurile ("Masina de brosat","Masina de rabotat MR1"), mentionez ca un subansamblu, reper etc., poate apartine la mai multi parinti. Nivelul ierarhiei nu se stie.

  Multumesc        

nome.zip 
 10/20/2009 5:21:50 PM
User is offlineDaniel Buduru
2335 posts
1st




Re: selectie tabele ierarhice continuare
 (N/A)
Fisierele atasate pe forum au, la descarcare, lungimea 0, asa ca nu se poate vedea continutul.


 

Daniel Buduru
 10/20/2009 8:27:19 PM
User is offlineDaniel Buduru
2335 posts
1st




Re: selectie tabele ierarhice continuare
 (N/A)
In lipsa tabelelor tale, am s aincerc sa  definesc un model
- o tabela ierarhie cu idparent, id, cant(itate) - contine ce ai spus in celallt thread. Nivelul nu ne intereseaza aici
- o tabela comanda cu id, cant(itate) - contine produsele ce se lanseaza
- un cursor necesar, cu idparent, id, cant_ans, cant, nivel, path.
codul:

LOCAL lnlevel
lnLevel=1
SELECT ans.idparent, ans.id, ans.cant as cant_ans, ans.cant*cda.cant as cant, lnLevel as nivel, CAST(SPACE(0) as varchar(250)) as path ;
        FROM ierarhie ans INNER JOIN cda ON ans.idparent=cda.id ;
        INTO CURSOR necesar READWRITE nofilter
lnLevel=2
DO WHILE .t.
         INSERT INTO necesar ;
                 SELECT ans.idparent, ans.id, ans.cant as cant_ans, ans.cant*necesar.cant as cant, lnlevel as nivel, ;
                 ALLTRIM(necesar.path)+TRANSFORM(necesar.idparent)+'/' as path ;
                 FROM ierarhie ans INNER JOIN necesar ON ans.idparent=necesar.id ;
                 WHERE necesar.nivel=lnLevel-1

       IF _tally=0
             EXIT
       ENDIF
      lnLevel=lnLevel+1
Enddo   

SELECT necesar
BROWSE LAST nowait

Nu l-am testat, poate avea ceva erori de tastare

Daniel Buduru
  Visual FoxPro  Baze de date, tabele, view-uri si indecsi  selectie tabele...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement