第八章 启动与执行业务流程(三)
来源:互联网 发布:淘宝客服年度总结 编辑:程序博客网 时间:2024/06/05 00:55
8.1 对业务过程定义的细化
UpdateTaskDefinition.aspx.cs文件代码:
......(续前页)
//</可写字段控件集>
//在可读字段控件集与可写字段控件集之间增加一行间隔
tr=new TableRow();
tr.Height=16;
tc=new TableCell();
tc.ColumnSpan=10;
tr.Cells.Add(tc);
Tbl.Rows.Add(tr);
tr=new TableRow();
tc=new TableCell();
tc.Text="可编辑字段:";
tc.HorizontalAlign=HorizontalAlign.Right;
tr.Cells.Add(tc);
//为每一个关联字段设置单选框,并将"字段名+w"作为它的ID.
chk=null;
lb=null;
for(int i=0;i<ds3.Tables[0].Rows.Count;i++)
{
if((i% 8) == 0 & i>0)
{
tc=new TableCell();
tc.Text=" ";
tr.Cells.Add(tc);
Tbl.Rows.Add(tr);
tr=new TableRow();
tc=new TableCell();
tr.Cells.Add(tc);
}
tc=new TableCell();
tc.HorizontalAlign=HorizontalAlign.Right;
lb=new Label();
lb.Text=ds3.Tables[0].Rows[i]["FieldAlias"].ToString();
tc.Controls.Add(lb);
chk=new CheckBox();
chk.ID=ds3.Tables[0].Rows[i]["FieldName"].ToString()+"_w";
//如果是标识字段则默认钩选并不可编辑.
if(ds3.Tables[0].Rows[i]["IsIdentity"].ToString() =="Y")
{
chk.Checked=false;
chk.Enabled=false;
}
tc.Controls.Add(chk);
tr.Cells.Add(tc);
}
//最后一行列ColumnSpan设置为最大值.
tc=new TableCell();
tc.ColumnSpan=9;
tr.Cells.Add(tc);
Tbl.Rows.Add(tr);
//如果记录中已有可读字段的内容,要分割字符串,得到字段名并设置对应控件的钩选.
string writablefieldsstr="";
if(ds.Tables[0].Rows[0]["WritableFields"] !=DBNull.Value)
writablefieldsstr=ds.Tables[0].Rows[0]["WritableFields"].ToString().Trim();
if(writablefieldsstr != "")
{
string[] refieldsarray=new Tools().StringSplit(writablefieldsstr,",");
for(int j=0;j<refieldsarray.Length;j++)
{
//由于保存字段名字符串时最后还多一个",",所以要判断.
if(refieldsarray[j] !="")
{
chk=(CheckBox)this.FindControl(refieldsarray[j]+"_w");
if(chk !=null)
chk.Checked=true;