MS Reporting a měnící se obsah datasetu – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

MS Reporting a měnící se obsah datasetu – .NET – Fórum – Programujte.comMS Reporting a měnící se obsah datasetu – .NET – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
VladislavK0
Super člen
10. 3. 2014   #1
-
0
-

Ahoj

pokud struktura která plni dataset pro tisk v komponente Table má pevný formát pak nemám problém. Dnes jsem ale poprvé narazil na situaci kdy potřebuji vytisknout řádky té instance kdy každý z těch řádku má "na konci" jiný seznam těch tištěných polí. Vždy se jedná o string/string.

Možna lépe příklad

PS1      PS2     ES1     ES2

aaa       bbb       vs1      ....

aaa       ccc       ....      vs2

ccc       xxx       vs1     vs2

sss       aaa       ....      .... 

Takto nějak by měl vypadat vytisknutý výstup. Vysvětlení:  PSn - Pevny sloupec; ESn - Extended sloupec

Sloupce type ES v dodané instanci dat nemusí existovat vůbec, mohou být ruzně přehazeny (pořadí ve smyslu reporting datasetu)

Asi se da vytušit že bych potřeboval něco jako je "AUTOGENERATECOLUMN" typicky u datagridview a podobných, to ale v MS reportingu nefunguje.

O MS reportingu toho vím jen velmi málo, nejlepší by byl super jednoduchý příklad - superjednodochý RDLC file sem vložený ze kterého bych vycetl to co potřebuji.

Díky

Nahlásit jako SPAM
IP: 37.48.35.–
Manželka programátora pošle svého muže koupit chleba s dovětkem kdyby měly housky přines jich deset! Co přinese programátor??
Jacques
~ Redaktor
0
Návštěvník
11. 3. 2014   #2
-
0
-

Ahoj,

o jakou verzí MS SSRS jde?

Nejsem si jistý, jestli 100% chápu problém, ale nestačilo by nagenerovat prázdné sloupce v Tablu, přiřadit jim určité ES a v případě, že by byl daný sloupec prázdný jej prostě skrýt (tzn. nastavit visibility na false)?

Nahlásit jako SPAM
IP: 78.102.122.–
VladislavK0
Super člen
11. 3. 2014   #3
-
0
-

Ahoj jestli jsem to správně našel tak se jedna o verzi 10.

Tvoje myšlenka s tím nagenerovat prázdné sloupce do tablu a přiřadit jim ty ES nejde protože já je v design timu neznám.

Do toho datasetu se dostanou takto nejak:

public class ZakladniVysledovkaReport
{
	#region pevne sloupce
	public string Jmeno { get; set; }
	public string Fond { get; set; }
	public string Balanc { get; set; }
	#endregion

	#region extended sloupce
	public Dictionary<string,object> ExtendedColumn { get; set; }
	#endregion

	public ZakladniVysledovkaReport(ZakladniVysledovkaUzivatele zvu)
	{
		Jmeno = zvu.Uzivatel;
		Fond = zvu.MesicniFond;
		Balanc = zvu.Balanc;
		ExtendedColumn = zvu.prop.GetProperties();
	}
}

Kde Key = Nazev sloupce a Value je vlastni hodnota

Nahlásit jako SPAM
IP: 37.48.46.–
Manželka programátora pošle svého muže koupit chleba s dovětkem kdyby měly housky přines jich deset! Co přinese programátor??
Jacques
~ Redaktor
0
Návštěvník
11. 3. 2014   #4
-
0
-
Nahlásit jako SPAM
IP: 193.179.215.–
VladislavK0
Super člen
11. 3. 2014   #5
-
0
-

Diky

Hledam uz druhy den ale toto reseni na staooverflow jsem nenarazil.

Jeste jednou diky vyskousim

Nahlásit jako SPAM
IP: 37.48.46.–
Manželka programátora pošle svého muže koupit chleba s dovětkem kdyby měly housky přines jich deset! Co přinese programátor??
Jacques
~ Redaktor
0
Návštěvník
11. 3. 2014   #6
-
0
-

Neni zac, dej pak kdyztak vedet jestli to vubec pomohlo - tohle jsem zatim neresil :-)

Nahlásit jako SPAM
IP: 193.179.215.–
VladislavK0
Super člen
11. 3. 2014   #7
-
0
-

Tak heppy end se nekona

Procetl jsem i tyto clanky http://programujte.com/clanek/2013080401-tvorba-reportu-v-ms-reporting-services-2008-4-dil-prace-se-skupinami/

ale nic - můj problém to proste neřeší

Otazka:

Jak do toho reportu dostat pole s instanci dalsiho pole viz kod 

public class ExtendedVysledovka
{
	public string ColDescription { get; set; }
	public string RowDescription { get; set; }
	public string Value { get; set; }

