用Queck Report就可以做
你只要细心调整打印出来的字的位置就可以了

解决方案 »

  1.   

    报表用quickrep画就可以了,而且难度应该不大。
    关键是如何把数据提取出来。
    我建议两种方法,一是使用临时表,二是使用临时字符串。
    两种方法的第一步基本是一样的。也就是从数据库中每次取两条数据,写到数据库临时表或者临时字符串中。
    区别在于:使用临时表的时候,quickrep上只要放detailband就可以了,而且所有的显示控件只用qrdbtext就行了。
    使用临时字符串的时候,需要根据记录的多少算出行数,然后动态生成qrlabel防在quickrep上,然后一一赋值即可。
      

  2.   

    不论使用什么报表控件~~设置好报表的位置就可以了~~
    在不同的工序中~~打印不同的数据~~至于数据如果需要通用一点的话~~放到StringGrid里面不错阿~~
      

  3.   

    如果使用QuickRep~~则我想可能就是那些qrdbtext之类的东西在Form上的位置不同而已~~(没用过大概意思)~~如果使用FastReport~~方法两种
    1。动态创建报表~~在程序中指定数据的位置~~
    2。设计好报表~~在不同的工序中调用不同的报表~~
      

  4.   

    hehe,我作过哦.
    这样就行了:
    1: qrdbtext_a1 ...qrdbtext_an 2: qrdbtext_b1 ... qrdbtext_bnqrdbtext_an.Onprint:
      qrdbtext_an.dataset.next;ok!
      
      

  5.   

    先谢谢大家的帮助,可是我还是有点不懂。两边相同的字段的记录可以打出来,可以按照DETAIL的2列做,可是中间的不同的字段怎样打,而且工票最重要的就是位置一定要对齐。工票纸是一种特别的纸张,我在DELPHI 里怎样设定纸张的大小。工票纸很长很长,是打印一张工票,撕掉一张……to jianping0(ljp)
    你做过,可否说的详细一点,请大家帮帮忙,如果分少了,我另开帖子加
      

  6.   

    中间部分的数据怎样取得跟怎样打印还是很大关系的。
    从jianping0(ljp)的例子看,他也只是实现了你现在所能实现的。
    至于定义纸的方面,因为quickrep对自定义纸张的支持存在问题,所以如果可以的话,用a4格式或a3做,骗一下打印机罗