DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: snarv12
今日帖子: 9
在线用户: 11
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/5/31 22:43:04
标题:
分栏打印预览出错的问题,高手帮忙.谢谢 浏览:2500
加入我的收藏
楼主: 以下在分栏打印代码:
procedure TFrmrpttoll.QuickRep1NeedData(sender: TObject;
  var MoreData: Boolean);
var
  I: integer;
begin
  MoreData := True;
  for I := 0 to 1 do begin
    if dmdata.qryuser.eof then Break;
    quickrep1.Refresh;
    case I of
      0:QRLabel17.Caption := dmdata.qryuser.fieldbyname('用户姓名').asstring;
      1:QRLabel18.Caption := dmdata.qryuser.fieldbyname('用户姓名').asstring;
    end;
    dmdata.qryuser.Next;
  end;
  if dmdata.qryuser.eof then MoreData := False;
end;

预览时总是少一行,不知道是怎么回事?比如说有6条记录,那么只能打4条,如果有7条记录的话,只能打6条,搞了一天,我都晕了.
以下是查询结果截图:
此帖子包含附件:
JPEG 图像
大小:55.8K
----------------------------------------------
简简单单就好
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/5/31 22:43:52
1楼: 这儿是预览结果截图:
此帖子包含附件:
JPEG 图像
大小:70.4K
----------------------------------------------
简简单单就好
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/1 0:53:45
2楼: 斑主救我

----------------------------------------------
简简单单就好
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/1 8:33:50
3楼: 老大帮我
----------------------------------------------
简简单单就好
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/1 8:35:03
4楼: 我打印了一下,在查询结果是9条记录的情况下,只能打6条
----------------------------------------------
简简单单就好
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/1 9:13:22
5楼:
----------------------------------------------
简简单单就好
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/1 15:16:12
6楼: 继续自己顶
----------------------------------------------
简简单单就好
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/1 16:06:14
7楼: 再顶
----------------------------------------------
简简单单就好
作者:
男 crazy (疯子) ★☆☆☆☆ -
盒子活跃会员
2004/6/1 19:51:13
8楼: procedure TFrmrpttoll.QuickRep1NeedData(sender: TObject;
  var MoreData: Boolean);
var
  I: integer;
begin
  MoreData := True;
  for I := 0 to 1 do begin
    if dmdata.qryuser.eof then Break;
    quickrep1.Refresh;
    case I of
      0:QRLabel17.Caption := dmdata.qryuser.fieldbyname('用户姓名').asstring;
      1:QRLabel18.Caption := dmdata.qryuser.fieldbyname('用户姓名').asstring;
    end;
 if dmdata.qryuser.eof then MoreData := False;
    dmdata.qryuser.Next; //移到此处
end;
end;
----------------------------------------------
春花秋月何時了

往事知多少

小樓昨夜又東風
作者:
男 crazy (疯子) ★☆☆☆☆ -
盒子活跃会员
2004/6/1 20:22:10
9楼: 对了

你是如何将其设成两栏的

我设了两个,   怎么就打了两次

----------------------------------------------
春花秋月何時了

往事知多少

小樓昨夜又東風
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/1 22:48:25
10楼: 设计报表时将左边的复制一份到右边就行了
----------------------------------------------
简简单单就好
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/1 22:53:48
11楼: next语句一定要在原来那儿才能分栏打
----------------------------------------------
简简单单就好
作者:
男 aerly (aerly) ★☆☆☆☆ -
盒子活跃会员
2004/6/1 22:56:13
11楼: 不知道用的是不是ado,
如果ado+datasource+dbgrid
你循环ado的时候数据有时候会有点问题但循环datasource就没有问题;
所以 如果你的dmdata是adoquery之类的不如换成datasource看

----------------------------------------------
-
作者:
男 crazy (疯子) ★☆☆☆☆ -
盒子活跃会员
2004/6/1 23:16:59
12楼: : 设计报表时将左边的复制一份到右边就行了 

我试过 不行的

 procedure TFrmrpttoll.QuickRep1NeedData(sender: TObject;
  var MoreData: Boolean); 
代表的是什么事件?


----------------------------------------------
春花秋月何時了

往事知多少

