捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  沪ICP备05001939号 DELPHI盒子 | 盒子论坛 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 论坛检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
盒子资源分类
全部展开 - 全部合拢
为DBGrid绘制中文帐簿金额栏修改版
关键字:Currency Cell DBGrid 绘制 中文帐簿 金额栏 修改版
来 自:转载,netrobo
平 台:Win9x,Win2k/XP/NT,Win2003 下载所需:0 火柴
深浅度:中级 完成时间:2005/8/12
发布者:dragon_cbx 发布时间:2005/8/13
编辑器:DELPHI7 语  种:简体中文
分 类:组件 下载浏览:2383/13637
加入到我的收藏
下载错误报错
登陆以后才能下载
 用户名:
 密 码:
自动登陆(30天有效)
图片如果打不开,说明流量不够了,请稍候下载……
说明:
    这是一个演示程序,只有二十左右行代码,演示如何为DBGrid绘制中文帐簿金额栏,希望对初学自绘DBGrid的Delphi同行们有所帮助,当然,这些代码并不完整,并没有完成中文帐簿金额栏的所有显示要求,如果你有兴趣,就完善他吧!:)

By netrobo
E-Mail: netrobo@gmail.com

问题:
    如果只显示需要字段字段,见不能再显示自绘信息。
原因:
    将代码写在OnDrawDataCell事件中,有一个限制,就是要显示的字段不能控制,原因是此事件的前提条件是Columns.State 属性值必须为csDefault,也就是要显示的字段必须是缺省的,不能人为干预。
解决:
    将代码写到OnDrawColumnCell中,稍加修改即可。

新增功能:
  1、增加了,负值显示红色的功能(也即是财务中的赤字冲减)。
  2、在wwDBGrid中,可以直接写在OnDrawDataCell事件中,该控件已经修改了这个限制。再说也没有OnDrawColumnCell事件;在DbGridEh中和DbGrid一样,必须写在OnDrawColumnCell事件中。

非常感谢netrobo  
 如有改进希望大家在此基础上写文档。

by dragon
E-mail: dragonxiangfu@126.com
2005-08-12
Google
 
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们
龙脉加密锁 15元起 Grid++Report 报表 申请支付@网
 相关文章
为DBGrid绘制中文帐簿金额栏改进版
conch 2005/8/19 下+2452/浏+14568 评+28
为DBGrid绘制中文帐簿金额栏修改版
dragon_cbx 2005/8/13 下+2383/浏+13638 评+4
在ListView中添加ProgressBar
netrobo 2005/8/9 下+2017/浏+15473 评+5
为DBGrid绘制中文帐簿金额栏
netrobo 2005/8/8 下+1147/浏+10678 评+2
相关评论
共有评论4条 当前显示最后4条评论
netrobo 2005/8/13 11:44:54
非常感谢dragon花时间修改并改进,并将其贡献出来。
blkant 2005/8/14 21:07:22
谢谢两位,这个很实用啊,希望更多的人参与进来。
要是能把这个过程转移到QuantumGrid,相信更加实用。
顺便问一下:如果在表格最下方实现汇总?
dragon_cbx 2005/8/15 11:26:44
错误更正:
if BoolFZ then begin
        if I > Length(DrawText) then DrawSubText := '
        else begin
          DrawSubText := Copy(DrawText, Length(DrawText) - I + 1, 1);
          if DrawSubText = '-' then DrawSubText := ';
        end;
      end
      else begin
        if I > Length(DrawText) then DrawSubText := '
        else DrawSubText := Copy(DrawText, Length(DrawText) - I + 1, 1);
      end;
将对应的代码段覆盖即可
lanbox 2005/8/18 16:05:27
【一个更简单的修改】

MainFrm.pas 中,有负数显示错位的问题,更正如下:

  if I > Length(DrawText) then DrawSubText := '
  else DrawSubText := Copy(DrawText, Length(DrawText) - I + 2, 1);
将以上两行改为
  if I >= Length(DrawText) then DrawSubText := '
  else DrawSubText := Copy(DrawText, Length(DrawText) - I + 1, 1);
我要发表评论 查看全部评论
 
  DELPHI盒子版权所有 1999-2023 V4.01 粤ICP备10103342号-1 更新RSS列表