FastReport 打印 DBgridEh 的问题!

aBung 2011-09-18 10:17:05
这是FAST打印StringGrid DEMO中的代码,将StringGrid的每行每列循环赋值给FAST。
var
Cross: TfrxCrossView;
i, j: Integer;
begin
if c is TfrxCrossView then
begin
Cross := TfrxCrossView(c);
for i := 1 to 16 do
for j := 1 to 16 do
Cross.AddValue([i], [j], [StringGrid1.Cells[i - 1, j - 1]]);
end;


以下是自己写 的

var
Cross: TfrxCrossView;
i, j: Integer;
begin
if c is TfrxCrossView then
begin
Cross := TfrxCrossView(c);
for j:=1 to dbgrdh2.RowCount do // 行数 (这里只能得到显示在FM的行数,而不是总的行数)
for i := 1 to dbgrdh2.Columns.Count do //列数
begin
Cross.AddValue([j], [i],[dbgrdh2.SelectedRows.Items[i-1]]);
//这里的代码不对,应该是[dbgrdh2.行数.列数]的数据(不知道的怎么写);

end;
end;
end;


数据源是TXT,所以只能直接从 DBgridEh 中循环取出单元格内的值,没怎么用过 DBgridEh ,不知道如何 得到这 行和列,项目已经用FAST写了小半了,所以不能换了!
...全文
120 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
moshao6 2011-09-21
  • 打赏
  • 举报
回复
感知控件是不能存储数据,但要是感知控件上显示的数据,我都能读取,这个没有错吧?
你可以试下:从感知控件读取的值写临时表。并放到到一个adoquery中,后传到fastreport。
一般来说。显示出来的数据都有一个数据源,你只要把数据源与fastreport连接就行了,fastreport很好用的


xxgao 2011-09-21
  • 打赏
  • 举报
回复
1楼正解,delphi的数据感知控件都是不存储数据的,只能用来显示数据,不能遍历,只能通过与之关联的数据源来读取和遍历数据。
babydog01 2011-09-19
  • 打赏
  • 举报
回复
数据源是用什么的?
aBung 2011-09-19
  • 打赏
  • 举报
回复
有代码给看下不!
babydog01 2011-09-19
  • 打赏
  • 举报
回复
不管数据源是什么,能用dbgrideh的就能ado操作读取记录就可以了.

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