小樓昨夜又東風
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/1 23:42:35
13楼: 首先将QuickRep1的dataset设为空,这样quickrep1预览时就会通过needdata事件获取数据
----------------------------------------------
简简单单就好
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/1 23:55:05
14楼: 我用的是ADO,以前一直用没有问题,我试试你说的datasource
----------------------------------------------
简简单单就好
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/2 11:52:06
15楼: datasource不行
----------------------------------------------
简简单单就好
作者:
男 crazy (疯子) ★☆☆☆☆ -
盒子活跃会员
2004/6/2 12:52:19
16楼: 兄弟,以下这句是什么意思:是不是就是那两栏中的用户名?
可我这样用了,左右两栏还是打印一样的,都打了两次。
当去掉quickrep1的dataset后只能打印前冇一条记录了。怎么会这样呢?
case I of
      0:QRLabel17.Caption := dmdata.qryuser.fieldbyname('用户姓名').asstring;
      1:QRLabel18.Caption := dmdata.qryuser.fieldbyname('用户姓名').asstring;
----------------------------------------------
春花秋月何時了

往事知多少

小樓昨夜又東風
作者:
男 crazy (疯子) ★☆☆☆☆ -
盒子活跃会员
2004/6/2 13:19:58
17楼: 两袖清风,有没有在?

帮忙看看,如何解决?

在线等……
----------------------------------------------
春花秋月何時了

往事知多少

小樓昨夜又東風
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/2 15:41:22
18楼: QRlabel17两栏中左边栏的用户名,QRlabel18是右边栏的用户名,我把这个报表窗体传上来劳驾给看一下.
此帖子包含附件:studier_200462154122.rar 大小:6.5K
----------------------------------------------
简简单单就好
作者:
男 jierenwu (love_delphi) ★☆☆☆☆ -
盒子活跃会员
2004/6/2 16:37:29
19楼: 请问一下,上图的窗体是用什么控件做出来的?
按此在新窗口浏览图片
----------------------------------------------
按此在新窗口浏览图片
http://www.jiesky.com
共同学习,共同努力!
作者:
男 crazy (疯子) ★☆☆☆☆ -
盒子活跃会员
2004/6/2 18:01:47
20楼: 两袖清风

谢谢你了

可出现了与你同样的问题

就是最后一行打不到.

不知你有没有解决这个问题
----------------------------------------------
春花秋月何時了

往事知多少

小樓昨夜又東風
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/2 20:37:19
21楼: 没有,我愁死了,


那个查询窗体是用了个vclskin
----------------------------------------------
简简单单就好
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/2 21:07:40
22楼: 版主救我
----------------------------------------------
简简单单就好
作者:
男 crazy (疯子) ★☆☆☆☆ -
盒子活跃会员
2004/6/2 22:36:20
23楼:  我这样写却又多打了一个,真搞不明白
var
  I: integer;
begin
  MoreData := True;
 for I := 0 to 1 do
  begin
  if adoquery1.eof then  MoreData := False;
  quickrep1.Refresh;
    case I of
      0: begin
          a.Caption := adoquery1.fieldbyname('产品名称').asstring;
          c.Caption := adoquery1.fieldbyname('库存数量').asstring;
         end;
      1: begin
          b.Caption := adoquery1.fieldbyname('产品名称').asstring;
          d.Caption := adoquery1.fieldbyname('库存数量').asstring;
         end;
    end;
adoquery1.Next;
if adoquery1.eof then Break;
end;
----------------------------------------------
春花秋月何時了

往事知多少

小樓昨夜又東風
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/3 1:26:51
24楼: 这样我试过,打出来的结果乱七八糟,而且这样写就不合逻辑了.
----------------------------------------------
简简单单就好
作者:
男 cmh (cmh) ★☆☆☆☆ -
盒子活跃会员
2004/6/3 8:19:46
25楼: 报表一窃不通,还望高手们指点.能不能提供点参考资料
----------------------------------------------
-
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/3 14:41:18
26楼: top
----------------------------------------------
简简单单就好
作者:
男 crazy (疯子) ★☆☆☆☆ -
盒子活跃会员
2004/6/3 15:04:29
27楼: 我再顶

总会有人能解决的


----------------------------------------------
春花秋月何時了

