Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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;
            }
        }
Ejemplo n.º 7
0
 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);
     }
 }