c#動態新增band 新增列 新增模板列程式碼示例
阿新 • • 發佈:2019-01-08
private DevExpress.XtraGrid.Views.BandedGrid.GridBand band;
private DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn gridCol;
private DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit item;
DataService dataService = DataService.GetInstance("DB_WCF_NetTcpBinding_OracleClient");
private void AllocationCostForm_Load(object sender, EventArgs e)
{ //初始化按鈕:1.按許可權建立按鈕;2.按鈕事件註冊
long[] button = new long[] { BUTTONS.Button1, BUTTONS.Button2, BUTTONS.Button3 };
ItemClickEventHandler[] eventHandler = new ItemClickEventHandler[] { this.Button1_Click, this.Button2_Click, this.Button3_Click };
base.InitButton(button, eventHandler);
//按鈕狀態初始化
base.UpdateButtonStatus(new long[] { BUTTONS.Button1, BUTTONS.Button2, BUTTONS.Button3 }, new bool[] { true, true, true });
DataTable dat_cbxm = dataService.DBAccess.Query("SQL_AllocationCostForm_select", new string[] { });
gcGgcbFt.DataSource = dat_cbxm;
DataTable dat_Ftlb = dataService.DBAccess.Query("SQL_t_cs_form", new string[] { "" });
DataTable dt_lkSource = dataService.DBAccess.Query("SQL_AllocationCostForm_lookup", new string[] { });
DataTable dtNew = new DataTable();
if (dat_Ftlb.Rows.Count > 0)
{
for (int i = 0; i < dat_Ftlb.Rows.Count; i++)
{
dtNew.Columns.Add(dat_Ftlb.Rows[i]["FCODE"].ToString(), typeof(string));
}
if (dtNew.Columns.Count > 0)
{
foreach (DataColumn dc in dat_Ftlb.Columns)
{
DataRow drNew = dtNew.NewRow();
for (int i = 0; i < dat_Ftlb.Rows.Count; i++)
{
drNew[i] = dat_Ftlb.Rows[i][dc].ToString();
}
dtNew.Rows.Add(drNew);
}
if (dtNew.Columns.Count > 0)
{
for (int b = 0; b < dtNew.Columns.Count; b++)
{
band = new DevExpress.XtraGrid.Views.BandedGrid.GridBand();
item = new DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit();
gridCol = new DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn();
band.Name = dtNew.Rows[1][dtNew.Columns[b].ColumnName.ToString()].ToString();//dtNew.Columns[b].ColumnName.ToString();
gridCol.Name = dtNew.Columns[b].ColumnName.ToString();
gridCol.Caption = dtNew.Columns[b].Caption.ToString();
gridCol.FieldName = dtNew.Columns[b].ColumnName.ToString();
gridCol.VisibleIndex = gvGgcbFt.VisibleColumns.Count;
gcGgcbFt.RepositoryItems.Add(item);
item.Name = "lk" + dtNew.Columns[b].ColumnName.ToString();
item.NullText = "";
item.DataSource = dt_lkSource;
item.ValueMember = "FID";
item.DisplayMember = "FNAME";
item.Columns.AddRange(new DevExpress.XtraEditors.Controls.LookUpColumnInfo[] {
new DevExpress.XtraEditors.Controls.LookUpColumnInfo("FNAME", "名稱"),
new DevExpress.XtraEditors.Controls.LookUpColumnInfo("FID", "ID", 20, DevExpress.Utils.FormatType.None, "", false, DevExpress.Utils.HorzAlignment.Default)});
gridCol.ColumnEdit = item;
gridCol.OptionsColumn.AllowMove = false;
gridCol.OptionsFilter.AllowFilter = false;
this.gridBand3.Children.Add(band);
this.band.Columns.Add(this.gridCol);
gcGgcbFt.RepositoryItems.Add(item);
}
}
}
}
}
private DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn gridCol;
private DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit item;
DataService dataService = DataService.GetInstance("DB_WCF_NetTcpBinding_OracleClient");
private void AllocationCostForm_Load(object sender, EventArgs e)
{ //初始化按鈕:1.按許可權建立按鈕;2.按鈕事件註冊
long[] button = new long[] { BUTTONS.Button1, BUTTONS.Button2, BUTTONS.Button3 };
ItemClickEventHandler[] eventHandler = new ItemClickEventHandler[] { this.Button1_Click, this.Button2_Click, this.Button3_Click };
base.InitButton(button, eventHandler);
//按鈕狀態初始化
base.UpdateButtonStatus(new long[] { BUTTONS.Button1, BUTTONS.Button2, BUTTONS.Button3 }, new bool[] { true, true, true });
DataTable dat_cbxm = dataService.DBAccess.Query("SQL_AllocationCostForm_select", new string[] { });
gcGgcbFt.DataSource = dat_cbxm;
DataTable dat_Ftlb = dataService.DBAccess.Query("SQL_t_cs_form", new string[] { "" });
DataTable dt_lkSource = dataService.DBAccess.Query("SQL_AllocationCostForm_lookup", new string[] { });
DataTable dtNew = new DataTable();
if (dat_Ftlb.Rows.Count > 0)
{
for (int i = 0; i < dat_Ftlb.Rows.Count; i++)
{
dtNew.Columns.Add(dat_Ftlb.Rows[i]["FCODE"].ToString(), typeof(string));
}
if (dtNew.Columns.Count > 0)
{
foreach (DataColumn dc in dat_Ftlb.Columns)
{
DataRow drNew = dtNew.NewRow();
for (int i = 0; i < dat_Ftlb.Rows.Count; i++)
{
drNew[i] = dat_Ftlb.Rows[i][dc].ToString();
}
dtNew.Rows.Add(drNew);
}
if (dtNew.Columns.Count > 0)
{
for (int b = 0; b < dtNew.Columns.Count; b++)
{
band = new DevExpress.XtraGrid.Views.BandedGrid.GridBand();
item = new DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit();
gridCol = new DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn();
band.Name = dtNew.Rows[1][dtNew.Columns[b].ColumnName.ToString()].ToString();//dtNew.Columns[b].ColumnName.ToString();
gridCol.Name = dtNew.Columns[b].ColumnName.ToString();
gridCol.Caption = dtNew.Columns[b].Caption.ToString();
gridCol.FieldName = dtNew.Columns[b].ColumnName.ToString();
gridCol.VisibleIndex = gvGgcbFt.VisibleColumns.Count;
gcGgcbFt.RepositoryItems.Add(item);
item.Name = "lk" + dtNew.Columns[b].ColumnName.ToString();
item.NullText = "";
item.DataSource = dt_lkSource;
item.ValueMember = "FID";
item.DisplayMember = "FNAME";
item.Columns.AddRange(new DevExpress.XtraEditors.Controls.LookUpColumnInfo[] {
new DevExpress.XtraEditors.Controls.LookUpColumnInfo("FNAME", "名稱"),
new DevExpress.XtraEditors.Controls.LookUpColumnInfo("FID", "ID", 20, DevExpress.Utils.FormatType.None, "", false, DevExpress.Utils.HorzAlignment.Default)});
gridCol.ColumnEdit = item;
gridCol.OptionsColumn.AllowMove = false;
gridCol.OptionsFilter.AllowFilter = false;
this.gridBand3.Children.Add(band);
this.band.Columns.Add(this.gridCol);
gcGgcbFt.RepositoryItems.Add(item);
}
}
}
}
}