Report készítése MSsql 2005 adatbázis táblájából c#

Report készítése MSsql 2005 adatbázis táblájából c#
2005-12-24T22:20:26+01:00
2005-12-26T17:21:10+01:00
2022-10-28T11:35:41+02:00
almeida
Adott egy tábla emberek adataival feltöltve Ms Sql 2005-ben. Hogyan készíthetek olyan reportot Visual Studioban c# nyelven, amely oldalanként csak 1 emberke adatait jeleníti meg és lapozható! Mi a különbség a local és a server report között? Melyiket használjam? Megoldásokat előre is köszönöm!
Mutasd a teljes hozzászólást!
Az üres oldal azért van, mert szélesebb a report-od, mint egy oldal, lelóg jobbra, és a nyomtatás vízszintesen sorfolyamatosan megy, így:
1 2 3 4 5 6 ...
Arra kell figyelni, hogy a reportban beállított bal margó (default 2.5cm) plusz jobb margó (default 2.5cm), plusz a designerben beállított szélesség nem haladhatja meg a 21cm-t. Ha a report body-nak adsz valamilyen háttérszínt, akkor jól látszik a nyomtatási képen, ha lelóg.
Ha a rectangle alatt van üres terület az sem jó, mert akkor az átkerül a következő oldal tetejére és annyival lefelé tolja az egészet.
Itt egy minta: ReportViewerDemo
Kicsit meghekkeltem a reportViewer-t a Form_Load-ban, mert nem adatbázisból, hanem object list-ből hozza be az adatot, de a lényeg látszik rajta.
Mutasd a teljes hozzászólást!

  • A local report az a programodba lesz ágyazva, és a programodat futtató gép fogja lerenderelni, a server report az valamivel funkciógazdagabb, de az sql server-t futtató gép rendereli. Server reportot leginkább csak nagyvállalati környezetben érdemes használni, ahol nem feltétlenül nyerő, ha az egész adatbázist átnyomja a csövön a szerver, majd ezt a(z általában gyengébb kapacitású kliens gép) rendereli. A szerver oldali report ráadásul bármilyen böngészővel is megnézhető. Szóval ha egyszerű pár rekordos nyomtatásra kell a report, akkor érdemes local módban használni, ha valami nagyobb, bonyolultabb, vagy ütemezett kimutatásra, akkor inkább szerver oldalon.

    A reportba fel kell húzni egy List nevű elemet, a reportviewer ezt fogja megismételni annyiszor, ahány rekord van. Namost a report az eredetileg folytonos megjelenítésre van szánva, nem oldalanként tagolásra, úgyhogy ezzel így még az a probléma, hogy ez még nem esik szét több oldalra. Megadhatod, hogy a List után legyen page break, de ezzel az a probléma, hogy a List-nek csak a belső tartalma ismétlődik, List elemből csak egyetlen egy van a report-on (rakj solid border-t a list-re, akkor jól látszik). A másik megoldás, hogy kihúzod akkorára a List-et, hogy pont egy oldalnyi legyen egy rekord. Ezzel az a baj, hogy ezt meg pontosan nagyon nehéz méretezni (snap to griddel meg végképp), szóval a huszonakárhányadik oldal után már pixelelcsúszás lesz belőle.
    A megoldás a következő: beleraksz egy közönséges rectangle-t a list-be, amit úgy méretezel, hogy teljesen kitöltse. Erre a rectangle-re jobbklikk->properites-> a page breaks szekcióban bejelölöd az "insert after rectangle"-t. Így mindegyik listaelem egyetlen rectangle lesz (a benne lévő mezőkkel), ami után oldaltörés jön. Nagyon fontos, hogy a rectangle érintse a list objektum tetejét belülről, mert különben a második oldaltól elcsúszik a felső margó. Ebbe a rectangle-be ezután olyan elrendezésben húzod bele a textboxokat ahogy tetszik, és mindegyiknek a =Fields!Mezőnév.Value értéket kell megadni a Value tulajdonságban.
    Mutasd a teljes hozzászólást!
  • Megcsináltam amit írtál, ugyanaz a probléma, mint eddig. Ahogy te is mondtad, a második oldaltól szétcsúszik az egész! Pedig a rectangle érinti a list objektum tetejét belülről. Mostmár egy újabb problémát is találtam, a nyomtatási képnél minden rekord után egy üres oldalt hagy. Ezt miért teszi?
    Mutasd a teljes hozzászólást!
  • Az üres oldal azért van, mert szélesebb a report-od, mint egy oldal, lelóg jobbra, és a nyomtatás vízszintesen sorfolyamatosan megy, így:
    1 2 3 4 5 6 ...
    Arra kell figyelni, hogy a reportban beállított bal margó (default 2.5cm) plusz jobb margó (default 2.5cm), plusz a designerben beállított szélesség nem haladhatja meg a 21cm-t. Ha a report body-nak adsz valamilyen háttérszínt, akkor jól látszik a nyomtatási képen, ha lelóg.
    Ha a rectangle alatt van üres terület az sem jó, mert akkor az átkerül a következő oldal tetejére és annyival lefelé tolja az egészet.
    Itt egy minta: ReportViewerDemo
    Kicsit meghekkeltem a reportViewer-t a Form_Load-ban, mert nem adatbázisból, hanem object list-ből hozza be az adatot, de a lényeg látszik rajta.
    Mutasd a teljes hozzászólást!
  • Köszi, sikerült!
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd