一弹出菜单,功能是点击后修改被选中的行的某格单元格的值,并保存到数据库中,程序如下所示:
procedure TFrmCh.N1Click(Sender: TObject);
var
mystr,sqlstr:string;
i,j:integer;
begin //mystr:=viewcj.DataController.GetSelectedBook(0);
//mystr:=viewcj.Controller.SelectCells(3,4);
//showmessage(inttostr(viewcj.DataController.getselectedcount)); //此段程序当没有点击表头进行排序或分组时选择的记录是正确的,但是如果点击了表头
// 排序后再执行就不对了,需要尝试用其他方法来解决。
for i:=0 to viewcj.DataController.getselectedcount-1 do
begin
j:=viewcj.DataController.getselectedrowindex(i); mystr:= viewcj.DataController.Values[j,2];
// showmessage( inttostr(viewcj.DataController.RecNo));
sqlstr:='update cjrecord set flg=0 where empnum='+''''+mystr+'''';
with dbmodule.QryQosChTemp do
begin
sql.clear;
sql.Add(sqlstr);
execsql;
viewcj.DataController.Values[j,7]:=0; //不用刷新数据集,修改了数据后再修改一下grid的显示结果就可以了
end;
end;
end;
在执行时,如果不点表头对数据排序显示或拖拽分组的话,程序可以按表格中选择的行修改数据,但是如果进行了排序操作或分组操作,再执行弹出菜单命令时程序并不是修改的选中的行的数据,显示其viewcj.DataController.getselectedrowindex发现其值并不是选中行的index,好像是sql的查询结果集的index,不知如何修改。
procedure TFrmCh.N1Click(Sender: TObject);
var
mystr,sqlstr:string;
i,j:integer;
begin //mystr:=viewcj.DataController.GetSelectedBook(0);
//mystr:=viewcj.Controller.SelectCells(3,4);
//showmessage(inttostr(viewcj.DataController.getselectedcount)); //此段程序当没有点击表头进行排序或分组时选择的记录是正确的,但是如果点击了表头
// 排序后再执行就不对了,需要尝试用其他方法来解决。
for i:=0 to viewcj.DataController.getselectedcount-1 do
begin
j:=viewcj.DataController.getselectedrowindex(i); mystr:= viewcj.DataController.Values[j,2];
// showmessage( inttostr(viewcj.DataController.RecNo));
sqlstr:='update cjrecord set flg=0 where empnum='+''''+mystr+'''';
with dbmodule.QryQosChTemp do
begin
sql.clear;
sql.Add(sqlstr);
execsql;
viewcj.DataController.Values[j,7]:=0; //不用刷新数据集,修改了数据后再修改一下grid的显示结果就可以了
end;
end;
end;
在执行时,如果不点表头对数据排序显示或拖拽分组的话,程序可以按表格中选择的行修改数据,但是如果进行了排序操作或分组操作,再执行弹出菜单命令时程序并不是修改的选中的行的数据,显示其viewcj.DataController.getselectedrowindex发现其值并不是选中行的index,好像是sql的查询结果集的index,不知如何修改。
解决方案 »
- 如何监控子进程直到结束
- 封装基于ComBobox的组件TMyCombo,要在哪个事件中写代码,才可以依据放到Form上后指定的不同tag属性,来为items装填不同的内容?
- 怎样取得Image控件上的坐标?
- 编译的时候提示“连接字符串属性无效”,请指教。
- 如何写日志文件,给个例子,解决马上给分,在线等......................
- 在TTS中朗读中文,怎样随着朗读将文本框里的相应文字加亮?
- 小女生遇到大问题,各位大虾请帮忙!
- 寻找资料!急!
- delphi 5 动态连接sql server 2000问题?(求助高手---现要用)
- 有人回答吗?
- DCom配置问题
- 用delphi设计好后 我的数据库如何导出成SQL后缀的文本啊
http://blogger.org.cn/blog/more.asp?id=31278&name=RandomRen