Novo

Forum kao aplikacija na telefonu

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

  • 5 odgovora
  • 3.070 pregleda

Najnovija ↓

Borland6 QuickReport QRSubDetail resize 30.01.2008. u 11:49 · pre 228 meseci #1
Pomocu QRSubDetail-a srchem podatke.

Radi korektno, ukoliko se preko jednog queryja mogu izvuci potrebne informacije (vezem DataSet za njega i on odradi posao).

Sad mi treba SELECT COUNT(*) i to u jednom redu vishe puta.
Npr.
ime prezime | jmbg | primanja za januar (poseban COUNT(*)) | primanja za februar(poseban COUNT(*)) | primanja za mart...

Probao sam da resize-ujem QRSubDetail, i pored njega da stavim sledeci - za svaki mesec poseban QRSubDetail, ALI nije moguce(resize nije moguc ili nisam skontao kako treba da se odradi) .

Zakucavanje vrednosti u QRLabel ili QRDBText mi deluje neozbiljno.


Kako se ovo radi? Dakle treba mi vishe DataSet-ova u istom redu. Ukoliko ima josh predoga ili korisnih linkova na ovu temu postujete ih, please!


Pozdrav!
Re: Borland6 QuickReport QRSubDetail resize 30.01.2008. u 18:13 · pre 228 meseci #2
Ne vidim što tu ima biti neozbiljno. Komponente su tu da se koriste.

Ne možeš doslovice ugurati jedan dataset pokraj drugoga jer band se generira na osnovu količine zapisa u tablici. Što bi se onda trebalo desiti ako jedna tablica ima manje zapisa nego druga?
Re: Borland6 QuickReport QRSubDetail resize 30.01.2008. u 18:38 · pre 228 meseci
izmenjeno 1 put, poslednji put tokajac 30.01.2008. u 19:10
  1. tokajac30.01.2008. u 19:10zapis iz teksta poruke
#3
Treba za 28 imenaprezimena da postavim postavim vrednosti za 12 meseci. Prakticno: 28x12 lebela; koje popunjavam hard-kodiranjem (za svaku labelu moram da odradim SELECT COUNT(*)).
28 imenaprezimena iscitavam preko DataSet-a. Ako ih upisujem u labele, ne mogu to raditi koristeci "while".

Da li postoji jednostavniji nacin?


Pozdrav!
Re: Borland6 QuickReport QRSubDetail resize 30.01.2008. u 19:39 · pre 228 meseci #4
Citat:

Ako ih upisujem u labele, ne mogu to raditi koristeci "while".

Zašto ne možeš koristiti while?
Možeš dinamički napraviti bilo koji objekat u VCL-u (pa i te QR labele), i možeš im kroz petlju vršiti bilo kakvu dodelu.
Re: Borland6 QuickReport QRSubDetail resize 31.01.2008. u 13:08 · pre 228 meseci #5
Hvala na korisnom predlogu! Pogresno sam podcenio labelu. Pomocu niza labela i 2 while-a ispunim ceo izvestaj.

Evo postupka, mozda ce nekom zatrebati:

Postavim QRSubDetail2 na izvestaj

Code:

       int zaTop=10;
       .
       .
       TQRLabel *labelice[14];

       while
         {
           labelice[k] = (TQRLabel*) new TQRLabel(izv);
           labelice[k]->Parent = izv->QRSubDetail2;
           labelice[k]->Left = 457;
           labelice[k]->Top = zaTop;
           labelice[k]->Font->Size = 8;
           labelice[k]->Caption = StringZaIspis;

         zaTop += 10;
       }



Josh nedostaje inicijalizacija niza labela na proizvoljnu duzinu (DataModule2->DSIzv1->DataSet->RecNo javlja se error Constant expression required).


Pozdrav!
Re: Borland6 QuickReport QRSubDetail resize 31.01.2008. u 13:56 · pre 228 meseci #6
Ako sam dobro razumeo, ti hoćeš da umesto STATIČKOG pretpostavljenog maksimalnog broja elemenata (u primeru je 14):
TQRLabel *labelice[14];
...imaš DINAMIČKI broj elemenata (DataModule2->DSIzv1->DataSet->RecNo).

VCL nudi TList klasu koja tu može pomoći, ali ja mislim da je STL vektor daleko fleksibilniji. Odnosno, nema šta tu da se misli.

Kako se prvi STL vektor std::vector<TQRLabel*>QRLabels, kako se dodaju elementi QRLabels.push_back(QRLabel_objekat), kako se elementima dodeljuju atributi (obavezno i Name da bi mogao kasnije da se lako vratiš na taj label) i sve ostale manipulacije sa tim dinamičkim nizom probaj da skapiraš iz ovog threada:
http://tinyurl.com/27t69m
... pri čemu najbolje pogledaj sve odgovore i rešenja koje je dao Remy Lebeau (Gambit).

Pozdrav.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme