导航
  • 主页
  • Windows SDK/API
  • 基础类
  • ActiveX
  • 数据库及相关技术
  • 网络及通讯开发
  • VCL组件使用和开发
  • 问答

医院的收费系统中打印票据,格式已经固定了,怎么样打印到它的格子中去?各位兄弟请指点一下小弟,有实例更好?

明行 测试开发  2001-12-05 05:18:53
...全文
256 点赞 收藏 15
写回复
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
marcal 2002-03-07
我也做过这样固定格式的打印,所以我有兴趣
回复
明行 2002-03-05
我用笨办法,用报表,控点距就可以了嘛。
回复
fangrk 2002-01-07
我自己总结出来的步骤:
1.打印坐标,方便对照格式
Printer()->BeginDoc();
for(int i=0;i<=Printer()->PageWidth;i+=100)
for(int j=0;j<=Printer()->PageHeight;j+=100)
Printer()->Canvas->TextOut(i,j,'*');
Printer()->EndDoc();

2.对照格式,拟写出对应位置的坐标,如果打印有规律的话(比如要有表格),设置控制线,方便修改
例如:const int X[]={200,300,450,800,1150};//垂直分隔线
3.把数据放到对应的坐标上打印:Printer()->Canvas->TextOut(x坐标,y坐标,内容);
打印表格:
Printer()->Canvas->MoveTo(x1,y1);
Printer()->Canvas->LineTo(x2,y2);

4.关于对齐问题:
在分界线X[0],X[1]中打印字符串myString:
左对齐:Printer()->Canvas->TextOut(X[0]+5,j,myString);
中对齐:int len=X[1]-X[0]-Printer()->Canvas->TextWidth(myString);
Printer()->Canvas->TextOut(X[0]+len/2,j,myString);
右对齐:Printer()->Canvs->TextOut(X[1]-5-len,j,myString);
回复
TonySteele 2001-12-13
还有谁做过,请将你们的实例在此公布一下,或者发到我的邮箱。谢谢各位!!!
TonySteele@163.net 
回复
明行 2001-12-07
谢谢各位特别是fangrk(4inlove......) ,以后给分,时间有点长可能在一个月后,请不要在意.
谢谢!
回复
xiaoyu 2001-12-07
1.使用priter对象,不过要多次试验,计算位置
2.使用formula one控件(activex控件),类似excel
自己设置票据的格式,在特定的位置,如[2][5]
填写数据,然后打印
回复
fangrk 2001-12-07
Printer()->BeginDoc();
PHeight=Printer()->PageHeight/3;
PWidth=Printer()->PageWidth/2+100;
Printer()->Canvas->Font->Size=12;
Printer()->Canvas->Font->Name="MS Sans Serif";
Memo1->Clear();
MemoLine=0;
Memo1->Lines->Strings[MemoLine++]=
AnsiString::StringOfChar(' ',80)+
AnsiString(buff[1])+AnsiString::StringOfChar(' ',30)+
"日期:"+date+"\r\n";//格式
//Memo1->Lines->Strings[MemoLine++]=......
TY=Y;
for(i=0;i<Memo1->Lines->Count;i++)
{ Printer()->Canvas->TextOut(X,Y,Memo1->Lines->Strings[i]);
Printer()->Canvas->TextOut(X+PWidth,Y,Memo1->Lines->Strings[i]);
Y+=18;
}
X=0;
Y=TY+PHeight;
if(++PageNum ==3)
{ PageNum=0;
Printer()->NewPage();
Y=0;
}
Printer()->EndDoc();
回复
ciml 2001-12-06
另外这样的打印机有什么特别之处吗?我看见过,格式已经做好,
然后将其放入打印机中,将内容打印在上面
我也想知道
关注!!!!!!
回复
TonySteele 2001-12-06
先做一个同实物一样大小的票据,将它放到一个OLE中,如Panel中
回复
fangrk 2001-12-06
我以前做过一个。
把数据按照一定的格式存放在一个Memo中,然后把Memo种的数据打印出来。
源程序在公司里,明天再说的详细一些!
回复
cmpp 2001-12-06
我来学习一下!
回复
明行 2001-12-06
继续讨论。
回复
CyberUFO 2001-12-06
~~~~~~~~~~~~
希望有好办法!
回复
明行 2001-12-05
TR@SOE
叶老大
过江项羽
及各位知道这个方法的兄弟们。

回复
IUNKNOWN_COM 2001-12-05
套打嗎,慢慢試呀,還有什麼辦法?
回复
发动态
发帖子
C++ Builder
创建于2007-08-02

1.3w+

社区成员

C++ Builder相关内容讨论区
申请成为版主
社区公告
暂无公告