文档库 最新最全的文档下载
当前位置:文档库 › VB中报表的使用方法

VB中报表的使用方法

VB中报表的使用方法
VB中报表的使用方法

Option Explicit

Private Sub DataReport_Initialize()

Dim cnn As New ADODB.Connection

Dim rs As New ADODB.Recordset

Dim str As String

Dim strsql As String

str = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source= " & App.Path & "\db1.mdb "

cnn.Open str

rs.CursorLocation = adUseClient

strsql = "select * from table1 "

rs.Open strsql, cnn, adOpenDynamic, adLockOptimistic

Set DataReport1.DataSource = rs

DataReport1.Sections(1).Controls( "Text1 ").Caption = rs.Fields(1)

DataReport1.Sections(2).Controls( "Text2 ").Caption = rs.Fields(2)

DataReport1.Sections(3).Controls( "Text3 ").Caption = rs.Fields(3)

DataReport1.Sections(4).Controls( "Text4 ").Caption = rs.Fields(4)

End Sub

在报表中定义可四个RptTextBox控件.而且与都与数据库绑定了。运行看不到结果。老说下标越界

DataReport1.Sections(1).Controls(1).Caption = rs.Fields(1)

controls(1);1表示你在报表上画它时的顺序.

vb 6.0专业版和企业版中的数据报表设计器与数据环境设计器是数据访问的新内容。msdn 所提供的prjnwind.vbp 示例工程在设计阶段(design time)就已将dataenvironment设为datareport的数据源,并将打印格式也设好,这种做法不太利于程序的通用性。当然,我们也可以对dataenvironment编程,在运行阶段(run time)控制数据源。其实,datareport可以完全脱离dataenvironment,而打印由动态sql生成的recordset。

实现代码如下:

private sub datareport_initialize()

dim adoconnectionx as new adodb.connection

dim adorecordsetx as new adodb.recordset

adoconnectionx.open″provider=microsoft.jet.oledb.3.51;persist security

info=false;data source=″&app.path &″\xxx.mdb″

adorecordsetx.open ″select *from表名″, adoconnectionx

set datareportx.datasource = adorecordsetx

′设置datareport 的数据源

由vb 6 所提供的datareport.sections.item(index).controls.item(index)...这样的语法不太利于编程控制数据报表设计器的专用控件的位置、大小等各种属性。但是,我们可以编程根据控件所在区域(section)和所属类别等将它们分成若干集合(collection),然后通过控制集合的元素来控制其所代表的控件。当然,在设计阶段我们要将足够多的控件绘制到datareport上备用。实现的主要部分代码如下:

′根据控件所在区域(section)和所属类别分集合(collection)

dim rhsec4—rptlbl—collection as new collection

′页标头(pageheader)区域shape(rptshape) 控件集合

dim phsec2—rptshp—collection as new collection

′细节(detail)区域textbox(rpttextbox) 控件集合

dim dsec1—rpttxt—collection as new collection

dim ctl as object

for each ctl in me.sections.item(″section1″).controls ′section1 select case typename(ctl)

case ″rptlabel″

dsec1—rptlbl—collection.add ctl

ctl.caption = ″"

case ″rptshape″

dsec1—rptshp—collection.add ctl

case ″rpttextbox″

ctl.datafield = adorecordset.fields.item(0).name

′先将所有textbox(rpttextbox) 控件绑定到某一字段,否则报错!dsec1—rpttxt—collection.add ctl

end select

ctl.visible = false

next ctl

′以下通过控制集合的元素来准确有效的控制这些元素所代表的控件。

dim i as integer

dim bfmt as stddataformat

′定义布尔(boolean)型字段的数据格式

set bfmt = new stddataformat

bfmt.type = fmtboolean

bfmt.truevalue = ″是″

bfmt.falsevalue = ″否″

for i = 0 to 5

′只打印前几个字段,shape(rptshape) 控件用来显示单元格,页标头(pageheader)区域:显示列表头(caption)

with phsec2—rptshp—collection.item(i +1) ′单元格

.visible = true

if i = 0 then

.left = 0

else

.left = phsec2—rptshp—collection.item(i).left +phsec2—rptshp—collection.item(i).width

end if

.top = 0

.height = 400

′可根据字体设单位:缇字体的高度(单位:缇)可使用form、picturebox 的

textheight 方法或api 获得

.width = 1500

′这里可根据实际情况用数组分别设置各列的列宽

end with

with phsec2—rptlbl—collection.item(i +1) ′列表头标题(caption)

.left = phsec2—rptshp—collection.item(i +1).left +100

.top = phsec2—rptshp—collection.item(i +1).top +100

.height = phsec2—rptshp—collection.item(i +1).height -180

.width = phsec2—rptshp—collection.item(i +1).width -200

.caption = adorecordsetx.fields.item(i).name

.alignment = rptjustifycenter

.visible = true

end with

′细节(detail)区域显示:

with dsec1—rptshp—collection.item(i +1) ′单元格

if i = 0 then

dsec1—rptshp—collection.item(i +1).left = 0

else

.left = dsec1—rptshp—collection.item(i).left +dsec1—rptshp—collection.item(i).width

end if

.top = 0

.height = phsec2—rptshp—collection.item(i +1).height

.width = phsec2—rptshp—collection.item(i +1).width

.visible = true

end with

with dsec1—rpttxt—collection.item(i +1) ′数据

.height = dsec1—rptshp—collection.item(i +1).height -180

.left = dsec1—rptshp—collection.item(i +1).left +100

