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??
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)?
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??
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??