关于DevExpress xtragrid xtrareport小记

    技术2022-05-20  53

    用了快半年的DevExpress控件确实想起最开始接触的艰辛,所以在这里把自己在开发过程中需要注意的地方记下,希望给新接触的人一个提示,纯属个人用法,不对的地方还请指出:

     

    xtragrid:

          1、如何在表格中选择了下拉后,更具下拉列表的值自动带出其他值

    private void gridView1_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)        {

                 if (is_status != "") return;

                           DevExpress.XtraEditors.Repository.RepositoryItemGridLookUpEdit glue = (DevExpress.XtraEditors.Repository.RepositoryItemGridLookUpEdit)gridView1.Columns["SL_CNEWID"].ColumnEdit;            if (glue == null) return;            DataRowView drv = (DataRowView)glue.GetRowByKeyValue(e.Value);            if (drv == null) return;

                is_status = "ing";            gv.SetRowCellValue(gv.FocusedRowHandle, gv.Columns["SL_NAME"], drv["货物名称"]);            gv.SetRowCellValue(gv.FocusedRowHandle, gv.Columns["SL_MODEL"], drv["型号"]);            gv.SetRowCellValue(gv.FocusedRowHandle, gv.Columns["SL_SUNEWID"], drv["供应商"]);

                is_status = "";

            }

          注:有时候这个SetRowCellValue方法会触发,CellValueChanged事件,这里需要定义一个实例变量is_status来标注。

     

         2、根据表格中字段1的信息,筛选字段2中的下拉列表,可以多列筛选:

           private void gridView1_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)        {            if (is_status != "") return;            gridView1.CloseEditor();            gridView1.UpdateCurrentRow();            string ls_slnewid = "";            DevExpress.XtraGrid.Views.Grid.GridView gv = (DevExpress.XtraGrid.Views.Grid.GridView)sender;

                if (e.Column.FieldName.ToUpper() == "SL_HS")                {                    //对下拉列表进行筛选                    DevExpress.XtraEditors.Repository.RepositoryItemGridLookUpEdit glue = (DevExpress.XtraEditors.Repository.RepositoryItemGridLookUpEdit)gridView1.Columns["SL_CNEWID"].ColumnEdit;                    if (glue == null) return;                    glue.View.Columns["HS编码"].FilterInfo = new DevExpress.XtraGrid.Columns.ColumnFilterInfo("HS编码 = '" + e.Value.ToString() + "'");                    //glue.View.ActiveFilterString = "CA_HS = '"+ e.Value.ToString() +"'";                }

               } 

            3、

     

    XtraReport:

          1、为什么做完报表了,在实际运行中明明有多行数据缺只显示一行?

               网上有人说在构造函数中赋值,反正我是没成功,需要在制作报表中把报表关联的表去掉即可!

          2、


    最新回复(0)