财务金额大小写转换

//==========================财务流程,货币小写转换为大写========【开始】===============================================
//对应数据库【LR_Form_SchemeInfo】的F_Id
//二位数组定义:["表单名称/编号","小写金额标识","大写金额标识"]
//表单名称:对应【表单设计】中的名称,而非流程
/*
var needTransForm = new Array(
    ["21.费用报销流程(股份)", "报销金额(元)","报销金额大写"],
    ["22.差旅费报销流程(股份)", "费用总额(元)","总费用(大写)"],
    ["23.支出单办理流程(股份)", "支出金额(元)", "支出金额大写"],
    ["24.借款单(股份)", "借款金额(元)", "借款金额大写"],
    ["25.通讯费报销流程(股份)", "报销金额(元)", "报销金额大写"],
    ["26.客户极速退款流程(股份)", "支出金额(元)", "支出金额大写"],
    ["27.客户极速退款流程(科技)", "支出金额(元)", "支出金额大写"],
    ["28.客户常规退款流程(股份)", "支出金额(元)", "支出金额大写"],
    ["29.客户常规退款流程(科技)", "支出金额(元)", "支出金额大写"]
);
**/
var flag_CurrencyTransformation = "CWBD_CurrencyTransformation";
var smallControl;//小写控件
var bigControl;//大写控件
var CurrencyTransformationFromSamllToBig = {

    //是否包含
    IsInclude: function (formName) {
        var lstResult = CommonMethod.GetSettingByCode(flag_CurrencyTransformation);
        if (!lstResult)
            return null;

        var targetItem;//选中的目标数据
        for (var i = 0; i < lstResult.length; i++) {
            if (lstResult[i].Item1 == formName) {
                targetItem = lstResult[i];
                break;
            }
        }

        return targetItem;
        /*
        for (var i = 0; i<needTransForm.length;i++) {
            if (needTransForm[i][0] == formName) {
                currSamllControlFlagIndex = i;
                break;
            }
        }
        return currSamllControlFlagIndex > -1;
        */
    },

    //执行
    Excute: function (formName) {
        smallControl = null;
        bigControl = null;

        //根据表单名称,获取表单对应的配置信息
        var targetItem = CurrencyTransformationFromSamllToBig.IsInclude(formName);
        if (!targetItem)
            return;

        if ((!targetItem.Item2) || (!targetItem.Item3)) {
            console.log(targetItem.Item1 + ",缺少Item2或Item3的配置。(Item2配置小写控件,Item3配置大写控件)");
            return;
        }

        //找到小写金额和大写控件,并改变控件ID
        smallControl = CommonMethod.FindControl(targetItem.Item2, 1);
        bigControl = CommonMethod.FindControl(targetItem.Item3, 1);

        if (smallControl && bigControl) {
            //改变ID
            // $(smallControl).attr("id", "smallCurrency");
            // $(bigControl).attr("id", "bigCurrency");

            $(smallControl).attr("oninput", "CurrencyTransformationFromSamllToBig.CurrencyTransformation()")
        }
        else {
            console.log("没有寻找到小写控件或大写控件。请检查表单和多维字典中对表单的配置。");
        }

        //console.log($(‘#smallCurrency‘).val());
    },

    //货币转换:由小写转换为大写
    CurrencyTransformation: function () {
        var smallVal = $(smallControl).val();
        var bigVal = CurrencyTransformationFromSamllToBig.smalltoBIG(smallVal);

        CommonMethod.SetControlVal($(bigControl), bigVal)
    },

    /** 数字金额大写转换(可以处理整数,小数,负数) */
    smalltoBIG: function (n) {
        var fraction = [‘角‘, ‘分‘];
        var digit = [‘零‘, ‘壹‘, ‘贰‘, ‘叁‘, ‘肆‘, ‘伍‘, ‘陆‘, ‘柒‘, ‘捌‘, ‘玖‘];
        var unit = [[‘元‘, ‘万‘, ‘亿‘], [‘‘, ‘拾‘, ‘佰‘, ‘仟‘]];
        var head = n < 0 ? ‘欠‘ : ‘‘;
        n = Math.abs(n);

        var s = ‘‘;

        for (var i = 0; i < fraction.length; i++) {
            s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, ‘‘);
        }
        s = s || ‘整‘;
        n = Math.floor(n);

        for (var i = 0; i < unit[0].length && n > 0; i++) {
            var p = ‘‘;
            for (var j = 0; j < unit[1].length && n > 0; j++) {
                p = digit[n % 10] + unit[1][j] + p;
                n = Math.floor(n / 10);
            }
            s = p.replace(/(零.)*零$/, ‘‘).replace(/^$/, ‘零‘) + unit[0][i] + s;
        }
        return head + s.replace(/(零.)*零元/, ‘元‘).replace(/(零.)+/g, ‘零‘).replace(/^整$/, ‘零元整‘);
    }
}
//==========================财务流程,货币小写转换为大写=========【结束】==============================================

  