.top = dsec1—rptshp—collection.item(i +1).top +100

.width = dsec1—rptshp—collection.item(i +1).width -200

.datafield = adorecordsetx.fields.item(i).name ′重新绑定字段

select case adorecordsetx.fields.item(i).type ′可根据字段数据类型设置数据格式

case adbigint, adinteger, adsmallint

.dataformat.format = ″###,##0″

′数字

.alignment = rptjustifyright

case adboolean

set .dataformat = bfmt

′布尔型字段设为自定义格式

.alignment = rptjustifycenter

case adcurrency

.dataformat.format = ″###,##0.00″

′货币

.alignment = rptjustifyright

case addate, addbdate, addbtimestamp

.dataformat.format = ″long date″

′日期、时间

.alignment = rptjustifyright

case else ′其它,如:文本等

.alignment = rptjustifyleft

end select

.visible = true

end with

next i

datareport1.sections.item(″section2″).height = 400

datareport1.sections.item(″section1″).height = 400

end sub

该方案在pwin 9.x 和vb 6.0下通过。

如果要打印分级(层)recordset ,还要在datareport 上增加分组标头和分组注脚区等,并根据控件的具体功能、用途为其定义各类控件集合,设计出更复杂的报表。

VB设计报告

南京工程学院 课程设计说明书(论文)题目打字练习 课程名称VB语言课程设计 院(系、部、中心) 专业 班级 学生姓名 学号 设计地点图书馆基础教学机房 指导教师 设计起止时间:201x年x月x日至201x年x月x日 目录

一、设计任务 (3) 二、方法原理 (3) 三、总体设计思路 (3) 四、程序调试和解决问题 (4) 五、完善及存在的问题 (4) 六、收获体会 (4) 七、意见建议 (4) 八、示例截图 (5) 九、附录1(代码) (6) 十、附录2(主要参考资料) (10) 一、设计任务 1.题目介绍

在计算机及其他数码产品日益普及的今天,人们使用键盘应像用笔写字一样熟练。进行打字练习时熟悉键盘并提高打字速度的好方法。本体要求编制一个打字练习游戏程序,使用户在游戏过程中进行打字练习。 2.功能要求 (1)启动界面如图1 (2)选择难度和速度后,单击“开始”按钮,界面如图1。若选择简单,则落下字母;若选择复杂,单击开始后出现对话框,如图 2.单击确定,开始练习,落下单词。 (2)若用户在字符落到屏幕底部之前敲击了相应的键盘键,则该字符被“击中”然后消失。根据程序速度和难度的设置自动进行积分,实时分数时间正确率掉落个数显示在窗体的上部。 积分规则:正确击中一个字母或一个单词,加一分;反之,不得分,亦不扣分。(4)当游戏者单击“暂停”按钮时,程序停止运行,在单击“开始”按钮,程序继续运行;当单击“退出”按钮时,则弹出对话框(如截图示例3),单击“取消”按钮,程序继续运行,单击“确定”按钮,则弹出对话框(如截图4),此时对话框显示分数,单击“确定”按钮,退出程序。 (5)为了增加视觉效果,每个掉落的字符的颜色随机产生。 二、方法原理 根据题目要求,使用控件数组,用标签标题表示字符,键盘事件的处理判断打字正确与否,随机值的产生方法随机产生字符,用Timer控件属性反映时间、控制字符下落速度。 三、总体设计思路 首先在窗体上画出三个按钮标题分别为开始、暂停、退出。画六个标签分别表示已落字母个数、已花时间、得分与正确率。 画出一个含有五个元素的标签控制数组用以显示字符。 画出两个时间控件,一个用来返回已用时间,一个控制字符下落。 最后编写相关代码

MT明泰_读卡器_API接口函数库使用说明书

API接口函数库使用说明 部文件:V1.0.20 发布时间:2015-04-29

版本更新记录

目录 API接口函数库使用说明 (1) 1. 文档概述 (6) 1.1. 文档围 (6) 1.2. 面向对象 (6) 1.3. 参考资料 (6) 2. 函数库介绍 (6) 2.1. 功能 (6) 2.2. 性能 (7) 3. 运行环境 (7) 3.1. 硬设备 (7) 3.2. 软件的运行平台 (7) 3.3. 函数调用方法 (8) 3.3.1. Delphi调用32位动态库的方法 (8) 3.3.2. VB调用32位动态库的方法 (9) 3.3.3. VC调用32位动态库的方法 (11) 4. API介绍 (11) 4.1. 函数调用流程 (11) 4.1.1. 非接触式存储卡API调用流程 (11) 4.1.2. 非接触式CPU卡片API调用流程 (12) 4.1.3. 接触式CPU卡片API调用流程 (12) 4.1.4. 接触式存储卡片API调用流程 (12) 4.1.5. API调用流程 (12) 4.1.6. 函数操作结果信息表 (16) 4.2. 设备操作函数组 (19) 4.2.1 打开读写器device_open (19) 4.2.2 关闭读写器device_close (19) 4.2.3 判断设备通讯类型device_gettype (19) 4.2.4 设置通讯波特率device_setbaud (20) 4.2.5 获取读写器版本信息device_version (20)

