FastReport金额大写转换

 问题描述:位置2=位置1的大写。

解决方法:

FastReport金额大写转换_第1张图片

private void Cell136_AfterData(object sender, EventArgs e)
    {
      if(Cell12.Text==""||Cell12.Text==null)
      {
          Cell136.Text="";
      }
      else if(Convert.ToDecimal(Cell12.Text)==0)
      {
          Cell136.Text="";
      }
      else
      {
        //decimal s=decimal.Parse(Cell12.Text);
        string LowerMoney=Cell12.Text;
        string functionReturnValue = null;
        bool IsNegative = false; // 是否是负数
        if (LowerMoney.Trim().Substring(0, 1) == "-")
        {
          // 是负数则先转为正数
          LowerMoney = LowerMoney.Trim().Remove(0, 1);
          IsNegative = true;
        }
        string strLower = null;
        string strUpart = null;
        string strUpper = null;
        int iTemp = 0;
        // 保留两位小数 123.489→123.49  123.4→123.4
        LowerMoney = Math.Round(double.Parse(LowerMoney), 2).ToString();
        if (LowerMoney.IndexOf(".") > 0)
        {
          if (LowerMoney.IndexOf(".") == LowerMoney.Length - 2)
          {
            LowerMoney = LowerMoney + "0";
          }
        }
        else
        {
          LowerMoney = LowerMoney + ".00";
        }
        strLower = LowerMoney;
        iTemp = 1;
        strUpper = "";
        while (iTemp <= strLower.Length)
        {
          switch (strLower.Substring(strLower.Length - iTemp, 1))
          {
            case ".":
              strUpart = "圆";
              break;
            case "0":
              strUpart = "零";
              break;
            case "1":
              strUpart = "壹";
              break;
            case "2":
              strUpart = "贰";
              break;
            case "3":
              strUpart = "叁";
              break;
            case "4":
              strUpart = "肆";
              break;
            case "5":
              strUpart = "伍";
              break;
            case "6":
              strUpart = "陆";
              break;
            case "7":
              strUpart = "柒";
              break;
            case "8":
              strUpart = "捌";
              break;
            case "9":
              strUpart = "玖";
              break;
          }

          switch (iTemp)
          {
            case 1:
              strUpart = strUpart + "分";
              break;
            case 2:
              strUpart = strUpart + "角";
              break;
            case 3:
              strUpart = strUpart + "";
              break;
            case 4:
              strUpart = strUpart + "";
              break;
            case 5:
              strUpart = strUpart + "拾";
              break;
            case 6:
              strUpart = strUpart + "佰";
              break;
            case 7:
              strUpart = strUpart + "仟";
              break;
            case 8:
              strUpart = strUpart + "万";
              break;
            case 9:
              strUpart = strUpart + "拾";
              break;
            case 10:
              strUpart = strUpart + "佰";
              break;
            case 11:
              strUpart = strUpart + "仟";
              break;
            case 12:
              strUpart = strUpart + "亿";
              break;
            case 13:
              strUpart = strUpart + "拾";
              break;
            case 14:
              strUpart = strUpart + "佰";
              break;
            case 15:
              strUpart = strUpart + "仟";
              break;
            case 16:
              strUpart = strUpart + "万";
              break;
            default:
              strUpart = strUpart + "";
              break;
          }

          strUpper = strUpart + strUpper;
          iTemp = iTemp + 1;
        }

        strUpper = strUpper.Replace("零拾", "零");
        strUpper = strUpper.Replace("零佰", "零");
        strUpper = strUpper.Replace("零仟", "零");
        strUpper = strUpper.Replace("零零零", "零");
        strUpper = strUpper.Replace("零零", "零");
        strUpper = strUpper.Replace("零角零分", "整");
        strUpper = strUpper.Replace("零分", "整");
        strUpper = strUpper.Replace("零角", "零");
        strUpper = strUpper.Replace("零亿零万零圆", "亿圆");
        strUpper = strUpper.Replace("亿零万零圆", "亿圆");
        strUpper = strUpper.Replace("零亿零万", "亿");
        strUpper = strUpper.Replace("零万零圆", "万圆");
        strUpper = strUpper.Replace("零亿", "亿");
        strUpper = strUpper.Replace("零万", "万");
        strUpper = strUpper.Replace("零圆", "圆");
        strUpper = strUpper.Replace("零零", "零");

        // 对壹圆以下的金额的处理
        if (strUpper.Substring(0, 1) == "圆")
        {
          strUpper = strUpper.Substring(1, strUpper.Length - 1);
        }
        if (strUpper.Substring(0, 1) == "零")
        {
          strUpper = strUpper.Substring(1, strUpper.Length - 1);
        }
        if (strUpper.Substring(0, 1) == "角")
        {
          strUpper = strUpper.Substring(1, strUpper.Length - 1);
        }
        if (strUpper.Substring(0, 1) == "分")
        {
          strUpper = strUpper.Substring(1, strUpper.Length - 1);
        }
        if (strUpper.Substring(0, 1) == "整")
        {
          strUpper = "零圆整";
        }
        functionReturnValue = strUpper;

        if (IsNegative == true)
        {
          Cell136.Text="负" + functionReturnValue;
        }
        else
        {
          Cell136.Text=functionReturnValue;
        }

      }
    }

你可能感兴趣的:(软件实施问题大全,FastReport,c#)