随笔 - 2  文章 - 0  评论 - 35 
  2010年5月10日

一、RDLC报表
主要缺点:
(1)报表组件不丰富:如CheckBox、Barcode等组件均没有
(2)不支持最终用户自定义报表格式。如果不同客户对报表格式需求千差万别,就最好不要选择RDLC.
(3)不能在每一页显示明细数据的标题(除非费力的采用一些特殊方法)
(4)若要在报表标头显示公司logo,且logo来自数据库,则显示起来很麻烦,而且有多页的话,只能在第1页显示logo,除非是静态添加的图片。
(5)若报表格式复杂,比如一个报表含多个子表,各子表行数不固定,则会出现这样的情况,第1页没显示完,还有大半页以上空白位置,可其余内容却接着跑到下一页去显示了,折的位置这个很不好控制,让人叫苦不迭。

二、FastReport.Net报表
主要缺点:
(1)表格组件似乎不能从中删除列,因为删除了,则前后列不会自动连接起来。
(2)列中内容太多时,可以折行显示,但不如Rdlc那样,折行时一并将行高也增加,这个问题出在表格组件中。

 

三、选择体会

以上只说了二个报表工具的缺点,但各自的优点也是很多的,就不在此一一列举,用了就知道。
本人在实际工作中两种报表工具均有采用,但现在更多的是采用FastReport.Net作为报表工作,因为它操作简单、做复杂报表也得心应手,更重要的是支持最终用户自定义格式,不必象Rdlc报表那样,有一点小小的改动,都需要在VS环境中由开发员去改报表格式。这有利于分工,工作效率也高,对于商业开发很重要。
Rdlc报表主要用于格式不太复杂,格式在不同客户间改变不大时用,做Web项目也不错,可方便的转为Rdl报表格式。
另外,听说ActiveReport对做.Net报表也特别好,本人没有试过,不知有没有某些方面的缺点。希望有用过的朋友能说说。
本人主要在东莞为印刷企业开发管理软件,报表格式经常变化,同一报表,不同客户差别很大。

posted @ 2010-05-10 22:55 龍在江湖 阅读(4848) 评论(31) 编辑
  2010年5月2日

一、概念

“删单留号”指用户删除某张单据后,编号仍然留在系统中,当新增单据时,如果不允许断号,需要找特定人员删除原有单号。如果不删除占用的空号,新增单据将跳过原编号。此功能的用意在于以计算机方法避免职员增单打印后,删原单,并建同编号其它内容的新单,再以原打印单据做违法事。(注:这一功能是公司香港博士Alex提出并要求我们开发时这样做的。)

 

二、现对“删单留号”的必要性作以下分析:

(1)删单留号,要IT才能删除占用的空号,还不如不给职员单据删除权,只有特定人员才有删除单据的权限。这样能起到事前预防的作用。治病不如防病,抓贼不如防贼。

 

(2)删单留号,也只起一个证明作用,证明他删除过一个单据,现在有系统日志同样能证明,而且还详细。

 

(3)如果员工真动坏心思,他可以不用系统,自行仿制单据,现在人民币都能仿,更何况一张计算机打印的收款单。

 

(4)问题本身不在于他删除单据后新增同样编号的其它单据就能瞒天过海,如果这样,那犯罪嫌疑人是掩耳盗铃。他新增其它单据后,对应的应收款帐还是没有冲销,当应收帐到期时资金还没回笼,公司会跟进未收账款,本来收了,还向客户去收,问题掩得住吗?

也许有人会说,犯罪分子收款后就跑了,既然跑了,那“删单存号”的功能更是半点预防作用也没有。

不管嫌疑人跑与不跑,犯罪行径都掩盖不了。

 

(6)场景分析:

场景1、犯罪嫌疑人打印原单007,要增其它单据时,他不管断号问题,也不找IT删除原单号,谁会第一时间发现他或她作了案呀。就是有人发现有个断号,他可说忘了找IT删除原单号,谁会想到他作了案?

场景2:犯罪嫌疑人打印后马上删除原单007,为了不断号,再找IT删除007这个空号,他说不小心录错单了,快点给我删除一下,此时公司就是怀疑去查,他这个时候也的确没作案,然后他新增不同内容的新单007,再然后他却用原单去收款。

场景3:犯罪嫌疑人打印原单007,他根本不去删除原单,而是直接将原单内容改成其它内容,然后他去用最初打印的单收款。

以上三个场景下,“删单留号”的功能似乎都是无能为力,如同聋子的耳朵瞎子的眼。

 

(7)没有公司证明,确认机制,公章等手续,就算某职员打了一张单,就凭这张纸他就可以收到款吗?

 

(8)如果对于(7)的问题,他可伪造证明,既然证明可以伪造,那如(3)中所说的单据同样可伪造,采用“删单留号”的功能还是毫无用处。

 

(9)用户在编制单据时,因某些操作原因需要删除单据,这种情况并不奇怪,如果每删除一张单据都要找IT,这样也太不方便了,尤其是这种不方便的付出却不能带来问题的解决。另外,如果有些数据安全性十分重要,就可不给用户删除权。

 

(10)牵牛要牵牛鼻子,遇到问题只能采用对疹下药的办法,加强权限控制,加强收款流程管理。如果采用的方法不恰当,只能是吃力不讨好。

用以下的方法,环环相扣,则发生问题的可能性就要小很多:

* 用户A:制作收款单,有增、删、改权,无确认权

* 用户B:审核收款单,无增、删、改权,有确认权

* 每张收款单打印模板上有注明,务必有用户B的计算机确认环节(另还有其它确认环节)。

* 用户B确认了收款单,A就算有删改权也不能再删改,对A通过计算机作假的可能作了限制。

* 用户B有确认权,但无删改权,对B通过计算机作假的可能作了限制。

* 以上对计算机相关环节的控制作了模拟,接下来还有公司层级的控制,如总经理签名、公章、收款人身份证明、公司开户行。除此之外,制单人、确认人、收款人往往也不一定是同一人。

* 另:如果A和B是同一人,则以控制删除权为好,这种情况下不能主要靠软件环节去控制,只能靠管理环节去控制。就算软件做得滴水不漏也防不胜防。

当然,可能还有其它的方法控制,以上仅是方法之一。就算用这些方法还是控制不了,那“删单留号”的方法更是无能为力,其理念反倒转移了人们解决问题的视线。

如果“删单留号”的功能真的能起到一丁点作用,那也以可以去开发,但稍一分析,正面作用没有,反面作用不少,先是工作烦琐,接着是维护不便,再是多公司单据时每个公司都要设定单号规则,开发工作多点也就不提了。

如果想用“删单留号”的功能去达到限制职员作坏的目的,那是很匪夷所思的。

 

(11)在什么样的情况下,以上逐条分析是“废话”?

话说回来,功能有时也没有对与错之分,要看不同的时期和不同的场景。比如,可能以前的软件因功能特点,比较适合于以“删单存号”的办法来规避风险。(其实也规避不了)

但现在的新系统各方面功能加强了,“删单存号”的功能也就毫无意义了。

如果真是这样,以上的分析就算合理,也只能是“废话”了。

在质疑一个功能的必要性时,要建立在对不同时间不同软件功能的充分了解上,否则只会发生“盲人摸象”后的争论。因为有这个担心,所以请大家共同探讨。

posted @ 2010-05-02 21:19 龍在江湖 阅读(53) 评论(0) 编辑