Access交流网
  • 设为首页|收藏本站|繁体中文|手机版
  •     
  • Access培训-Access开发平台-Access行业开发

  • 首页
  • 资讯
  • 技巧
  • 源码
  • 行业
  • 资源
  • 活动
  • 关于

技巧

ACCESS数据库

启动/设置/选项/背景

修复/压缩

安全/加密/解密

快捷键

版本升级/其它等

数据表

命名方式/设计规范

表设计

查询

Sql语言基础

选择查询

更新查询

删除查询

追加查询

生成表查询

交叉表查询

SQL特定查询

查询参数

查询综合应用

界面/窗体/控件

标签

文本框

命令按钮

组合框/列表框

选项组/复选框/选项按钮

选项卡

子窗体

窗体本身/综合应用

其它

报表打印

报表设计

高级报表

模块/函数/VBA/API/系统

VBA基础

内置函数

调试/跟踪/Debug

模块/类模块

API/COM/系统相关

字符数字日期

网络通信游戏

加密解密安全

文件处理

经典算法

宏/菜单/工具栏/功能区

宏/脚本

菜单/工具栏

功能区/Ribbon

图表/图形/图像/多媒体

图表

图形/图像

音频

视频/动画

DAO/链接表/ADO/ADP

DAO/链接表/ODBC

ADO/RDO

ADP

ActiveX/第三方控件/插件

Treeview树控件

ListView列表控件

Toolbar工具栏控件

微软其它控件

Dbi-Tech

CodeJock

Grid++Report

FastReport

ComponentOne

加载项/插件/Addin

OFFICE集成/导入导出/交互

Excel导入导出/交互

Word导入导出/交互

PPT交互

Outlook控制/邮件

Text文本文件/INI/CSV

PDF/SWF/XML格式

CAD格式

Sharepoint/其它Office

SqlServer/其它数据库

表

视图

存储过程/触发器

函数

用户/权限/安全

调试/维护

SqlServer其它/综合

发布/打包/文档/帮助

开发版/运行时

打包/发布/部署

开发文档/帮助制作

Access完整行业系统

采购管理系统

销售管理系统

仓库管理系统

人力资源管理HRM

CRM管理系统

MRP/ERP管理系统

BRP/流程优化

其它管理系统

心得/经验/绝招
其它/杂项
Excel技巧

Excel应用与操作

Excel开发编程

Word技巧

Word应用与操作

Word开发编程

Outlook技巧

Outlook应用与操作

Outlook开发编程

热门文章

  • 如何确定当前屏幕分辨率
  • access XP 里面怎..
  • 在 Access 2002..
  • 报表中如何屏蔽零值?
  • [报表]报表跨节垂直居中例..
  • Windows 脚本组件 ..

最新文章

  • Access中窗体或者报表..
  • Access报表文本框按字..
  • Access报表打印设置
  • Access报表补空行代码
  • 懒人有懒计——浅谈自动报表
  • Access使用excel..

联系方式

Access交流网(免费Access交流)

QQ:18449932 

网  址:www.access-cn.com

当前位置:首页 > 技巧 > 报表打印
报表打印

[报表]报表跨节垂直居中例子

很多用惯EXCEL的朋友在制作报表时喜欢用EXCEL的思路,比如垂直居中,而在access中没有垂直居中属性,特别是跨节的垂直居中,很麻烦!
下面例子用一种不常用但很简单的方法实现报表中跨节的垂直居中。

代码:
Function PrintTextToCenterByGroup(rpt As Report, lNumber As Long, lCounts As Long, _
    sText As String, lLeft As Long, Optional sFName As String, Optional iSize As Integer, _
    Optional bFBold As Boolean) As Long
   
