最近两个月的总结——devgridview,dataset

最近两个月的总结——devgridview,dataset

最近两个月开发了两个小画面——合同管理系统

刚刚接到任务的时候发现画面有不下余80多个控件,对于我这个只有几个月工作经验的菜鸟中的菜鸟来说有些吓人,当时问了下老员工如果他们做,多久能做完?

给我的答复:画面比较复杂,业务比较多,最多的时候同时保存十四张表,数据量大了怎么办等等。。。

不管怎么样,给我任务了总要完成啊。没办法试着做,不会请教同事。不过还好,将近一个月的时间做完了第一个复杂的画面,第二个汇总的画面简单多了,两天搞定。

学到的技术自我感觉提升了不少,

1、开发自定义控件,页面上有很多是重复的控件,

2、属性的get set方法体会的更深了

 

 public bool ControlEnable
        {
            set {
                this.UCTxtSubCode.Enabled =value;
                this.UCTxtSubName.Enabled = value;
                  }
        }

3、blod 在oralce数据库中保存和更新,必须转换为字节流

    private byte[] FileToByte(string pStrFName)
        {
            if (pStrFName.Trim() == string.Empty)
            {
                pStrFName = "  ";
            }
            byte[] values = System.Text.Encoding.Default.GetBytes(pStrFName);
            return values;
        }

 private void GetChgNote(DataRow row)
        {
            if (row["CONTENT"] == DBNull.Value) return;
            byte[] btData = (byte[])row["CONTENT"];
            //显示合同文本
            MOContractEdit.Text = System.Text.Encoding.Default.GetString(btData);
        }

4、在devgridview中的中间添加新行(通过行号)

我的做法比较麻烦

如果gridview绑定的表有行号等做主键,则根据行号确定在gridview绑定的表中插入数据的位置,然后在重新根据行号排序

如果没有行号,那么自己临时添加行号

       //新增行号列一排序用
                PlanLogDayDS.Tables["INVPLAN"].Columns.Add("gcLine", typeof(int));
                //排序行号
                SortRowNo(PlanLogDayDS.Tables["INVPLAN"], "gcLine");
                int selrow = GridVDate.FocusedRowHandle;
                DataRow newRow = PlanLogDayDS.Tables["INVPLAN"].NewRow();
                for (int i = selrow; i < PlanLogDayDS.Tables["INVPLAN"].Rows.Count; i++)
                {
                    DataRow row = PlanLogDayDS.Tables["INVPLAN"].Rows[i];
                    if (row.RowState == DataRowState.Deleted) continue;
                    //行号
                    row["gcLine"] = Convert.ToInt32(row["gcLine"]) + 1;
                }
                newRow["gcLine"] = selrow + 1;
                PlanLogDayDS.Tables["INVM011_INVPLAN"].Rows.Add(newRow);
                DataTable dt = PlanLogDayDS.Tables["INVPLAN"].Clone();
                dt.Clear();
                DataRow[] drs = PlanLogDayDS.Tables["INVPLAN"].Select("", "gcLine asc");
                foreach (DataRow r in drs)
                {
                    dt.ImportRow(r);
                }
                PlanLogDayDS.Tables["INVPLAN"].Clear();
                PlanLogDayDS.Tables["INVPLAN"].Merge(dt);
                PlanLogDayDS.Tables["INVPLAN"].Columns.Remove("gcLine");

posted @ 2010-02-04 18:32  aspc  阅读(714)  评论(0编辑  收藏  举报