4.2.6 读写器蜂鸣device_beep (21) 4.2.7 LED灯控制 device_ledctrl (21) 4.2.8 获取读写器生产序列号 device_readsnr (22) 4.2.9 获取设备状态 get_device_status (22) 4.2.10 读取读卡器的EEPROM (23) 4.2.11更新读卡器的EEPROM (23) 4.2.12 复位串口配置信息 ReSetupComm (24) 4.2.13 读卡器软复位 device_reset (24) 4.2.14 获取设备状态扩展 get_device_statusEx (25) 4.2.15 获取非接触式CPU卡卡片状态 dev_cardstate (25) 4.2.16 获取接触式CPU卡到位状态 ICC_GetStatus (26) 4.2.17 读EMID号Dev_GetEMID (26) 4.3 接触式卡片操作函数 (27) 4.3.1 判断接触式卡片状态sam_slt_getstate (27) 4.3.2 接触式卡片上电复位sam_slt_reset (28) 4.3.3 接触式卡设置复位波特率sam_slt_reset_baud (28) 4.3.4 接触式卡片下电sam_slt_powerdown (29) 4.4. 非接触 CPU 卡函数 (29) 4.4.1 激活非接触式卡open_card (29) 4.4.2 设置非接触式卡片为halt状态 rf_halt (30) 4.4.3 应用层传输命令card_APDU (31) 4.5 非接触式存储卡操作函数 (31) 4.5.1 激活非接触式存储卡rf_card (31) 4.5.2 非接触式存储卡认证扇区 rf_authentication (33) 4.5.3 非接触式存储卡读数据rf_read (33) 4.5.4 非接触式存储卡写数据rf_write (34) 4.5.5 非接触式存储卡读值块rf_readval (34) 4.5.6 非接触式存储卡写值块rf_initval (35) 4.5.7 非接触式存储卡加值rf_increment (35) 4.5.8 非接触式存储卡减值rf_decrement (36) 4.5.9 非接触式存储卡值传送 rf_transfer (36) 4.6 二代操作函数 (37) 4.6.1 卡操作指令-读卡IDCard_Read (37) 4.6.2 卡操作指令-读卡IDCard_ReadCard (39) 4.6.3卡操作指令根据索引获取数据IDCard_GetCardInfo (40) 4.6.4 获取二代证模块ID IDCard_GetModeID (40) 4.6.5 读卡模块扩展一IDCard_ReadCard_Extra (41) 4.6.6 设置二代证照片存储路径 IDCard_SetPhotoPath (41) 4.6.7 设置二代证照片名字 IDCard_SetPhotoName (42) 4.6.8 读二代证信息扩展二 IDCard_ReadCard_Ex (42) 4.6.9 删除所有二代证照片文件delete_all_photofile (44) 4.6.10 获取卡ID号IDCard_Read_IDNUM (44) 4.6.11 获取卡IDCard_Name (45) 4.6.12 获取卡性别IDCard_Sex (45)

vb报表设计

第六节报表设计 对一个完整的数据库应用程序来说,制作并打印报表是不可缺少的环节。VB 6.0 提供了DataReport 对象作为数据报表设计器(DamReport designer),DataReport对象除了具有强大的功能外,还提供了简单易操作的界面。 DataReport对象可以从任何数据源包括数据环境创建报表,数据报表设计器可以联机查看、打印格式化报表或将其导出到正文或HTML页中。 一、报表设计器 数据报表设计器由DataReport对象、Section对象和DataReport控件组成。 1.DataReport对象 DataReport对象与VB的窗体相似,同时具有一个可视的设计器和一个代码模块,可以使用设计器创建报表的布局,也可以在代码模块中添加代码。 在“工程”菜单上,单击“添加DataReport”命令,将数据报表设计器添加到工程中,则出现如图5-6-1所示的DataReport1对象,由“报表标头”、“页标头”、“细节”、“页注脚”和“报表注脚”组成。 图5-6-1 ·报表标头:指显示在一个报表开始处的文本,例如用来显示报表标题、作者或数据库名。

·页标头:指在每一页顶部出现的信息,例如用来显示每页的报表标题。 ·分组标头、注脚:指数据报表中的“重复”部分。每一个分组标头与一个分组注脚相匹配,用于分组。 ·细节:指报表的最内部的“重复”部分(记录),与数据环境中最低层的Command 子对象相关联。 ·页注脚:指在每一页底部出现的信息,例如,用来显示页码。 ·报表注脚:指报表结束处出现的文本,例如,用来显示摘要信息或一个地址或联系人姓名。报表注脚出现在最后一个页注脚之前。 2.Section对象 数据报表设计器的每一个部分由Section对象表示,如图5-6-1中的Section1~Section5。设计时,每一个Section由一个窗格表示,可以单击窗格以选择页标头,编程改变其外观和行为,也可以在窗格中放置和定位控件,对Section对象及其属性进行动态重新配置,更改每一个Section对象的布局来设计报表。 3.DataReport控件 当一个新的数据报表设计器被添加到工程时,在窗体上控件箱出现“数据报表”和“General”(通用)选项卡,如图5-6-2所示。但在数据报表设计器上不能使用General的控件,即内部控件或ActiveX控件。数据报表选项卡中的控件仅包含可在数据报表设计器上工作的特殊控件。 图5-6-2

基于VB实现复杂报表设计

基于VB实现复杂报表设计 xx [摘要] 本文介绍了报表设计的几种方法和以往报表设计所存在的问题,并以实例介绍自动生成复杂报表的方法。实例基于VB软件开发,并以word为模板,通过调用access数据库数据自动生成复杂报表。 [关键词]VB;数据库;Word; 复杂报表 The Design Of Complex Reports Based VB [Abstract] This paper reports detailed description of several common methods, previous reports of the existence of the problem, and makes use of example to achieve a complex reporting by using of software. The example based on VB software and used word template, to achieve the common complex reporting software through reallocating database. [Key words] VB; Database; Word; Complex Statements

