收据的格式已经印刷好的了如下:货款 金额:大写人民币    万   仟   佰   拾   元   角    分 (¥    元)现在想让用户在一个输入框里输入金额数字,然后系统根据输入金额的大小在收据凭条相应的位置打印数字的中文大写。例如:我在输入框 输入: 2511.01  ,然后系统在收据上打印的效果应该如下: 货款 金额:大写人民币    万 贰 仟  伍  佰  壹  拾 壹  元  零  角  壹  分 (¥  2511.01  元)请问要实现上面的效果,该如下写代码?

解决方案 »

  1.   

    这个就要浪费一下纸张了.把中文字和金融二个值,放到纸张上打印一下,中文字要拆分后,放入,你可以随意放,也可以用尺子尽量精确的测量一下.然后就不停的更正位置,直到你要的效果.在界面中,可以什么都显示,在打印时,只要输出你要打印的内容.不必要的就不要输出(套打)
    也可以选择FASTREPORT或者GRID++ REPORT等控件套打输出
      

  2.   

    用FastReport之类的控件,对照收据大小格式画好模板,打印测试几遍就OK了
      

  3.   

    找报表组件,fastrepot,reportmachin等,设置好模板就行了
      

  4.   

    const 
       ZhChar: Array[0..9] of WideChar = ('零','壹','','','','','','','','');//??自己填满function NumToZhChar(ANum:Byte):WideChar;
    begin   
      Result := '*';
      if ANum in [0..9] then
        Result := ZhChar[ANum]; 
    end;//以下就是填写到对应的位置问题了