示例#1
0
        public DynSql From(string table, string alias = null)
        {
            var rec = new DFrom(table, alias);

            DRecords.Add(rec);
            return(this);
        }
示例#2
0
        //生成核算周期列表
        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;
        }