CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他数据库开发 >  VFP

研讨存折打印度问题!

楼主sdsthgt(老菜)2006-03-17 10:27:53 在 其他数据库开发 / VFP 提问

我做了个公司内部银行软件,存折打印大伤脑筋,我的解决方法是:  
  在帐户基本信息表中设置三个字段,用以记忆已经打印业务记录,dyyh(打印页号),   dyhh(打印行号),dyzh(打印折号),打印时定位到客户已经打印的最后一条记录,从尚未打印的第一条记录开始打印,按记忆的打印页号.打印行号.打印折号已经打印的业务定位存折,再续打业务记录,打印代码全部使用   @   i,j   say   来进行,  
  想请教高手,是否有更好的方法,处理存折打印?? 问题点数:20、回复次数:9Top

1 楼apple_8180(十豆三)回复于 2006-03-17 10:44:45 得分 0

你的办法不错呀Top

2 楼sdsthgt(老菜)回复于 2006-03-17 10:53:43 得分 0

@   say   语句,不用考虑打印机类型,不用考虑,纸张类型,只要有打印机,就能打印,想打那行就打那行,灵活性很强,实验报表设计器,就没有@   say   好用。  
   
  可是  
   
  程序在在win2000下打印带底纹,而调试时,同样的语句,用command窗口执行,没有底纹,  
  还有,用@   say怎么来控制字体类型,行间距?  
  Top

3 楼apple_8180(十豆三)回复于 2006-03-17 11:09:14 得分 2

底纹不太清楚,因为现在自WINDOWS   ME   以后就不用@   say   语句了。  
   
   
  行间距不是问题,如:  
  @1,5   SAY   ...   &&第一行  
  @3,5   SAY   ...   &&第三行  
   
  语法:  
   
  @   <行,列>   [SAY   <表达式>]   [PICTURE   <格式符>]   [COLOR   <颜色对>]  
   
  功能:在屏幕指定坐标位置上输出显示结果。  
   
  PICTURE描述码和意义  
  A:只允许字母  
  L:只允许逻辑数据  
  N:只允许字母和数字  
  X:允许任意字符  
  Y:只允许Y、N、y、n,而且y,n分别被转化为Y,N  
  9:对字符数据只允许数字,对数值数据只允许数字和正负号  
  #:允许数字、空格、正负号  
  !:转换小写字母转化为大写字符  
  $:显示货币号  
  *:显示在数字值的前面  
  .:指出小数点的位置  
  ,:放在小数点的左边,用于数字的分隔  
  Top

4 楼apple_8180(十豆三)回复于 2006-03-17 11:18:59 得分 5

如果用报表也是可以的,如:设报表文件名“Prn.frx”  
   
  1、不要把报表文件Prn.frx添加到项目中,或添加项目后,然后设为排除。  
  2、把报表文件Prn.frx与程序一齐发布。  
  2、每次打印前,计算出要打印行和打印次数,用USE   打开报表文件  
        USE   Prn.frx  
        然后修改要打印的域控件的VPOS字段(行座标)和HPOS字段(列座标   ),再执行  
        USE   &&关闭  
        最后执行打印语句即可。  
  Top

5 楼sdsthgt(老菜)回复于 2006-03-17 15:21:27 得分 0

我用过这种方法,不好用,  
        USE   Prn.frx  
        然后修改要打印的域控件的VPOS字段(行座标)和HPOS字段(列座标   ),再执行  
        USE   &&关闭Top

6 楼sdsthgt(老菜)回复于 2006-03-17 15:30:04 得分 0

存折的样式一般是上下两页,,  
   
  首页是帐户基本信息,如果是新折,将打印此页,  
   
  第1页在存折的下半部,  
  第2页在存折的上半部,  
  第3页在存折的下半部,  
  第4页在存折的上半部,  
  第5页在存折的下半部,  
  第6页在存折的上半部,  
   
  末页   为“注意事项”印刷,,不打印,,  
   
  用USE   Prn.frx  
        然后修改要打印的域控件的VPOS字段(行座标)和HPOS字段(列座标   ),再执行  
        USE   &&关闭  
  的方法,  
  当客户来打印存折时,(未打印记录较多)第一页尚有未打印记录,应先打印第一页,然后打印第2页,,第3页。。。。  
  用这个方法好像不行,!  
   
   
  Top

7 楼sdsthgt(老菜)回复于 2006-03-21 10:42:26 得分 0

没人对这个感兴趣么?Top

8 楼dfwxj(清风)回复于 2006-03-22 22:54:23 得分 0

本人认为的一种比较简单有效的方法:  
   
  用VFP的报表,报表的数据源用一个表,在打印之前先组织数据,将需要打印的数据添加到报表的数据表里,根据记录的已打印行数,预先添加空白记录,我来找一个例子Top

9 楼dfwxj(清风)回复于 2006-03-23 00:08:36 得分 13

思路:  
   
  1、存折翻开后是两页,奇数页在下,偶数页在上下  
  2、每一页打印的行数是固定的,例如是10  
  3、每本存折的页数是固定的,例如9  
  4、设计一个报表prncz,数据源为pdata,设计时页标头带区设置为0  
  5、将未打印的数据拷贝到临时表t1,对已打印的数据怎么处理请大家自行发挥  
  use   jcxx   in   0  
  use   pdata   in   0  
  use   t1   in   0  
  do   while   recc('t1')#0  
  go   top   in   t1  
  sele   pdata  
  zap  
  for   i=1   to   jcxx.dyhh  
  appe   blan  
  endf  
  appe   from   t1   next   10-jcxx.dyhh  
  use   prncz.frx   in   0   alia   prn  
  repl   height   with   iif(mod(jcxx.dyyh+1,2)=0,0,n)   for   objtype=9   and   objcode=0   &&这里的n是奇数页的页标头高度  
  use   in   prn  
  repo   form   prncz   to   prin   noco       &&直接打印,在这里可以加入判断是否打印成功的代码,假设一次性打印成功  
   
  sele   t1  
  go   top  
  dele   next   10-jcxx.dyhh  
  pack  
   
  sele   jcxx  
  repl   dyyh   with   iif(dyyh=9,0,dyyh+1),dyhh   with   mod(recc('pdata'),10),dyzh   with   iif(dyyh=0,dyzh+1,dyzh)  
  flush  
   
  endd  
   
  代码看了挺乱,其实很简单,根据基础信息中记载的页号设置报表的页标头,根据已打印的行数添加相应的空白记录,然后将要打印的数据添加到报表中打印Top

相关问题

  • 存折打印怎么打印,没有经验,包含包含
  • 有谁会用四通OKI8358SC宽行票据打印机打印存折?
  • 关于oracle9i研讨
  • 关于oracle9i研讨
  • 如何实现象打印存折一样的追加打印!!!!!!!!!!特急!!!(马上兑现)
  • 要实现像银行打印存折的存取款记录一样,应该怎么样实现???
  • 100分求有关存折或票据打印的原码。分数可以再加!谢谢!
  • 《人月神话》研讨会
  • 《DELPHI研讨会——成都 》
  • 我想去印度!

关键词

  • 打印
  • 报表
  • 字段
  • 数据
  • 语句
  • 数字
  • 字符
  • 执行
  • 控件
  • 代码

得分解答快速导航

  • 帖主:sdsthgt
  • apple_8180
  • apple_8180
  • dfwxj

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo