文章目录
一、获取行总数、列总数
//获取列总数
int li_colCount;
li_colCount = dw_1.Describe("DataWindow.Column.Count");
//获取行总数
int li_rowCount;
li_rowCount= dw_1.Describe("DataWindow.Row.Count");
//遍历每列
int li_i;
for li_i =1 to integer(destDw.Describe("DataWindow.Column.Count"))
//TO DO ...
next
二、获取正在"被编辑的"单元格的行号、列号
- getRow()、getColumn()函数可以获取正在被编辑的单元格的行列号
int li_currentRow; int li_currentCol; li_currentRow = dw_1.getRow(); li_currentCol= dw_1.getColumn();
三、获取列名称、列类型
- 已知列号
//获取第1列的列名 String ls_ColName; ls_ColName=dw_1.Describe("#" + string(1) +".name") ; //获取第1列的列类型 String ls_ColTpye; ls_ColTpye=dw_1.Describe (ls_ColName+ ".ColType" );
四、从单元格读数据
4.1 读数据
- 已知行号、列号
string ls_value; ls_value = dw_1.object.data[1,2]; //获取第1行第2列的数据
4.2 读 正在"被编辑的"单元格的数据
- getRow()、getColumn()函数可以获取正在被编辑的单元格的行列号
string ls_value; ls_value= dw_1.object.data[dw_1.getRow(),dw_1.getColumn()];
4.3 读 正在"被选中的"单元格的数据
- 有些单元格不可编辑,但允许被选中,所以getRow()、getColumn()函数无法获取行列号。
- primary[row]数组可以获取被选中单元格的数据,但可能产生异常。
- primary[row]所需”行号“可以通过鼠标事件传入。
- primary[row]似乎只能由事件传入的dwObject调用,不可以直接调用dw_1.object.Primary[…]
// // event:鼠标左击或右击事件 // param1:long row - 传入当前被选中的行号 // param2: dwObject dwo - // Try //获取当前正在被选中的单元格的值 String ls_value; ls_value = string(dwo.Primary[row]); //只能通过dwo获取Primary,用【dw_1.object.Primary[]】会获取失败 Catch(RunTimeError e) //Primary可能引发异常 MessageBox('异常',e.getmessage()); End Try
五、向单元格写数据
- 已知行号、列名称
String ls_value='v'; dw_1.object.stuName[1] = ls_value; //设置第1行stuName列的值 dw_1.setItem(1,'stuName',ls_value); //设置第1行stuName列的值