高分求一种报表形式,高手路过不要错过啊
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 , 基础类