[ dankovuk @ 13.11.2012. 14:03 ] @
Imam program za magacin npr...
sad zelim da kad upisem u bazu odredjeni artikal pa sad naprimer: imam vrata 400
prodao sam jedna vrata i kako da sad napravim izlaz da mi izracuna i oduzme ta vrata, odnosno da sad kad trazim koliko imam vrata u magacinu da je 399 a ne 400 vrata a da ne idem rucno..
hvala ako neko zna molim da se javim
[ savkic @ 14.11.2012. 12:29 ] @
Pretpostavljam da imaš neku tabelu magacin u kojoj čuvaš stanje (artikal taj i taj, količina npr. 400), kada uradiš izlaz samo updejtuješ tu tabelu magacin i upišeš novo stanje.
[ dankovuk @ 14.11.2012. 12:36 ] @
Ali kako da uradim izlaz, da mi sam racuna, npr. program je magacin, i unosim artikle npr nabavku, kupiosam po toj cijeni i ima npr 400 komada necega,sad kako da napravim izlaz da mi otvori novi prozor u kome upisujem ono sto sam prodao i da mi automatski oduzima taj prodani artikal sa ukupne kolicine, prodao sam 3 komada i sad da mi na stanju pise da je 397
ako me razumijes sta sam htio da objasnim
[ savkic @ 14.11.2012. 18:30 ] @
> Ali kako da uradim izlaz, da mi sam racuna, npr. program je magacin, i unosim artikle npr nabavku, kupiosam po toj cijeni i ima npr 400 komada necega,sad
> kako da napravim izlaz da mi otvori novi prozor u kome upisujem ono sto sam prodao i da mi automatski oduzima taj prodani artikal sa ukupne kolicine, prodao
> sam 3 komada i sad da mi na stanju pise da je 397

Ne može sam da računa, to moraš ti napisati. Uradiš izlaz i upišeš šta treba u tabelu Izlaza i nakon toga ažuriraš stanje u tabeli magacina, znači radiš i menjaš dve tabele.
Ako radiš sa nekim RDBMS serverom (Oracle, MSSql, Firebird...) onda umesto koraka dva (ažuriranje tabele magacina) iz tvog Delphi koda, možeš napisati trigger (na SQL serveru) koji će to uraditi direktno u bazi.
[ captPicard @ 15.11.2012. 09:29 ] @
Imaš tabelu Ulaz npr. i Izlaz.

Code:
select u.sifra_artikla, u.kolicina - i.kolicina from ulaz u, izlaz i where 
u.sifra_artikla = i.sifra_artikla


ovaj sql ti daje trenutno stanje magazina po artiklima
[ popmilan76 @ 16.11.2012. 11:56 ] @
Skini ovo,ukucaj ta vrata kao proizvod,pa ga prodaj,imas stavku blagajna(kasa) i odmah ces videti da ga skida sa stanja...Evo ti probaj sam...

http://www.mediafire.com/?vwm1ds88m518r7y
[ captPicard @ 16.11.2012. 12:23 ] @
Nije ti dobra ta instalacija, ne radi.
[ popmilan76 @ 16.11.2012. 19:46 ] @
Sve sam odradio kako treba,ne znam zasto nece....uradio sam u inno setup,i stavio minireg za ionstaliranje bde...i ne znam sta jos....
[ popmilan76 @ 16.11.2012. 20:05 ] @
Evo novog linka,jos sam nesto odradio ako to ima veze,evo probajte ovo

http://www.mediafire.com/?wf79vlfl2cfzna0
[ dankovuk @ 31.03.2013. 15:46 ] @
vezan sam na access preko ado i kako da dodajem na postojeci artikal novo stanje, npr. imam 23kg secera kupio sam 5kg kako da kad u dbedit ili edit ukucam 5kg da mi sabere sa vec postojecih 23kg i snimi u bazu kao novo stanje.pozz
[ dankovuk @ 31.03.2013. 15:47 ] @
odnosno da vise ne stoji 23kg nego sad da je 28kg.
[ savkic @ 31.03.2013. 19:49 ] @
> kako da dodajem na postojeci artikal novo stanje, npr. imam 23kg secera kupio sam 5kg kako da kad u dbedit ili edit ukucam 5kg da mi sabere
> sa vec postojecih 23kg i snimi u bazu kao novo stanje.pozz

Ne znam kako radiš update. DBEdit je u principu direktno vezan za to polje i nije predviđen za sabiranje, bolje ti je da ubaciš obični edit u kome će se upisati dodatni iznos.
A taj iznos možeš sabrati iz koda, npr.
Code:

begin
  DataSet.Edit;
  DataSet.FieldByName('KOLICINA').AsInteger := DataSet.FieldByName('KOLICINA').AsInteger + StrToIntDef(Edit1.Text, 0);
  DataSet.Post;
end;
[ dankovuk @ 31.03.2013. 20:03 ] @
Druze hvala ti, radi, duznik sam ti...
[ dankovuk @ 04.04.2013. 16:36 ] @
a kako da skinem sa stanja neki artikal i da mi tu radnju snimi u novu tabelu
[ captPicard @ 05.04.2013. 10:00 ] @
Ne znam kako si koncipirao bazu, ali u pravilu ti ne bi trebao nigdje zapisivati stanje, njega moraš računati u trenutku kada ti treba.
Npr:

Code:

select a.sifra, sum(u.kolicina - i.kolicina) as stanje from artikli a, ulaz u, izlaz i where
a.sifra= u.sifra and a.sifra = i.sifra 
group by sifra


Na taj način uvijek imaš stvarno stanje, a ako stanje negdje zapisuješ uvijek se može dogoditi da negdje nešto preskočiš i onda je upitno koliko ti je taj podatak točan.
[ Rapaic Rajko @ 05.04.2013. 11:46 ] @
Ne pita on kako zapisati stanje, vec PROMENU stanja, u zasebnu tabelu.

Moje misljenje je da autor pitanja/teme mora savladati bar neke osnove SQL-a, jer otaljavati neki posao ovako telegrafski preko ovog foruma je... hm.

Ali dobro, evo neki hint. Postoji puno nacina, evo dva:

1) Postaviti trigger na tabelu sa stanjem, koji ce upisivati svaku promenu stanja u tabelu promena.
2) Raditi rucno upis promene u tabelu promena, ali onda treba koristiti transakciju. Transakcija osigurava da se izvrsi "ili sve ili nista" - znaci, i promena stanja i upis promene stanja, ili nijedno od toga.

Pozz
[ dankovuk @ 05.04.2013. 15:52 ] @
imam artikal secer i na stanju mi se nalazi 20kg, 2kg sam prodao nekoj firmi, sad mi treba da tu prodaju evidentiram u tabeli prodaja i da upise kome sam prodao a da mi iz tabele stanje skida sa stanja i da sad stoji da je 18kg. da li sam bio jasniji, izvinjavam se na dosadi, hvala
[ captPicard @ 05.04.2013. 22:32 ] @
Ta prodaja se zove račun ili otpremnica pa onda račun. Dakle prvo moraš napraviti tablicu računi i računi stavke i naravno napraviti forme za unos računa (to je već malo veći posao, imaš na forumu brdo primjera). Šta se tablice stanja tiče i dalje mislim da nema potrebe da postoji ta tablica, stanje izračunaš u trenutku kada ti je potrebno. Ovo šta kolega Rajko kaže, to možeš napraviti ako ti treba EVIDENCIJA promjena, a ako sam te sada napokon dobro shvatio onda tebi treba ono šta sam naveo u prvoj rečenici.
[ dankovuk @ 06.04.2013. 10:02 ] @
ne mogu da nadjem ni jedan primjer na forumu, ako moze link, hvala
[ dankovuk @ 06.04.2013. 10:42 ] @
imam tabelu ulaz u koju snimam artikal, kolicina,cijena itd.... i imam formu izlaz u kojoj imam dblookupbox gdje biram artikal koji zelim da izadje i kolicinu koju zelim da izadje, dakle da kad izaberem secer koji na stanju ima 20kg i sad sam prodao 2kg zelim ta dva kg da mi snimi u tabelu izlaz i kome sam ih prodao i da mi skida sa stanja tabele ulaz tako sam je nazvao a moze se zvati artikal, znaci da mi kad opt prodam 3kg secera nekom drugom opet skida sa stanja a tu prodaju snimi u izlaz. hvala
[ captPicard @ 06.04.2013. 13:04 ] @
Nismo na istoj valjnoj duljini ili kako kaže kolega Rajko ja nisam razumio pitanje.

Evo primjera sa tablicama (samo najbitnija polja) kako bi to trebalo funkcionirati:

Code:
ULAZ_STAVKE
-----
broj_dokumenta 
redni_broj_stavke
sifra_artikla
kolicina

IZLAZ_STAVKE
-----
broj_dokumenta
redni_broj_stavke
sifra_artikla
kolicina


Primjer podataka:

ULAZ_STAVKE
1,1,100,5
1,2,200,4
2,1,100,10
2,1,200,2

IZLAZ_STAVKE
1,1,100,4
1,2,200,2
2,2,100,5

Dakle tebi ne treba nikakvo polje STANJE_ARTIKLA, ti imaš zablicu ulaza i tablicu izlaza i kada ti treba stanje nekog artikla dobiješ ga upitom:

Code:
select a.sifra, sum(u.kolicina - i.kolicina) as stanje from artikli a, ulaz_stavke u, izlaz_stavke i where
a.sifra= u.sifra and a.sifra = i.sifra 
group by sifra


Prema gornjem primjeru podataka ti sa upitom možeš dobiti da je npr stanje artikla 100=11 (artikal 100 je ušao sa količinom 5 u prvom dokumetnu Ulaz i sa količinom 10 u drugom dokumentu Ulaz, dakle ukupno ULAZ=15 i
izašao je u prvom dokumentu Izlaza sa koičinom 4, dakle ukupan IZLAZ=4). I 15-4=11 i to je stanje artikla na zalihama.

Nadam se da sam sada bio jasniji.
[ dankovuk @ 09.04.2013. 22:05 ] @
rijeseno, hvala vam