1引言 报表是人们在日常生活中对某类相关信息进行集中处理的重要手段,是企业信息化不可缺少的部分。报表在各行各业中应用广泛,是信息浏览、分析和打印的有力工具。传统报表系统均以国外简单报表模型为基础设计,不能适应复杂报表的开发。特别是在处理复杂数据源报表时,常常需要编写代码准备数据或进行子报表拼接才能实现。 1.1传统报表系统存在的问题 目前,国内外的报表系统种类繁多,功能界面各具特色,对这些报表系统的比较研究,有助于我们设计出更好的报表系统。国外的报表系统的技术都比较成熟,适合制作样式简单的报表,但一般都为高端产品,价格不菲,并且在处理具有强烈中国特色的报表时,国外产品不仅报表处理能力相当不适应,甚至某些技术也略显落后,例如部分产品不能稳定地在UNIX上部署,只能支持IE浏览器,统计图输出仍采用原始的CGl方式等。国内的传统报表系统更适合制作复杂的中国式报表,在报表设计和价格等方面国内报表系统也具有一些优势,但国内的报表系统在服务质量和产品本身的品质等方面还存在着一些不足和缺陷,有待进一步的改进和完善。无论是国外的高端报表系统,还是国内的传统报表系统,每一种报表系统都有各自的优点和缺点,都有各自擅长的领域,在实际工作中应该根据需要选择合适的报表系统。面对日益复杂的报表开发需求,尤其是复杂的中国式报表,这些报表系统或多或少都有些力不从心,其主要问题表现在以下三个方面: (1) 复杂数据源的处理能力不足。报表需要从复杂的数据源或者多个不同类型的数据源中获得数据,获得的数据还可能需要统计,格式转换或其他处理,这些需求都是传统报表系统难于实现的。 (2) 报表的可维护性差。传统的报表系统生成报表的种类固定,使用方便,但很多软件系统无论在实施还是在维护阶段,报表都会进行频繁的新增和修改,而传统的报表系统缺乏无编码定制能力,系统扩展网难。一旦用户对报表样式的需求发生改变,就会给软件维护带来许多不必要的麻烦。 (3) 报表保存格式的通用性较差。报表保存格式不统一,保存格式理解困难,各种报表工具各自为政,报表模板无法兼容,行业也没有形成统一的标准,一旦用户选定了某一报表工具就意味着要一直使用。如果不幸选择失误,已经做的工作都要重新再来。 总之,利用传统的报表系统制作报表维护量相当大,一个需求对应一个报表文件,不同的组合要求制作大量的报表文件,使得开发过程变得极为繁琐,难以实现用户的需求。在设计复杂数据源的报表时,或者需要人工转换数据格式,或者要编写大量代码将多个数据源运算成为一个数据源再使用,或者使用拼接子报表的方式来实现,但都没有从根本上解决问题,严重影响报表的设计和使用效率。因此如何快速制作符合多层结构特点的复杂数据源报表,减轻开发工作量,已经成为报表系统开发的重要问题。

接口使用说明文档

中国移动短信网关 SP端接口使用手册 China Mobile Shot Message Gateway Interface for SP Manual 作者:沈岗 日期:2004年1月 版本:V1.2

一、CMSMIF.CMPPApp 简要说明: 该类采用CMPP协议(V2.0)实现了SP端与移动短信网关的连接处理。 本类中,采用长连接方式与ISMG通讯。通信双方以客户-服务器方式建立TCP连接,用于双方信息的相互提交。当信道上没有数据传输时,通信双方应每隔时间C发送链路检测包以维持此连接,当链路检测包发出超过时间T后未收到响应,立即再发送链路检测包,再连续发送N-1次后仍未得到响应则断开此连接。参数C、T、N可通过属性配置。 消息发送时采用并发方式,即发送一条消息不等待网关回复确认,继续向网关发送短信,这样发送消息速度非常快,完全取决于网关的处理速度及网络速度。为避免消息丢失,同时采用了滑动窗口流量控制,窗口大小可通过属性设置。 消息接收、网络断开等采用事件触发方式,不需应用程序轮询,在此接口基础之上编程方便。 类中运用了多线程技术,如一条线程处理发送网络包,而另一条线程处理从网关上接收网络包,其他还有一些线程处理检测包、网络连接情况监测等,使程序思路明确、执行效率很高、运行非常稳定。 (一)属性 1.ActiveInterval 说明:检测包发送时间间隔,单位:毫秒。默认值为120000,即120秒。为上 述类说明中的C参数。 2.MaxNetworkPackSize 说明:与ISMG通讯时最大网络包大小,单位:字节。默认值为512Byte。 3.MaxRetryTimes 说明:网络超时最大重发次数,单位:次。默认值为3次。为类说明中的N。 4.OverTime 说明:网络包发送超时时间,单位:毫秒,超过此值还未收到回复则重发。默认值 为60000,即60秒。为类说明中的T。 5.QueueLength 说明:网络队列大小,单位:个,默认值为20。为类说明中的滑动窗口大小, 以控制发送流量。 (二)方法 1.ConnectToIsmg 方法说明: 连接到远程短信网关ISMG上,只有连接到远程短信网关上,才可进行短信收发操作。 在本操作中,自动初始化本地Socket,以连接到指定IP服务器的指定端口上。 声明原型:int ConnectToIsmg(string ServerIP,int Port,string SP_ID,string Secret,string SN) 参数说明: ServerIP:远程短信网关服务器的IP地址,如211.138.200.51 Port:远程短信网关服务器的端口号,如7890 SP_ID:企业服务代码

