private void generujPolaFormularza() { if (listaStatystyk.SelectedIndex < 0) { return; } DTO.StatystykaDTO statystyka = statystyki[listaStatystyk.SelectedIndex]; if (statystyka.Parametry.Count == 0) { dynamicznePola.Controls.Add(new LiteralControl("Statystyka nie wymaga podawania parametrów")); return; } StringBuilder szablon = new StringBuilder(); System.Text.StringBuilder sb = new System.Text.StringBuilder(); int i = 0; foreach (DTO.ParametrStatystyki parametr in statystyka.Parametry) { sb.Append(generujKontrolke(i, parametr)); i++; } dynamicznePola.Controls.Add(ParseControl(sb.ToString())); }
protected void generowanieStatystyki_Click(object sender, EventArgs e) { if (!Page.IsValid) { return; } stan = StanyStrony.przegladanieStatystyki; DTO.StatystykaDTO stat = statystyki[listaStatystyk.SelectedIndex]; object[] parametry = generujParametry(stat); if (!stat.PosiadaXslt) { DataSet ds = Pemi.Esoda.Core.Domain.Statystyki.WywolanieStatystyki(stat.NazwaProcedury, parametry); foreach (DataTable dt in ds.Tables) { GridView gv = new GridView(); gv.GridLines = GridLines.None; gv.CssClass = "grid fullWidth"; blokTresciStatystyki.Controls.Add(gv); gv.DataSource = dt; gv.DataBind(); } } else { System.Xml.Xsl.XslTransform tr = new System.Xml.Xsl.XslTransform(); tr.Load(System.Xml.XmlReader.Create(new System.IO.StringReader(stat.Xslt))); statystykaXml.Transform = tr; System.Xml.XmlReader xr = Pemi.Esoda.Core.Domain.Statystyki.WywolanieStatystykiXml(stat.NazwaProcedury, parametry); if (xr.Read()) { statystykaXml.DocumentContent = xr.ReadOuterXml(); } } }
protected object[] generujParametry(DTO.StatystykaDTO st) { object[] parametry = new object[st.Parametry.Count]; string ps = string.Empty; for (int i = 0; i < st.Parametry.Count; i++) { if (String.IsNullOrEmpty(st.Parametry[i].ZrodloDanych)) { ps = (dynamicznePola.FindControl("pole" + i.ToString()) as TextBox).Text; } else { ps = (dynamicznePola.FindControl("pole" + i.ToString()) as DropDownList).SelectedValue; } if (ps == "") { ps = null; } switch (st.Parametry[i].Typ.ToLower()) { case "data": if (ps == null) { parametry[i] = null; } else { parametry[i] = DateTime.Parse(ps); } break; case "liczbacalkowita": if (ps == null) { parametry[i] = null; } else { parametry[i] = int.Parse(ps); } break; case "liczbarzeczywista": if (ps == null) { parametry[i] = null; } else { parametry[i] = decimal.Parse(ps); } break; default: parametry[i] = ps; break; } } return(parametry); }