报表问题,容易但我是菜鸟所有的分给你! ( 积分: 30 )

  • 主题发起人 主题发起人 dxwwgr
  • 开始时间 开始时间
D

dxwwgr

Unregistered / Unconfirmed
GUEST, unregistred user!
我用c++ builder 5.0 ,sql server 2000 生成的数据库,现用c++ builder 5.0 的QuickRep控件做报表,两数据表如下:
表1
zgh(职工号) zwdm(职务代码)
001 1
表2
zwdm(职务代码) zwmc (职务名称)
1 经理
在报表中如何做到如下显示
zgh(职工号) zwmc (职务名称)
0001 经理
 
我用c++ builder 5.0 ,sql server 2000 生成的数据库,现用c++ builder 5.0 的QuickRep控件做报表,两数据表如下:
表1
zgh(职工号) zwdm(职务代码)
001 1
表2
zwdm(职务代码) zwmc (职务名称)
1 经理
在报表中如何做到如下显示
zgh(职工号) zwmc (职务名称)
0001 经理
 
用个Query1就可了吧:
Select T1.zgh,T2.zwmc
from 表1 T1,表2 T2
where T1.zwdm=T2.zwdm
 
通过查询,查询出结果就行了
像这种关联最好用left join
select 表1.zgh,表 2.zwmc from 表1
left join 表2 on 表1.zwdm=表2.zwdm
 
关联查询我知道,但是我不知道这么把查询出的结果转化成报表,或者直接如何生成这种报表
 
我知道你一点都不会用报表,给你一点资料。http://www.chinaitpower.com/上搜:深入QuickReport。总共有三篇
 
还没解决吗
 
用qrreport
把dataset设置成adoquery就可以了
 
还是解决不了,quickrep的dataset设为Query1但我不知道这么设置
QRBand(Detail)上的QRDBText(显示职务名称[zwmc])的dataset和
datafield的值,设为Query1和zwdm则只能显示职务代码,如设
为Query2和zwmc 则所有记录只能显示同一职务名称,谁能说详细一点,
我是第一次做报表。谢谢!
 
双击TQuery1,点右键,选择Add files,OK!现在你可以帮助你的TQRDBText控件选择datafield了。解决了告诉我,而且我推荐的资料要看哦!以后多交流!
 
可以远程帮助你,qq13665393
 
jxauwxb 谢谢你,有空向你请教,能用电话吗,我打字慢。我是南京的。你是哪里?
 
你搞定了没有?打电话不浪费钱吗?!我在广州。
 
jxauwxb 谢谢你,如果你方便可以给我一个固定电话,在你认为合适的时候,我给你电话
 
13719459420,晚上有空。
 
谁能给我一例子,我想应该比较容易,只是我一时不没明白过来,因为你们都说只要关联查询就可以,我也会关联查询只是不能与报表联系起来,谢谢!
AnsiString sSql;
sSql="select Table_JH.Name,Table_BC.Name,Table_PH.Name,Table_PROTOS.Date_Time,Table_PROTOS.JY_CL";
sSql=sSql+" FROM Table_PROTOS,Table_BC,Table_PH ,Table_JH where (Table_JH.ID=Table_PROTOS.JH_ID) and (Table_BC.ID=Table_PROTOS.Class_ID) AND (Table_PROTOS.PH_ID=Table_PH.ID)";
Form2->ADOQuery1->Close();
Form2->ADOQuery1->SQL->Clear();
try
{
Form2->ADOQuery1->SQL->Add(sSql);
Form2->ADOQuery1->Open();
}
catch(...)
{
ShowMessage("操作数据库有误! ");
return;
}
Form2->QuickRep1->Preview();
对吗?
 
没人救我啊
 
表一T1
代码 名称
1 数学
2 语文
3 英语
表二T2
姓名 学科代码 成绩
张三 1 98
张三 2 97
张三 3 98
李四 1 95
李四 2 98
李四 3 98
报表格式
姓名 学科名称 成绩
张三 数学 98
张三 语文 97
张三 英语 98
李四 数学 95
李四 语文 98
李四 英语 98
步骤:
1)打开Delphi7,新建一个工程
2)新增一个报表的窗体,并布局(添加TQRBand等)。
3)在报表窗体上添加TQuery和TDataSource两个控件。
4)把TQuery控件的DatabaseName属性设好,SQL属性里写上SQL语句:
Select T2.姓名 T1.名称 学科名称 T2.成绩
from T1,T2
Where T1.代码=T2.学科代码
5)双击TQuery控件,右键,Add fields。有三个:姓名,学科名称,成绩。
6)在布局的时候,TTQRBand里添加了三个TQRDBText,把它们的DataSet设为TQuery控件的名字,把它们的DataField设为对应的值(姓名,学科名称,成绩)
7)运行报表
 
后退
顶部