Foxtable(狐表)用户栏目专家坐堂 → 1月14日更新,增加单元格直接绘图功能


  共有23562人关注过本帖树形打印复制链接

主题:1月14日更新,增加单元格直接绘图功能

帅哥哟,离线,有人找我吗?
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
1月14日更新,增加单元格直接绘图功能  发帖心情 Post By:2009/1/14 19:01:00 [显示全部帖子]

1、修正了一些Bug,例如在没有启动打印服务的操作系统能够下,也能运行foxtable了。
2、开放了直接在单元格绘图的功能,使用方法请参考帮助文件“开发篇 - 专题 - 直接在单元格绘图”


在单元格中直接绘图


在介绍表事件DrawCell的时候,我们了解了通过更改文本和样式,让单元格的显示变得丰富多彩。
其实这只是DrawCell事件的最基础用法,在此之外,该事件还提供了通过GDI+绘图的功能。


DrawCell事件的完整e参数属性:


Table:    准备绘制的表
Row:      准备绘制的行
Col:      准备绘制的列
Style:   指定自定义样式的名称,如果用默认的样式绘制单元格,无须设置Style属性。
Text:    字符型,获得或者设置要绘制的文本内容
X:        要绘制单元格的水平坐标位置,单位为像素
Y:        要绘制单元格的垂直坐标位置,单位为像素
Width:   要绘制单元格的宽度,单位为像素
Height:  要绘制单元格的高度,单位为像素
Graphics:返回一个Graphics对象,通过这个对象可以在单元格中绘制图形。


此外该事件的e参数还提供了两个方法:


StartDraw:开始绘图
EndDraw:  结束绘图


所有的绘图代码,必须在这两个方法之间。


示例


此示例可以参考CaseStudy目录下的文件“单元格绘图.Table”。

假定表中有两列,分别是项目和进度,希望能够直接在项目列的单元格中用条形图表示进度,DrawCell事件的代码为:


If
e.Col.Name = "进度" AndAlso e.Row.IsNull("进度") = False Then
    e.StartDraw()

    Dim
Width As Integer = (e.Width - 2 )* e.Row("进度") \ 100
   
If e.Row("进度") = 100 Then
        e.Graphics.FillRectangle(Brushes.Green,e.x +
1,e.y + 1, Width, e.Height - 2)
    Else

        e.Graphics.FillRectangle(Brushes.Red,e.x +
1,e.y + 1, Width, e.Height - 2)
    End
If
    e.EndDraw()

End
If


绘制出的效果为:


此主题相关图片如下:0987.gif
按此在新窗口浏览图片
 

需要注意的是,在单元格绘制出的图形,只有直接打印才能打印出来,普通的打印无能为力。


[此贴子已经被作者于2009-1-14 19:03:21编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/1/14 19:06:00 [显示全部帖子]

以下是引用hnaysx在2009-1-14 19:04:00的发言:

打印这个问题 总于解决了 有一年了吧?老六 发现有些完全能解决 就看老六去不去解决


嘿嘿,曾经有一长辈说我是一粒算盘子,不拨就不动。


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/1/14 22:36:00 [显示全部帖子]

我更惨,就主板的序列号正常,硬盘和Bios没有号,CPU的号其实是型号的代码,并不是真正的ID

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/1/15 8:48:00 [显示全部帖子]

以下是引用菜鸟foxtable在2009-1-15 8:45:00的发言:
我的直接报错...
图片点击可在新窗口打开查看


和我无关,所谓精简版本的XP,其实很不好的,不少系统服务被去掉了。


 回到顶部