想用D5编一个打印发票的程序,请指点(50分)

  • 主题发起人 主题发起人 yhwyb
  • 开始时间 开始时间
Y

yhwyb

Unregistered / Unconfirmed
GUEST, unregistred user!
这个程序实际上是将数据表中的数据用平推式打印机输出到发票上,需要解决:
1.怎样将一个数字,如数12345打印到对应的小格中。
2.怎样将12345数转换为大写后打印到也是小格里。
有点急,请搞过这种处理的人给预帮助。
 
这是一个套打的典型应用,需要非常精确的定位。
在QuickReport/FastReport中慢慢调整吧。
比较好的办法有:先扫描一张发票,设置好尺寸,再在上面微调。

至于大小写转换的问题,找找看吧,有现成的函数,然后用字符串截取函数一个一个放到
大写位置上去,总之是很麻烦的一项工作,希望有人能够专门开发一个套打控件。 :)
 
套打啊,根据发票样本多试试,对准就OK
 
先对照发票样本控制好每个字符的相对位置,然后调整页边距来定位
给你一个大小写转换的函数:
Function SmallTOBig(Small : Double) : String; //金额转换为大写
var
SmallMonth, BigMonth : String;
wei1, qianwei1 : String[2];
qianwei, dianweizhi,qian : integer;
begin
qianwei := -2;
smallmonth := formatfloat('0.00', Small);
dianweizhi := pos('.', smallmonth);
for qian := length(smallmonth) downto 1 do
begin

if qian <> dianweizhi then
begin
case StrToInt(Copy(smallmonth,qian,1)) of
1 : wei1 := '壹'; 2 : wei1 := '贰';
3 : wei1 := '叁'; 4 : wei1 := '肆';
5 : wei1 := '伍'; 6 : wei1 := '陆';
7 : wei1 := '柒'; 8 : wei1 := '捌';
9 : wei1 := '玖'; 0 : wei1 := '零';
end;

case qianwei of
-3 : qianwei1 := '厘'; -2 : qianwei1 := '分';
-1 : qianwei1 := '角'; 0 : qianwei1 := '元';
1 : qianwei1 := '拾'; 2 : qianwei1 := '佰';
3 : qianwei1 := '仟'; 4 : qianwei1 := '万';
5 : qianwei1 := '拾'; 6 : qianwei1 := '佰';
7 : qianwei1 := '仟'; 8 : qianwei1 := '亿';
9 : qianwei1 := '拾'; 10 : qianwei1 := '佰';
11 : qianwei1 := '仟'; 12 : qianwei1 := '万';
13 : qianwei1 := '拾'; 14 : qianwei1 := '佰';
end;
inc(qianwei);
BigMonth := wei1 + qianwei1 + BigMonth;
end;
end;
Result := BigMonth;
end;
 
多人接受答案了。
 
后退
顶部