让vsflexgrid显示此效果
--------------------------
编号 |配件               |
--------------------------
1    |a  XX   YY         |
     |b  ZZ   XY         |
--------------------------
2    |C  II   III        |
--------------------------
3    |a  XX   YY         |
     |a  XX   YY         |
--------------------------
...  |...                |
--------------------------
编号所属的配件,有很多个.在数据库里边是这样的
database Atable
id           hwid
1             1,2
2             3
3             1,1
...           ...Btable
Bid          b1    b2
1            XX    YY         
2            ZZ    XY
3            II    III
...Atable是主表,id是编号,hwid是硬件的编号集合
Btable是硬件表,Bid是各个硬件的编号,b1,b2都是内容.1怎样写?我设计的数据库结构有问题么?
2怎样实现vsflexgrid的升降叙排列?例如点击编号这个header,点一下,就是升序,再点一下,变成降叙,再点,再变.....就这样?解决,up者均有分~~`

解决方案 »

  1.   

    1、从数据库中提取数据后,读到vsflexgrid,vsflexgrid的第一列(编号)为可合并列即可。
    2、定义一个全局布尔型变量,用语句进行判断。
      

  2.   

    楼主的数据结构实现起来好像不太方便,如果Atable主表当中的hwid硬件的编号集合字段只存一个编号的话,作个视图就很容易了,存多个编号的话,作视图不是很方便
      

  3.   

    declare @i int
    declare @j int
    declare @str varchar(8000)
    set @str=''
    set @j=1
    select @i=max(len(hwid)) from Awhile @j<@i+1
    begin
       if @str=''
          set @str=@str+'SELECT A.Id, B.b1, B.b2 
          FROM A INNER JOIN B ON substring(A.hwid,'+ cast(@j as varchar)+',1)=B.Bid'
       else
          set @str=@str+' Union all SELECT A.Id, B.b1, B.b2
          FROM A INNER JOIN B ON substring(A.hwid,'+ cast(@j as varchar)+',1)=B.Bid'
       set @j=@j+2
    end
    print @str
    exec(@str + ' order by A.id')
    go
      

  4.   

    排序,安裝例子看看
    C:\Program Files\ComponentOne Studio\VS FlexGridPro 8.0\Samples\Vb\SortBlanks
    C:\Program Files\ComponentOne Studio\VS FlexGridPro 8.0\Samples\Vb\CustDataSort