第一篇:iReport报表开发中常见的问题
注明:
$V{PAGE_NUMBER} 表示当前是第几页,在text field 的 选项evaluation time选report是共几页,now表是当前页。页码可在ireport里直接设置。“共几页 第几页”
iReport报表开发中遇到的问题:
1。报表中工具栏中
T :不会变得文字
F :程序传过来的文字字段
2。在网页上预览报表什么内容也不显示
解决方法:
编辑-〉报表属性-〉More...->在“如果没有数据时:后面的下拉菜单中选 All
sections,no detail”
如果没有数据时:后面的下拉菜单中的几个选项的意思分别是:
No pages [当Detail中没有数据时没有页显示]
Blank page [当Detail中没有数据时出现一个空白页面]
All sections,no detail [当Detail中没有数据时会显示detail以外的东西]
No-date section [] 暂时我也不知道,呵呵。
3。Detail 和columnFooter 只间总是有一段空白
解决方法:从 iReprot 工具列设定 [预览]-> [报表属性]
打开[More...]-> [Floating column footer] 打勾columnFooter 就會和 Detail 在一
起了。
4。报表中Detail循环部分内容的显示格式
报表中Detail循环部分内容的显示格式与报表属性-〉Page Margin-> 下边界的大
小有关
比如detail中有两列,当数据将第一列填充满时[根据detail页面大小]
会将数据自动填充到第二列[detail页面大小能决定什么时候第一列能被数据填充
满]
多条数据在Detail中填充的时候是按照页面给显示数据所留大小填充的控制显示多少行数据的时候严格按照页面能显示多少条数据来作出判断
按照条件显示的控件在不显示的时候仍然占据页面位置。
5。文字框中 Common 选项卡:
Print when expression 属性里是Boolean类型代表此字段的显示与否内容一般
是:
new Boolean(结果是boolbean类型的表达式)
6。文字框中Font选项卡字体选择是成套的才能正确显示:
[1]Font Name:选 宋体
PDF Font Name:选 STSong-Light
最后 PDF Encoding:选 UniGB-UCS2-H(Chinese Simplified)
[2]引用外部字体如隶书
将字体文件放入iReport安装目录的fonts文件夹下如隶书
[D:iReport-3.0.0fontsSIMLI.TTF]
Font Name:选 隶书
PDF Font Name:选外部字体文件 隶书(SIMLI.TTF)
最后 PDF Encoding:选 Identity-H(Unicode with horizontal writing)[是外部文件
都选它]
7。动态文字框中 Text Field 选项卡:
中间有个 [复选框 Blank when null] 表示:当此文本框内容为空时是否显示null。
钩上表示为null时显示空白会比较好看些,不钩显示null。
8。$V{PAGE_COUNT} 表示当前是这页的第几条记录[在detail循环相关区域用]
$V{PAGE_NUMBER} 表示当前是第几页
$V{COLUMN_NUMBER} 表示detail有几字段
9。字段即列数在工具中编辑->报表属性->字段数中设置。
字段数把detail区分为相应的这些列,当一页中第一列显示不过了会自动跳到本页的第二列以此类推
10。报表中数据转换类型:
$V{PAGE_COUNT}.intValue()报表中V属性转为int
Integer.valueOf($P{pageCount}).intValue()报表中P属性转为int
Double.valueOf($F{realSum})报表中F类型转为Double
($V{realSums}.doubleValue()+$V{realSumMs}.doubleValue())double类型相加
求和
Boolean.valueOf(((List)$F{mentalState}).contains(“02”))将boolean值转为
Boolbean
11。报表中数据的操作:
文字框中的加法操作时:加号左右必须是数值类型如不是,加号就变成连接作用,而不是做加法操作了。
(($V{realSums}!=null?$V{realSums}:Double.valueOf(0)).doubleValue()
+
($V{realSumMs}!=null?$V{realSumMs}:Double.valueOf(0)).doubleValue())+“ 元
”
12。报表中用到的一些方法:
contains()方法:((List)$F{mentalState}).contains(“02”)从List类型的mentalState
中查找 02 返回boolean值
equals()方法:用于两个String类型之间的比较
valueOf()方法括弧中间方的值只能是String类型的,不然编译会报错
13。报表区域结构说明:
title 报表头[只在第一页的最上面显示]
pageHeader 页头[每一页都会显示]
columnHearder [和columnFooter作用差不多,columnHearder在detail之前显示]
detail [需要循环显示的东西在此处写]
columnFooter [展示在循环显示的下面]具有循环的$V{PAGE_COUNT}当前记录
pageFooter 报表尾[最后一页的最下方显示]
summary [此处用于做统计,显示的话用处不大]
第二篇:关于如何解决报表出具中常见问题的总结
报表出具过程常见的问题
我们财务岗位的关联性很强,不论是我们财务科内部岗位的相关,还是从科内延伸到公司其他的业务部门,也更能影响到上级单位,我们填报的数据可谓牵一发而动全身,所以我们报送的数据一定要可靠、及时、准确。
从本岗工作角度出发,也结合大家讨论过程中提出的意见,在此我就总结下如何提高财务信息质量,涉及的内容可能会不全面,以下是针对金蝶财务软件出具报表过程中的见解:
一、工作态度很重要:要积极,不能带有任何负面情绪地去工作。因为只有态度积极了,才能把工作做好。
二、要学会善于沟通,及时沟通,沟通到位。
三、业务内容及时处理、资料及时整理,遇事不推诿、不扯皮。
四、学会如何避免财务基础数据出错:
(一)、细审原始单据,如:收发单据(进出库单等)、发票、收付款单据的填写是否及时、规范、准确,审批是否齐全等。
(二)、自查账务。每处理完一笔业务,要学会如何去核对账务数据的准确性。如:
第一、记账凭证做完后,要学会通过科目余额表进行自查,(状态是所有科目都会调出,这样查账全面不易漏查),也可以选择具体科目(如:1001-1112检查资金类等)、通过科目余额查询可以避免账务(如资金、六个往来、费用类等)出现红字。
财务公司2201账户明细账与金蝶1002的明细核对,可通过下列查询方法核对: 账务若出现红字对报表的影响: 1.会影响账账不符。2.报表数据审核结果错误。
3.导致报表结果不能正常出具等,也会影响后续工作的进行。
第二、检查内部各单位间现金流的标识勾稽是否准确,可以通过金蝶中的总账-往来管理-内部现金流核销,检查内部单位间(与大拖厂、中小拖轮、柴油机、物流等)现金流标识是否正确、漏项。
第三、材料账务的核对方法,可通过ERP收发货和金蝶的借贷方去核对数据的准确性,材料差异可按照审计审核的差异表计算方法进行核对。(经历过审计检查的岗位基本都掌握了自查的方法,新岗位可向相关岗位学习)。
第四、内部往来账的核对。内部往来(集内和股内单位)核对大家也应重视,它影响股份公司大合并的出具,内部往来核对过程应注意如下几点:
1.要保证和相关单位数据一致,遇到问题一定沟通到位。2.核对要及时。
3.车身、福莱格、分公司三家之间的往来一定要及时清理、冲转。第五、往来科目要及时冲转、现金流的附表调整要及时标注。往来科目的冲转大家也应重视,它影响往来账的真实性,影响两金的报送,特别是应收账款。往来科目不再变动,报表才能正常出具了,费用岗才能核销账龄,账龄核销完毕,两金才能正常上报。
现金流量表中的附表调整,大家应注意要及时打标识、不能漏项。它会影响报表中现金流表。标识打错、漏项会造成报表审核出具错误。
五、涉及的报表及分析上报时间:
1、每月最后一天出具单户报表。上报统计科产销存报表。
出具存货账龄分析表,要求相关会计上报纸质版存货账龄明细表。总账汇总完毕后发送生产部。
2、每月1日上报电子版单户报表,101.102.106.fg102.3、每月2日出具、上报合并报表、上报两金报表。
4、每月2日/3日上报218国机快报。Nc、久其报表。
5、每月3日编制现金流预算,上报领导。
6、每月3日编制270滚动预算报表。
7、每月4日299资金使用表。
8、每月4日上报216存货情况表。
9、每月5日填报研发明细表传送技术科。
10、每月5日填报308报表。
11、每月6日上报y101预算管理表。
12、每月7日上报221预算分析。
13、每月8日前编制223财务分析.14、每月月初上报经济运行分析会资料。
15、每月10日左右打印纸质版报表
16、每月12日左右整理凭证。
17、每月15日之前营业外收支备案表上报。
18、每月24日前上报待摊、预提费用表。
19、每月26日左右上报204快报。
第三篇:biee报表开发总结
biee报表开发总结
(一)当BI项目已经在essbase中搭建好框架之后,接着就要通过biee制作各种报表来展示BI的成果了。
BIEE报表开发能否成功的关键就在于初期的设计。首先你必须明确你的需求,你开发的报表是给哪些人使用的,他们会如何使用,比如他们一般会有些什么输入,他们希望产生什么样的输出以及他们可能会做什么样的下钻动作。一张报表往往只是给一类人使用的,你必须精心地为他们挑选合适的维度以及初始粒度。所以同样的查询内容往往需要做好几张报表适合不同维度不同方式的数据查看(用下钻的方式可以通过汇总数据查询到详细数据,但是效率不高,如果已有足够的信息可以直接查到详细数据则直接显示详细数据)。这样做可以减少每次查询使用到得维度,从而提高查询效率。一般在一张仪表盘页中只放一张报表(汇总报表除外)。
一组报表一般由一张汇总报表(给领导查看)和几张明细查阅报表组成,汇总报表中包含各种图表,初始粒度大,同时支持很深的下钻,明细报表针对某个用途提供合适的查询方式,一般不放图表。维度是由请求字段控制的,字段越多查询越慢,所以请求字段不能过多,尤其是大的维度(我遇到过成员好几千的维度,而且层次很少)不能太多,除非已经在筛选器中进行控制,最好不要直接添加时间字段,而使用全局筛选器来控制时间。相反请求提示和相应的筛选器越多查询效率就越高,所以请求提示和筛选器可以多一些(这样还可以提供便捷的访问),请求提示使用什么输入方式也是需要考虑的问题。关于使用表还是数据透视表,两者各有利弊。表因为其结构就是请求字段的结构,所以可操作性强一些,可以实现很多数据透视表无法实现的功能(仪表盘排序,条件样式等),但是数据透视表在表现能力上优于表,尤其是维度较多的情况,可以通过一些高级的操作来改善数据透视表的功能(如修改saw脚本)。
总体来说BIEE报表的设计要控制好以下3点:
1、汇总和明细分开;
2、控制各种不同的查询路径;
3、考虑查询效率。
biee报表开发总结
(二)因为我做的报表的数据源是essbase多维数据库,所以在制作报表时不需要在administration tool当中添加维度和度量。只要直接导入数据源,然后做两次拖曳就可以了。但是很不幸的是BIEE其实并没有提供对essbase很好的支持,很多功能都无法实现,或需要调整之后才能实现。
在将文件夹从物理层拖到逻辑层之后,可以看到多维数据库的逻辑结构,但是展开的时候有些让人不知所云,因为biee并不使用essbase大纲中的名称,而是根据维度层次来命名的。需要注意的是每个维度实际是从第2层(Gen2)开始的(因为essbase大纲中的实际维度也是从第2层开始算起,第0层是大纲的根,第1层是维度的根),之后的层次可以看到被标为蓝色,这类似于关系型的雪花模型。所以在将文件夹从逻辑层拖到展现层之后就可以把第0层和第1层删了。维度的每一层只有一个key,它到底是维度值还是它的别名呢?答案是别名,而且我到目前为止还没有发现显示维度值的方法(可能是BIEE不支持)。接着修改一下维度和度量的标签就可以在answer里面使用了。但是这样还是不够的,当使用到聚合的时候就会出现“发现外部聚合集”的错误,原因是BIEE在导入essbase的时候,默认将度量的聚合属性设置为外部聚合。只要将外部聚合改为正确的度量即可,注意在物理层和逻辑层都要改,另外所有度量都要指定一种聚合方式,不能为none。
biee报表开发总结
(三)在answers中的开发难点就在于设计,我在(一)中已经介绍了经验。但是显然不可能一开始就设计得十分完美,有的时候会遇到功能实现不了或者效率太低,报表根本刷不出来,这时要么修改原先的设计,要么想办法解决问题。
关于如何提高效率,首先是优化查询。在BIEE当中,有趣的一点是它首先根据你的设计生成一条SQL查询语句,然后如果判断出数据源是多维数据库,则再将SQL语句在后台转化为MDX语句去执行。转化的逻辑大致是,select子句中放查询目标集(对应于MDX中的select字句,但是没有行列之分),from字句中放cube,where字句中定义如何进行切片。所以在设计时尽量控制请求字段(对应select字句)中的维度字段,不需要的维度不要添加,尤其是大维度,而筛选器(对应where字句)则尽可能的多,这样切片可以切得小一些。另外查询的逻辑不要太复杂,不要使用嵌套查询(筛选器不要使用“根据其他请求结果”)。如果这样还不行,就只能优化数据源了,对于essbase,可以考虑将一些复杂的动态计算转为预先计算后存储(虽然这样做很可能会导致占用的空间增长好几倍...),可以大大提高效率。
在BIEE中表的样式控制要比数据透视表灵活得多,基本的样式都是可控的,所以能用表的时候就尽量用表。关于如何设置样式,由于比较繁杂而且在(一)中也介绍了一些经验,所以这里就不一一介绍了,比较重要的就是条件样式(只用表能用),可以灵活地控制显示样式,另外就是列的隐藏,可以控制哪些列在表中不显示。
BIEE的访问控制是比较灵活的,可以使用单独的链接,也可以对标题设链接,还可以对值设链接,并可以控制是否用于下钻(在列的交互控制当中设置搜索或链接)。BIEE最神奇的就是筛选器中的提示选项,选了这个选项不仅可以使用提示中的选择还可以用于链接的值传递。如果一个请求的字段的筛选器使用提示,则通过值链接被连接过来的时候,该字段就会被筛选为进行链接的那个值。另外使用提示默认是所有值,所以可以灵活的控制提示字段,比如同一个请求在不同地方使用时,需要的查询条件可能不同,这时可以通过请求提示来控制查询条件,此时就必须将所有使用到的查询条件字段加一个使用请求的筛选器。
不过在awnser中提示筛选器是不会被使用的,如果不使用筛选器就会导致查询过慢的话,建议在设计报表时先指定一个筛选值,设计完成后再将筛选器的筛选方式改为请求。对于实在无法实现的功能,最后一条路就是修改saw脚本了,但是有关BIEE的saw脚本的文档实在太少...不过通过查看saw脚本倒是可以分析出别人的报表的某些功能是怎么实现的。实施上saw脚本包含了一个请求的一切,包括显示样式和SQL查询,所以如果要备份或者拷贝一个请求,最简单的方法就是把saw脚本拷贝下来。如果你想直接修改SQL查询语句,应该先看一下SQL查询语句的各个字句存储在saw脚本中的什么位置,然后对saw脚本修改,如果直接改下面的SQL框,点了设置SQL的结果是,它产生一个最简单的SQL语句(没有任何附加内容),而且把原来你的一切设置都重新初始化(要是你之前没备份的化,赶紧退出重来吧,千万不要保存了...)
另外介绍一些经验。为了防止字段过多导致一格内无法一行显示,可以在格式化视图的附加格式中指定一个很大的宽度,然后选择单元格向左对齐。如果只想修改请求条件的化,最好不要直接双击进入,而是先打开所在的文件夹,然后在面板中选择修改条件,这样可以避免一次不必要的查询。查询如果异常中断,即使你在后台取消了请求,甚至删除会话,essbase仍然会继续执行,如果你想进入同一个请求就会报错,这时你能做的就是等待,等essbase执行完毕才能继续使用(这也是BIEE与essbase不兼容的一个表现,它导致了BIEE的不稳
定,所以要尽量避免没有筛选控制的查询)。
biee报表开发总结
(四)本文主要讲biee中answers和dashboard的开发步骤。在administrator tool搭建好框架之后,接着通
过在浏览器中操作的answers和dashboard开发最后的报表显示。
首先要做的是添加全局筛选器。对每一个维度都设定一个全局筛选器,每个层次都设定为请求。
接着开发请求。按请求在报表中的使用顺序一个一个开发请求。先选择合适的请求字段,再添加全局
筛选器,接着添加测试筛选条件(因为全局筛选器中的筛选条件都是请求,所以不会在answers中发挥作
用,所以不会和测试筛选条件冲突),然后在表中查看结果,如果要用表显示则调整字段的顺序。如果不
报错且数据无误,则返回请求条件面板,添加一些需要计算的字段(这些字段可以通过加入一个原始字段
然后用编辑公式输入计算表达式产生),设置标题和值的样式,并添加筛选器。然后在结果面板中开发需
要用到的数据透视表或图表,同样需要设置字段顺序和显示样式和一些其他小功能(比如计算和排序)。
然后在组合布局中调整布局,并调整格式化视图中的值。最后回到条件面板,在列格式中设置交互即链接
(建议不要现在做,因为链接最好链接到仪表盘,不过如果链接的内容很简单也可以这里做)。
然后开发提示。提示要考虑到所有可能的筛选,提示可以尽量多(就像筛选要尽量多),但是必须要
关联到筛选器。提示的输入方式很重要,必须要根据实际需求精心设计。提示之间有关联的要勾选约束,这样可以限制提示的内容。但是biee的约束很恶心,你不能限定某几个提示有约束,一旦勾选了约束,就
会和所有约束关联,也就是说如果其他任何一个提示被输入错误的值,它就会报错。对提示进行分组以防
止一行中提示太多。提示设计完成后一定要预览一下,看看效果如何,尤其是约束关系。这时可以将所有的测试筛选器删除了。
然后就可以再dashboard上开发了。首先建一个仪表盘,然后添加提示和请求,不同的请求放在不同的部分,但是因为部分只能垂直排列,所以如果要水平排列则必须放在同一个部分,并设置排列方式为水
平排列,排版的时候要注意,各部分的附加格式的宽度必须一致,否则会出现排版错误。最后就是甚至权限了,这个很简单,这里不介绍了。
整个开发过程当然不可能按上面的步骤一帆风顺地做下来,在开发过程中经常会遇到需求变更和一些
意外的结果,所以整个开发过程应该是一个循环迭代的过程,不断地完善,最后使得开发出
来的报表十分
好用而且能够从各方面反映这个报表应该反映的内容。
第四篇:面谈中常见问题
1.你对自己所在岗位的岗位职责是怎么理解的?
2.对你以前工作做出总结(包括实际业绩,工作不足)
3.自己对自己和岗位匹配度作出评价
4.总结自己在工作中的不足之处,并讲出改进办法
5.你觉得你在管理员工时有哪些优势和不足
6.在你管理的团队发生矛盾时你的解决方案
7.对 一个一贯迟到的员工,你该怎么办?
8.对有违反操作流程行为的员工,应怎么处理?
9.怎样加强安全生产意识?
10.对于施工安全方面你有什么意见或建议
11.对安全教育培训的看法?
12.如何避免或减少施工现场常见的各种安全隐患
13.对于成本管理你有什么看法?
14.对工作的期望与目标
15.是否清楚的认识本部门或者你所管理的团队的工作目标
16.你希望从工作中得到的最大回报是什么?
17.最近一年你做了那些来提高你自己
18.你在工作中是否有盲点,那该如何解决?
19.你对你下属哪些行为是不能容忍的20.你对上级哪些行为是不能容忍的21.什么能激发你在工作中的积极性
22.你的技能在这个岗位上是否得到最好的发挥
23.如果可以选择,你更愿意在哪个岗位
24.你对团队合作怎么看?
25.形容一下你的管理方式
26.描述你的工作原则
27.你对公司的考核管理制度有什么建议或看法
28.谈谈你的职业规划
29.如果你的工作出现失误,给公司造成经济损失,你认为应该怎么办?
30.对于你现在所做的工作,你有哪些可预见的困难?
31.你对公司的现状有些什么建议?
32.对于你现在的岗位你认为最需要的技能是什么?
33.你认为自己的管理能力如何?
34.你觉得自己表达能力怎么样?
35.如果事情没有按照你的计划发展,接下来你觉得该怎么办?
36.你觉得在于下属进行沟通交流存在什么阻碍?你的交往能力是否受到考验?
37.你认为那类模式的管理方式最适合我们公司或你所管理的团队
38.你和那类人在一起工作更有成效?
39.你如何组织安排你手头重要工作
40.你想改变你管理模式中的哪些方面?
41.你有没有感到上司及同事对你的排斥
42.你觉得你认识的人中谁的管理模式值得你效仿,为什么?
43.你怎样处理下属给你提出的批评及建议
44.你觉得我们公司要更长远发展,哪些方面急需提高?
45.如何看待公司的各种规章制度,46.如果计划内的某些工作出错,你将如何处理?
47.说说你对公司在作出的贡献
48.谈谈你最近一次你觉得自己受到了不公平待遇,并感到委屈的事情
49.工作中你的那些方面你觉得还没得到发展
50.在工作中你觉得那些制度还需要完善
51.在工作之外的业余时间你保持的兴趣爱好是什么
52.你认为一个好的团队管理者需要哪些素质和能力?
53.管理人员能否不做任何说明就让员工去干某项工作?为什么
54.你认为做一个好的员工和当一位好的领导者有什么区别?
55.你认为最困难的沟通的问题是什么?为什么
56.你认为最好的沟通方式是什么?什么是良好沟通的关键?
57.你怎样决定工作中的分工负责情况的?
58.在评估员工表现时,你怎样确保评价的客观公正?
59.你用什么样的方法监督你负责项目的工作进程
60.当你做决定时,你会从哪些方面考虑这个决定会对公司其他部门产生影响?
61.你认为你的工作效率怎么样?
62.工作中,你认为哪些情形是比较危险的?为什么?
63.你怎样确保目标的现实性和可行性呢?
64.你认为目前的管理团队中哪些人足为楷模,哪些人应以为戒
65.你以为目前的管理有没有不公平现象,请举例说明
66.你认为作为一名管理者应具备什么样的知识结构和综合素质
67.你认为你的部门或你的岗位应如何去考核,具体怎么执行
68.你认为目前公司及项目部在管理中存在最大的问题是什么?应如何解决
69.如果在你管理团队中一定要开除一个人,你认为应该是谁?为什么?
第五篇:中控常见问题
常见问题
目录
一、概述?
二、常见问题问答?
1、脱机SDK触发事件前需要注册?
2、脱机SDKONATTTRANSACTION事件无法及时触发问题?
3、脱机SDK函数使用错误导致读到脏数据?
4、脱机SDK是否能够用于WEB开发?
5、脱机SDK能否上传考勤记录?
7、脱机SDK连接设备后是否一直不中断的问题?
8、脱机SDK TCP/IP通讯连接之后是否会超时?
9、脱机SDK动态生成SDK控件?
10、脱机SDK开发时ONDOOR事件无法触发?
11、脱机SDK关于上传用户信息时上传用户卡号的问题?
12、脱机SDK能够通过卡号获取工号?
13、脱机SDK 网络状况差导致数据丢失?
14、脱机SDK通过TCP/IP协议与机器连接失败?
15、脱机SDK忘记IP地址后能否找回?
16、脱机SDK写入卡信息?
17、脱机SDK下载的考勤记录数据不正确?
18、脱机SDK编写软件是否可以抓取指纹机的图像?
19、脱机SDK上传用户信息的具体过程? 20、脱机SDK从机器中下载用户指纹模板的过程?
21、脱机SDK中的函数SETUSERINFO密码参数设为空?
22、ICLOCK100没有标配定时喇叭响铃也不支持短消息?
23、ZKFINGER普通版和标准版的区别?
24、普通版的ZKFINGER SDK和指纹仪的对应?
25、普通版ZKFINGER SDK的授权许可问题?
26、ZK系列指纹仪使用的SDK?
27、ZKFINGER SDK中降低误判率的参数?
32、ZKFINGER SDK用于WEB开发无法触发某些事件?
33、ZKFINGER SDK的控件被杀毒软件当作病毒?
34、ZKONLINE SDK所支持的指纹仪?
35、固件升级是否需要收费?
一、概述
1、? 本文档所设计的SDK技术问题包含中控目前主要的三种SDK,脱机SDK,ZKFinger SDK,ZKOnline SDK。
2、? 本文档中所涉及到的问题不仅仅包括上述三种SDK,也包括与之相关的技术问题,比如固件、SDK与机器通信涉及到的机器操作、指纹仪、指纹仪与ZKFinger的通信涉及到的技术问题等等。
3、? 本文档所涉及到的Demo或者软件案例,大多为VB、Delphi、C#、VC++,此外也包含使用java的特殊情况。SDK本身并不支持Java。
4、? 文档中有些表述可能不太清楚,出现错误的地方也在所难免,欢迎大家一起讨论,宝贵意见请Email至wjfen@zksoftware.com。
二、常见问题问答
1、脱机SDK触发事件前需要注册 Q:客户自己开发软件,使用我们的指纹机,连接设备后在没有进行其他操作前,按压指纹,用户指纹验证通过后,没有触发OnAttTransaction事件(其他事件像OnFinger,OnVerify也没有触发)。
A:这种情况下提示客户使用在机器连接后调用RegEvent()函数,如果未调用此函数,那么所有的事件都不会触发。
2、脱机SDKOnAttTransaction事件无法及时触发问题
Q:客户使用C#语言,软件使用vs2008,开发系统为vista(32位,实际上装了我们支持64位的控件才能用),Demo连接机器后,如果不进行其他操作,直接按压指纹,OnFinger、OnVerify事件均可触发,如果验证通过,那么OnAttTransaction事件也可以触发。但是如果连接后先进行下载考勤记录或者调用其他数据传输量相对大的函数后,将无法触发上述几个事件,断点跟踪后发现,如果此时点“断开”按钮,或者按刚才进行操作的按钮(也或者其他可能的按钮),那么代码会执行上述几个事件对应的代码。
A:让客户在窗体(Form)中加入一个计时器,然后调用ReadRTLog()和GetRTLog()两个函数。让程序定时主动去找机器“要”数据。
3、脱机SDK函数使用错误导致读到脏数据
Q:客户通过自己开发的软件读取到的数据(考勤记录,用户信息等)为脏数据,比如时间不对,考勤记录一条变多条等等。
A:遇到这种问题就需要考虑客户是否在使用彩屏机,然后并没有使用我们的彩屏机专用的函数,如果函数使用错误,是会读到脏数据的。
4、脱机SDK是否能够用于Web开发
Q:客户使用C#语言开发,询问脱机SDK是否能够用于Web开发。
A:不能,我们的脱机SDK主要用于与脱机的机器进行通讯,并不支持Web开发,我们的ZKOnline SDK支持Web,不过它是关于指纹比对算法在Web上的应用的。
5、脱机SDK能否上传考勤记录
Q:能否通过我们的脱机SDK开发软件上传考勤记录(或者通过U盘上传),客户用来反复调试程序用。
A:不能,通过脱机SDK只能下载考勤记录,不能上传考勤记录。
6、脱机SDK将算法9.0机器中的指纹模板上产到10.0机器中能否使用。Q:将算法9.0机器中的指纹模板上产到10.0机器中能否使用。
A:两种算法的指纹模板不能兼容,所以不能使用。9.0算法的指纹模板大概有608B(每个),10.0算法的指纹模板大概有1.2KB(每个)。
7、通过脱机SDK连接设备后是否一直不中断的问题
Q:通过我们的脱机SDK开发的软件连接设备后,连接会不会一直中断?
A:从软件角度来看,不会。但是如果外部条件发生变化,比如硬件或者其他人为、非人为 因素可能导致连接中断。
8、脱机SDK TCP/IP通讯连接之后是否会超时
Q:客户使用脱机SDK进行开发,通讯方式为TCP/IP,和机器连接之后过段将无法下载到数据(比如客户定时下载考勤记录),是否是因为应用程序和机器连接后过段时间会自动断开。A:不会,可能是由于其他外部条件造成的连接中断,也有可能是应用程序本身的问题。
9、脱机SDK动态生成SDK控件 Q:如果我现在用脱机SDK写程序,同时连接多台机器,那么是否需要拖n(n为机器个数)个控件到窗体中呢?你们的控件能够动态生成(开发语言VB)?
A:可以。如果拖n个控件到窗体中的话,太多控件会导致程序运行缓慢。所以还是采用动态生成控件的形式来与机器建立连接。类似于我们门禁机里轮巡的概念,客户可以根据自己机器的数量进行编程。这种方法也适用于没有前台的程序,因为这种情况下只能动态生成。
10、脱机SDK开发时OnDoor事件无法触发
Q:客户使用脱机SDK(开发语言VC),OnDoor事件无法触发。客户使用门禁机F7。
A:发给客户我们的门禁机的demo,如果我们的demo中OnDoor事件触发正常,则让客户检查自己的程序。如果我们的demo中OnDoor事件没有触发,那么可能是由于用户门禁机的接线等各种外部因素造成的,请客户按照我们的说明书等文档进行检查。
11、脱机SDK关于上传用户信息时上传用户卡号的问题
Q:客户使用脱机SDK时,无法使用开发手册中的Cardnumber属性。
A:我们的开发手册中提到的Cardnumber属性实际上我们现行的SDK控件中并没有封装。建议可以使用Set_cardnumber函数或者SetStrCardNumber(开发手册中没有),其作用和开发手册中提及的Cardnumber属性相同。
12、脱机SDK能够通过卡号获取工号
Q:能否同时使用函数GetUserInfoByCard(结合set_cardnumber使用)来获取员工的工号,即通过卡号获取工号?
A:不能!我们通过卡号只能得到用户的姓名,却无法得到用户的工号。客户可以通过编写应用程序,通过对数据库的操作来实现相关的功能。
13、脱机SDK 网络状况差导致数据丢失
Q:我们自己开发软件来管理我们的考勤机,我们的局域网也比较大(距离也很远),相距比较远的考勤机网络不太好,然后会出现数据丢包现象(比较近的没什么问题)。怎么解决? A:这种现象来看,通过我们的脱机SDK开发的软件是没问题的。主要问题在于您的网络,如果问题要解决,是必须要改善远端考勤机的网络状况才行的。
14、脱机SDK通过TCP/IP协议与机器连接失败
Q:使用脱机SDK通过TCP/IP协议与机器进行连接时,一直连接不上。
A:由于Connect_net()函数比较简单,一般来讲参数不会用错。这种情况下,主要是引导客户检查与网络连接相关的问题。比如,电脑和机器的连接方式,通过电脑是否能够ping通机器的IP地址,是否使用路由器或者集线器,如果是直接相连是否使用交叉线,机器和电脑ip是否存在相同网段(电脑多网段的情况下)。
15、脱机SDK忘记IP地址后能否找回
Q:机器一侧的复位键是否能够改变IP地址?如果我们把键盘取掉,那么一旦忘记IP,如何能够找回?能够通过脱机SDK找回。
A:复位键不能改变IP地址。键盘取掉后无法通过键盘是恢复出厂设置,而由于无法得知IP地址,也就无法连接设备,故不能通过软件恢复出厂设置,所以无法找回IP地址,可以建议客户开始时将IP地址在机器里“写死”,然后在机器外壳贴相应的标签,标签上注明IP地址和机器的编号,这样子就可以避免修改IP后忘记IP地址的情况。
16、脱机SDK写入卡信息
Q:客户使用vb.net开发。使用我们的脱机SDK无法写入卡信息(cardnumber)。A:可能是客户在使用函数的时候,没有设置ID卡号,就直接用函数SetUserInfo()。在使用函数SetUserInfo()前,必须先上传ID卡号(比如使用函数set_cardnumber)。
17、脱机SDK下载的考勤记录数据不正确
Q:我们使用M300机器,使用一段时间后发现通过我们的脱机SDK开发的软件下载考勤记录中多了一些多余的不该有(也不会有)的记录,验证状态中也多了一些密码验证(实际上员工都不知道密码),请问是我们软件问题吗?(固件版本号Ver 6.20 Aug 12 2008,并非主流固件的版本号,客户机器是在市场上买的并没有做定制)
A:这个问题首先要排除是否是我们SDK开发出来的软件的问题,排除的方式是用我们的考勤软件读取机器的数据,如果数据正常,则是客户开发软件的问题,反之,则是由于机器的问题,一般情况下是固件的问题,可以考虑给客户升级下我们的主流固件(如果客户使用的功能只是我们机器标配中的功能),问题一般都可以解决。
18、脱机SDK编写软件是否可以抓取指纹机的图像
Q:使用脱机SDK编写软件是否可以抓取指纹机的图像? A:可以。跟考勤软件中的功能类似。(尽管我们的开发手册中说函数CaptureImage仅适用于zem100,实际上其他核心板的机器也是可以使用的)
19、脱机SDK上传用户信息的具体过程 Q:脱机SDK上传用户信息的具体过程是什么?
A:假设现在有两个用户(设为A、B),每个用户有一个指纹模板(Ta,Tb),现在需要将他们传到指纹机中去。如果是普通的上传方式,那么先将用户A的信息读入缓存中,然后读入用户A的指纹模板Ta,此时将A的用户信息和Ta从缓存中上传到机器中,然后再将B的用户信息读入缓存中,然后读入用户B的指纹模板Tb,此时将B的信息和Tb从缓存中上传到机器中,至此整个上传过程结束。如果是批量上传方式(也就是通常所说的高速上传),则是那么先将用户A的信息读入缓存中,然后读入用户A的指纹模板Ta再将B的用户信息读入缓存中,然后读入用户B的指纹模板Tb,此时将A的信息和Ta以及B的信息和Ta从缓存中一次性上传到机器中,至此整个上传过程结束。(涉及函数:SetUserInfo(),SetUserTmp(),BeginBatchUpdate(),BatchUpdate())20、脱机SDK从机器中下载用户指纹模板的过程
Q:脱机SDK从机器中下载用户指纹模板的过程是怎样的?
A:首先使用函数ReadAllUserID将所有用户信息(编号、姓名、密码不包含指纹)读取到 内存中。然后使用函数ReadAllTemplate将所有用户的指纹模板读到内存中,再使用函数GetUserInfo和GetUserTmp获取用户信息(包含指纹模板)。
21、脱机SDK中的函数SetUserInfo密码参数设为空
Q:SetUserInfo这个函数的的话,是表示密码为空还是不能使用密码验证?(天津合佳威立雅)
A:是不能使用密码验证。
22、Iclock100没有标配定时喇叭响铃也不支持短消息
Q:为什么我用脱机SDK使用定时响铃(喇叭)和设置短消息的功能,均不能成功,调试程序时返回值均为空。是不是跟我的参数类型不对有关?(客户使用PB编程,机器为iClock100)。A:iclock100,是iclock系列中唯一没有标配定时喇叭响铃的,但是可以定制。而短消息的功能则是iclock系列中唯一不支持该功能的。遇到这种情况,实现问清楚客户使用的机器型号,然后查看《产品功能总表》,这样更有利于解决问题。
23、ZKFinger普通版和标准版的区别
Q:ZKFinger普通版和标准版有什么区别吗? A:首先多了一个函数AddImage(),但是如果这个函数不使用的话,那么二者则没有区别。另外,普通版是通过在购买指纹仪时在指纹仪中写入SDK的许可来授权客户使用我们的SDK的,这就是价格上的差异,标准版比普通版价格贵(具体价格需联系商务)。在两个版本的函数构成中标准版比普通版是我们常说的一对一(指纹仪和SDK之间的1对1)。而标准版则可以用于所有写入授权的指纹仪。
24、普通版的ZKFinger SDK和指纹仪的对应 Q:我购买了一个uru4000B指纹仪和普通版的ZKFinger SDK,如果我现在再购买标准版的后,我以前的指纹仪是否可以使用? A:由于前面购买的指纹仪已经写入授权许可,所以它是可以用于我们的标准版ZKFinger SDK的。
25、普通版ZKFinger SDK的授权许可问题
Q:我购买了一个uru4000B指纹仪和普通版的ZKFinger SDK进行开发使用,如果开发完毕后,原来的指纹仪需要留下继续做研发用,而给客户新购置指纹仪,应该是可以使用的吧? A:可以。在这种情况下,购买普通版和标准版的区别主要在于,前者在购置新的指纹仪的情况下,需要多支付授权许可的费用(具体费用,商务决定)。
26、ZK系列指纹仪使用的SDK Q:ZK5000,ZK6000,ZK7000的指纹仪对应的SDK相同吗?
A:这三类指纹仪和包括uru在内的指纹仪,所使用的SDK均为与指纹识别算法有关的ZKFinger SDK或者用于Web的ZKOnline SDK。
27、ZKFinger SDK中降低误判率的参数
Q:(使用ZKFinger SDK)有的人的手指会脱皮的,或者指纹不太清晰,这种情况下,U.are.U 4000B(实际上是我们的识别算法)好像很难识别出来,控件中有没有什么参数可以提高识别率。
A:通常情况下,我们的算法是可以识别那些疑难指纹的。客户也可以根据需要修改相关参数,比如1:1比对中的OneToOneThreshold(Bool)设定ZKFinger低速指纹1:1比对的识别阀值分数(1-100),默认为10,值越大,误判率越低同时拒绝率变大。1:n比对中Threshold(Long)设定指纹识别系统比对识别阀值分数(1-100),默认为10,值越大,误判率越低同时拒绝率变大。
28、ZKFinger无法使用AddImageFile函数
Q:客户购买了ZKFinger4.0,想用AddImageFile函数指定的图像文件来登记或者比对,但是找不到该函数,无法使用。
A:客户使用的可能是我们的ZKFinger普通版,该函数只有在普通版中无法使用,在其他版本(标准版、社保版、高级版)中都可以使用,建议客户购买更高版本的SDK。
29、ZKFinger采集到的指纹模板上传到脱机考勤机中比对无法通过。
Q:客户使用ZKFinger SDK通过uru指纹仪采集到的指纹模板上传到我们的考勤机中比对时无法通过。
A:可能是因为指纹模板没有进行转换造成的。有ZKFinger采集到的指纹模板必须通过脱机SDK中的函数FPTempConvertNew(或者FPTempConvertNewStr)将其转换为脱机指纹机可以使用的指纹模板。
30、多次采集同一个手指的指纹模板转换成字符串后是否相等。
Q:客户使用ZKFinger将指纹仪采集到的指纹模板与数据库里的指纹模板比对验证,是否可以直接比对字符串是否相等即可。
A:同一个指纹多次按压时,一般转换生成的指纹模板字符串不尽相同,所以是不能通过比较数据库中对应的字符串是否相等来判断比对是否通过的。字符串不相等的两个指纹模板在比对时也有可能成功,因为其可能来自同一个手指。
31、能否缩减采集到的指纹模板所对应的字符串字符数到十一位。
Q:客户询问能否缩减采集到的指纹模板所对应的字符数到十一位,以利于比对。A:不能。答案同上。
32、ZKFinger SDK用于Web开发无法触发某些事件
Q:客户使用ZKFingerSDK用于B/S架构下的开发,无法触发OnCapture,OnEnroll事件。A:原因可能有,控件版本较低,然后也可能没有取得授权许可。客户使用ZKFingerSDK用于Web开发,但我们可以跟客户推荐我们的ZKOnline SDK(或者SOAP SDK)。
33、ZKFinger SDK的控件被杀毒软件当作病毒
Q:我们在给客户装ZKFinger SDK的控件时,诺顿把控件当作病毒杀了,怎么办? A:可能是控件在拷贝的过程中中毒,更换一个新控件。
34、ZKOnline SDK所支持的指纹仪
Q:客户先前使用我们的ZKOnline SDK开发的程序,使用我们的uru指纹仪,现在如果换成ZK6000或者ZK7000是否支持。A:支持。
35、固件升级是否需要收费
Q:如果需要给客户机器中的固件升级是否需要收费?
A:如果是客户增加新的功能(比如5位码变九位码等),那么请客户联系商务,然后下定制申请单。如果是为了解决客户问题而给客户升级固件,则不需要收费。有些客户的问题需要通过固件升级来排除是否是SDK使用出现错误。
36,黑白屏和彩屏设备SDK接口是否一致。
问:我以前用的是旧的黑白屏的机器,软件是我公司自行开发的软件,现在我需要新购买一批设备,但是我发现新购买的机器,不能搭配我以前的软件使用。
答:接口是一致的,都用的是同一个开发包。请在我们官方网站上下载中心中下载相应的最新开发包。另外:黑白屏和彩屏的函数使用不一致,需要重新做软件接口。彩屏机使用的是SSR扩展函数。
37,几种开发包的介绍,以及区别 脱机通讯开发包 收费情况:免费
机器型号:除K6和M100以外的所有机器。开发平台:只支持windows平台
开发语言:VB、Delphi、VC、PB、VF等
功能简介:客户购买了脱机指纹/射频卡机器,但是不想使用我们标配的考勤/门禁软件时,可以推荐客户选用此SDK开发他们自己的考勤/门禁软件。只用于脱机机器与电脑之间的数据通讯,不可进行指纹识别。
获取方法:进入“中控网站->下载中心->脱机指纹考勤系统->脱机考勤通讯开发包”下载 SOAP 开发包 收费情况:免费
机器型号: 所有ZEM300、ZEM500机器均可支持,该功能为选配项,可向生产定制,也可提供升级程序。
开发平台:windows平台、Linux平台
开发语言:一般主流开发语言都可支持,VB、Delphi、VC、PHP、ASP、Java等
功能介绍:脱机通讯开发包的补充,真正的HTTP、TCP协议通讯,当客户想开发基于Linux平台,或JAVA语言的程序时,可以给客户推荐SOAP SDK。获取方法:联系FAE RIS 开发包
收费情况:免费
机器型号:具有后台验证功能的机器。开发平台:只支持windows平台 开发语言:VB、Delphi、VC、PB、VF 功能介绍:客户购买了后台验证功能的机器,但是不想使用我们标配的后台验证程序时,可以推荐客户选用此SDK开发他们自己的后台验证程序。获取方法:联系FAE 底层通讯协议
收费情况:免费,但是需要与我公司签定保密协议
机器型号:所有机器
开发平台:目前可提供Windows下VC或C#源代码,客户也可自己实现到Linux等平台。开发语言:C、C++、Java、C#、VB.Net等
功能介绍:直接提供通信的底层协议,客户可以不使用我们的sdk而自己开发通讯程序,可以在任意平台上实现应用,不像我们的sdk限制在Windows。获取方法:联系FAE ZKFinger SDK 收费情况:收费
机器型号:URU指纹仪,ZK6000 开发平台:Windows平台、Linux平台可定制 开发语言:VB、Delphi、VC、PB、VF 功能介绍:客户想自行开发指纹比对程序时,可以选择此SDK,它包含中控科技自主知识产权的指纹识别算法。另外需要购买我们的指纹仪或使用他们自己的指纹采集仪进行指纹图像的采集。
获取方法:开销售单到库房领光盘
备注:共有两个版本(普通版和标准版),其区别为:
1、对指纹仪的SDK许可收费不同。配合此SDK使用的指纹仪必须由我们写入SDK许可。购买普通版SDK的客户,他们每购买一个指纹仪就需要收取一次许可费,而购买标准版SDK的客户,购买指纹仪时免收许可费用。
2、基本的登记、比对功能都一样,唯一的区别是标准版SDK在1:1的控件中包含从图像中提取模板的功能,普通版则没有。也就是说标准版可以支持其他指纹仪采集的图像功能。ZKOnline SDK 收费情况:收费
机器型号:URU指纹仪,ZK6000 开发平台:Windows平台
开发语言:ASP,JSP,PHP,JAVA 功能介绍:ZKFinger SDK的补充,由于ZKFinger SDK不支持基于web开发,客户需要在浏览器中使用指纹的本地及远程比对,可推荐ZKOnline SDK。其实ZKFinger SDK和ZKOnline SDK是隶属于的关系。只有购买了ZKFinger SDK(标准版8000元)的客户,再购买ZKOnline SDK(2000元)才能开发基于WEB的程序。如果没有购买过ZKFinger SDK 的客户则需要ZKFinger SDK加ZKOnline SDK(8000+2000元)。获取方法:开销售单到库房领光盘 问:我们URU? SDK?是否支持FOXpro 答:不支持。
注:
1-22主要涉及脱机SDK。23-33主要为ZKFinger和指纹仪相关的。34和35则涉及ZKOnline和SDK技术支持中可能涉及到的固件升级问题。
中控科技版权所有
FAE5组2009-9-29