我所学的是C#,所编的是winform结构的,现在我有一个功能不能实现,想请你们帮帮我:
问题要点:
我有一个界面:界面上有一个DataGrid控件,现在想实现几个功能。
1.DataGrid中有四列,第一列列名为A,第二列列名为B,第三列列名为C,第四列列名为D,假如我在C列中某一行输入一个值,相应的B列是等于C列加上D列的值,而且想输入一行就保存一行数据,向数据库SQL插入数据。例:
A B C D
ABCD 20 15 5
2.如果我在DataGrid中第一行有一条数据,第二行也有一条数据,第三行也有一条数据,但第二行和第三行是第一行数据的子级,也就是说第一行数据为父级,在有子级的情况下,父级是不能输入的,它的值是第二行和第三行的和。例:
A B C D
ABCD 20 15 5 此行是不能输入的
BCD 12 10 2
CD 8 5 3
我到现在才写了一个DataGrid控件的框架:代码如下:
#region Load事件
private void ucBeginingBalance_Load(object sender, System.EventArgs e)
{
OpenBlanceInit();
}
#endregion
#region 填充期初余额表列式
private void AddDgBlance()
{
// this.dt.ColumnChanged+=new DataColumnChangeEventHandler(dt_RowChanged);
this.dgBlance.DataSource=this.dt;
DataGridTableStyle dgts=new DataGridTableStyle();
dgts.MappingName=dt.TableName;
this.dgBlance.AllowSorting=false;
DataGridTextBoxColumn SubjectName=new DataGridTextBoxColumn(); //科目名称
SubjectName.MappingName="CcodeName";
SubjectName.HeaderText="科目名称";
SubjectName.Width=220;
SubjectName.Alignment=HorizontalAlignment.Left;
SubjectName.ReadOnly=true;
SubjectName.NullText="";
SubjectName.TextBox.BackColor=Color.White;
SubjectName.TextBox.Enabled=false;
dgts.GridColumnStyles.Add(SubjectName);
DataGridTextBoxColumn Direction=new DataGridTextBoxColumn(); //科目方向
Direction.MappingName="Bproperty";
Direction.HeaderText="方向";
Direction.Width=75;
Direction.Alignment=HorizontalAlignment.Center;
Direction.ReadOnly=true;
Direction.NullText="";
Direction.TextBox.BackColor=Color.White;
Direction.TextBox.Enabled=false;
dgts.GridColumnStyles.Add(Direction);
DataGridTextBoxColumn MoneyGenus=new DataGridTextBoxColumn(); //科目计量
MoneyGenus.MappingName="Cmeause";
MoneyGenus.HeaderText="计量单位";
MoneyGenus.Width=90;
MoneyGenus.Alignment=HorizontalAlignment.Center;
MoneyGenus.ReadOnly=true;
MoneyGenus.NullText="";
MoneyGenus.TextBox.BackColor=Color.White;
MoneyGenus.TextBox.Enabled=false;
dgts.GridColumnStyles.Add(MoneyGenus);
DataGridTextBoxColumn YearFirst=new DataGridTextBoxColumn(); //年初余额
YearFirst.MappingName="YearBeginBalance";
YearFirst.HeaderText="年初余额";
YearFirst.Width=100;
YearFirst.Alignment=HorizontalAlignment.Center;
YearFirst.NullText="";
YearFirst.TextBox.loc
YearFirst.TextBox.DoubleClick+=new EventHandler(TextBox_DoubleClick); //abcdefg
dgts.GridColumnStyles.Add(YearFirst);
DataGridTextBoxColumn Lend=new DataGridTextBoxColumn(); //累计借方
Lend.MappingName="AddUpDebit";
Lend.HeaderText="累计借方";
Lend.Width=100;
Lend.Alignment=HorizontalAlignment.Center;
Lend.NullText="";
Lend.TextBox.LostFocus+=new EventHandler(TextBox_LostFocus);
dgts.GridColumnStyles.Add(Lend);
DataGridTextBoxColumn Lender=new DataGridTextBoxColumn(); //累计贷方
Lender.MappingName="AddupLender";
Lender.HeaderText="累计贷方";
Lender.Width=100;
Lender.Alignment=HorizontalAlignment.Center;
Lender.NullText="";
dgts.GridColumnStyles.Add(Lender);
DataGridTextBoxColumn ExpectFirst=new DataGridTextBoxColumn(); //期初余额
ExpectFirst.MappingName="BeginingBalance";
ExpectFirst.HeaderText="期初余额";
ExpectFirst.Width=100;
ExpectFirst.Alignment=HorizontalAlignment.Center;
ExpectFirst.NullText="";
dgts.GridColumnStyles.Add(ExpectFirst);
this.dgBlance.TableStyles.Clear();
this.dgBlance.TableStyles.Add(dgts);
}
#endregion
#region 打开初使化
private void OpenBlanceInit()
{
BeginingBalanceBLL Begin=new BeginingBalanceBLL(base.mUserInfo);
dt=Begin.Query(new BeginingBalanceEn());
AddDgBlance();
}
#endregion