[ Miloš Baić @ 26.06.2006. 16:19 ] @
Pozdrav,

sam naslov teme govori, ali nije greda da vam malo približim problem. Naime, upload-ovao sam primer na kojem bih voleo da mi pokažete kako ga rešiti.
Dakle, imam tabelu sa poljima ( za primer ): RB, PREZIME, IME, ARTIKL, KOLICINA.
Hteo bih u TListView da ubacim više ARTIKLOVA sa svojim KOLIČINAMA i kad završim dodavanje, odradim INSERT u tabelu.
S tim, da, rezultat u tabeli izgleda ovako:
Citat:

RB|PREZIME|IME | ARTIKL |KOLICINA
1 Peric Pera Sapun 2
1 Peric Pera Maslac 1
1 Peric Pera hleb 2

Tako da, kad se vrši pretraga, odradi se upit za RB i izbace se podaci za račun pod rednim brojem npr. 1 !!!
Nadam se da ćete razumeti... A ako se to ne radi tako kako sam zamislio, molim, da mi to predočite i kažete kako je ispravno...
[ Miloš Baić @ 27.06.2006. 13:36 ] @
Pozdrav,

ili me niste razumeli, ili je zaista tako nešto komplikovano, da mi ne možete objasniti?!
[ Srki_82 @ 27.06.2006. 15:08 ] @
Kad zavrsis sa unosom, protrci kroz ListView i uradi INSERT :)

Itemi u list view se nalaze u Items property-u. Broj itema je u Items.Count. Prva kolona je u Items[Index].Caption, druga je Items[Index].SubItems[0], treca je Items[Index].SubItems[1], itd...

Napravis SQL koji izgleda npr ovako:

INSERT INTO Racuni (RB, PREZIME, IME, ARTIKL, KOLICINA)
VALUES (:RBPARAM, :PREZIMEPARAM, :IMEPARAM, :ARTIKLPARAM, :KOLICINAPARAM)

Postavis parametre i izvrsis query.
[ Miloš Baić @ 27.06.2006. 19:12 ] @
Problem?!!!

Dakle, kao u primeru, postavio sam TListView(VilevStyle=vsReport) i dodelio kolone:
0 - ARTIKL (ListView1.Columns(0))
1 - KOLICINA (ListView1.Columns(1))

Iz TEdit1 i TEdit2, TListView1 punim:
Code:

Item := ListView1.Items.Add;
Item.Caption := IntToStr(ListView1.ComponentCount);
Item.SubItems.Add(Edit1.Text);
Item.SubItems.Add(Edit2.Text);


Posle toga treba unos u bazu?! OVako ide:
Code:

with ADOQuery1 do  begin
 Close;
 SQL.Clear;
 SQL.Add('INSERT INTO Naziv_Tabele (RB,PREZIME,IME,ARTIKL,KOLICINA');
 SQL.Add('VALUES (:RB,:PREZIME,:IME,:ARTIKL,:KOLICINA');
 Parameters.ParamByName('RB').Value:=StrToInt(EditRB.Text);
 Parameters.ParamByName('PREZIME').Value:=EditPREZIME.Text;
 Parameters.ParamByName('IME').Value:=EditIME.Text;
 Parameters.ParamByName('ARTIKL').Value:= //ovde treba unos iz TListView
 Parameters.ParamByName('KOLICINA').Value:= //ovde treba unos iz TListView
 ExecSQL;
end;

Pokušao sam neke varijante, ali nisam skontao, tako da mi treba kod kojim ću dodeliti:
Parameters.ParamByName('ARTIKL').Value:= ???
Parameters.ParamByName('KOLICINA').Value:=???
[ Srki_82 @ 27.06.2006. 20:17 ] @
Citat:
Kad zavrsis sa unosom, protrci kroz ListView i uradi INSERT :)


Mislim da bi ti for petlja jako pomogla u resavanju tog problema.
[ Miloš Baić @ 27.06.2006. 20:36 ] @
Kako?
[ Srki_82 @ 27.06.2006. 20:39 ] @
Da li bi ti pomoglo ako bih ti rekao da za svaki red moras da napraivs poseban INSERT?
[ marcha @ 28.06.2006. 05:40 ] @
Citat:

Pokušao sam neke varijante, ali nisam skontao, tako da mi treba kod kojim ću dodeliti:
Parameters.ParamByName('ARTIKL').Value:= ???
Parameters.ParamByName('KOLICINA').Value:=???


Code:

// i - index itema u listi
// x,y - index subitema u kome si upisao vrednosti za art i kol
Parameters.ParamByName('ARTIKL').Value:= ListView1.Items[i].SubItems[x];
Parameters.ParamByName('KOLICINA').Value:=ListView1.Items[i].SubItems[y];



[ Miloš Baić @ 28.06.2006. 17:44 ] @
Ovaj deo je rešen, hvala puno...