[ Brkic @ 20.11.2007. 17:01 ] @
Koristim FreeReport,
kako je moguce izvrsavati matematicke operacije nad vrednostima u reportu.
Ako iz tabele unosim podatke sa [q1.vrednost] i ima 5 redova vrednosti kako ih na kraju sabrati.Kako odrediti sta treba da sabira ??
Nasao sam nesto da ide SUM[([q1.vrednost])] ali to nije to,ne radi.

Nasao sam neki Help na spanskom i imaju operacije ali nisam nasao kako se sa njima radi.

Moze li pomoc ??
[ savkic @ 20.11.2007. 18:22 ] @
Na FastReport sajtu možeš naći help na engleskom i primere.
[ Brkic @ 20.11.2007. 20:21 ] @
Celo posle podne ispitujem i nasao sam neki Manual o FastReportu i samo ima kako se pravi suma SUM[<[q1.vrednost]>] koja izbacuje gresku u FreeReport-u dok SUM[([q1.vrednost])] ne izbacuje gresku a za resenje daje 0 dok vrednosti postoje.

Moze li neka konkretnija pomoc,ako je neko vec radio

Ili mozda neki drugi Report kod kojeg imate vise iskustva,da predjem na njega.
[ Brkic @ 20.11.2007. 20:59 ] @
Proradilo je na ReportSummary Band-u,na njemu rade sve operacije dok na ostalima ispisuje 0.
Medjutim ReportSummary se moze samo 1 napraviti tj staviti na papir a meni treba vise puta.
U Helpu kod FastReport-a sabiranje kolona stavljaju na sve Bandove.

Gde moze biti greska,zasto ne radi na Master Data Band-u ??

I u ReportSummary-u kada sabira vrednosti i ako naidje na prazno polje izbaci gresku da ne moze konvertovati string,ima li neka mogucnost preskakanja praznih polja ??

[Ovu poruku je menjao Brkic dana 20.11.2007. u 22:29 GMT+1]
[ Miloš Baić @ 20.11.2007. 22:00 ] @
Možeš i običan Footer band da postaviš, mislim na FastReport, te jednu memo(TfrxMemoView) kontrolu i u njemu text:
Code:
[SUM(<DataSet."ATRIBUT">,DetailData1)] 
[ Brkic @ 20.11.2007. 23:01 ] @
Isprobao sam sa Footer Band-om i u njima se moze racunati sa vrednostima iz imena Footer-a a u ReportSummary-u se moze racunati sa svim podacima.

I dalje ostaje gresku koju izbacuje kada se sabira vrednosti i ako naidje na prazno polje izbaci gresku da ne moze konvertovati string.

Ima li tu resenja ??
[ Miloš Baić @ 20.11.2007. 23:33 ] @
Prvo, nije dobro da numeričku obradu vršiš kao string, odnosno da budem jasniji, ako neki atribut treba biti numerički tako ga i deklariši (npr. numeric(n,m) default 0). Ako je pak deklarisan kao string, u samom SQL upitu kad dobijaš tu kolonu, možeš napisati:
Code:

select ...,
         case
          if atribut = null then
             atribut = 0
          else
             atribut
         end
from tabela

tako da ćeš dobiti 0 i neće biti problem zbog null vrednosti.

Drugo, ako ovako odradiš, postaviš Footer Band i ubaciš tekst kao što sam u prethodnom postu naveo, trebalo bi da normalno radi.
[ Brkic @ 21.11.2007. 09:32 ] @
Hvala ti puno Milose na pomoci probacu.

Atribut sam stavio kao string,a trebo bi biti numeric,zato sto pri unosu ne mora biti popunjen i onda pravi problem ako je polje prazno.
Postavicu pitanje na FB kako to da resim,tj zaobidjem.
[ Brkic @ 22.11.2007. 17:22 ] @
Milose probao sam tvoj predlog sa CASE i kako si napisao ne radi.
Gledao sam po internetu i nasao kako radi ali pravi novo polje CASE i upisuje 'OK' a ne ispravlja staro, u cemu je greska ??
Code:

select naziv_r, 
    case when naziv_r=''1'' then ''OK''
    end 
from ..
[ Miloš Baić @ 22.11.2007. 23:28 ] @
@Brkic
Probaj ovo da izvršiš na serveru:
Code:

create table test (
 broj1 varchar(15),
 broj2 numeric(16,2)
);

insert into test values ( '1', 1 );
insert into test values ( null, 1 );
insert into test values ( '1', null );
insert into test values ( null, 1 );
insert into test values ( '1', null );

select
  case
   when (broj1 is null) then 'Nema vrednost' else broj1
  end,
  case
   when (broj2 is null) then 0 else broj2
  end
from
 test
[ Brkic @ 22.11.2007. 23:52 ] @
Milose to radi i isto je kao sto sam ja napisao gore,ali umesto polja BROJ1 pravi polje CASE i umesto polja BROJ2 pravi CASE_1,bar kod mene tak radi.
Jel se moze napraviri da umesto CASE ispise nesto drugo ??
[ Miloš Baić @ 23.11.2007. 08:39 ] @
Code:
select
  (case
   when (broj1 is null) then 'Nema vrednost' else broj1
  end) as naziv_polja1,
  (case
   when (broj2 is null) then 0 else broj2
  end) as naziv_polja1
from
 test

Samo dodaj naziv "as naziv"!?!
[ Brkic @ 23.11.2007. 21:28 ] @
E neces verovati,probavao sam 'as ime' i nije htelo ali ispred case pa iza ...,ubijao sam se,sve moguce kombinacije,trazio po internetu i nista ali se nisam setio staviti sve u zagradu.

Hvala ti puno na pomoci.