Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 21 odgovor
  • 5.315 pregleda

Najnovija ↓

Problem sa richedit 29.03.2012. u 16:32 · pre 177 meseci #1
Imam tabelu sa dva polja sifra i ukupno,u koju ubacujem podatke i za sifru i za ukupno,ona recimo izgleda ovako

sifra ukupno
0101 1500
0146 2400
0144 1000

Ono sto meni treba jeste da kada postavim dva richedit u koji ukucam recim0 0101 a u drugi 0146,da mi sabira te redove,u prvom za 0101 je 1500 a u drugi za 0146 je 2400,dakle neki sql koji bi sabrao sve iz prvog richedit i iz drugog,da bih video koja je razlika....Da li je to moguce uraditi na nacin koji sam zamislio...Hvala
Re: Problem sa richedit 29.03.2012. u 18:37 · pre 177 meseci #2
Pretpostavljam da ti je kolona sifra tipa varchar ili sta vec.Ako sam dobro razumeo sta ti treba:

Code (delphi):

SELECT SUM(ukupno) FROM tabela WHERE sifra IN('+QuotedStr(RichEdit1.Text)+','+QuotedStr(RichEdit2.Text)+');
 


Potpis
"Ne menjaj nesto sto te sasvim dobro sluzi, ne trazi leba preko pogace" - Aleksandar Andrijevic
Re: Problem sa richedit 29.03.2012. u 19:59 · pre 177 meseci #3
Uradio sam ovako ali izlazi samo prvi red,tj suma prvog iznosa,kad vec ukucam sledeci izlazi prazno....

query1.SQL.Clear ;
query1.Close;
query1.SQL.Add ('SELECT SUM(cast(ukupno as float)) FROM statistika');
query1.SQL.Add ('WHERE sifra IN('+QuotedStr(RichEdit1.Text)+','+QuotedStr(RichEdit2.Text)+')') ;
query1.Open;


sto je i logicno jer imam samo prvi iznos(richedit1.text),a meni trebaju posebno svi unosi u prvom richeditu,i posebno u drugom,tj sume svih redova
Re: Problem sa richedit 29.03.2012. u 20:25 · pre 177 meseci #4
Mogao big da stavim richedit1.lines[0],prvi red,pa [1] drugi red ili da stavim petlju for i = 0 to 20 pa da sabere sve to.....ali kako i petlju staviti,ili moze nesto lakse
Re: Problem sa richedit 30.03.2012. u 10:07 · pre 177 meseci #5
Ima li neko ideju za pomoc....ovde sam stavio richedit polje,ali to moze da bude i memo.....Hitno je....Hvala unapred
Re: Problem sa richedit 30.03.2012. u 11:46 · pre 177 meseci #6
Citat:
popmilan76: Mogao big da stavim richedit1.lines[0],prvi red,pa [1] drugi red ili da stavim petlju for i = 0 to 20 pa da sabere sve to.....ali kako i petlju staviti,ili moze nesto lakse


Nešto tipa (iz glave bacam)
Code:

for i:= 0 to richedit1.lines.count do
  iznos := iznos + richedit1.lines[i];
Potpis
F
Re: Problem sa richedit 30.03.2012. u 12:18 · pre 177 meseci #7
I to sam uradio,ali mi tada izbacuje xbir toga sto ukucam,a meni treba ne ta kolona koju ukucam ,nego kolona do nje....kao sto sam napisao gore kveri za to,ako ukucam 0101,treba da mi sabira recimo 12000,pa ukucam 0146,treba da mi sabira 10000,tj tada vec 22000 itd
Re: Problem sa richedit 30.03.2012. u 13:44 · pre 177 meseci #8
Dodaj GROUP BY.

> query1.SQL.Add ('WHERE sifra IN('+QuotedStr(RichEdit1.Text)+','+QuotedStr(RichEdit2.Text)+')') ;
> query1.SQL.Add ('GROUP BY SIFRA');
> Query1.Open;
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Problem sa richedit 30.03.2012. u 20:37 · pre 177 meseci #9
Isto se desava kao i bez group by jer sabira samo ono sto se ukuca u prvi red,a vec u drugi nista,prazno polje...Mora da ide neka petlja za to,inace richedit mi je skroz blank,bez linija
Re: Problem sa richedit 30.03.2012. u 20:48 · pre 177 meseci #10
Kada bih stavio ovaj kod onda bi sabirao prva dva reda.....

query1.SQL.Clear ;
query1.Close;
query1.SQL.Add ('SELECT SUM(cast(ukupno as float)) FROM statistika');

query1.SQL.Add (' WHERE sifra IN('+QuotedStr(RichEdit1.Lines [0])+','+QuotedStr(RichEdit1.Lines [1])+')');

query1.Open;

ali to nije resenje,imacu vise od dva reda nekada
Re: Problem sa richedit 31.03.2012. u 02:28 · pre 177 meseci #11
Isto pišem iz glave, ali trebalo bi da razumeš poentu:

Code (delphi):

var
  sifre: String;
  ...
  sifre := RichEdit1.Lines[0];
  if RichEdit1.Lines.Count > 1 then
    for i := 1 to RichEdit1.Lines.Count - 1 do
      sifre := sifre + ', ' + RichEdit1.Lines[i];
  Query1.Close;
  Query1.SQL := 'SELECT SUM(CAST(ukupno AS FLOAT)) FROM statistika WHERE sifra IN (' + sifre + ')';
  Query1.Open;
 


