用QRBand1的rbGroupHeader和rbGroupFooter,按照部门分组就可以了

解决方案 »

  1.   

    单是用Delphi的QREPORT是做不出来了.请借助一些好的报表控件.
    我曾经做过的一个叫SREPORT的东东,他主要是解决用户要对报表进行灵活的定义和将程序开发人员的工作量有效的降低的问题.你这个问题也是搞不定的.
      

  2.   

    1、要把部门合并成一个 可以实现。
    办法一:部门用QRLabel而不用DBQRLabel,在数据集的AfterScroll中动态给QRLabel.Caption赋值,同一部门时设为''就行了。
    2、把数据集的数据复制到一个ClientDataSet,然后对ClientDataSet的据路进行处理,同一部门时设为'',报表连接ClientDataSet就行了。
    2、位置处于原来两个纪录的中间 则不可能。—————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
    I.Desire := '加不加分随你';
    —————————————————————————————————
        
      

  3.   

    1、要把部门合并成一个 可以实现。
    办法一:部门用QRLabel而不用DBQRLabel,在数据集的AfterScroll中动态给QRLabel.Caption赋值,同一部门时设为''就行了。
    2、把数据集的数据复制到一个ClientDataSet,然后对ClientDataSet的据路进行处理,同一部门时设为'',报表连接ClientDataSet就行了。
    2、位置处于原来两个纪录的中间 比较麻烦,但是可以做。—————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
    I.Desire := '加不加分随你';
    —————————————————————————————————
        
      

  4.   

    Delphi下自带有一个例子程序,关于报表程序的。有关于QReport的详细例子,建议你好好看一看,你就知道怎么用rbGroupHeader和rbGroupFooter控件了,在使用时把rbGroupHeader和rbGroupFooter里的QLable往下移一移,可以跟第一行报表对齐。试试吧。