通达信函数大全使用说明

软件简介: 通达信全部函数及其用法(2011年最新版) (一)行情函数 1)HIGH(H)最高价返回该周期最高价.2)LOW(L)最低价返回该周期最低价.3)CLOSE(C)收盘价返回该周期收盘价.4)VOL(V)成交量(手)返回该周期成交量.5)OPEN (O)开盘价返回该周期开盘价.6)ADVANCE 上涨家数返回该周期上涨家数. (本函数仅对大盘有效)7)DECLINE 下跌家数返回该周期下跌家数. (本函数仅对大盘有效)8)AMOUNT 成交额(元)返回该周期成交额.9)VOLINSTK 持仓量返回期货该周期持仓量.10)QHJSJ 期货结算价返回期货该周期结算价. 11)BUYVOL 外盘(手)返回外盘,即时行情数据 12)SELVOL 外盘(手)返回外盘 13)ISBUYORDER 主动性买单返回当前成交是否为主动性买单.用法: ISBUYORDER,当本笔成交为主动性买盘时,返回1,否则为0 14)DHIGH 不定周期最高价返回该不定周期最高价.15)DOPEN 不定周期开盘价返回该不定周期开盘价.16) DLOW 不定周期最低价返回该不定周期最低价.17)DCLOSE 不定周期收盘价返回该不定周期收盘价.18) DVOL 不定周期成交量价返回该不定周期成交量价.19)NAMELIKE 模糊股票名称返回股票名称是否以参数开头.

用法: if(NAMELIKE('ST'),x,y); 20)CODELIKE 模糊股票代码返回股票代码是否以参数开头. 用法: if(CODELIKE('600'),x,y); 21)INBLOCK 属于某板块返回股票是否属于某板块. 用法: if(INBLOCK('沪深300'),x,y); (二)时间函数 1)PERIOD 周期取得周期类型. 结果从0到11,依次分别是1/5/15/30/60分钟,日/周/月,多分钟,多日,季,年. 2)DATE 日期取得该周期从1900以来的的年月日. 用法: DATE 例如函数返回1000101,表示2000年1月1 日,DATE+19000000后才是真正的日期值 3)TIME 时间取得该周期的时分秒.用法: TIME 函数返回有效值范围为(000000-235959) 4)YEAR 年份取得该周期的年份.5)MONTH 月份取得该周期的月份.用法: 函数返回有效值范围为(1-12) 6)WEEKDAY 星期取得该周期的星期数.用法: WEEKDAY 函数返回有效值范围为(1-7) 7)DAY 日取得该周期的日期.用法: DAY 函数返回有效值范围为(1-31) 8)HOUR 小时取得该周期的小时数.用法: HOUR 函数返回有效值范围为(0-23),对于日线及更长的分析周期值为0

输入法接口函数说明

输入法编程(转贴)(快看) IME输入法编程 第一章Windows9x系统下汉字输入法的基本原理 Windows系统下汉字输入法实际上是将输入的标准ascii字符串按照一定的编码规则转换为汉字或汉字串,进入到目的地。由于应用程序各不相同,用户不可能自己去设计转换程序,因此,汉字输入自然而然落到WINDOWS系统管理中。 一、输入法与系统的关系 键盘事件应用程序 || Windows的USER.EXE | 输入法管理器 | 输入法 系统的键盘事件有windows的user.exe软件接收后,user.exe在将键盘事件传导输入法管理器(Input Method Manager,简称IMM)中,管理器再将键盘事件传到输入法中,输入法根据用户编码字典,翻译键盘事件为对应的汉字(或汉字串),然后再反传到user.exe 中,user.exe再将翻译后的键盘事件传给当前正运行的应用程序,从而完成汉字的输入。 二、汉字输入法的组成 微软Windows9x系统中汉字输入法的名称是"Input Method Editor " ,简称IME,输入法的程序名称为:*.ime,数据文件名称为*.MB,即通常说的输入法编码表(字典). 实际上IME文件是一个动态连接库程序(DLL),它与dll文件没有区别,只是名称不同而已。 一般汉字输入法都由三个窗口组成: 状态窗口(Status Windows)-显示当前的输入法状态(中文还是英文等站环信息); 编码输入窗口(Composition Windows)-显示当前击键情况; 汉字选择窗口(Candidates Windows)-列出当前编码的全部汉字(串),供用户选择或查询。 上述三个窗口由基本的用户接口(User Interface )函数管理着。 现在我们用Dumpbin.exe打开微软提供的拼音输入法(WINDOWS\SYSTEM\WINPY.IME)看看它有什么组成(这里一WINDOWS98为例,并假定windows系统安装在c:盘下):

C++中所有函数的使用说明