往事知多少

小樓昨夜又東風
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/3 22:00:11
28楼: 谢谢crazy
----------------------------------------------
简简单单就好
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/4 10:04:07
29楼: 再顶
----------------------------------------------
简简单单就好
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/4 15:37:13
30楼:
----------------------------------------------
简简单单就好
作者:
男 crazy (疯子) ★☆☆☆☆ -
盒子活跃会员
2004/6/5 13:22:18
31楼: var
  I: integer;
begin
  MoreData := True;
 for I := 0 to 1 do
  begin
  if adoquery1.eof then 
    begin
     MoreData := False;
     break; //到达末尾后就退出,不再执行以下语句
     exit;
    end;
  quickrep1.Refresh;
    case I of
      0: begin
          a.Caption := adoquery1.fieldbyname('产品名称').asstring;
          c.Caption := adoquery1.fieldbyname('库存数量').asstring;
         end;
      1: begin
          b.Caption := adoquery1.fieldbyname('产品名称').asstring;
          d.Caption := adoquery1.fieldbyname('库存数量').asstring;
         end;
    end;
adoquery1.Next;
if adoquery1.eof then Break;
end;
----------------------------------------------
春花秋月何時了

往事知多少

小樓昨夜又東風
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/5 22:16:51
32楼: 我试试
----------------------------------------------
简简单单就好
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/5 22:35:57
33楼: 如果库中的记录是单数条的,也就是1,3,5,7,9......条的话,就会多打一条
----------------------------------------------
简简单单就好
作者:
男 crazy (疯子) ★☆☆☆☆ -
盒子活跃会员
2004/6/5 23:01:10
34楼: 这样做也不行,
我想应该在某个地方应该退出不应再执行赋值语句
----------------------------------------------
春花秋月何時了

往事知多少

小樓昨夜又東風
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/5 23:41:42
35楼: 不是赋值,应该是让右边的控件不可见
----------------------------------------------
简简单单就好
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/5 23:42:22
36楼: 或者赋空值也行
----------------------------------------------
简简单单就好
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/5 23:43:06
37楼: 对了,你是怎么弄好上面那个的?
----------------------------------------------
简简单单就好
作者:
女 daisy (萌萌) ★☆☆☆☆ -
普通会员
2004/6/6 8:58:09
38楼: delphi程序怎样打包阿?
我下载了一个打包程序,可是不会用,我是新手,请各位高手多多指教!!!
----------------------------------------------
-
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/6 11:28:58
39楼: 什么打包程序?我常用setup factory
----------------------------------------------
简简单单就好
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/6 12:34:10
40楼: var
  I: integer;
begin
  MoreData := True;
 for I := 0 to 1 do
  begin
  if adoquery1.eof then 
    begin
    if(adoquery1.recordcount mod 2=1) then //如果库是记录是奇数条
    begin
    a.hide;//隐藏右边的控件
    c.hide;
    //a.caption:='';我改成这样了都不行
    //c.caption:='';
    end;
     MoreData := False;
     break; //到达末尾后就退出,不再执行以下语句
     exit;
    end;
  quickrep1.Refresh;
    case I of
      0: begin
          a.Caption := adoquery1.fieldbyname('产品名称').asstring;
          c.Caption := adoquery1.fieldbyname('库存数量').asstring;
         end;
      1: begin
          b.Caption := adoquery1.fieldbyname('产品名称').asstring;
          d.Caption := adoquery1.fieldbyname('库存数量').asstring;
         end;
    end;
adoquery1.Next;
if adoquery1.eof then Break;
end;

----------------------------------------------
简简单单就好
作者:
男 crazy (疯子) ★☆☆☆☆ -
盒子活跃会员
2004/6/6 14:22:57
41楼: 这样好像还是不行

另外我发现在QuickRep1中可以设置栏数

----------------------------------------------
春花秋月何時了

往事知多少