Možda bi bilo bolje da jednostavno koristiš običnu TEdit komponentu i da u nju upisuješ željene šifre razdvojene zarezom. Zatim to jednostavno dodaš u kveri i rešio si problem. Ne razumem zašto koristiš TRichEdit za ovako nešto ako ti samo treba unos niza numeričkih vrednosti.
Potpis
"There is a theory which states that if ever anybody discovers exactly what the
Universe is for and why it is here, it will instantly disappear and be replaced by
something even more bizarre and inexplicable. There is another theory which states
that this has already happened."
-- Douglas Adams
Re: Problem sa richedit 31.03.2012. u 02:59 · pre 177 meseci #12
> Isto se desava kao i bez group by jer sabira samo ono sto se ukuca u prvi red,a vec u drugi nista,prazno polje...Mora da ide neka petlja za to,inace richedit mi je skroz blank,bez linija

Na osnovu tvog opisa, tebi treba group by kveri, sad možda nisam razumeo šta zapravo ti ne radi. Hajde ti pejstuj ne svoj kod već krajnju vrednost koju dobija kveri (Query1.SQL.SaveToFile).
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Problem sa richedit 31.03.2012. u 16:37 · pre 177 meseci #13
Evo ovako,imam tabelu sa dva polja sifra i ukupno,recimo da imam upis za sifru 0101 a za ukupno 12000,i za sifru 0123 imam ukupno 15000,i sada ukucam u richedit jedno ispod drugog 0101
0123

zatim imam polje kao rezultat kverija,koje sabira ovo iz richedita,u mom slucaju to je 27000
Savkicu u tvom kodu izadje samo 12000,vec kada ukucam 0123,izlazi mi prazno polje
Nadam se da sam bio jasan
Re: Problem sa richedit 31.03.2012. u 19:46 · pre 177 meseci #14
> Evo ovako,imam tabelu sa dva polja sifra i ukupno,recimo da imam upis za sifru 0101 a za ukupno 12000,i za sifru 0123 imam ukupno 15000,i sada ukucam u
> richedit jedno ispod drugog
> 0101
> 0123

> zatim imam polje kao rezultat kverija,koje sabira ovo iz richedita,u mom slucaju to je 27000

To ti je onaj prvi upit koji je neko poslao, dakle:

SELECT SUM(ukupno) FROM tabela WHERE sifra IN(...

E sad šta tu tebi tačno ne radi, pošalji tvoj kod koji generiše sql upit i samu vrednost tog kverija.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Problem sa richedit 31.03.2012. u 20:02 · pre 177 meseci #15
query1.SQL.Clear ;
query1.Close;
query1.SQL.Add ('SELECT SUM( ukupno ) FROM statistika');
query1.SQL.Add ('WHERE sifra IN('+QuotedStr(RichEdit1.Text)+','+QuotedStr(RichEdit2.Text)+')') ;
query1.SQL.Add ('GROUP BY Sifra');
Query1.Open;
radi kad ukucam sifru u prvi red,ali kad ukucam vec u drugi red tu ne rado,i pokaazije prazno polje
Re: Problem sa richedit 31.03.2012. u 20:18 · pre 177 meseci #16
Koliko RichEdit-a imas na formi?
Ako imas jedan onda ti je Rambo lepo napisao, samo dodaj f-ju QuotedStr kada god pises u promenljivu sifra.
Code:

  sifre := QuotedStr(RichEdit1.Lines[0]);
  if RichEdit1.Lines.Count > 1 then
    for i := 1 to RichEdit1.Lines.Count - 1 do
      sifre := sifre + ', ' + QuotedStr(RichEdit1.Lines[i]);


poz
Re: Problem sa richedit 31.03.2012. u 20:26 · pre 177 meseci #17
Za sada mi je potreban jedan,ali cu imati dva kasnije,ali ako uradim za jedan lako cu i za drugi richedit,u ovom kodu nesto ne stima,a sta ne znam,sifra je string polje a ukupno integer
Re: Problem sa richedit 31.03.2012. u 20:34 · pre 177 meseci #18
procedure TfrmKontrola.Button2Click(Sender: TObject);
var
sifre: integer;
i : integer;
begin
sifre := strtoint(RichEdit1.Lines[0]);
if RichEdit1.Lines.Count > 1 then
for i := 1 to RichEdit1.Lines.Count - 1 do
sifre := sifre + strtoint(RichEdit1.Lines);
showmessage(inttostr(sifre));
end;


end.

Ovaj kod mi sabira svaki red ali onaj broj koji ukucam,recimo....
2
2
izadje 4

ali nece kveri da radi
Re: Problem sa richedit 31.03.2012. u 21:26 · pre 177 meseci #19
Citat:
savkicHajde ti pejstuj ne svoj kod već krajnju vrednost koju dobija kveri (Query1.SQL.SaveToFile).
Potpis
F
Re: Problem sa richedit 31.03.2012. u 21:53 · pre 177 meseci #20
kveri treba da dbija vrednost 12000,27000,itd...dakle sumu iz polja ukupno,za ukucane sifre
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme