表格标题我就不写啦,下面是有关表格体的内容,有关服装的。-----------------------------------------------------
|款号|颜色|   S    |   M    |   L    |   XL    | 小  |         
|    |     ------------------------------------      |       
|    |    |24|25|26|27|28|29|30|31|32|34|36|均码 计  |
------------------------------------------------------
|0001|01  |10    20|      30|   40   |         | 100 |
------------------------------------------------------  
|    |02  |   20   |   30   |      50|   60    | 160 |   
------------------------------------------------------
|0102|01  |   10   |   20   |   30   |   40    | 100 |
------------------------------------------------------
以下数据类推,省略。在每页表格的下方有以下内容(和表格连在一起)------------------------------------------------------
|合计|    |  |  |  |  |  |  |  |  |  |  |  |    |     |
------------------------------------------------------
     |颜色|24|25|26|27|28|29|30|31|32|34|36|均码| 小   |
     --------------------------------------------      -
共_____箱 |   S    |   M    |   L    |   XL     | 计   |
          ----------------------------------------------在这个表格中,数据是这样表示的:
第一行表示有货物:0001(假设款号前2位00表示是裤子,01表示是上衣),
颜色01,24码10件,26码20件,31码30件,34码40件
第二行表示有货物:0001(款号和上一条重复,客户要求省略),颜色02,25码
20件,28码30件,32码50件,36码60件
第三行表示有货物0102(上衣),颜色01,X码10件,M码20件,L码30件,
XL码40件。也就是说上衣的X,M,L,XL分别对应在裤子的25,28,31,36码
的位置。
款号和颜色均相同的货物(只有尺码不同)要求放在同一行。
打印的时候还要有最后那个类似表头的东西,但左下角那里却又没有表格线
另外,整个表格体的表格线也是不完整的(见上图),或者如果全部都有的
话,也要有粗细的不同,我想大家应该看得出哪里要比较粗一点。大家说这个表格是不是有些变态啊?这个表格的表头EHLIB的DBGIDEH到是没问题,可其余部分呢?帮帮忙,怎样实现啊?(不要使用EXCEL)如果能帮我完全实现并能打印出来,再加200分

解决方案 »

  1.   

    高手来了:
    我能够解决90%,就除了最后一行
    共_____箱 |   S    |   M    |   L    |   XL     | 计   |
    没有办法在DBGridEh中做出来之外,我觉得除非你改DBGridEh的源码,否则是很难做到最后一行显示的样子,道理很简单,DBGridEh只有多表头,而没有多表尾的功能。至于其它90%是怎么做到的,请原谅我卖个关子好吗?你可以给我发短消息,我再详细地告诉你。
      

  2.   

    相同的行用一个dbgrid,不同的行用多个dbgrid
      

  3.   

    用dxdbgrid控件可以做到.
    也可以自己修改一下dbgrid
      

  4.   

    如果可以的话用直接表报QReport显示
    1、表头、尾尺码处理
    2、表数据处理
    3、合计、箱数处理
    4、动态创建相应的报表控件(表头label、表数据、表尾label)
    最后要记得Free所有创建的控件。
    不知这时对你有没有用。
      

  5.   

    楼上的弟兄门似乎都用第三方控件来解决了……纳闷中……其实我看到很多现成的产品,如果表尾复杂,一般都独立于表格,这样做也不见得含糊不清,客户为什么一定要执着把东西堆放在同一个 Grid 里面呢?如果真的不行,倒不如拉一个 Excel 进去就把问题解决了。
      

  6.   

    对不起,老顾着数落你的客户,忘了解决问题……楼上大家都要来用第三方控件来解决,或者都从DBGrid 着手,我来点不同的思路:其实 DBGrid 和 StringGrid 都继承于 TCustomGrid,所以如果你要处理上面的东西,可以来点“硬”功夫,就是强制类型转换!举个例子,DBGrid 里面并没有 FixedCols 和 FixedRows 的参数,但是请试一下在你的程序中加入下面的语句:TStringGrid(DbGrid1).FixedCols := 2;你会发现奇迹:你的 DBGrid 竟然有一行固定列的!!!(注意,第一个固定列是 DBGrid 的 Indicator)同理,如果你需要特殊的表尾,那么你可以把你的 DBGrid 强制转换成 StringGrid,然后在末尾添加你需要的东西。往 StringGrid 里加东西大家都很熟悉了,这个……不说了……不会就要补习一下 Delphi 的基础了。