public void importExcel() { DGH.importExcel("产流量过程数据.xls"); DT = GC.DataSource as DataTable; Anchor.SAnchor Col = new Anchor.SAnchor(); DTable DTab = new DTable(DT); GC.MainView.PopulateColumns(); }
public void Start() { if (SParams == null) { System.Windows.Forms.MessageBox.Show("请设置参数后再进行计算", "错误!", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return; } rowCount = DT.Rows.Count; Anchor.SAnchor Col = new Anchor.SAnchor(); DTable DTab = new DTable(DT); if (DivisionType == 3) { //初值 double QS0 = DTab.getCell(0, Col.RS) * SParams.U; double QG0 = DTab.getCell(0, Col.RG) * SParams.U; double QI0 = DTab.getCell(0, Col.RI) * SParams.U; double QS = QS0; double QG = QG0; double QI = QI0; double QT = QS0 + QG0 + QI0; // TO DO // double Q0 = QT; double Q = Q0; DTab.setCell(0, Col.QS, QS); DTab.setCell(0, Col.QI, QI); DTab.setCell(0, Col.QG, QG); DTab.setCell(0, Col.QT, QT); DTab.setCell(0, Col.Q, Q); for (int i = 1; i < rowCount; i++) { calQS(QS0, SParams.CS, DTab.getCell(i, Col.RS), SParams.U, out QS); calQI(QI0, SParams.CI, DTab.getCell(i, Col.RI), SParams.U, out QI); calQG(QG0, SParams.CG, DTab.getCell(i, Col.RG), SParams.U, out QG); calQ(Q0, SParams.CR, DTab.getCell(i, Col.RS) + DTab.getCell(i, Col.RI) + DTab.getCell(i, Col.RG), SParams.U, out Q); QS0 = QS; QI0 = QI; QG0 = QG; QT = QS + QI + QG; Q0 = Q; DTab.setCell(i, Col.QS, QS); DTab.setCell(i, Col.QI, QI); DTab.setCell(i, Col.QG, QG); DTab.setCell(i, Col.QT, QT); DTab.setCell(i, Col.Q, Q); } } else { double[] q = DT.AsEnumerable().Select(d => double.Parse(d.Field <string>("q (m3/s)"))).ToArray(); double[] rs = DT.AsEnumerable().Select(d => double.Parse(d.Field <string>("Rs (mm)"))).ToArray(); double[,] Matrix = calUHMatrix(rs.Length, q, rs); double QG0 = DTab.getCell(0, Col.RG) * SParams.U; double QG = QG0; DTab.setCell(0, Col.QG, QG0); for (int i = 0; i < rowCount; i++) { double QS = 0; for (int j = 0; j < rs.Length; j++) { QS += Matrix[j, i]; } DTab.setCell(i, Col.QS, QS); } double QT0 = QG + DTab.getCell(0, Col.QS); double Q0 = QT0; DTab.setCell(0, Col.QT, QT0); DTab.setCell(0, Col.Q, QT0); for (int i = 1; i < rowCount; i++) { calQG(QG0, SParams.CG, DTab.getCell(i, Col.RG), SParams.U, out QG); QG0 = QG; double QS = DTab.getCell(i, Col.QS); double QT = QS + QG; double Q = 0; calQ(Q0, SParams.CR, DTab.getCell(i, Col.RS) + DTab.getCell(i, Col.RG), SParams.U, out Q); Q0 = Q; DTab.setCell(i, Col.QG, QG); DTab.setCell(i, Col.QT, QT); DTab.setCell(i, Col.Q, Q); } } }