	public ExtendedVysledovka(KeyValuePair<string, object> p)
	{
		ColDescription = p.Key;
		RowDescription=p.Key;
		Value = ((ZSSMRT.Global.SimpleProperty<string>)p.Value).Value;
	}
	public ExtendedVysledovka(string val, string colDesc)
	{
		ColDescription = colDesc;
		RowDescription=colDesc;
		Value = val;
	}
}

	public class ZakladniVysledovkaReport
	{

		public List<ExtendedVysledovka> returnList = new List<ExtendedVysledovka>();
		public IEnumerable<ExtendedVysledovka> ExtColumn { get { return returnList.AsEnumerable<ExtendedVysledovka>(); } }

		public ZakladniVysledovkaReport(ApplicationModel.ZakladniVysledovkaUzivatele zvu)
		{
			returnList.Add(new ExtendedVysledovka(zvu.Uzivatel, "Uzivatel"));
			returnList.Add(new ExtendedVysledovka(zvu.MesicniFond, "Fond"));
			returnList.Add(new ExtendedVysledovka(zvu.Balanc, "Balanc"));
			int row=0;
			foreach (KeyValuePair<string, object> p in zvu.prop.GetProperties())
				returnList.Add(new ExtendedVysledovka(p));

		}
	}

private void F_Tisk_Load(object sender, EventArgs e)
{
    if (DataBinding != null)
    {
        reportViewer1.LocalReport.DataSources.Clear();
        ReportDataSource rds = new ReportDataSource(JmenoDataBindingu,(((List<ZakladniVysledovkaReport>)DataBinding)[0].ExtColumn));// DataBinding);
        reportViewer1.LocalReport.DataSources.Add(rds);
        reportViewer1.LocalReport.ReportEmbeddedResource = JmenoResource;
        ReportParameterInfoCollection rpic = reportViewer1.LocalReport.GetParameters();
        }
}

private void btnTiskZakladniVysledovky_Click(object sender, EventArgs e)
{
    IList<ZakladniVysledovkaReport> lpr = new List<ZakladniVysledovkaReport>();
    foreach (ZakladniVysledovkaUzivatele zvu in zakladniVysledovka.SeznamVysledovekUzivatelu.OrderBy(x => x.Uzivatel))
    {
         ZakladniVysledovkaReport zvr = new ZakladniVysledovkaReport(zvu);
         lpr.Add(zvr);
    }
    F_Tisk ft = new F_Tisk(lpr, new PrihlasenyUzivatel(uzivatel), "ZakladniVysledovka", "Ascultant.FW.UI.Tisk.ZakladniVysledovka.rdlc");
    ft.ShowDialog();
}

Jde o to že potřebuji zobrazit cele pole IList<ZakladniVysledovkaReport> lpr ve kterem ja navic vlozeno pole public IEnumerable<ExtendedVysledovka> ExtColumn

Nahlásit jako SPAM
IP: 37.48.46.–
Manželka programátora pošle svého muže koupit chleba s dovětkem kdyby měly housky přines jich deset! Co přinese programátor??
VladislavK0
Super člen
12. 3. 2014   #8
-
0
-
Nahlásit jako SPAM
IP: 37.48.38.–
Manželka programátora pošle svého muže koupit chleba s dovětkem kdyby měly housky přines jich deset! Co přinese programátor??
VladislavK0
Super člen
13. 3. 2014   #9
-
0
-

Nevyrešeno

Nahlásit jako SPAM
IP: 37.48.40.–
Manželka programátora pošle svého muže koupit chleba s dovětkem kdyby měly housky přines jich deset! Co přinese programátor??
VladislavK0
Super člen
13. 3. 2014   #10
-
0
-

Předchozí vlákno - nemá řešení

http://programujte.com/forum/vlakno/26682-ms-reporting-a-menici-se-obsah-datasetu/#p188160

teda jestli jsem to správně pochopil! 

Ale ptám se jak se provádějí tisky když program nemůže využít ani MS Office a ani jakoukoliv konexi do jakékoli DB

Otázka jak tisknout, když koukám pouze do OOP programu, do jeho tříd - tam je vše spočítané, jak vytisknout de facto obsah mojí třídy kde je vše ok a v programu běžně zobrazené.

Díky za každou reakci

Nahlásit jako SPAM
IP: 37.48.40.–
Manželka programátora pošle svého muže koupit chleba s dovětkem kdyby měly housky přines jich deset! Co přinese programátor??
VladislavK0
Super člen
20. 3. 2014   #11
-
0
-

Vyřešeno

Pro Jacques myslím ze moje řešení by jsi mohl doplnit jako 5 článek Toho MS Reportingu co jsi tvořil s kolegou

Moji emailovou adresu asi vidíš tak se ozvi.

Nahlásit jako SPAM
IP: 37.48.40.–
Manželka programátora pošle svého muže koupit chleba s dovětkem kdyby měly housky přines jich deset! Co přinese programátor??
Jacques
~ Redaktor
0
Návštěvník
23. 3. 2014   #12
-
0
-

Super, urcite bych rad vedel jak jsi to vyresil - muzeme se domluvit na podrobnostech a probrat ten clanek?

E-mail bohužel nevidím. Zkus mi dat vedet na mail nebo linked in (doufam ze je videt, kdyby ne, tak se urcite ozvi :-) )

Nahlásit jako SPAM
IP: 78.102.122.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 40 hostů

Podobná vlákna

Měnící pozadí — založil Anonymní uživatel

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý