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  O mare problema...
 O mare problema
 
 7/19/2006 1:03:41 PM
User is offlineNicolae
58 posts


O mare problema
 (Romania)

Salut tuturor,

Am o mare problema. Trebuie sa modific ceva intr-un program facut de altcineva si nu stiu exact unde. Pana acum cumparam produse de la un sigur furnizor, iar odata cu extinderea firmei am inceput sa luam aceleasi produse si de la alti furnizori. Deci prin urmare exita produsul x pe care il cumparam din 2 locuri sa zicem. Proiectul din cate vad eu este facut in VFP6.0. Am observat ca se lucreaza cu mai multe tabele dintre care 2 tabele au un camp comun: cod_prod=codprod (cod_prod este din nomenclator de produse si coprod din tabela in care se afla toate intrarile si iesirile.

Proiectul este structurat astfel: exista o lista in care sunt toti furnizorii (din  tabela unde se afla intrarile si iesirile=schimbari). Cand se da un DbClick pe un furnizor anume in alta lista se genereaza in cea de a doua lista toate produsele cumparate (nomproduse) de la furnizorul respectiv.(dar produsele in lista a doua sunt aranjate dupa furnizorul din nomenclatorul de produse). In tabela unde am toate intrarile si iesirile am de asemenea denumirea furnizorului.

Eu as vrea ca produsele din lista a doua sa fie sortate dupa furnizorul din tabela une am toate intrarile si iesirile.

Codul din prima lista este:

In Init:

SELECT DISTINCT denfurnizor FROM schibari WHERE codoperator = 'NIR' INTO CURSOR test

SELECT test

SCAN

      thisform.List1.AddItem(denfurnizor)

ENDSCAN

SELECT test

In DbClick:   

afis=thisform.List1.Value
thisform.List2.Clear

select nomproduse
SCAN FOR denfurniz=afis
thisform.List2.AddItem(denprodus)
ENDSCAN

USE

Cred ca trebuie sa completez cu cod in DbClick.

Va multumesc.

 7/19/2006 2:03:50 PM
User is offlineDanTodor
297 posts
4th


Re: O mare problema
 (Romania)
Din ce vad eu pina acuma, ai produsele pentru UN furnizor, deci nu vad sensul sortarii dupa o cheie cu o valoare unica. Poate gresesc, sau n-am inteles bine datele problemei.
 7/19/2006 2:13:29 PM
User is offlineNicolae
58 posts


Re: O mare problema
 (Romania)

In nomenclatorul de produse am un produs introdus o singura data si la produsul respectiv un singur furnizor. In tabela unde am toate intrarile si toate iesirile am codurile (intrarile) produsului respectiv dar aici am impresia ca atunci cand se face intrarea "NIR-ul" se introduce si denumirea furnizorului de la care s-a cumparat.

Deaceea in tabela "schimbari" in dreptul codului x sa zicem poate aparea odata intrare de la firma Q, odata de la firma W.

 

 7/20/2006 10:16:40 AM
User is offlineNicolae
58 posts


Re: O mare problema
 (Romania)

Salutare tuturor,

Ajutati-ma  va rog cu o sugestie daca puteti.

 7/20/2006 11:21:46 AM
User is offlineanonymous
0 posts


Re: O mare problema
 (Romania)
Daca inteleg eu bine, ai un listbox pe care il populezi cu toti furnizorii din BD, iar cind se da dublu click pe unul din ei, vrei sa populezi un al doilea listbox doar cu produsele cumparate de la acel furnizor.
Iar codul tau face asta, deci nu prea vad ce ordonare iti mai trebuie.

A, ca daca cumva ai cumparat de mai multe ori acelasi produs de la acelasi furnizor il vei gasi dublat in lista ... asta e alta problema.
Un SELECT DISTINCT in loc de SCAN for nume_furnizor ar rezolva problema
 7/20/2006 12:23:09 PM
User is offlineNicolae
58 posts


Re: O mare problema
 (Romania)

 

Nu, nu asta este problema. Scuze poate nu m-am exprimat eu foarte bine.

Am urmatoarele tabele: nomproduse, schmbari.

-nomproduse cu campurile: cod_prod, den_prod, um, pretachizitie, denfurnizor

-schimbari cu campurile: codprod, gestiune, codoperator, cantitate, datadocument, den_furniz, pretvinzare.

Proiectul este structurat astfel: exista o lista in care sunt toti furnizorii (din  tabela unde se afla intrarile si iesirile=schimbari). Cand se da un DbClick pe un furnizor anume in alta lista se genereaza in cea de a doua lista toate produsele cumparate (nomproduse) de la furnizorul respectiv.(dar produsele in lista a doua sunt aranjate dupa furnizorul din nomenclatorul de produse, adica eu am toate denumirile de produse din nomenclator si cele care nu au miscari deloc). In tabela unde am toate intrarile si iesirile am de asemenea denumirea furnizorului.

Eu as vrea ca produsele din lista a doua sa fie sortate dupa furnizorul din tabela une am toate intrarile si iesirile=schimbari.

Codul este mai sus.

 

 7/20/2006 12:43:28 PM
User is offlineanonymous
0 posts


Re: O mare problema
 (Romania)
Atunci faci asa:

Select distinct p.cod_prod, p.den_prod;
from nomproduse p, schimbari s;
where p.cod_prod = s.codprod;
and s.den_furniz = nume_furnizor_selectat;
into cursor cProduse

inlocuiesti Nume_furnizor_selectat cu variabila ta (afis parca), iar din cProduse, cu AddItem, iti adaugi produsele in listbox
 7/20/2006 1:09:55 PM
User is offlineNicolae
58 posts


Re: O mare problema
 (Romania)

Mersi mult de raspuns.

Probez sa vad daca merge asa.

 7/21/2006 9:01:55 AM
User is offlineNicolae
58 posts


Re: O mare problema
 (Romania)

Iti multumesc pentru codul pe care mi l-ai dat, mi se pare a fi bun pentru ce imi trebuie mie, dar nu stiu din ce cauza da urmatoarea eroare:

ERROR:    'Variable "cProduse" is not found'

Acesta este codul pe care il am scris in DbClick-ul listei. Ceva nu este in regula.

afis=thisform.List1.Value
thisform.List2.Clear
thisform.List3.Clear

Select distinct p.cod_prod, p.den_prod;
from nomproduse p, schimbari s;
where p.cod_prod = s.codprod;
and s.den_furniz = afis;
into cursor cProduse
thisform.additem (cProduse)

 

 7/21/2006 9:43:29 AM
User is offlineDorin Vasilescu
1366 posts
1st




Re: O mare problema
 (Romania)
Păi cProduse e cursorul, nu ?

Faci AddItem pe cproduse.cod_prod sau cproduse.den_prod

In altă ordine de idei, aşa nu o să înveţi prea repede ceva.


 7/21/2006 9:58:48 AM
User is offlineNicolae
58 posts


Re: O mare problema
 (Romania)

Gata am rezolvat problema.

Multumesc tuturor.

  Visual FoxPro  Baze de date, tabele, view-uri si indecsi  O mare problema...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement