public DynSql From(string table, string alias = null) { var rec = new DFrom(table, alias); DRecords.Add(rec); return(this); }
//生成核算周期列表 private void produce_hs_lst() { if (this.hctype_ == "") { return; } if (this.manufactCode_ == "") { return; } if (this.mtype_ == "") { return; } string sql_ = ""; //获取合同对应的数据 //"获取核算周期" hs_period sql_ = "select checkperiod from T_Bargains where sysid=" + this.barsysid_; if ((new DBUtil()).Get_Single_val(sql_) == "") { MessageBox.Show("该合同核算周期未输入!"); return; } int hs_period = Convert.ToInt16((new DBUtil()).Get_Single_val(sql_)); this.hsperiod = hs_period; //获取"抄张周期" cz_period sql_ = "select CopyNumGap from T_Bargains where sysid=" + this.barsysid_; if ((new DBUtil()).Get_Single_val(sql_) == "") { MessageBox.Show("该合同抄张周期未输入!"); return; } int cz_period = Convert.ToInt16((new DBUtil()).Get_Single_val(sql_)); this.czperiod = cz_period; //获取"合同期时间" ht_period sql_ = "select Periodgap from T_Bargains where sysid=" + this.barsysid_; int ht_period = Convert.ToInt16((new DBUtil()).Get_Single_val(sql_)); //获取"合同初始日期" Dstart sql_ = "select firstczDate from T_Bargains where sysid=" + this.barsysid_; string firstczDate = (new DBUtil()).Get_Single_val(sql_); //按首次抄张日推算抄张周期 DateTime Dstart = Convert.ToDateTime(firstczDate); this.BargStartDay = Dstart; //获取"合同终止日期" Dend sql_ = "select EndDate from T_Bargains where sysid=" + this.barsysid_; string sEndDate = (new DBUtil()).Get_Single_val(sql_); DateTime Dend = Convert.ToDateTime(sEndDate); //获取"对应机器初始读数" startNum sql_ = "select Startnum from T_BargFee " + " where barsysid=" + this.barsysid_ //+ " and Mtype='"+this.mtype_+"'" //+ " and Manufactcode='"+this.manufactCode_+"'" + " and HcType='" + this.hctype_ + "'"; int startNum = Convert.ToInt32((new DBUtil()).Get_Single_val(sql_)); //构造该有多少个核算记录行 DataTable Dtb = new DataTable("tb_hs"); Dtb.Columns.Add("初始张数", Type.GetType("System.Int32")); Dtb.Columns.Add("初始日期", Type.GetType("System.String")); Dtb.Columns.Add("终止日期", Type.GetType("System.String")); Dtb.Columns.Add("抄张次数", Type.GetType("System.Int32")); //获取当前日期 DateTime Dcurrent = DBUtil.getServerTime(); DateTime DFrom, DTo; int Ncopy = startNum; int NCopyhs = 0; for (int k = 0; k < (ht_period / hs_period); k++) //多个核算周期 { //从日期 DFrom //到日期 DFrom = Dstart.AddMonths(hs_period * k); DTo = Dstart.AddMonths(hs_period * (k + 1)).AddDays(-1); //取数计算====== get_CopyTot(DFrom, DTo, ref NCopyhs); //如果抄到数,则记录,否则取上次 if (NCopyhs > 0) { Ncopy = NCopyhs; } else { Ncopy = 0; } //============== DataRow newRow; newRow = Dtb.NewRow(); if (Ncopy > 0) { newRow["初始张数"] = Ncopy; } else { newRow["初始张数"] = System.DBNull.Value; } newRow["初始日期"] = DFrom.ToString("yyyy-MM-dd"); newRow["终止日期"] = DTo.ToString("yyyy-MM-dd"); newRow["抄张次数"] = hs_period / cz_period; Dtb.Rows.Add(newRow); } this.dgv_hs.DataSource = Dtb.DefaultView; this.dgv_hs.Columns[0].Width = 80; this.dgv_hs.Columns[1].Width = 80; this.dgv_hs.Columns[2].Width = 80; this.dgv_hs.Columns[3].Width = 80; }