小樓昨夜又東風
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/6 16:01:06
42楼: 有一个Columns属性,我设为2后打出来还是一栏
----------------------------------------------
简简单单就好
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/6 16:14:05
43楼: 看看这个:
http://delphi.ktop.com.tw/topic.asp?TOPIC_ID=47461
----------------------------------------------
简简单单就好
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/6 16:59:03
44楼: 老兄,行了,看看我在43楼贴的网址就会了,下面是我预览出来的结果。总共44条一条也不少。谢谢你了,请教如何联系,希望以后能同你一起切蹉。
此帖子包含附件:
JPEG 图像
大小:45.1K
----------------------------------------------
简简单单就好
作者:
男 crazy (疯子) ★☆☆☆☆ -
盒子活跃会员
2004/6/6 17:16:38
45楼: 这是通过设置栏数得到的,  我还是想通过你的那种方法实现

并且不合中国人的使用方法,,,

假如想从上到下应该怎么做,,,

不要一边多一边少的
----------------------------------------------
春花秋月何時了

往事知多少

小樓昨夜又東風
作者:
男 crazy (疯子) ★☆☆☆☆ -
盒子活跃会员
2004/6/6 17:18:25
46楼: My QQ:4852189
----------------------------------------------
春花秋月何時了

往事知多少

小樓昨夜又東風
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/6 17:51:10
47楼: 是呀
----------------------------------------------
简简单单就好
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/6 17:52:44
48楼: 我也想作成原先那种的,只要在最后一条记录那儿检测记录总数是否为奇然后使右边的控件不可见就行了,我们再试试
----------------------------------------------
简简单单就好
作者:
男 crazy (疯子) ★☆☆☆☆ -
盒子活跃会员
2004/6/6 21:09:32
49楼: 终于被清风兄给解决了
----------------------------------------------
春花秋月何時了

往事知多少

小樓昨夜又東風
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/7 12:17:27
50楼: 错,错,错,是你解决,别给我戴高帽了
----------------------------------------------
简简单单就好
作者:
女 daisy (萌萌) ★☆☆☆☆ -
普通会员
2004/6/7 16:58:42
51楼: 两位高手,看了你们的谈论,让我眼花缭乱,我是初学者,作了个户口管理系统,我看这位大哥的窗口很美观,可是我做的却是丑得要死,二位可否指点一二!小女子这里先谢过了!
----------------------------------------------
-
作者:
男 zsfox (zsfox) ★☆☆☆☆ -
普通会员
2004/6/7 17:21:32
52楼: 我想请教一下清风兄,他那个信息查询页的介面是怎样做的?
----------------------------------------------
-
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/7 17:48:34
53楼: 就是用N个Panel控件和N个GroupBox和其他的小控件堆叠而成。都用的是delphi最基本的控件,只是在主窗体中放了一个VCLskin控件,选择喜欢的skin就搞定了
----------------------------------------------
简简单单就好
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/7 17:53:35
54楼: 萌萌,其实我也是delphi菜鸟,以前主注重界面而没有考虑到程序的健壮性、代码执行效率等,建议你多在那些方面下些工夫。至于界面,盒子里作界面的控件很多,随便找一个就能作出一个漂亮的来,我想你没问题的。

其实我的程序是参考胜天所用控件的代码作出来的。
----------------------------------------------
简简单单就好
作者:
男 zhy19806 (zhy) ★☆☆☆☆ -
盒子活跃会员
2004/6/7 18:32:35
55楼: 这个方法我早就试过了,好像确实不行的。
----------------------------------------------
中国搞啥子足球嘛,好好打乒乓球嘛
作者:
男 zsfox (zsfox) ★☆☆☆☆ -
普通会员
2004/6/7 19:03:16
56楼: 再问一下..那个VCLskin控件在哪里的?......

其实给自己用的话,界面一般都没所谓,但要是帮人做的话...默认的界面就....
----------------------------------------------
-
作者:
男 zsfox (zsfox) ★☆☆☆☆ -
普通会员
2004/6/7 19:04:37
57楼: 刚找了一下...原来是第三方的控件..去试试
谢谢清风兄了.
----------------------------------------------
-
作者:
男 studier (清风) ★☆☆☆☆ -
盒子活跃会员
2004/6/7 20:28:42
58楼: 是的,其实我不太喜欢用第三方控件,但用第三方控件确实可以可以增加界面的友好性,所以我用了VclSkin,因为他只需要在主窗体上加一个控件就行了,太简单了。
----------------------------------------------
简简单单就好
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行191.4063毫秒 RSS