Dbgrid控件多重选择的怪问题。BookMarkList,BookMark,使用书签,用的ADOQuery控件。100分送上,急阿!!!请高手帮忙!
Dbgrid控件多重选择的怪问题。BookMarkList,BookMark,使用书签,用的ADOQuery控件。100分送上,急阿!!!请高手帮忙! ( 积分: 100 )<br />procedure TForm_ContinuPrnt.BitB_PrintClick(Sender: TObject);
Var
i,x:Integer;
BookMarkList:TBookMarkList ;
BookMark:TBookMark;
getClientCode,getPre,getThis,getFact,getPrice,getMoney,getName:String;
begin
With MyDataModule do
Begin
AQ_DataKeep.Close;
AQ_DataKeep.SQL.Clear;
AQ_DataKeep.SQL.Add('Select a.ClientCode,a.Years,a.Months,a.PreData,a.Thisdata,a.FactData,a.Price,a.AmountMoney,a.PrintMask,a.BankDeduct,b.ClientNo,b.ClientCode,b.AreaNo,b.UseName');
AQ_DataKeep.SQL.Add('From EdataKeep a,EClientInfo b');
AQ_DataKeep.SQL.Add('Where (a.ClientCode=b.ClientCode) And (b.AreaNo=AA) And (a.Years=
YY) And (a.Months=
MM)');
AQ_DataKeep.SQL.Add('Order By b.ClientNo');
AQ_DataKeep.Parameters.ParamByName('pAA').Value:=getAreaNo;
AQ_DataKeep.Parameters.ParamByName('pYY').Value:= getYear;
AQ_DataKeep.Parameters.ParamByName('pMM').Value:= getmonth;
AQ_DataKeep.Prepared;
AQ_DataKeep.Open;
BookMark:=AQ_DataKeep.GetBookmark ; //....获得书签.......
BookmarkList:=Dbgrid1.SelectedRows; //。。。该行也有问题
x:=BookmarkList.Count; //。。。该行有问题,结果总是 0
Try
For i:=0 to BookmarkList.Count-1 do //因为BookmarkList.Count 总是0 ,程序不能对网格中选择的多行数据操作
begin
AQ_DataKeep.GotoBookmark(Pointer(Dbgrid1.SelectedRows));
getClientCode:=AQ_DataKeep.FieldByname('ClientCode').AsString;
getPre:=AQ_DataKeep.FieldByname('PreData').AsString;
getThis:=AQ_DataKeep.FieldByname('ThisData').AsString;
getFact:=AQ_DataKeep.FieldByname('FactData').AsString;
getPrice:=AQ_DataKeep.FieldByname('Price').AsString;
getMoney:=AQ_DataKeep.FieldByname('AmountMoney').AsString;
getName:=AQ_DataKeep.FieldByname('useName').AsString;
end;
except
AQ_DataKeep.GotoBookmark(Bookmark) ;
AQ_DataKeep.FreeBookmark(Bookmark) ;
end;
end;
end;
DBgrid控件可以设置了Option中的dgMultiSelect 为true后,就可以在界面上按住Ctrl(contral)键,对网格的数据进行多个选择。对数据多个选择后,可以只对选择的多行数据操作。但是,我用的数据控件是ADOQuery(就是程序中的AQ_DataKeep),因为BookmarkList.Count 总是0 ,程序不能对网格中选择的多行数据操作,请问这是为什么?
我用Ttable控件就一切都正常(数据库是paradox)!用ADOQuery控件(数据库是SQL 2000)就不行,请高手回答!
procedure TForm_ContinuPrnt.BitB_PrintClick(Sender: TObject);
Var
i,x:Integer;
BookMarkList:TBookMarkList ;
BookMark:TBookMark;
getClientCode,getPre,getThis,getFact,getPrice,getMoney,getName:String;
begin
With MyDataModule do
Begin
AQ_DataKeep.Close;
AQ_DataKeep.SQL.Clear;
AQ_DataKeep.SQL.Add('Select a.ClientCode,a.Years,a.Months,a.PreData,a.Thisdata,a.FactData,a.Price,a.AmountMoney,a.PrintMask,a.BankDeduct,b.ClientNo,b.ClientCode,b.AreaNo,b.UseName');
AQ_DataKeep.SQL.Add('From EdataKeep a,EClientInfo b');
AQ_DataKeep.SQL.Add('Where (a.ClientCode=b.ClientCode) And (b.AreaNo=AA) And (a.Years=
YY) And (a.Months=
MM)');
AQ_DataKeep.SQL.Add('Order By b.ClientNo');
AQ_DataKeep.Parameters.ParamByName('pAA').Value:=getAreaNo;
AQ_DataKeep.Parameters.ParamByName('pYY').Value:= getYear;
AQ_DataKeep.Parameters.ParamByName('pMM').Value:= getmonth;
AQ_DataKeep.Prepared;
AQ_DataKeep.Open;
BookMark:=AQ_DataKeep.GetBookmark ; //....获得书签.......
BookmarkList:=Dbgrid1.SelectedRows; //。。。该行也有问题
x:=BookmarkList.Count; //。。。该行有问题,结果总是 0
Try
For i:=0 to BookmarkList.Count-1 do //因为BookmarkList.Count 总是0 ,程序不能对网格中选择的多行数据操作
begin
AQ_DataKeep.GotoBookmark(Pointer(Dbgrid1.SelectedRows));
getClientCode:=AQ_DataKeep.FieldByname('ClientCode').AsString;
getPre:=AQ_DataKeep.FieldByname('PreData').AsString;
getThis:=AQ_DataKeep.FieldByname('ThisData').AsString;
getFact:=AQ_DataKeep.FieldByname('FactData').AsString;
getPrice:=AQ_DataKeep.FieldByname('Price').AsString;
getMoney:=AQ_DataKeep.FieldByname('AmountMoney').AsString;
getName:=AQ_DataKeep.FieldByname('useName').AsString;
end;
except
AQ_DataKeep.GotoBookmark(Bookmark) ;
AQ_DataKeep.FreeBookmark(Bookmark) ;
end;
end;
end;
DBgrid控件可以设置了Option中的dgMultiSelect 为true后,就可以在界面上按住Ctrl(contral)键,对网格的数据进行多个选择。对数据多个选择后,可以只对选择的多行数据操作。但是,我用的数据控件是ADOQuery(就是程序中的AQ_DataKeep),因为BookmarkList.Count 总是0 ,程序不能对网格中选择的多行数据操作,请问这是为什么?
我用Ttable控件就一切都正常(数据库是paradox)!用ADOQuery控件(数据库是SQL 2000)就不行,请高手回答!
对DBGrid 进行多行选择时,好像已经实现GetBookmark 了。你可以将如下该行:For i:=0 to BookmarkList.Count-1 do //因为BookmarkList.Count 总是0 ,程序不能对网格中选择的多行数据操作
修改为:for i := 0 to Dbgrid1.SelectedRows.Count - 1 do
begin
Dbgrid1.DataSource.DataSet.GotoBookmark(pointer(Dbgrid1.SelectedRows.Items));
我已经自己搞定了。问题不在这里!(zgj_gd)
问题在于数据集控件AQ_DataKeep,应该在其他地方打开,因为每次重新打开,界面上的
Dbgrid1.SelectedRows,与BookmarkList,bookMark 都是空了。
我要发分了,需要分的朋友近来拿分。
Dbgrid控件多重选择的怪问题。BookMarkList,BookMark,使用书签,用的ADOQuery控件。100分送上,急阿!!!请高手帮忙!的更多相关文章
- 背水一战 Windows 10 (33) - 控件(选择类): ListBox, RadioButton, CheckBox, ToggleSwitch
[源码下载] 背水一战 Windows 10 (33) - 控件(选择类): ListBox, RadioButton, CheckBox, ToggleSwitch 作者:webabcd 介绍背水一 ...
- 背水一战 Windows 10 (32) - 控件(选择类): Selector, ComboBox
[源码下载] 背水一战 Windows 10 (32) - 控件(选择类): Selector, ComboBox 作者:webabcd 介绍背水一战 Windows 10 之 控件(选择类) Sel ...
- QTableView表格控件区域选择-自绘选择区域
目录 一.开心一刻 二.概述 三.效果展示 四.实现思路 1.绘制区域 2.绘制边框 3.绘制 五.相关文章 原文链接:QTableView表格控件区域选择-自绘选择区域 一.开心一刻 陪完客户回到家 ...
- 控件(选择类): Selector, ComboBox
1.Selector(基类) 的示例Controls/SelectionControl/SelectorDemo.xaml <Page x:Class="Windows10.Contr ...
- HTML5+JS 《五子飞》游戏实现(六)鼠标响应与多重选择
上一章我们提到了如果有多条线上的棋子可以被吃掉,那么游戏需要提示用户,让用户选择吃哪条线上的.另外因为是网页游戏,所以一定要实现鼠标单击棋子可以进行操作. 当鼠标移动棋子上面后,切换鼠标指针为手形,移 ...
- 廖雪峰Java1-3流程控制-4switch多重选择
switch语句 根据switch(表达式)跳转到匹配的case结果,继续执行case结果: 的后续语句,遇到break结束执行,没有匹配条件,执行default语句. int i = 3 switc ...
- Error-ASP.NET:由于未能找到 id 为“FileUpload1$gvFiles$ctl02$lnkBtnRemoveFile”的控件或在回发后将同一 ID 分配给另一个控件,导致发生错误。如果未分配 ID,请显式设置引发回发事件的控件的 ID 属性以避免此错误。
ylbtech-Error-ASP.NET:由于未能找到 id 为“FileUpload1$gvFiles$ctl02$lnkBtnRemoveFile”的控件或在回发后将同一 ID 分配给另一个控件 ...
- 与众不同 windows phone (25) - Input(输入)之捕获 UIElement 之外的触控操作, Silverlight 方式捕获手势操作, XNA 方式捕获手势操作, 多点触控
原文:与众不同 windows phone (25) - Input(输入)之捕获 UIElement 之外的触控操作, Silverlight 方式捕获手势操作, XNA 方式捕获手势操作, 多点触 ...
- 控件(选择类): ListBox, RadioButton, CheckBox, ToggleSwitch
1.ListBox 的示例Controls/SelectionControl/ListBoxDemo.xaml <Page x:Class="Windows10.Controls.Se ...
随机推荐
- 20155216 实验二 Java面向对象程序设计
实验二:Java面向对象程序设计 实验内容 1.初步掌握单元测试和TDD. 2.理解并掌握面向对象的三要素:封装.继承.多态. 3.初步掌握UML建模. 4.熟悉S.O.L.I.D原则. 5.了解设计 ...
- 20155318 《Java程序设计》实验一(Java开发环境的熟悉)实验报告
20155318 <Java程序设计>实验一(Java开发环境的熟悉)实验报告 一.实验内容及步骤 (一)命令行下Java程序开发 步骤一(新建文件夹): 打开windows下的cmd → ...
- js获取上月的最后一天
一.问题: 在最近的开发中遇到一个需求,需要初始化默认时间为上月的最后一天 而在日历中这个值在每个月都不是固定的 二.分析: 问题可以转化为,获取指定月份时间的月末最后一天,下边是代码,供大家参考 f ...
- 1130: [POI2008]POD Subdivision of Kingdom
1130: [POI2008]POD Subdivision of Kingdom https://lydsy.com/JudgeOnline/problem.php?id=1130 分析: 有效状态 ...
- php 批量载入文件的几种方式
方式1:spl_autoload_register // Register the autoloader. /** * Contains the functionality for auto-load ...
- selenium自动化之js处理点击事件失效
有时候,元素明明已经找到了,使用click()就是无法触发点击事件(当然,这种情况十分少见,至少我只遇到过一次).下面告诉大家这种场景的解决方案. 使用js代码来点击[博客园]这个按钮 代码: #!/ ...
- halcon中关于文本的创建以及写入
原文链接:http://blog.sina.com.cn/s/blog_61cc743001017nxr.html#FileName 1.open_file( : : FileName, FileTy ...
- mysql 数据库优化之执行计划(explain)简析
数据库优化是一个比较宽泛的概念,涵盖范围较广.大的层面涉及分布式主从.分库.分表等:小的层面包括连接池使用.复杂查询与简单查询的选择及是否在应用中做数据整合等:具体到sql语句执行效率则需调整相应查询 ...
- Ubuntu常用shell命令
目录 ls cd mkdir mv cp scp rm df du chmod chown chgrp head tail screen apt-get Ubuntu常用shell命令 Ubuntu作 ...
- 基于zookeeper+mesos+marathon的docker集群管理平台
参考文档: mesos:http://mesos.apache.org/ mesosphere社区版:https://github.com/mesosphere/open-docs mesospher ...