public static void AddSortInformation(XmlDocument xmlDoc, IBNReportTemplate template) { XmlDocument xmlTemplateDoc = template.CreateXMLTemplate(); XmlNode xmlSorting = xmlTemplateDoc.SelectSingleNode("IBNReportTemplate/Sorting"); XmlNode xmlSortingR = xmlDoc.ImportNode(xmlSorting, true); xmlDoc.SelectSingleNode("Report").AppendChild(xmlSortingR); }
public static void AddFilterInformation(XmlDocument xmlDoc, IBNReportTemplate template) { XmlDocument xmlTemplateDoc = template.CreateXMLTemplate(); XmlNode xmlFilters = xmlTemplateDoc.SelectSingleNode("IBNReportTemplate/Filters"); XmlNode xmlFiltersR = xmlDoc.ImportNode(xmlFilters, true); xmlDoc.SelectSingleNode("Report").AppendChild(xmlFiltersR); }
public static void AddFilterInformation(XmlDocument xmlDoc, IBNReportTemplate template) { XmlDocument xmlTemplateDoc = template.CreateXMLTemplate(); XmlNode xmlFilters = xmlTemplateDoc.SelectSingleNode("IBNReportTemplate/Filters"); XmlNode xmlFiltersR = xmlDoc.ImportNode(xmlFilters, true); xmlDoc.SelectSingleNode("Report").AppendChild(xmlFiltersR); }
public static void AddSortInformation(XmlDocument xmlDoc, IBNReportTemplate template) { XmlDocument xmlTemplateDoc = template.CreateXMLTemplate(); XmlNode xmlSorting = xmlTemplateDoc.SelectSingleNode("IBNReportTemplate/Sorting"); XmlNode xmlSortingR = xmlDoc.ImportNode(xmlSorting, true); xmlDoc.SelectSingleNode("Report").AppendChild(xmlSortingR); }
private static void AddTemplateInfo(XmlDocument doc, IBNReportTemplate repTemp) { XmlDocument xmlTemplateDoc = repTemp.CreateXMLTemplate(); XmlNode xmlRoot = xmlTemplateDoc.SelectSingleNode("IBNReportTemplate"); XmlNode xmlNode_Root = doc.ImportNode(xmlRoot, true); doc.SelectSingleNode("Report").AppendChild(xmlNode_Root); }
private void BindCurrentTab() { ViewState["SortFields"] = null; iFields.Value = ""; ViewState["FiltersTable"] = null; ResultXML.Value = ""; pastCommand.Value = ""; changedCheck.Value = ""; XmlDocument temp = new XmlDocument(); using (IDataReader reader = Report.GetReportTemplate(TemplateId)) { if (reader.Read()) { // O.R. [2009-06-05]: If report name contains "&" then we got the exception //temp.InnerXml = HttpUtility.HtmlDecode(reader["TemplateXML"].ToString()); temp.InnerXml = reader["TemplateXML"].ToString(); repName.Text = reader["Name"].ToString(); } } IBNReportTemplate repTemplate = new IBNReportTemplate(temp); QObject qItem = GetQObject(repTemplate); switch (Tab) { case "Fields": lbAvailableFields.Items.Clear(); foreach (QField _Field in qItem.Fields) { if ((_Field.UsingType & QFieldUsingType.Field) == QFieldUsingType.Field) lbAvailableFields.Items.Add(new ListItem(_Field.FriendlyName, _Field.Name)); } lbSelectedFields.Items.Clear(); foreach (FieldInfo fi in repTemplate.Fields) { ListItem lItm = lbAvailableFields.Items.FindByValue(fi.Name); if (lItm != null) { lbAvailableFields.Items.Remove(lItm); lbSelectedFields.Items.Add(lItm); } } break; case "Groups": ddGroup1.Items.Clear(); ddGroup2.Items.Clear(); ddGroup1.Items.Add(new ListItem(" " + LocRM.GetString("tNotSet"), "01")); ddGroup2.Items.Add(new ListItem(" " + LocRM.GetString("tNotSet"), "02")); foreach (QField _Field in qItem.Fields) if ((_Field.UsingType & QFieldUsingType.Grouping) == QFieldUsingType.Grouping) { ddGroup1.Items.Add(new ListItem(_Field.FriendlyName, _Field.Name)); ddGroup2.Items.Add(new ListItem(_Field.FriendlyName, _Field.Name)); } foreach (FieldInfo fi in repTemplate.Fields) { ListItem lItm1 = ddGroup1.Items.FindByValue(fi.Name); if (lItm1 != null) ddGroup1.Items.Remove(lItm1); ListItem lItm2 = ddGroup2.Items.FindByValue(fi.Name); if (lItm2 != null) ddGroup2.Items.Remove(lItm2); } foreach (FieldInfo gi in repTemplate.Groups) { if (ddGroup1.SelectedItem.Value == "01") { ListItem lItm1 = ddGroup1.Items.FindByValue(gi.Name); if (lItm1 != null) { ddGroup1.SelectedItem.Selected = false; lItm1.Selected = true; } continue; } else { ListItem lItm2 = ddGroup2.Items.FindByValue(gi.Name); if (lItm2 != null) { ddGroup2.SelectedItem.Selected = false; lItm2.Selected = true; } } } break; case "Filters": if (!generate) { DataTable dtFilters = new DataTable(); dtFilters.Columns.Add(new DataColumn("IsChecked", typeof(bool))); dtFilters.Columns.Add(new DataColumn("FieldName", typeof(string))); dtFilters.Columns.Add(new DataColumn("FriendlyName", typeof(string))); DataRow dr; foreach (QField fd in qItem.Fields) if ((fd.UsingType & QFieldUsingType.Filter) == QFieldUsingType.Filter) { dr = dtFilters.NewRow(); if (repTemplate.Filters[fd.Name] != null) dr["IsChecked"] = true; else dr["IsChecked"] = false; dr["FieldName"] = fd.Name; dr["FriendlyName"] = fd.FriendlyName; dtFilters.Rows.Add(dr); } ViewState["FiltersTable"] = dtFilters; ResultXML.Value = repTemplate.CreateXMLTemplate().InnerXml; dlFilterFields.DataSource = dtFilters.DefaultView; dlFilterFields.DataBind(); dlFilterFields.SelectedIndex = 0; LinkButton lb = (LinkButton)dlFilterFields.Items[0].FindControl("lbField"); if (lb != null) BindFilter(lb.CommandName); } else BindGenerateFilters(repTemplate, qItem); break; case "Sorts": DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("Field", typeof(string))); dt.Columns.Add(new DataColumn("FieldText", typeof(string))); dt.Columns.Add(new DataColumn("SortDirect", typeof(int))); //1 - asc, 0 - desc foreach (SortInfo si in repTemplate.Sorting) { DataRow s_dr = dt.NewRow(); s_dr["Field"] = si.FieldName; s_dr["FieldText"] = qItem.Fields[si.FieldName].FriendlyName; if (si.SortDirection == Mediachase.IBN.Business.Reports.SortDirection.ASC) s_dr["SortDirect"] = "1"; else s_dr["SortDirect"] = "0"; dt.Rows.Add(s_dr); } ViewState["SortFields"] = dt; BindFields(); BindDGFields(); break; default: break; } }
protected void btnSave_ServerClick(object sender, System.EventArgs e) { XmlDocument temp = new XmlDocument(); bool isGlobal = true; using (IDataReader reader = Report.GetReportTemplate(TemplateId)) { if (reader.Read()) { // O.R. [2009-06-05]: If report name contains "&" then we got the exception //temp.InnerXml = HttpUtility.HtmlDecode(reader["TemplateXML"].ToString()); temp.InnerXml = reader["TemplateXML"].ToString(); isGlobal = (bool)reader["IsGlobal"]; } } IBNReportTemplate repTemplate = new IBNReportTemplate(temp); QObject qItem = GetQObject(repTemplate); switch (Tab) { case "Fields": string sFields = iFields.Value; ArrayList alFields = new ArrayList(); while (sFields.Length > 0) { alFields.Add(sFields.Substring(0, sFields.IndexOf(","))); sFields = sFields.Remove(0, sFields.IndexOf(",") + 1); } repTemplate.Fields.Clear(); foreach (string s in alFields) { repTemplate.Fields.Add(new FieldInfo(s, qItem.Fields[s].DataType.ToString())); if (repTemplate.Groups[s] != null) repTemplate.Groups.RemoveAt(repTemplate.Groups.IndexOf(repTemplate.Groups[s])); } ArrayList alSort = new ArrayList(); foreach (SortInfo si in repTemplate.Sorting) alSort.Add(si.FieldName); foreach (string s in alSort) { if (repTemplate.Fields[s] == null) repTemplate.Sorting.RemoveAt(repTemplate.Sorting.IndexOf(repTemplate.Sorting[s])); } break; case "Groups": repTemplate.Groups.Clear(); if (ddGroup1.SelectedItem.Value != "01") repTemplate.Groups.Add(new FieldInfo(ddGroup1.SelectedItem.Value, qItem.Fields[ddGroup1.SelectedItem.Value].DataType.ToString())); if (ddGroup2.SelectedItem.Value != "02") repTemplate.Groups.Add(new FieldInfo(ddGroup2.SelectedItem.Value, qItem.Fields[ddGroup2.SelectedItem.Value].DataType.ToString())); break; case "Filters": if (!generate) { BindFilter(""); IBNReportTemplate repTemp = IBNReportTemplate.Load(ResultXML.Value); if (repTemp != null) { repTemplate.Filters.Clear(); foreach (FilterInfo fi in repTemp.Filters) repTemplate.Filters.Add(fi); } } else { foreach (HtmlTableRow row in tblFiltersValues.Rows) { HtmlTableCell cell = row.Cells[0]; IFilterControl ctrl = (IFilterControl)cell.Controls[0]; string FieldName = ctrl.FilterField; FilterInfo flt = new FilterInfo(); flt.FieldName = FieldName; flt.DataType = repTemplate.Filters[FieldName].DataType; repTemplate.Filters.RemoveAt(repTemplate.Filters.IndexOf(repTemplate.Filters[FieldName])); object curValue = null; switch (ctrl.FilterType) { case "Dictionary": curValue = ctrl.Value; if (curValue != null) { foreach (string _s in (string[])curValue) flt.Values.Add(_s); } break; case "DateTime": curValue = ctrl.Value; if (curValue != null) { flt.Values.Add(((DateFilterValue)curValue).TypeValue); flt.Values.Add(((DateFilterValue)curValue).FirstValue); flt.Values.Add(((DateFilterValue)curValue).SecondValue); } break; case "Int": curValue = ctrl.Value; if (curValue != null) { flt.Values.Add(((IntFilterValue)curValue).TypeValue); flt.Values.Add(((IntFilterValue)curValue).FirstValue); flt.Values.Add(((IntFilterValue)curValue).SecondValue); } break; case "String": curValue = ctrl.Value; if (curValue != null) flt.Values.Add(curValue.ToString()); break; case "Time": curValue = ctrl.Value; if (curValue != null) { flt.Values.Add(((TimeFilterValue)curValue).TypeValue); flt.Values.Add(((TimeFilterValue)curValue).FirstValue); flt.Values.Add(((TimeFilterValue)curValue).SecondValue); } break; default: break; } repTemplate.Filters.Add(flt); } } break; case "Sorts": DataTable dt = (DataTable)ViewState["SortFields"]; repTemplate.Sorting.Clear(); if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { SortInfo si = new SortInfo(); string sS = dr["Field"].ToString(); si.FieldName = sS; si.DataType = qItem.Fields[sS].DataType.ToString(); if (dr["SortDirect"].ToString() == "0") si.SortDirection = Mediachase.IBN.Business.Reports.SortDirection.DESC; else si.SortDirection = Mediachase.IBN.Business.Reports.SortDirection.ASC; repTemplate.Sorting.Add(si); } } break; default: break; } if (!generate) { Report.UpdateReportTemplate(TemplateId, repName.Text, repTemplate.CreateXMLTemplate().InnerXml, isGlobal, false); BindCurrentTab(); } else { XmlDocument doc = GetReportDoc(repTemplate); int iReportId = Report.CreateReportByTemplate(TemplateId, doc.InnerXml); Page.ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), "OpenWindow('../Reports/XMLReportOutput.aspx?ReportId=" + iReportId.ToString() + "',screen.width,screen.height,true);window.location.href='../Reports/ReportHistory.aspx?TemplateId=" + TemplateId.ToString() + "';", true); } }