Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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);
                }
            }
        }