123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314 |
-
- using OTSCommon.DBOperate;
- using OTSIncAReportApp.DataOperation.DataAccess;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using static OTSDataType.otsdataconst;
- using static OTSIncAReportApp.OTSReport_Export;
- namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
- {
- /// <summary>
- /// 颗粒分析
- /// </summary>
- class ParticleAnalysis
- {
- /// <summary>
- /// 大分类
- /// </summary>
- /// <returns></returns>
- public DataTable GetLargeClassification(OTSReport_Export m_otsreport_export,BasicData basicData)
- {
- List<DataTable> DBData = basicData.GetDBData();
- DataTable Out_data = new DataTable();
- Out_data.Columns.Add("Name");
- Out_data.Columns.Add("total");
- Out_data.Columns.Add("TypeId");
- Out_data.Columns.Add("Class");
- int it = 1;
- for (int i = 7; i < DBData[0].Columns.Count; i++)
- {
- Out_data.Columns.Add("c" + it);
- it++;
- }
- List<string> ClassName = ObtainParticleCategory(m_otsreport_export, basicData);
- for (int i = 0; i < DBData.Count; i++)
- {
- if (DBData[i].Rows.Count == 0)
- {
- continue;
- }
- DataRow row1 = Out_data.NewRow();
- row1["Class"] = ClassName[i];
- List<double> ints = new List<double>();
- for (int a = 7; a < DBData[i].Columns.Count; a++)
- {
- double ias = CalculationTableColumn(DBData[i], DBData[i].Columns[a].ColumnName);
- ints.Add(ias);
- }
- int zur = 0;
- for (int a = 0; a < ints.Count; a++)
- {
- zur = zur + Convert.ToInt32(ints[a]);
- }
- row1["total"] = zur;
- Out_data.Rows.Add(row1);
- }
- return Out_data;
- }
- /// <summary>
- /// 小分类
- /// </summary>
- /// <returns></returns>
- public DataTable GetSubClassification(BasicData basicData)
- {
- List<DataTable> DBData = basicData.GetDBData();
- DataTable Out_data = new DataTable();
- Out_data.Columns.Add("Name");
- Out_data.Columns.Add("total");
- Out_data.Columns.Add("TypeId");
- Out_data.Columns.Add("Class");
- int it = 1;
- for (int i = 7; i < DBData[0].Columns.Count; i++)
- {
- Out_data.Columns.Add("c" + it);
- it++;
- }
- for (int i = 0; i < DBData.Count; i++)
- {
- if (DBData[i].Rows.Count == 0)
- {
- continue;
- }
- for (int a = 0; a < DBData[i].Rows.Count; a++)
- {
-
- DataRow row1 = Out_data.NewRow();
- row1["Name"] = DBData[i].Rows[a]["TypeName"];
- row1["total"] = DBData[i].Rows[a]["con"];
- row1["TypeId"] = DBData[i].Rows[a]["TypeId"];
- row1["Class"] = "";
- int ii = 4;
- for (int j = 7; j < DBData[i].Columns.Count; j++)
- {
- row1[ii] = DBData[i].Rows[a][j];
- ii++;
- }
- Out_data.Rows.Add(row1);
- }
-
- }
- return Out_data;
- }
- /// <summary>
- /// 分类整合大小分类都有
- /// </summary>
- /// <returns></returns>
- public List<DataTable> GetClassificationConsolidationTable(OTSReport_Export m_otsreport_export, BasicData basicData ,out DataTable dataTable)
- {
- List<DataTable> datas = new List<DataTable>();
- List<DataTable> DBData = basicData.GetDBData();
- DataTable DtName = new DataTable();
- DataTable table = new DataTable();
- table.Columns.Add("Name");
- table.Columns.Add("total");
- table.Columns.Add("TypeId");
- table.Columns.Add("Class");
- int it = 1;
- List<string> strings = new List<string>();
- for (int i = 7; i < DBData[0].Columns.Count; i++)
- {
- table.Columns.Add("c" + it);
- DtName.Columns.Add("c" + it);
- strings.Add(DBData[0].Columns[i].ColumnName);
- it++;
- }
- DataRow dataRow = DtName.NewRow();
- for (int i = 0; i < strings.Count; i++)
- {
- dataRow[i] = strings[i];
- }
- DtName.Rows.Add(dataRow);
- datas.Add(DtName);
- //数据
- List<string> ClassName = ObtainParticleCategory(m_otsreport_export, basicData);
- DataTable Dt = table.Clone();
- DataTable statisticalQuantity = Dt.Clone();
- for (int i = 0; i < DBData.Count; i++)
- {
- if (DBData[i].Rows.Count == 0)
- {
- continue;
- }
- DataRow row = Dt.NewRow();
- row["Name"] = "";
- row["total"] = CalculationTableColumn(DBData[i], "con");
- row["TypeId"] = "";
- row["Class"] = ClassName[i];
- int ie = 0;
- for (int a = 4; a < Dt.Columns.Count; a++)
- {
- row[a] = CalculationTableColumn(DBData[i], DtName.Rows[0][ie].ToString());
- ie++;
- }
- Dt.Rows.Add(row);
- for (int a = 0; a < DBData[i].Rows.Count; a++)
- {
- DataRow dataRow1 = statisticalQuantity.NewRow();
- dataRow1["Name"] = DBData[i].Rows[a]["TypeName"];
- dataRow1["total"] = DBData[i].Rows[a]["con"];
- dataRow1["TypeId"] = DBData[i].Rows[a]["TypeId"];
- //dataRow1["Class"] = DBData[i].Rows[a]["Class"];
- dataRow1["Class"] = "";
- DataRow row1= Dt.NewRow();
- row1["Name"] = DBData[i].Rows[a]["TypeName"];
- row1["total"] = DBData[i].Rows[a]["con"];
- row1["TypeId"] = DBData[i].Rows[a]["TypeId"];
- //row1["Class"] = DBData[i].Rows[a]["Class"];
- row1["Class"] = "";
- int ii = 4;
- for (int j = 7; j < DBData[i].Columns.Count; j++)
- {
- row1[ii]= DBData[i].Rows[a][j];
- dataRow1[ii] = DBData[i].Rows[a][j];
- ii++;
- }
- Dt.Rows.Add(row1);
- statisticalQuantity.Rows.Add(dataRow1);
- }
- }
- datas.Add(Dt);
- DataTable OutStatisticalQuantity = statisticalQuantity.Clone();
- DataRow row2 = OutStatisticalQuantity.NewRow();
- for (int i = 4; i < statisticalQuantity.Columns.Count; i++)
- {
- row2[i]= CalculationTableColumn(statisticalQuantity, statisticalQuantity.Columns[i].ColumnName);
- }
- OutStatisticalQuantity.Rows.Add(row2);
- dataTable = OutStatisticalQuantity.Copy();
- return datas;
- }
- /// <summary>
- /// 获得颗粒类别
- /// </summary>
- /// <returns></returns>
- private List<string> ObtainParticleCategory(OTSReport_Export m_otsreport_export, BasicData basicData)
- {
- List<string> ClassName = new List<string>();
- if (m_otsreport_export.m_ReportApp.m_RptConfigFile.Systype != OTS_SysType_ID.IncA)
- {
- DataTable get_dt = ReadClassification(basicData);
- DataTable getClass_dt = get_dt.Clone();
- DataRow[] dataRow = get_dt.Select("", "iorder ASC");
- foreach (DataRow row in dataRow)
- {
- if (row.ItemArray[1].ToString() != "Default")
- {
- getClass_dt.ImportRow(row);
- }
- }
- for (int i = 0; i < getClass_dt.Rows.Count; i++)
- {
- ClassName.Add(getClass_dt.Rows[i][1].ToString());
- }
- ClassName.Add("Default");
- }
- else
- {
- ClassName = basicData.GetGroupInformation();
- }
- return ClassName;
- }
- private DataTable ReadClassification(BasicData basicData )
- {
- DataTable dt_stl = new DataTable();
- SqLiteHelper sh = new SqLiteHelper("data source='" + basicData.GetFilePath()+ "\\"+basicData.GetResfile() + "'");
- dt_stl = sh.ExecuteQuery("select * from STDGroups");
- return dt_stl;
- }
-
- public DataTable TypeRange(c_TemplateClass m_mbszclass, OTSReport_Export m_otsreport_export)
- {
- List<string> colid = new List<string>();
- //获取粒级表
- string path1 = m_otsreport_export.m_ReportApp.m_rstDataMgr.m_RptConfigFile.PartSizeFileFolder +
- m_otsreport_export.m_ReportApp.m_rstDataMgr.m_RptConfigFile.PartSizeFile;
- DataSet ds = OTSIncAReportApp.DataOperation.DataAccess.XMLoperate.GetXml(path1);
- string sizestr = ds.Tables[0].Rows[0]["Sizes"].ToString();
- for (int i = 0; i < sizestr.Split(',').Length; i++)
- {
- if (sizestr.Split(',')[i].Length > 0)
- {
- double d1 = Convert.ToDouble(sizestr.Split(',')[i]);
-
- colid.Add("≥" + d1.ToString());
- }
- }
-
- DataTable ls_partsize_dt = new DataTable();
- ls_partsize_dt.TableName = "PartSize";
- for (int i=0;i< colid.Count;i++)
- {
- ls_partsize_dt.Columns.Add("c"+(i+1).ToString());
- }
-
- DataRow dr = ls_partsize_dt.NewRow();
- for (int i = 0; i < colid.Count; i++)
- {
-
- dr["c" + (i+1).ToString()] = colid[i];
-
- }
- ls_partsize_dt.Rows.Add(dr);
- return ls_partsize_dt;
- }
- private double CalculationTableColumn(DataTable a_data, string a_str)
- {
- double dl = 0;
- if (a_data.Columns.Contains(a_str))
- {
- for (int i = 0; i < a_data.Rows.Count; i++)
- {
- if (a_data.Rows[i][a_str].ToString() != "")
- {
- dl = dl + Convert.ToDouble(a_data.Rows[i][a_str]);
- }
- }
- }
- return dl;
- }
- }
- }
|