示例#1
0
        public void AutoReport_When_Instantiated_Has_Correct_State()
        {
            AutoReport report = new AutoReport("C:\\outputfolder\\WeightVsLimitSchedule.rdlc", "PDF", "C:\\outputfolder\\file.pdf");

            Assert.AreEqual(report.OutputPath, "C:\\outputfolder\\file.pdf");
            Assert.AreEqual(report.OutputType, "PDF");
            Assert.AreEqual("WeightVsLimitSchedule.rdlc", Path.GetFileName(report.ReportPath));
        }
示例#2
0
文件: CATForm.cs 项目: BrettJohn/CAT
        void viewMenuItem_Click(object sender, EventArgs e)
        {
            string reportsfolder = AutoFolder() + @"\Reports\";
            string filename      = "AutoReport";

            if ((sender as ToolStripMenuItem).Text != "View")
            {
                filename = (sender as ToolStripMenuItem).Text;
            }
            FileStream      filestream = File.OpenRead(reportsfolder + filename + ".bin");
            BinaryFormatter bf         = new BinaryFormatter();
            AutoReport      report     = (AutoReport)bf.Deserialize(filestream);

            API.CAT.ShowReport(report);
            filestream.Close();
        }
示例#3
0
        /// <summary>
        ///     按天数根据状态 统计数量 扩展 报图图状
        /// </summary>
        /// <returns></returns>
        public List <AutoReport> GetDayCountReportByFiled(CountReportInput countReport)
        {
            var tableName    = "";
            var specialField = "";
            var startTime    = DateTime.Now;
            var endTime      = DateTime.Now;
            var sqlWhere     = "";

            var tempSqlWhere = string.Empty;
            var chartCols    = new List <string>();

            chartCols.Add("日期");
            chartCols.Add("全部数量");
            chartCols.Add("比率");

            //查询条件
            if (!string.IsNullOrEmpty(sqlWhere))
            {
                tempSqlWhere = " and " + sqlWhere;
            }

            //日期验证
            if (startTime.ToString().IndexOf("0001") == -1 || endTime.ToString().IndexOf("0001") == -1)
            {
                var varStartTime = string.Format("{0:yyyy-MM-dd}", startTime);
                var varEndTime   = string.Format("{0:yyyy-MM-dd}", endTime);
                tempSqlWhere = @" and (CONVERT(VARCHAR(100), CreateTime, 23) >='" + varStartTime +
                               "' and CONVERT(VARCHAR(100), CreateTime, 23)<= '" + varEndTime + "') ";
            }

            var tempSqlStatusCount = string.Empty;

            //枚举
            if (!string.IsNullOrEmpty(specialField))
            {
                var typeEnum = specialField.GetTypeByName();

                foreach (Enum item in Enum.GetValues(typeEnum))
                {
                    var itemName  = item.GetDisplayName();
                    var itemValue = item.ToString();
                    var key       = Convert.ToInt16(item);
                    tempSqlStatusCount = tempSqlStatusCount + @" count(CASE WHEN " + specialField + " =" + key +
                                         " THEN " + specialField + " END) AS  " + itemName + " , ";

                    chartCols.Add(itemName);
                }
            }

            var dbContext     = Ioc.Resolve <IAlaboUserRepository>().RepositoryContext;
            var sqlCountByDay = @" select  CONVERT(VARCHAR(100), CreateTime, 23) 日期, count(id) as 全部数量," +
                                tempSqlStatusCount +
                                @"cast( convert (decimal(18,2),100*cast(count(distinct isnull(id,0)) as float)/cast(((select  count(id) from " +
                                tableName + @") )as float) ) as varchar)+'%' as 比率
                                from " + tableName +
                                @" where 1 = 1 " + tempSqlWhere +
                                @" group by CONVERT(VARCHAR(100), CreateTime, 23) ";

            var result = new List <AutoReport>();

            var typeEnumExt = specialField.GetTypeByName();

            if (FilterSqlScript(sqlCountByDay) != true)
            {
                using (var dr = dbContext.ExecuteDataReader(sqlCountByDay)) {
                    while (dr.Read())
                    {
                        var listItem = new List <AutoReportItem>();
                        var output   = new AutoReport();

                        chartCols.ForEach(p => {
                            if (p.ToLower() == "日期")
                            {
                                output.Date = dr[p].ToString();
                            }
                            else if (p.ToLower() == "全部数量")
                            {
                                output.Date = dr[p].ToString();
                            }
                            else if (p.ToLower() == "比率")
                            {
                                output.Date = dr[p].ToString();
                            }
                            else
                            {
                                listItem.Add(new AutoReportItem {
                                    Name = p.ToString(), Value = dr[p].ToString()
                                });
                            }
                        });
                        output.AutoReportItem = listItem;
                    }
                }
            }

            return(result);
        }