以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  金额大写代码有误,请查看!  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=1801)

--  作者:woodiy
--  发布时间:2009/2/13 16:12:00
--  金额大写代码有误,请查看!

图片点击可在新窗口打开查看此主题相关图片如下:1111.jpg
图片点击可在新窗口打开查看


if e.datacol.name="合计金额" then
    e.datarow("大写")=CUMoney(e.datarow("合计金额"))
end if



如果是整数型金额,大写的时候,出来的是"零",而不是"整"!

另外,如果是"贰万伍千玖佰贰拾壹圆伍角"  应该后面也要有整啊!
--  作者:smileboy
--  发布时间:2009/2/13 16:24:00
--  
Replace替换吧
--  作者:blackzhu
--  发布时间:2009/2/13 16:37:00
--  
以下是引用woodiy在2009-2-13 16:12:00的发言:

图片点击可在新窗口打开查看此主题相关图片如下:1111.jpg
图片点击可在新窗口打开查看


if e.datacol.name="合计金额" then
    e.datarow("大写")=CUMoney(e.datarow("合计金额"))
end if



如果是整数型金额,大写的时候,出来的是"零",而不是"整"!

另外,如果是"贰万伍千玖佰贰拾壹圆伍角"  应该后面也要有整啊!

if e.datacol.name="合计金额" then
    e.datarow("大写")=CUMoney(e.datarow("合计金额")) &  "整"
end if

 

 加上"整"试试!


--  作者:don
--  发布时间:2009/2/13 17:01:00
--  
我的不存在:如果是整数型金额,大写的时候,出来的是"圆零",而不是"圆整"现象!

if e.datacol.name="合计金额" then
    Dim m  As  Double =  e.datarow("合计金额")
    Dim T As String = m
    e.datarow("大写")=CUMoney(m) & iif(right(T,2).Indexof(".")>-1,"整","")
end if

--  作者:狐狸爸爸
--  发布时间:2009/2/13 17:02:00
--  
图片点击可在新窗口打开查看
--  作者:woodiy
--  发布时间:2009/2/13 19:46:00
--  

谢谢!


--  作者:i52117
--  发布时间:2009/2/13 21:38:00
--  
代码的部分我还没时间看,但通过1楼的图中我发现代码确实有错,如“千”在大写中应为“”(必须),“圆”应为“”(尽量用简化写法)。下面是有关规定,希望对狐狸爸爸有帮助。

《正确填写票据和结算凭证的基本规定》 
银行、单位和个人填写的各种票据和结算凭证是办理支付结算和现金收付的重要依据,直接关系到支付结算的准确、及时和安全。票据和结算凭证是银行、单位和个人凭以记载账务的会计凭证,是记载经济业务和明确经济责任的一种书面证明。因此,填写票据和结算凭证,必须做到标准化、规范化,要要素齐全、数字正确、字迹清晰、不错漏、不潦草,防止涂改。中文大写金额数字应用正楷或行书填写,如壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿、元、角、分、零、整(正)等字样。不得用一、二(两)、三、四、五、六、七、八、九、十、念、毛、另(或0)填写,不得自造简化字。

一、中文大写金额数字到"元"为止的,在"元"之后,应写"整"(或"正")字,在"角"之后,可以不写"整"(或"正")字。大写金额数字有"分"的,"分"后面不写"整"(或"正")字。 

二、中文大写金额数字前应标明"人民币"字样,大写金额数字有"分"的,"分"后面不写"整"(或"正")字。 

三、中文大写金额数字前应标明"人民币"字样,大写金额数字应紧接"人民币"字样填写,不得留有空白。大写金额数字前未印"人民币"字样的,应加填"人民币"三字。在票据和结算凭证大写金额栏内不得预印固定的"仟、佰、拾、万、仟、佰、拾、元、角、分"字样。 

四、阿拉伯数字小写金额数字中有"0"时,中文大写应按照汉语语言规律、金额数字构成和防止涂改的要求进行书写。举例如下: 

1·阿拉伯数字中间有"0"时,中文大写要写"零"字,如¥1409.50,应写成人民币陆壹仟肆佰零玖元伍角。 
2·阿拉伯数字中间连续有几个"0"时,中文大写金额中间可以只写一个"零"字,如¥6007.14,应写成人民币陆仟零柒元壹角肆分。 
3·阿拉伯金额数字万位和元位是"0",或者数字中间连续有几个"0",万位、元位也是"0",但千位、角位不是"0"时,中文大写金额中可以只写一个零字,也可以不写"零"字。如¥1680.32,应写成人民币壹仟陆佰捌拾元零叁角贰分,或者写成人民币壹仟陆佰捌拾元叁角贰分,又如¥107000.53,应写成人民币壹拾万柒仟元零伍角叁分,或者写成人民币壹拾万零柒仟元伍角叁分。 
4·阿拉伯金额数字角位是"0",而分位不是"0"时,中文大写金额"元"后面应写"零"字。如¥16409.02,应写成人民币壹万陆仟肆佰零玖元零贰分;又如¥325.04,应写成人民币叁佰贰拾伍元零肆分。 
五、阿拉伯小写金额数字前面,均应填写人民币符号"¥"。阿拉伯小写金额数字要认真填写,不得连写分辨不清。 
六、票据的出票日期必须使用中文大写。为防止变造票据的出票日期,在填写月、日时,月为壹、贰和壹拾的,日为壹至玖和壹拾、贰拾和叁拾的,应在其前加"零";日为拾壹至拾玖的,应在其前加"壹"。如1月15日,应写成零壹月壹拾伍日。再如10月20日,应写成零壹拾月零贰拾日。 

七、票据出票日期使用小写填写的,银行不予受理。大写日期未按要求规范填写的,银行可予受理,但由此造成损失的,由出票人自行承担。 

也就是说,根据此规定第四第的3小点,你的这个金额有两种写法: 
1、人民币壹拾万贰仟伍佰元整 
2、人民币壹拾万零贰仟伍佰元整 

希望以上能够帮到你!

--  作者:mr725
--  发布时间:2009/2/13 21:56:00
--  

哈哈~ 不是会计或没干过出纳工作,是不太注意这些的啊。。。


--  作者:czy
--  发布时间:2009/2/13 22:22:00
--  
7楼内行人也。
--  作者:狐狸爸爸
--  发布时间:2009/2/13 22:40:00
--  
收到,谢谢7楼了