名称 | 说明 |
Item[ ColData] | 根据ColData对象返回当前行指定列的值. |
Item[序号] | 根据列的序号返回当前行指定列的值. |
Item[列名称] | 根据列的名称返回当前行指定列的值. |
Item[ ColData, DataRowVersion] | 根据ColData对象返回当前行相应版本的数据 |
Item[序号, DataRowVersion] | 根据列的序号返回当前行相应版本的数据 |
Item[列名称, DataRowVersion] | 根据列的名称返回当前行相应版本的数据 |
示例:在下面这样的表中执行下面的代码
执行后变成这样
Vb.Net |
'先定义变量获取表 Dim tbl As SmGrid = Proj.CurrentSmGrid '定义ColData对象 Dim col As ColData=tbl.DataTableHelp.DataCols("产品") '获得RowData对象 tbl.Position=1 '先定位到第二行 Dim dr As RowData=tbl.CurrentRowData '取到当前行对象 Proj.MsgDebug.Add("根据ColData对象返回对应列的值:{0}",dr(col)) Proj.MsgDebug.Add("根据列序号返回对应列的值:{0}",dr(1)) Proj.MsgDebug.Add("根据列名称返回对应列的值:{0}",dr("业务员")) '查看修改后如何获得各版本的值 tbl.Position=2 '先定位到第二行 dr=tbl.CurrentRowData '重新获取当前行对象 Proj.MsgDebug.Add("当前行'产品'列原本的数据:{0}",dr("产品").ToString()) dr("产品")="新值" '修改当前行产品列的值 Proj.MsgDebug.Add("获取当前行行状态的版本:{0}",dr.RowState.ToString()) Proj.MsgDebug.Add("获取当前行'产品'列当前版本的值:{0}",dr("产品",DataRowVersion.Current)) Proj.MsgDebug.Add("获取当前行'产品'列默认版本的值:{0}",dr("产品",DataRowVersion.Default)) If dr.RowState=DataRowState.Added Then Proj.MsgDebug.Add("当前行为新增行,没有Original版本,访问此版本会报错。") Else Proj.MsgDebug.Add("获取当前行'产品'列Original版本的值:{0}",dr("产品",DataRowVersion.Original)) End If '在实际使用中,无法获得DataRowVersion.Proposed的值 '新增行如何获得各版本的值 dr=tbl.DataTableHelp.AddNew() dr("产品")="新增行" '修改当前新增行产品列的值 Proj.MsgDebug.Add("获取当前行行状态的版本:{0}",dr.RowState.ToString()) Proj.MsgDebug.Add("获取当前行'产品'列当前版本的值:{0}",dr("产品",DataRowVersion.Current)) Proj.MsgDebug.Add("获取当前行'产品'列默认版本的值:{0}",dr("产品",DataRowVersion.Default)) If dr.RowState=DataRowState.Added Then Proj.MsgDebug.Add("当前行为新增行,没有Original版本,访问此版本会报错。") Else Proj.MsgDebug.Add("获取当前行'产品'列Original版本的值:{0}",dr("产品",DataRowVersion.Original)) End If '返回结果:根据ColData对象返回对应列的值:产品03 '返回结果:根据列序号返回对应列的值:2 '返回结果:根据列名称返回对应列的值:业务员01 '返回结果:当前行'产品'列原本的数据:产品02 '返回结果:获取当前行行状态的版本:Modified '返回结果:获取当前行'产品'列当前版本的值:新值 '返回结果:获取当前行'产品'列默认版本的值:新值 '返回结果:获取当前行'产品'列Original版本的值:产品02 '返回结果:获取当前行行状态的版本:Added '返回结果:获取当前行'产品'列当前版本的值:新增行 '返回结果:获取当前行'产品'列默认版本的值:新增行 '返回结果:当前行为新增行,没有Original版本,访问此版本会报错。 |
C# |
// 先定义变量获取表 SmGrid tbl = Proj.CurrentSmGrid; // 定义ColData对象 ColData col = tbl.DataTableHelp.DataCols["产品"]; // 获得RowData对象 tbl.Position = 1; // 先定位到第二行 RowData dr = tbl.CurrentRowData; // 取到当前行对象 Proj.MsgDebug.Add("根据ColData对象返回对应列的值:{0}", dr[col]); Proj.MsgDebug.Add("根据列序号返回对应列的值:{0}", dr[1]); Proj.MsgDebug.Add("根据列名称返回对应列的值:{0}", dr["业务员"]); // 查看修改后如何获得各版本的值 tbl.Position = 2; // 先定位到第二行 dr = tbl.CurrentRowData; // 重新获取当前行对象 Proj.MsgDebug.Add("当前行'产品'列原本的数据:{0}", dr["产品"].ToString()); dr["产品"] = "新值"; // 修改当前行产品列的值 Proj.MsgDebug.Add("获取当前行行状态的版本:{0}", dr.RowState.ToString()); Proj.MsgDebug.Add("获取当前行'产品'列当前版本的值:{0}", dr["产品", DataRowVersion.Current]); Proj.MsgDebug.Add("获取当前行'产品'列默认版本的值:{0}", dr["产品", DataRowVersion.Default]); if (dr.RowState == DataRowState.Added) Proj.MsgDebug.Add("当前行为新增行,没有Original版本,访问此版本会报错。"); else Proj.MsgDebug.Add("获取当前行'产品'列Original版本的值:{0}", dr["产品", DataRowVersion.Original]); // 在实际使用中,无法获得DataRowVersion.Proposed的值 // 新增行如何获得各版本的值 dr = tbl.DataTableHelp.AddNew(); dr["产品"] = "新增行"; // 修改当前新增行产品列的值 Proj.MsgDebug.Add("获取当前行行状态的版本:{0}", dr.RowState.ToString()); Proj.MsgDebug.Add("获取当前行'产品'列当前版本的值:{0}", dr["产品", DataRowVersion.Current]); Proj.MsgDebug.Add("获取当前行'产品'列默认版本的值:{0}", dr["产品", DataRowVersion.Default]); if (dr.RowState == DataRowState.Added) Proj.MsgDebug.Add("当前行为新增行,没有Original版本,访问此版本会报错。"); else Proj.MsgDebug.Add("获取当前行'产品'列Original版本的值:{0}", dr["产品", DataRowVersion.Original]); //返回结果:根据ColData对象返回对应列的值:产品03 //返回结果:根据列序号返回对应列的值:2 //返回结果:根据列名称返回对应列的值:业务员01 //返回结果:当前行'产品'列原本的数据:产品02 //返回结果:获取当前行行状态的版本:Modified //返回结果:获取当前行'产品'列当前版本的值:新值 //返回结果:获取当前行'产品'列默认版本的值:新值 //返回结果:获取当前行'产品'列Original版本的值:产品02 //返回结果:获取当前行行状态的版本:Added //返回结果:获取当前行'产品'列当前版本的值:新增行 //返回结果:获取当前行'产品'列默认版本的值:新增行 //返回结果:当前行为新增行,没有Original版本,访问此版本会报错。 |