Example #1
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            UtilHelper.RegisterCssStyleSheet(Page, "~/Styles/IbnFramework/windows.css");
            UtilHelper.RegisterCssStyleSheet(Page, "~/Styles/IbnFramework/Theme.css");
            UtilHelper.RegisterCssStyleSheet(Page, "~/Styles/IbnFramework/ibn.css");

            UtilHelper.RegisterScript(Page, "~/Scripts/browser.js");
            UtilHelper.RegisterScript(Page, "~/Scripts/buttons.js");

            if (Request["Refresh"] != null && Request["Refresh"] == "1")
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(),
                                                        string.Format("try {{window.moveTo(0,0);window.resizeTo(screen.availWidth,screen.availHeight);window.opener.top.frames['right'].location.href='{0}';}}", this.ResolveUrl("~/Apps/ReportManagement/Pages/UserReport.aspx")) +
                                                        "catch (e){}", true);
            }
            if (!Page.IsPostBack)
            {
                if (Request["Mode"] != null && bool.Parse(Request["Mode"].ToString()))
                {
                    int iTemplateId = -1;
                    using (IDataReader reader = Report.GetReport(ReportId))
                    {
                        if (reader.Read())
                        {
                            iTemplateId = (int)reader["TemplateId"];
                        }
                    }
                    if (iTemplateId > 0)
                    {
                        using (IDataReader rdr = Report.GetReportTemplate(iTemplateId))
                        {
                            if (rdr.Read())
                            {
                                txtTemplateTitle.Text = rdr["Name"].ToString();
                            }
                        }
                    }
                    //					btnSaveVis.Visible = true;		--[2006/01/17]
                    btnSaveVis.Visible = false;
                }
                else
                {
                    btnSaveVis.Visible = false;
                }
            }
            if (ReportId == -1)
            {
                return;
            }

            if (!Page.IsPostBack && (Request["Export"] == null || Request["Export"] != "2"))
            {
                byte[] bit_data = null;
                using (IDataReader reader_BLOB = Report.GetReportBinaryData(ReportId))
                {
                    if (reader_BLOB.Read())
                    {
                        bit_data = (byte[])reader_BLOB["ReportData"];
                    }
                }
                XmlDocument doc = new XmlDocument();
                doc.InnerXml = System.Text.Encoding.UTF8.GetString(bit_data);

                IBNReportTemplate repTemplate = null;
                using (IDataReader reader = Report.GetReport(ReportId))
                {
                    if (reader.Read())
                    {
                        _header.ReportCreated = (DateTime)reader["ReportCreated"];
                        _header.ReportCreator = CommonHelper.GetUserStatusPureName((int)reader["ReportCreator"]);
                        XmlDocument temp = new XmlDocument();
                        temp.InnerXml = "<IBNReportTemplate>" + doc.SelectSingleNode("Report/IBNReportTemplate").InnerXml + "</IBNReportTemplate>";
                        repTemplate   = new IBNReportTemplate(temp);
                        _header.Title = HttpUtility.HtmlDecode(repTemplate.Name);
                    }
                }

                #region Filters

                QObject qItem = null;
                switch (repTemplate.ObjectName)
                {
                case "Incident":                                //Incident
                    qItem = new QIncident();
                    break;

                case "Project":                                 //Project
                    qItem = new QProject();
                    break;

                case "ToDo":                                    //ToDo`s
                    qItem = new QToDo();
                    break;

                case "Event":                                   //Calendar Entries
                    qItem = new QCalendarEntries();
                    break;

                case "Document":                                        //Documents
                    qItem = new QDocument();
                    break;

                case "Directory":                               //Users
                    qItem = new QDirectory();
                    break;

                case "Task":                                    //Tasks
                    qItem = new QTask();
                    break;

                case "Portfolio":                                       //Portfolios
                    qItem = new QPortfolio();
                    break;

                default:
                    break;
                }
                _header.Filter = MakeFilterText(repTemplate, qItem);
                #endregion

                _header.BtnPrintVisible = false;
                bool   ShowEmpty  = repTemplate.ShowEmptyGroup;
                int    GroupCount = repTemplate.Groups.Count;
                string ViewType   = repTemplate.ViewType;

                string sPath = "";
                if (GroupCount == 0)
                {
                    sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupWithout.xslt";
                }
                else if (GroupCount == 1 && ShowEmpty)
                {
                    if (ViewType == "0")
                    {
                        sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupOne.xslt";
                    }
                    else
                    {
                        sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupOneCollapse.xslt";
                    }
                }
                else if (GroupCount == 1 && !ShowEmpty)
                {
                    if (ViewType == "0")
                    {
                        sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupOneNoEmpty.xslt";
                    }
                    else
                    {
                        sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupOneNoEmptyCollapse.xslt";
                    }
                }
                else if (GroupCount == 2 && ShowEmpty)
                {
                    if (ViewType == "0")
                    {
                        sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupTwo.xslt";
                    }
                    else
                    {
                        sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupTwoCollapse.xslt";
                    }
                }
                else if (GroupCount == 2 && !ShowEmpty)
                {
                    if (ViewType == "0")
                    {
                        sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupTwoNoEmpty.xslt";
                    }
                    else
                    {
                        sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupTwoNoEmptyCollapse.xslt";
                    }
                }
                XslCompiledTransform _transform = new XslCompiledTransform();
                XsltSettings         set        = new XsltSettings(true, true);

                _transform.Load(sPath, set, null);

                StringWriter  sw = new StringWriter();
                XmlTextWriter w  = new XmlTextWriter(sw);
                _transform.Transform(doc, w);
                w.Close();
                lblXML.Text = HttpUtility.HtmlDecode(sw.ToString());
            }

            if (Request["Export"] != null && Request["Export"] == "2")
            {
                ExportXML();
            }
            if (Request["Export"] != null && Request["Export"] == "1")
            {
                ExportExcel();
            }
            btnSave.Text              = LocRM.GetString("tSave");
            btnSaveVis.Value          = LocRM.GetString("tSaveAsTemplate");
            btnExcel.Text             = LocRM.GetString("Export");
            btnXML.Text               = LocRM.GetString("XMLExport");
            lgdSaveTemplate.InnerText = LocRM.GetString("tSaveTemplate");
            cbSaveResult.Text         = LocRM.GetString("tSaveResult");
            cbOnlyForMe.Text          = LocRM.GetString("tOnlyForMe");
        }
