RONUA
ROmanian .NET User Association --- Asociaţia Romană a Utilizatorilor .NET
Comunitatea dezvoltatorilor software pe .NET Framework

Clienti, produse si altele

rated by 0 users
This post has 16 Replies | 2 Followers

Top 10 Contributor
Points 69,635
ignatandrei Posted: Tue, Mar 9 2010 1:24 PM

Sa zicem ca avem vinzarile de produse pe clienti.

Se cere ca sa se afiseze grafic produsele si clientii astfel incit :

1. sa se vada toate produsele si clientii

2. Daca se da click pe un client, sa se filtreze produsele dupa clientul respectiv

3. daca se click pe >= 2 clienti (cu shift), sa se filtreze produsele dupa produsele comune (intersectia)

La fel pentru produse.

Ce ma sfatuiti ? Caci nu prea stiu de unde s-o apuc pe calea grafica/ cod...

  • | Post Points: 20
Top 10 Contributor
Points 32,325
tudor.t replied on Tue, Mar 9 2010 3:27 PM

Depinde de ce are nevoie clientul, deci ce se intelege prin "afiseze grafic"...
O varianta ar fi doua grid-uri, unul cu produsele, altul cu clientii, asezate pe verticala sau orizontala..
Fiecare grid ar fi astfel "master' dar si "details" pentru celalalt..

  • | Post Points: 20
Top 10 Contributor
Points 69,635

Prin afiseze grafic inteleg chiar asta: grafica(ASP,Winforms,WPF, orice)

Dar... cum rezolv cu codul ? Ce ar trebui sa fac? Sa zicem ca selecteaza 10 clienti ...

  • | Post Points: 35
Top 10 Contributor
Points 32,325
tudor.t replied on Wed, Mar 10 2010 8:10 AM

Nu prea inteleg unde e problema - de fiecare data cand selecteaza un client, re-filtrezi lista de produse (prespunand ca lista e deja adusa in memorie)..

Daca e vorba de mii de produse, care nu le poti tine toate in memorie, intr-adevar pot aparea probleme de performanta daca la fiecare selectare de client cu Ctrl-Click trebuie sa mergi in baza de date si sa aduci din nou produsele..

  • | Post Points: 5
Top 75 Contributor
Points 1,265
boldicu replied on Wed, Mar 10 2010 8:16 AM

Problema ar fi ca nu stii cand termina utilizatorul selectia? Daca asta e ai putea sa folosesti un delay si sa incepi afisarea produselor daca au trecut cateva milisecunde de cand a dat el ultimul click ca sa-i dai posibilitatea sa mai selecteze clienti. Apoi pana se afiseaza produsele il atentionezi cumva ca se incarca gridul cu produse (afisezi o imagine cu loading peste grid).

Cam asa functioneaza si plugin-ul de jquery pentru autocomplete din cate am vazut eu. Tastezi litere dar numai daca au trecut 10 ms (delay-ul default) intre doua caractere face un request sa-i aduca date.

  • | Post Points: 20
Top 10 Contributor
Points 69,635

boldicu:
Problema ar fi ca nu stii cand termina utilizatorul selectia?

Problema e ca nu vreau sa programez ;-) Vreau sa gasesc ceva deja facut pentru o problema asa simpla...

  • | Post Points: 35
Top 25 Contributor
Points 9,730
codecamp_3_8_mai_2009_sinaia
Shiva replied on Thu, Mar 11 2010 11:36 AM

jqGrid pt. web apps?

Joy, frustration, excitement, madness, aha's, headaches ... codito ergo sum!

Fiecare are un spirit care poate fi slefuit, un corp care poate fi antrenat si o cale pe care sa o urmeze ...

  • | Post Points: 20
Top 10 Contributor
Points 69,635

nope...

  • | Post Points: 5
Top 10 Contributor
Points 32,325
tudor.t replied on Thu, Mar 11 2010 12:34 PM

ignatandrei:
Problema e ca nu vreau sa programez ;-) Vreau sa gasesc ceva deja facut pentru o problema asa simpla...

Pai prima intrebare ar fi: cum vrei sa arate pe partea de UI, mai concret?

 

  • | Post Points: 20
Top 10 Contributor
Points 69,635

 

tudor.t:
cum vrei sa arate pe partea de UI

Un listbox cu clienti

un listbox cu produse.