C++函数大全 2010-04-10 10:11 数学函数,所在函数库为math.h、stdlib.h、string.h、float.h int abs(int i) 返回整型参数i的绝对值 double cabs(struct complex znum) 返回复数znum的绝对值 double fabs(double x) 返回双精度参数x的绝对值 long labs(long n) 返回长整型参数n的绝对值 double exp(double x) 返回指数函数ex的值 double frexp(double value,int *eptr) 返回value=x*2n中x的值,n存贮在eptr中 double ldexp(double value,int exp); 返回value*2exp的值 double log(double x) 返回logex的值 double log10(double x) 返回log10x的值 double pow(double x,double y) 返回xy的值 double pow10(int p) 返回10p的值 double sqrt(double x) 返回+√x的值 double acos(double x) 返回x的反余弦cos-1(x)值,x为弧度 double asin(double x) 返回x的反正弦sin-1(x)值,x为弧度 double atan(double x) 返回x的反正切tan-1(x)值,x为弧度 double atan2(double y,double x) 返回y/x的反正切tan-1(x)值,y的x为弧度 double cos(double x) 返回x的余弦cos(x)值,x为弧度 double sin(double x) 返回x的正弦sin(x)值,x为弧度 double tan(double x) 返回x的正切tan(x)值,x为弧度 double cosh(double x) 返回x的双曲余弦cosh(x)值,x为弧度 double sinh(double x) 返回x的双曲正弦sinh(x)值,x为弧度 double tanh(double x) 返回x的双曲正切tanh(x)值,x为弧度 double hypot(double x,double y) 返回直角三角形斜边的长度(z), x和y为直角边的长度,z2=x2+y2 double ceil(double x) 返回不小于x的最小整数 double floor(double x) 返回不大于x的最大整数 void srand(unsigned seed) 初始化随机数发生器 int rand() 产生一个随机数并返回这个数 double poly(double x,int n,double c[])从参数产生一个多项式 double modf(double value,double *iptr)将双精度数value分解成尾数和阶double fmod(double x,double y) 返回x/y的余数 double frexp(double value,int *eptr) 将双精度数value分成尾数和阶double atof(char *nptr) 将字符串nptr转换成浮点数并返回这个浮点数double atoi(char *nptr) 将字符串nptr转换成整数并返回这个整数 double atol(char *nptr) 将字符串nptr转换成长整数并返回这个整数 char *ecvt(double value,int ndigit,int *decpt,int *sign) 将浮点数value转换成字符串并返回该字符串 char *fcvt(double value,int ndigit,int *decpt,int *sign) 将浮点数value转换成字符串并返回该字符串

CAN应用接口函数

CAN应用接口函数库使用手册V1.0

目录 1.接口卡设备类型定义 (3) 2.错误码定义 (4) 3.函数库中的数据结构定义 (5) 3.1.VCI_BOARD_INFO (5) 3.2.VCI_CAN_OBJ (6) 3.3.VCI_CAN_STATUS (7) 3.4.VCI_ERR_INFO (8) 3.5.VCI_INIT_CONFIG (9) 3.6.VCI_RxAcptMask (10) 3.7.VCI_RxAcptFilter (11) 4.接口库函数说明 (12) 4.1.FD_OpenDevice (12) 4.2.FD_CloseDevice (13) 4.3.FD_InitCan (14) 4.4.FD_ReadBoardInfo (15) 4.5.FD_GetReceiveNum (16) 4.6.FD_ClearBuffer (17) 4.7.FD_StartCAN (18) 4.8.FD_ResetCAN (19) 4.9.FD_Transmit (20) 4.10.FD_Receive (21) 4.11.FD_RxAcptMaskInit (22) 4.12.FD_DisableRxAcptFilter (23) 4.13.FD_RxAcptFilterInit (24) 4.13.FD_SetOperationMode (25) 5.接口库函数使用方法 (26) 5.1.VC调用动态库的方法 (26) 5.2.VB调用动态库的方法 (26)

1.接口卡设备类型定义 各个接口卡的类型定义如下: 设备名称设备类型号备注 USBCAN11第一代USBCAN USBCAN22第二代USBCAN CAN2323待开发PCICAN4待开发

常用C语言图形函数使用说明

