数据库有这样一个表,字段及数据如下:
a(工号)   b1(备存1)   b2(备存2)    b3(备存3)
x10          x20          x21           x22
x11          x30          
x12          
x13          x41          x42
就是说数据中b1-b3可以为空,现在我要用fastreport做报表,要求实现一下功能:
工号      备存
x10        x20
           x21
           x22
x11        x30
x12 
x13        x41
           x42
怎么实现这种形式呢,就是说怎么能让备存不定量的跳出来,有几个跳几个,如果没有用到备存就什么都不跳,这个问题我想了好就都没有实现,各位大虾一定帮帮小妹啊,主管看着我呢,做不出来我死定了。求求大虾们了。谢谢!

解决方案 »

  1.   

    把表1转换成表2,表2作为FASTREPORT的数据源:for i:=1 to table1.recordcount do
    begin
       for j:=1 to table1.fieldscount do
       begin
           table2.append;
           table2.fieldbyname('工号').value:=table1.fields[0].value;
           table2.fieldbyname('备存').value:=table1.fields[j].value;
       end;
       table1.next;
    end;
    然后删除工号相同但备存为空的多余记录
      

  2.   

    没有必要那样麻烦的!
    你的报表设计如下a(工号)   b1(备存1)       
    a(工号)   b2(备存2)
    a(工号)   b3(备存3)
    fastreport有一个属性可以设置是空时候是否打印就可一了
      

  3.   

    to dickeybird888(于伟刚)
    那我怎么放memo呢?正常来说,我要放一个masterdata,上面放memo1(放a(工号)),memo2(放 备存),那备存怎么放才能让我要的实现出来?  或者我放的band或思路就不对?说详细一点好吗?我真的很急!
    据说quickreport可以实现这种情况,那fastreport应该也可以得呀,这种情况好想也应该可以经常遇到的,为什么好像没有人有一个很成熟成功的做法呢?