Example #2
0
        protected string MakeFilterText(IBNReportTemplate repTemp, QObject qItem)
        {
            string retval = "";

            foreach (FilterInfo fi in repTemp.Filters)
            {
                QField qTemp = qItem.Fields[fi.FieldName];
                if (qTemp == null)
                {
                    continue;
                }
                QDictionary qDTemp = qItem.GetDictionary(qTemp);
                if (qDTemp != null)
                {
                    if (fi.Values.Count > 0)
                    {
                        retval += qTemp.FriendlyName + "&nbsp;=&nbsp;";
                        string sqlCommand = qDTemp.GetSQLQuery(Security.CurrentUser.LanguageId);
                        using (IDataReader reader = Report.GetQDictionary(sqlCommand))
                        {
                            ArrayList alDicVal = new ArrayList();
                            foreach (string _s in fi.Values)
                            {
                                alDicVal.Add(_s);
                            }
                            while (reader.Read())
                            {
                                if (alDicVal.Contains(reader["Id"].ToString()))
                                {
                                    retval += "<font color='red'>" + CommonHelper.GetResFileString(reader["Value"].ToString()) + "</font>,&nbsp;";
                                }
                            }
                        }
                        retval = retval.Remove(retval.Length - 7, 7) + "<br>";
                    }
                }
                else
                {
                    switch (qTemp.DataType)
                    {
                    case DbType.Decimal:
                    case DbType.Int32:
                        if (fi.Values.Count > 0)
                        {
                            retval += qTemp.FriendlyName;
                            switch (fi.Values[0])
                            {
                            case "0":
                                retval += "&nbsp;=<font color='red'>&nbsp;" + fi.Values[1] + "</font><br>";
                                break;

                            case "1":
                                retval += "&nbsp;&gt;<font color='red'>&nbsp;" + fi.Values[1] + "</font><br>";
                                break;

                            case "2":
                                retval += "&nbsp;&lt;<font color='red'>&nbsp;" + fi.Values[1] + "</font><br>";
                                break;

                            case "3":
                                retval += "&nbsp;<font color='red'>" + LocRM.GetString("tBetween") + "&nbsp;" + fi.Values[1] + "&nbsp;-&nbsp;" + fi.Values[2] + "</font><br>";
                                break;
                            }
                        }
                        break;

                    case DbType.DateTime:
                    case DbType.Date:
                        if (fi.Values.Count > 0)
                        {
                            retval += qTemp.FriendlyName;
                            switch (fi.Values[0])
                            {
                            case "1":
                                retval += "&nbsp;=&nbsp;<font color='red'>" + LocRM.GetString("tToday") + "</font><br>";
                                break;

                            case "2":
                                retval += "&nbsp;=&nbsp;<font color='red'>" + LocRM.GetString("tYesterday") + "</font><br>";
                                break;

                            case "3":
                                retval += "&nbsp;=&nbsp;<font color='red'>" + LocRM.GetString("tThisWeek") + "</font><br>";
                                break;

                            case "4":
                                retval += "&nbsp;=&nbsp;<font color='red'>" + LocRM.GetString("tLastWeek") + "</font><br>";
                                break;

                            case "5":
                                retval += "&nbsp;=&nbsp;<font color='red'>" + LocRM.GetString("tThisMonth") + "</font><br>";
                                break;

                            case "6":
                                retval += "&nbsp;=&nbsp;<font color='red'>" + LocRM.GetString("tLastMonth") + "</font><br>";
                                break;

                            case "7":
                                retval += "&nbsp;=&nbsp;<font color='red'>" + LocRM.GetString("tThisYear") + "</font><br>";
                                break;

                            case "8":
                                retval += "&nbsp;=&nbsp;<font color='red'>" + LocRM.GetString("tLastYear") + "</font><br>";
                                break;

                            case "9":
                                if (DateTime.Parse(fi.Values[1]) == DateTime.MinValue)
                                {
                                    retval += "&nbsp;<font color='red'>" + LocRM.GetString("tLess") + "&nbsp;" + DateTime.Parse(fi.Values[2]).ToShortDateString() + "</font><br>";
                                }
                                else if (DateTime.Parse(fi.Values[2]) >= DateTime.MaxValue.Date)
                                {
                                    retval += "&nbsp;<font color='red'>" + LocRM.GetString("tGreater") + "&nbsp;" + DateTime.Parse(fi.Values[1]).ToShortDateString() + "</font><br>";
                                }
                                else
                                {
                                    retval += "&nbsp;<font color='red'>" + LocRM.GetString("tBetween") + "&nbsp;" + DateTime.Parse(fi.Values[1]).ToShortDateString() + "&nbsp;-&nbsp;" + DateTime.Parse(fi.Values[2]).ToShortDateString() + "</font><br>";
                                }
                                break;
                            }
                        }
                        break;

                    case DbType.String:
                        if (fi.Values.Count > 0)
                        {
                            retval += qTemp.FriendlyName + "&nbsp;=&nbsp;<font color='red'>" + fi.Values[0] + "</font><br>";
                        }
                        break;

                    case DbType.Time:
                        retval += qTemp.FriendlyName;
                        if (fi.Values.Count > 0)
                        {
                            switch (fi.Values[0])
                            {
                            case "0":
                                retval += "&nbsp;=<font color='red'>&nbsp;" + CommonHelper.GetHours(int.Parse(fi.Values[1])) + "</font><br>";
                                break;

                            case "1":
                                retval += "&nbsp;&gt;<font color='red'>&nbsp;" + CommonHelper.GetHours(int.Parse(fi.Values[1])) + "</font><br>";
                                break;

                            case "2":
                                retval += "&nbsp;&lt;<font color='red'>&nbsp;" + CommonHelper.GetHours(int.Parse(fi.Values[1])) + "</font><br>";
                                break;

                            case "3":
                                retval += "&nbsp;<font color='red'>" + LocRM.GetString("tBetween") + "&nbsp;" + CommonHelper.GetHours(int.Parse(fi.Values[1])) + "&nbsp;-&nbsp;" + CommonHelper.GetHours(int.Parse(fi.Values[2])) + "</font><br>";
                                break;
                            }
                        }
                        else
                        {
                            retval += "<br>";
                        }
                        break;
                    }
                }
            }
            return(retval);
        }