Dai click pe 2 ,3 , 7 clienti : iti arata DOAR intersectia produselor cumparate de clientii respectivi

Dai click pe 2,3,7 produse : iti arata DOAR clientii care au cumparat TOATE produsele respective

  • | Post Points: 20
Top 10 Contributor
Points 22,780
Cryogenic replied on Thu, Mar 11 2010 2:19 PM

Uite care ar fi ideea mea:

Datele poti sa le scoti in felul urmator (cea mai simpla metoda dupa mine, insa exista anumite optimizari care se pot face pe DB si la query):

Exemplu in SQL (insa poate fi si Linq)

SELECT *
FROM Products
WHERE ID_Product IN (SELECT DISTINCT Product_ID FROM Sales WHERE Client_ID IN (1,2,3 ...))

SELECT *
FROM Clients
WHERE ID_Client IN (SELECT DISTINCT Client_ID FROM Sales WHERE Product_ID IN (1,2,3 ...))

Iar pe partea de UI, poti sa iti imparti form-ul (pagina) in doupa pe verticala, si fiecare sa aiba un grid (Produse, Clienti), iar filtrarea se face pentru grid-ul care are nu are focus.

Pentru a usura navigarea poti sa agaugi un row fictiv gol care cand e selectat, nu e filtrat deloc gridul analog.

Ex:

Produse:

   (Toate)
   Mere
   Pere
   Alune

Clienti:

  (Toti)
  Mircea
  Ion
  Maria

Cand se selecteaza Mere + Pere sa zicem vor fi afisati clientii:

 (Toti)
 Ion
 Maria

Daca utilzatoru schimba focusul in gridul 2 (Clienti) si selecteaza (Toti) gridul (1) cu produse nu va mai fi filtrat (insa gridul 2 ramane filtrat pana se selecteaza (Toate) in gridul (1).

 

Computers are high-speed idiots, programmed by low-speed idiots.

  • | Post Points: 20
Top 10 Contributor
Points 32,325
tudor.t replied on Thu, Mar 11 2010 4:36 PM

Sunt sigur ca Andrei stie cum sa implementeze asa ceva, da' inteleg ca ar vrea sa gaseasca o componenta gata implementata pentru asa ceva (doar pe partea de UI presupun, ca business logic-ul si-l scrie fiecare dupe dorinta).

Nu stiu daca exista asa ceva - am vazut o singura data ceva oarecum similar pe vremea Delphi 5 - un control (custom) ce permitea gestionarea unei relatii many-to-many intre doua entitati - insa astfel de controale sunt destul de rare deoarece fiecare aplicatie are alte idei despre cum ar trebui sa arate/functionze un astfel de control..

  • | Post Points: 20
Top 10 Contributor
Points 69,635

tudor.t:
da' inteleg ca ar vrea sa gaseasca o componenta gata implementata pentru asa ceva (doar pe partea de UI presupun, ca business logic-ul si-l scrie fiecare dupe dorinta).

Vreau sa ii dau doar un datatable ( sau ceva similar) de forma Client, Comanda,Produs si sa faca el in memory tot.

Si da, ai dreptate ... vreau un control care sa faca asa ceva direct, nu sa fac eu ... caci mi se pare functionalitatea triviala ...si destul de folosita de orice Businessman

  • | Post Points: 5
Top 10 Contributor
Points 69,635

am gasit in Excel 2010 ceva asemanator

http://blogs.msdn.com/excel/archive/2009/09/23/easy-and-even-fun-data-exploration-introducing-excel-2010-slicers.aspx

  • | Post Points: 20
Top 10 Contributor
Points 22,780
Cryogenic replied on Mon, Mar 15 2010 3:16 PM

Pai daca vrei sa folosesti ca sursa de date un cub olap, exista o destul de multe componente care sa faca asta.

Daca vrei ceva pentru  vizualizare folosind un server SQL simplu, singura componenta care o stiu eu e de la DataDynamics - Analysis (inafara de Pivot Table din Excel).

Link pentru relational data: http://www.datadynamics.com/Help/ddAnalysis/RelationalData.html

 

 

 

Computers are high-speed idiots, programmed by low-speed idiots.

  • | Post Points: 20
Page 1 of 2 (17 items) 1 2 Next > | RSS

(c) RONUA 2004-2009
Powered by Community Server (Commercial Edition), by Telligent Systems