原文地址:https://www.cnblogs.com/qiupiaohujie/p/12124048.html

时间: 2024-10-07 13:44:25

财务金额大小写转换的相关文章

金额大小写转换

/// <summary> /// 金额大小写转换 /// </summary> /// <param name="number">金额</param> /// <returns></returns> private string ConvertToChinese(decimal number) { var s = number.ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E

.NET下金额大小写转换

说明:金额转换可以转换50位的数值,单位从分到级.对于中间部分是否显示零,可以根据修改TranslateJInen()函数修改.中间数值为零的去掉不显示 public string GetChCapitalNumber(string canshu)中间数值为零的显示public string GetChCapitalNumberFill(string canshu) using System;using System.Collections.Generic;using System.Compon

double四舍五入,商品金额大小写转换,设置货币的小数位数跟格式输出,进制转化

1:计算double值四舍五入的方法 对小数数值进行四舍五入,首先应该确认保留小数位, 如果数值的小数精度大于保留小数位,那么开始四舍五入计算.四舍五入的方法非常简单,在所有要丢失精度的小数位中加5,如果大于10则向前进位,最后计算出四舍五入的结果. /// <summary>计算double值四舍五入的方法 /// /// </summary> /// <param name="dbl">进行四舍五入的数值</param> /// &l

数字金额大小写转换

有很多时候打印凭据的时候需要实现金额大写,例如 有多种写法来实现 例如一下几种 CREATE OR REPLACE FUNCTION chinese_number_program(p_input FLOAT) RETURN VARCHAR2 AS TYPE typ_money IS TABLE OF VARCHAR2(20); c_numbers typ_money := typ_money('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'); c

Birt金额大小写转换

1.reportMoneyConvert.js 1 function formatMoney(mnum) 2 { 3 var mnum = parseFloat(mnum); 4 var strOutput="",strTemp="",strInTemp=''; 5 var unitArray = new Array("圆万亿","仟佰拾","零壹贰叁肆伍陆柒捌玖"); 6 var mnumArray =

数字转换成中文大小写、金额大小写

将数字转换成中文大小写.金额大小写  /// <summary> /// 将数字转换成中文大写 /// </summary> /// <param name="Value">数字</param> /// <param name="bToUpper">是否转换成汉字大写 true表示大写 false表示小写</param> /// <param name="bMoney"

oracle 处理时间和金额大小写的相关函数集合

1 CREATE OR REPLACE FUNCTION MONEY_TO_CHINESE(MONEY IN VARCHAR2) 2 RETURN VARCHAR2 IS 3 C_MONEY VARCHAR2(12); 4 M_STRING VARCHAR2(60) := '分角圆拾佰仟万拾佰仟亿'; 5 N_STRING VARCHAR2(40) := '壹贰叁肆伍陆柒捌玖'; 6 B_STRING VARCHAR2(80); 7 N CHAR; 8 LEN NUMBER(3); 9 I NU

IT审计实务沟通与实践讨论之三IT审计中IT与财务的角度转换

IT审计的大部分人都是从IT转换而来,或者IT角度看问题的熟练程度高于财务业务角度.故写此文,与大家一起沟通两者的区别,以便于互转和融会贯通. 首先,it审计的概念:通俗的讲,是对it相关系统. 事项进行检查评估,从而判断是否足够支持业务目标.我相信,大部分人都对前半句--“对it相关系统.事项进行检查评估”耳熟能详,也认为这个就是it审 计的实质,实际上,都有些偏了,真正it审计,甚至审计的神韵恰恰在于后半句--“判断是否足够支持业务目标”.如果你弄透了这半句,足够足够了.业务就 是业务,公司

Excel大小写转换函数

Excel中的大小写转换函数 (1).转换为全部小写字母:lower函数 (2).转换为全部大写字母:upper函数 (3).转换为首字母大写,其余小写字母:proper函数 三种函数的使用方式,如下图所示: 流程操作,如下图所示: 小知识,简而记之. 蓝的成长记系列: 原创作品,出自 "深蓝的blog" 博客 蓝的成长记--追逐DBA(1):奔波于路上,挺进山东 蓝的成长记--追逐DBA(2):安装!安装!久违的记忆,引起我对DBA的重新认知 蓝的成长记--追逐DBA(3):古董上操