'功能说明:在有分组的报表中把文本(一般是用于分组的字段)每组只打印一行,并在组的垂直范围内居中
'参数说明:
'rpt:     报表本身
'lNumber: 基于组的连续的序号(即每个组都从1开始连续编号). 在主体上放一文本框,数据源为"=1",运行总和属性为"工作组之上",即可获得基于组的连续序号
'lCounts: 每个组的总记录数. 在组页眉或页脚上主一文本框,数据源为"=Count(*)",即可获得每个组的总记录数
'sText:   每个组要打印的文本
'lLeft:   打印的文本的左边距
'sFName:  打印的文本的字体,可选
'iSize:   打印的文本的大小,可选
'bFBold:  打印的文本是否加粗,可选
'使用方法:在报表主体节的格式化事件中使用
'      如:PrintTextToCenterByGroup Me, Me.序号, Me.组记录数, Me.产品类别, 350, "黑体", 14, True
'作    者:t小雨(tcl013@126.com)
'创建日期:2008年11月15日
'更新日期:2008年11月19日
    Dim iTxtHeight As Integer
   
    If Len(sFName) <> 0 Then rpt.FontName = sFName
    If iSize > 0 Then rpt.FontSize = iSize
    rpt.FontBold = bFBold
   
    iTxtHeight = rpt.TextHeight(sText) - iSize * 6.1
    '获得字符实际高度,须在设置字体大小代码之后。
    '由于TextHeight 方法返回的字符高度包括上面和下面的前导空间,并且空间高度随字体大小比例变化,
    '代码 大小 * 6.1 获得空间高度(参数6.1是手动测试的,只是大致准确)。
   
    If lCounts / 2 + 0.5 = lNumber Then
        '如果当前记录序号等于总记录数除以2+0.5,则总记录数为奇数,当前记录为最中间的一条记录
        '比如总记录数为5,则中间的记录序号应为3,5/2+0.5=3
       
        rpt.CurrentY = (rpt.主体.Height - iTxtHeight) / 2
        '当前行记录为中间记录时,设置打印起点使打印字符显示在本行的中间
    ElseIf lCounts / 2 = lNumber Then
        '当记录总数为偶数时,最中间的有两条记录
        '如果当前记录序号等于总记录数除以2,则当前记录为中间两条记录的第一条
        '比如总记录数为4,则最中间的两条记录应为2和3,第一条记录序号就是2,4/2=2
       
        rpt.CurrentY = rpt.主体.Height - iTxtHeight / 2
        '当前记录为两条中间记录的第一条时,设置打印起点为主体高度减去字符高度的一半,这样只显示字符的上半部分
    ElseIf lCounts / 2 + 1 = lNumber Then
        '如果当前记录序号等于总记录数除以2+1,则当前记录为中间两条记录的第二条
       
        rpt.CurrentY = 0 - iTxtHeight / 2
        '两条中间记录的第二条,设置打印起点为0减去字符高度的一半,只显示字符的下半部分
        '这样一来,第一条在主体的下方显示字符的上半部分,第二条在主体的上方显示字符的下半部分,就造成了跨行的假象!
       
    Else
        Exit Function
        '不符合上述3种条件的记录不打印,退出过程
    End If
    rpt.CurrentX = lLeft
   
    rpt.Print sText
    '打开字符
   
End Function

发布人:t小宝-网络  
分享到:
点击次数:  更新时间:2009-03-09 09:08:19  【打印此页】  【关闭】
上一条:如何在表的字段中插入图片和视频  下一条:17种正则表达式



相关文章

  • • Access中窗体或者报表页眉和页面页眉的区别,窗体页脚和页面页脚的区别
  • • Access报表文本框按字数同步缩放
  • • Access报表打印设置
  • • Access报表补空行代码
  • • 懒人有懒计——浅谈自动报表
  • • Access使用excel输出复杂报表
  • • 报表每页打印到一定行数自动分页
  • • 解决Access在页面设置中设置边距无法保存的问题

热门文章

  • [2009-06-12] 报表奇偶分页打印access数据库
  • [2003-12-06] 打印再添一例,自动分页access数据库
  • [2006-10-17] 在VB中用代码打印ACCESS报表access数据库
  • [2003-12-20] 在 Access 2002 中更改报表的打印机设置access数据库
  • [2005-02-04] 如何在报表中产生递增的顺序编号access数据库
  • [2005-06-19] [原创]在 Access 2000中变通实现弹出式报表又一法access数据库

热门产品

公司动态|在线留言|在线反馈|友情链接|会员中心|站内搜索|网站地图

Access交流网 版权所有 1999-2018 粤ICP备10043721号

QQ:18449932

Access应用 Access培训 Access开发 Access平台

access|数据库|access下载|access教程|access视频|access软件

Powered by MetInfo 5.3.12 ©2008-2023  www.metinfo.cn