博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多工段查询存放到DataTable到List<DataTable>集合在C#里面做汇总
阅读量:4629 次
发布时间:2019-06-09

本文共 5949 字,大约阅读时间需要 19 分钟。

private void btnQuery_Click(object sender, EventArgs e)

{
if (cboxFactory.Text=="")
{
MessageBox.Show("请选择厂别!","系统提示");
return;
}
fname = cboxFactory.Text;
//gongyi = cmbGongYi.Text.Trim();
List gongDuans = new List();//工段数组
gongyi = new List();

for (int i = 0; i < checkedListBox1.Items.Count; i++)        {            if (checkedListBox1.GetItemChecked(i))            {                gongDuans.Add(checkedListBox1.Items[i].ToString());            }        }        for (int i = 0; i < checkedListBox2.Items.Count; i++)        {            if (checkedListBox2.GetItemChecked(i))            {                gongyi.Add(checkedListBox2.Items[i].ToString());            }        }        backgroundWorker1.RunWorkerAsync(gongDuans);        ChangState();    }    Thread myThread;     private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)    {        myThread = Thread.CurrentThread;        List
gongDuans =(List
)e.Argument; String gongyis = ""; if (gongyi.Count > 0) { for (int j = 0; j < gongyi.Count; j++) { gongyis = gongyis + gongyi[j]; if (j != gongyi.Count-1) gongyis = gongyis + "-"; } } if (gongDuans.Count>0) { List
dts = new List
(); for (int i = 0; i < gongDuans.Count; i++) { if (!backgroundWorker1.CancellationPending) { dts.Add(GetDuiZhi(gongDuans[i],fname,gongyis)); } } backgroundWorker1.ReportProgress(100, dts); } } private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e) { try { List
dtPays = e.UserState as List
; Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(); workbook.Open(Application.StartupPath + @"\Templates\在制品堆积表1.xlt"); Aspose.Cells.Worksheet sheet = workbook.Worksheets[0];//第一个工作表 sheet.Cells["B2"].PutValue(cboxFactory.Text); quTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm"); sheet.Cells["J2"].PutValue(quTime); int lastIndex = 3; #region 构造带汇总的新集合 List
dtNewPays = new List
(); if (dtPays != null && dtPays.Count > 0) { foreach (DataTable item in dtPays) { DataRow newRow = item.NewRow(); int orderPaiNum=0 ,Lnum=0 ,Tnum=0 ,duiZhiNum=0 ,rong=0; decimal LAh = 0 , TAh = 0; //newRow["gongDuan"] = item.Rows[0]["gongDuan"].ToString()+"合计"; orderPaiNum = Convert.ToInt32(item.Compute("sum(orderPaiNum)", "true") is DBNull ? 0 : item.Compute("sum(orderPaiNum)", "true")); newRow["orderPaiNum"] = orderPaiNum; Lnum = Convert.ToInt32(item.Compute("sum(Lnum)", "true") is DBNull ? 0 : item.Compute("sum(Lnum)", "true")); newRow["Lnum"] = Lnum; Tnum = Convert.ToInt32(item.Compute("sum(Tnum)", "true") is DBNull ? 0 : item.Compute("sum(Tnum)", "true")); newRow["Tnum"] = Tnum; duiZhiNum = Convert.ToInt32(item.Compute("sum(duiZhiNum)", "true") is DBNull ? 0 : item.Compute("sum(duiZhiNum)", "true")); //if (newRow["gongDuan"].ToString()=="制片合计") // newRow["duiZhiNum"] = Convert.ToInt32(duiZhiNum/2); //else newRow["duiZhiNum"] =duiZhiNum; rong = Convert.ToInt32(item.Compute("sum(rong)", "true") is DBNull ? 0 : item.Compute("sum(rong)", "true")); newRow["rong"] = rong; LAh = Convert.ToDecimal(item.Compute("sum(LAh)", "true") is DBNull ? 0 : item.Compute("sum(LAh)", "true")); newRow["LAh"] = LAh; TAh = Convert.ToDecimal(item.Compute("sum(TAh)", "true") is DBNull ? 0 : item.Compute("sum(TAh)", "true")); newRow["TAh"] = TAh; item.Rows.Add(newRow); //新增列(该列隐藏) //item.Columns.Add(new DataColumn("duiZhiNum1", typeof(Int32))); //foreach (DataRow row in item.Rows) //{ // //制片堆积个数除以2 // if (row["gongDuan"].ToString() == "制片") // row["duiZhiNum1"] = Convert.ToDouble(row["duiZhiNum"]) / 2; // else // row["duiZhiNum1"] = row["duiZhiNum"]; //} //清除0 DataTable dtWithOutZrro = ClearZero(item); dtNewPays.Add(dtWithOutZrro); //foreach (DataRow row in item.Rows) //{ // oderPaiNum += Convert.ToInt32(row["oderPaiNum"].ToString() == "" ? "0" : row["oderPaiNum"].ToString()); // Lnum += Convert.ToInt32(row["Lnum"].ToString() == "" ? "0" : row["Lnum"].ToString()); // Tnum += Convert.ToInt32(row["Tnum"].ToString() == "" ? "0" : row["Tnum"].ToString()); // duiZhiNum += Convert.ToInt32(row["duiZhiNum"].ToString() == "" ? "0" : row["duiZhiNum"].ToString()); // rong += Convert.ToInt32(row["rong"].ToString() == "" ? "0" : row["rong"].ToString()); // LAh += Convert.ToDecimal(row["LAh"].ToString() == "" ? "0" : row["LAh"].ToString()); // TAh+=Convert.ToDecimal(row["TAh"].ToString() == "" ? "0" : row["TAh"].ToString()) //} } } #endregion if (dtNewPays != null && dtNewPays.Count > 0) { for (int i = 0; i < dtNewPays.Count; i++) { DataTable dt = dtNewPays[i]; if (dt.Rows.Count > 0) { sheet.Cells.ImportDataTable(dt, false, "A" + (lastIndex + 1)); lastIndex += dt.Rows.Count; } } } sheet.Cells.DeleteRows(lastIndex, 2); MemoryStream ms = workbook.SaveToStream(); ms.Seek(0, SeekOrigin.Begin); fpSpread1.OpenExcel(ms); ms.Close(); fpSpread1.Sheets[0].RowCount = lastIndex + 3; fpSpread1.Sheets[0].ColumnCount = 16; //fpSpread1.Sheets[0].Columns[13].Visible = false; fpSpread1.Sheets[0].OperationMode = FarPoint.Win.Spread.OperationMode.ReadOnly; } catch(Exception ex) { MessageBox.Show(ex.Message); } } ///
/// 清除零值 /// ///
public DataTable ClearZero(DataTable dt) { DataTable result = dt.Clone(); for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = result.NewRow(); for (int j = 0; j < dt.Columns.Count; j++) { if (dt.Rows[i][j].ToString() == "0" || dt.Rows[i][j].ToString() == "0.00%") { dr[j] = DBNull.Value; } else { dr[j] = dt.Rows[i][j]; } } result.Rows.Add(dr); } return result; }
posted on
2016-07-16 11:27 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/VictorBlog/p/5675894.html

你可能感兴趣的文章
PAT_B_1027 打印沙漏
查看>>
POJ-1185 炮兵阵地 动态规划+状态压缩
查看>>
NYOJ 366 D的小L
查看>>
PYTHON 写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者...
查看>>
Docker 初识
查看>>
【12.16】VC++调用Word OLE进行自动化生成报表
查看>>
用Maven创建第一个web项目
查看>>
php中的抽象类(abstract class)和接口(interface)
查看>>
linux安装ActiveMQ
查看>>
面向对象与软件工程---团队作业1
查看>>
认识一下Kotlin语言,Android平台的Swift
查看>>
hdu5389 Zero Escape
查看>>
【转】android电池(四):电池 电量计(MAX17040)驱动分析篇
查看>>
android中的回调
查看>>
redis启动、清缓存命令
查看>>
Java的Clone
查看>>
CSS 弹出层 支持IE/FF/OP
查看>>
maven的配置-2019-4-13
查看>>
进程调度
查看>>
百练 2973 Skew数 解题报告
查看>>