当前位置:编程学习 > VB >>

高分求一种报表形式,高手路过不要错过啊

create   table   t1(A   varchar(10),B   varchar(50),C   varchar(50),D   int,E   varchar(50),F   varchar(50),G   varchar(50)   )       
                                      insert   t1   select       
'aa ', 'aa001 ', 'aa100 ',100   , 'SS ', 'DD ', 'FF '       insert   t1   select       
'aa ', 'aa101 ', 'aa200 ',100, 'FF ', 'GG ', 'DD '     insert   t1   select   
'cc ', 'cc101 ', 'cc200 ',100, 'FF ', 'GG ', 'DD '   insert   t1   select   
'aa ', 'aa201 ', 'aa300 ',100, 'FF ', 'GG ', 'DD '   insert   t1   select   
'cc ', 'cc201 ', 'cc300 ',100, 'FF ', 'GG ', 'DD ' 
  create   table   t2   (A   varchar(10),B   varchar(50),C   varchar(50),D   int   )         
                                          insert   t2   select       
'aa ', 'aa001 ', 'aa200 ',200   insert   t2   select     
'cc ', 'cc101 ', 'cc200 ',100   
我用的是VB6.0 
怎么写一个程序在MSHFlexGrid或DataGrid显示这样结果: 
    A,B,C,D 
+   aa,aa001,aa200,200   't2的内容 
+   cc,cc101,cc200,100 
... 
'+ '这个符号下面的内容是t1的符合t2条件的内容: 
点击aa的 '+ '显示的内容是: 
aa,aa001,aa100,100,SS,DD,FF 
aa,aa101,aa200,100,FF,GG,DD 
点击cc的 '+ '显示的内容是: 
cc,cc101,cc200,100,FF,GG,DD 
这样的实现怎么实现啊?/求救啊!!! --------------------编程问答-------------------- 先记下了 --------------------编程问答-------------------- 使用水晶报表 --------------------编程问答-------------------- TDBRid

SHAPE { select a,b,c,d from ##t1 } APPEND ({ select a,b,c,d from ##t2 } RELATE [a] TO [a] ) AS Detail --------------------编程问答-------------------- 楼上的老大,是什么意思啊》/?有没有详细一点的啊,谢谢各位老大了 --------------------编程问答-------------------- 自己先顶一下,有没有人能解决啊? --------------------编程问答-------------------- 用粘贴控件的方法就可以实现 --------------------编程问答-------------------- 旁通法:
你做兩個查詢,放兩個GRID控件
第一個GRID正常顯示在Form上,第二個GRID先隱藏起來
第一個查詢的內容顯示在第一個GRID上,並在行首畫+號
前點擊行首時去執行第二個查詢,並把結果顯示在第二個GRID上,且置第二個GRID為可見,還要記得調整顯示的位置
有一點難道,但可以實現 --------------------编程问答-------------------- 用3楼的shape分层语句就行了,不过绑定时用控件MSHflexgrid --------------------编程问答-------------------- SHAPE {select * from t2} APPEND ({select * from t1} AS chapter RELATE a TO a) --------------------编程问答-------------------- 如果想实现复杂灵活的报表,下载个formula one 6.0控件学习一下吧,甚至可以做到用户都可以自己定义报表. --------------------编程问答-------------------- SHAPE   {   select   a,b,c,d   from   ##t1   }   APPEND   ({   select   a,b,c,d   from   ##t2   }   RELATE   [a]   TO   [a]   )   AS   Detail

解释?MSDN都有,我复出来.

显示层次结构记录集
 MSHFlexGrid 控件的一个主要特性是它能显示层次结构记录集—以层次结构方式显示的关系表。创建层次结构记录集的最容易的方法是使用数据环境设计器并把 MSHFlexGrid 控件的 DataSource 属性赋给数据环境。您也可以用 Shape 命令作为 ADO Data Control 的 RecordSource 在代码中创建层次结构记录,如下面的示例:

' 创建 ConnectionString.
Dim strCn As String
strCn = "Provider=MSDataShape.1;Data Source=Nwind;" & _
"Connect Timeout=15;Data Provider=MSDASQL"

' 创建 Shape 命令.
Dim strSh As String
strSh = "SHAPE {SELECT * FROM `Customers`}  AS Customers " & _
"APPEND ({SELECT * FROM `Orders`}  AS Orders RELATE " & _
"CustomerID TO CustomerID) AS Orders"

' 把 ConnectionString 赋给 ADO Data Control 的
' ConnectionString 属性, Shape 命令以及
' 控件的 RecordSource 属性.
With Adodc1
   .ConnectionString = strCn
   .RecordSource = strSh
End With
' 把 HflexGrid 控件的 DataSource 属性设置到 
' ADO Data 控件。
Set HFlexGrid1.DataSource = Adodc1

--------------------编程问答-------------------- --------------------编程问答-------------------- SHAPE       {       select       a,b,c,d       from       ##t1       }       APPEND       ({       select       a,b,c,d       from       ##t2       }       RELATE       [a]       TO       [a]       )       AS       Detail 

分层 --------------------编程问答-------------------- 一定是要在+号下面显示吗?
如果不是的话,可以用子报表的形式

或者楼上的有建议用水晶报表的比较方便。

这是vb类的,但是vb里面好像没有这样直接在下面显示的控件,除了那个treeview。
如果可以的话,放两个listview控件,上面的一个显示t2的值,点击其中一条记录后将t1中满足某些条件的记录显示在下面的listview中。
补充:VB ,  基础类
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,