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)); }
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(); }
/// <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); }