常用C语言图形函数使用说明 (以下函数均应在图形方式初始之后使用,在win-tc中使用BGI图形程序模板时,其中已经定义有一个initgr函数,在main函数中应在执行initgr函数之后再使用这些函数。使用这些函数时,均应在程序中包含头文件graphics.h,即程序开始时应有#include "graphics.h") 1、setcolor(色彩值):设置绘图色彩,使用该函数后,图形函数所绘制的直线或曲线为该函数中指定的色彩。例如: setcolor(YELLOW); circle(320,240,100); 在屏幕中央以黄色绘制半径为100的圆。(关于画图色彩使用的说明) 2、setbkcolor(色彩值):设置图形屏幕的背景色彩,使用该函数后图形屏幕清屏,背景色彩为该函数中所指定的色彩。如果没有使用该函数设置背景色,则图形屏幕的背景色彩为黑色。 3、cleardevice():清除图形屏幕上已经绘制的内容,该函数没有参数。 4、line(x1,y1,x2,y2): 绘制直线段,其中(x1,y1)为一个端点的坐标,(x2,y2)为另一个端点的坐标。直线的色彩为在使用该函数之前通过setcolor函数所设置的色彩。例如: setcolor(WHITE); line(0,240,639,240);绘制一条横贯屏幕中间的白色水平直线。 5、circle(x,y,r):绘制一个以(x,y)为圆心坐标,半径为r的圆。例如: setcolor(WHITE); circle(320,240,100);绘制一个以(320,240)为圆心位置,半径为100 的圆。 6、rectangle(x1,y1,x2,y2):绘制一个以(x1,y1)和(x2,y2)为对角端点坐标的矩形 7、putpixel(x,y,color):在(x,y)坐标位置处绘制一个点,点的色彩由color 指定。例如: putpixel(320,240,RED);在屏幕中央绘制一个红色的点。

API函数手册

POSTEK PPLⅠAPI函数手册 G Series 条码标签打印机 Version 2.00 深圳市博思得通信发展有限公司 二○○四年

API函数库文件说明 名称:CDFPSK.dll 中文版本编号:1.X.X.X 英文版本编号:2.X.X.X 版权所有:?2004深圳市博思得通信发展有限公司。保留所有权利。 用途 本API函数库为深圳市博思得通信发展有限公司条码标签打印机的用户提供一组命令,为他们编写基于Windows9X,NT,2000,XP等操作系统的应用程序提供便利。 本API函数库仅支持本公司产品。 缩略语对照 PPLⅠ:深圳市博思得通信发展有限公司的第一套打印机编程语言(Printer Porgram Language Ⅰ)。 API:应用程序编程接口(Application Program Interface)。 Dots:像素(pixel)是一种计算机科学技术尺寸单位,原指电视图像成像的最小单位,在打印机领域表示打印机的最小打印成像单位:1dot等于一英寸除以打印机的最大分辨率。 - 对于203DPI的打印机来说, 1dot = 25.4mm/203 = 0.125mm(1dot = 1000 / 203 = 5mil); - 对于300DPI的打印机来说, 1dot = 25.4mm/300 = 0.085mm(1dot = 1000 / 300 = 3mil)。 TrueType Font:是基于Windows操作系统使用,可装卸的字体。 - 已经安装的TrueType Font,都可以被本函数使用。 使用前须知 字符串 * 字符串以双引号(“)作为起始和结束标记; *

vb报表分组

在VB中使用动态分组报表 在使用VB自带的报表过程中,我遇到了处理动态分组报表的问题。一般要使用分组报表要在VB中建立一个DataEnvironment,并在其中建立数据库联接和命令对象,在命令对象中设置分组字段,最后将这些分组字段加入到报表中。但是这种方法只能适应静态的数据源,当遇到数据表中的字段不固定,或数据表不能预先知道的情况时,这种方法就无能为力了。经过查阅各种资料,发现我们可以通过使用Data Shaping来动态创建分组信息。下面就详细介绍一下如何动态创建分组信息,并应用于VB报表。 要使用Data Shaping,程序必须使用ActiveX Data Object (ADO)连接数据库,解决问题的关键是使用Data Shaping的驱动程序代替通常使用的各种OLE DB的驱动程序,它的用法跟使用其它驱动程序类似,对于已有的数据访问代码不用作任何修改,只是简单的修改一下连接代码就可以支持Data Shaping了。具体做法如下: 将连接参数中的 Provider设置成"MSDataShape" 即 ConnectionString = "Provider=MSDataShape;Data Provider=通常的驱动程序;Data Source=…;其它的参数" 然后就可以和平常一样进行数据连接和各种数据操作了。如此连接的数据源出了具有用普通方法的所有特性以外,同时具有了我们即将使用的Data Shaping功能,下面就可以建立自己的分组信息了: 将用于打开记录集的SQL语句写成如下形式: SHAPE {select 字段1, 字段2, 字段3,…, 字段n from 现有的表} AS 新的名称1 COMPUTE新的名称1 AS新的名称2 BY 分组字段1, 分组字段2,…, 分组字段n 上面的语句中,需要注意的是分组字段必须同时在Select 中出现,否则运行时将报错。用该SQL语句打开的记录集中包含若干个字段,它们是:新的名称2、分组字段1-n。在使用时,将打开的记录集rs作为报表的DataSource,在报表的分组部分可以直接且只能使用

在VB中用数据报表设计器创建报表

在VB中用数据报表设计器创建报表 数据环境设计器(Data Environment designer)与数据报表设计器(Data Report designer)均是Visual Basic 6.0的新增功能,它们的出现大大增强了Visual Basic处理数据的能力。在以往的Visual Basic版本中,制作报表都是通过第三方产品来完成并通过ActiveX控件输出的。这两种设计器的出现,使得Visual Basic程序员再也不用考虑选择一个什么样的第三方工具设计报表了,所有的设计全部在Visual Basic内部完成,再加上Visual Basic 6.0新增的开发IIS应用程序和开发DHTML应用程序功能,使得Visual Basic 6.0是一个名副其实的装备齐全的集成开发环境了。下面我们以一个比较简单的报表为例,详细阐述如何使用数据环境设计器和数据报表设计器来设计一个数据报表。 一、数据环境设计器与数据报表设计器 数据环境设计器提供了一个交互式的设计环境。通过设置Connection对象和Command 对象的属性,可以快速完成到一个数据源的连接。对于设置好的数据环境设计器,可以将它的对象拖放到表单上或是报表上,它会自动创建并完成数据绑定控件的设置。 数据报表设计器是一个极为灵活的设计报表的工具。它以数据环境设计器作为数据源,能创建有层次的、汇总若干个关系型数据表数据的复杂报表。除了像传统的报表设计工具那样能将报表通过打印机输出以外,数据报表设计器还能以HTML或文本文件的格式输出报表。 二、数据环境对象 数据环境设计器包含以下几个对象: 1. 数据连接(Connection)对象:连接对象表示到一个作为数据源的远端数据库或本地数据库的连接。在数据环境中必须至少包含一个连接对象,要使用数据环境存取数据,必须首先创建连接对象。 2. 数据命令(Command)对象:命令对象定义了从数据库连接中将取回什么数据的详细信息。命令对象可基于任何一个数据库对象(表、视图、存储过程或同义字)或是一个SQL 查询。 三、数据报表对象 数据报表设计器包括以下几个对象: 1. 数据报表(Data Report)对象:类似于Visual Basic表单,它包含一个可视化设计器和一个代码模块。设计器用来创建报表的布局,也可以往设计器的代码模块里添加代码,用程序对包含在设计器里的控件或区域进行控制。 2. 区域(Section)对象:数据报表设计器的每一个区域均由一个区域集对象中的一个区域对象来表示。在设计阶段,每一个区域都有一个标题,若要选择区域,只需用鼠标选择标题即可,并且在区域内可布置控件。在报表建立之前,使用区域对象及其属性调整报表。使用过报表的人都知道,报表可分为报头、报脚、页头、页脚、组头、组脚和细节等部分,在区域内也是一样的。

DLL函数接口说明

typedef void __stdcall (*fun_AddResult)(char pDataStr[10][255],double pDataDouble[100]); extern "C" void __declspec(dllimport) __stdcall SetBackColor(TColor pBkColor); extern "C" void __declspec(dllimport) __stdcall FanSelect( void *pSeriesNames,//系列名称YLDStr * (typedef struct{char Data[255];} YLDStr;) const int pSeriesNameCount,//系列名称个数,-1时表示全部选择 void *pSubSeriesNames,//系列名称YLDStr * (typedef struct{char Data[255];} YLDStr;) const int pSubSeriesNameCount,//子系列名称个数,-1时表示全部选择 const double &pFlow, //风量 const int &pFlowUnitType, //风量单位类型0-m^3/h 1-m^3/s 2-l/s 3-cfm const double &pPres, //风压 const int &pPresUnitType, //风压单位类型0-Pa 1-mmH2O 2-kgf/cm^2 3-inH2O const int &pPresType, //风压类型0-全压1-静压 const int &pOutFanType,//出风方式0-管道出风1-自由出风 const double &pAirDensity,//空气密度 const double &pMotorSafeCoff,//电机容量安全系数(%) const bool &pUserSetMotorSafeCoff,//用户设定了电机容量安全系数 double &rFlow_STDUnit,//标准单位下的风量 fun_AddResult pAddResult//函数指针,用于回传数据 ); extern "C" void __declspec(dllimport) __stdcall Belt_Selection( const char *pSeriesName, const char *pSubTypeName, const char *pModelName, const int &pSped_DataType,//电机转速类型0-标准数据1-用户数据默认为0(界面选择) const int &pHz_DataType,//频率选择0-50HZ 1-60HZ(界面选择) const int &pRotation,//出风旋转角度R0,R90,R180,R270(参考常量定义) const double &pFanSped,//风机转速(第一步计算得到) const double &pMotorPow,//电机功率(第一步计算得到) const double &pFlow_STDUnit,//标准单位下的风量 const double &pTPres,//全压(第一步计算得到) const double &pSPres,//静压(第一步计算得到) const double &pFTEff,//全压内效率(第一步计算得到) const double &pSdbA,//噪声(第一步计算得到) const int &pV olt,//用户选择的电压(参考电压常量声明V380 V400) , bool pPole[4],//用户选择的极数2,4,6,8 bool pBeltType[4],//用户选择的皮带类型SPZ SPA SPB SPC const bool &pBeSetFanSped,//用户设定了风机转速 const double &pFanSpedRt_User,//用户设定的风机转速差 const bool &pBeSetBeltMoveSped,//用户设定最大皮带运动速度 const double &pBeltMoveSped_User,//用户设定的最大皮带运动速度

C++接口使用说明

NetCDF C++接口使用说明 作者:杜鸿飞 完成时间:2004年4月

目录 一、NetCDF文件介绍 (2) 二、NetCDF C++类函数详解 (3) 1. NcFile类公有成员函数 (3) 文件操作 (3) 维数操作 (4) 变量操作 (4) 属性操作 (6) 2. NcDim类公有成员函数 (7) 3. NcVar类公有成员函数 (7) 4. NcAtt类公有成员函数 (9) 三、NetCDF C++使用举例 (10)

//***************** function about dimension ****************************** int num_dims(); 返回文件所含dim数目 int unlimdimid(); 返回unlimited dimension的ID void def_dim(NcDim &dim); 将参数dim定义到文件中 NcDim inq_dim(int dimid); 返回文件中ID号为dimid的dim维数 NcDim inq_dim(const string dimname); 返回文件中名字为dimname的dim维数 void rename_dim(int dimid, string name); 将文件中ID号为dimid的维数重命名为name //***************** function about variable ****************************** int num_vars(); 返回文件所含var数目 void def_var(NcVar &var); 将参数var定义到文件中 NcVar inq_var(int varid); 返回文件中ID号为varid的var变量 NcVar inq_var(const string varname); 返回文件中名字为varname的var变量 void rename_var(int varid, string name); 将文件中ID号为varid的变量重命名为name template void put_var_single(int varid, int index[], Type value); 给文件中ID号为 varid的var变量写入一个值 varid:欲写入值的变量的ID号 index: 欲写入值在变量中位置的索引,用数组存储,如对于一个3维变量,对其任一元素写值,index为一含3个元素的数组(0,0,0)到(2,2,2); value: 将要写入的值,为摸板参数类型,其类型由函数自动解析。 template void put_var_entire(int varid, Type block[]); 给文件中ID号为 varid的var变量整体写入值 varid:欲写入值的变量的ID号 block: 存储将要写入值的数组地址,该数组大小应不小于变量实际元素个数。block为摸板参数类型,其类型由函数自动解析。 template void put_var_array(int varid, int start[], int count[], Type *block); 给文件中ID号为 varid的var变量部分写入值 varid:欲写入值的变量的ID号 start:欲写入值的其始位置索引,格式同put_var_single函数中的index参数

相关文档