小弟初学delphi,现在开发中遇到一个小问题,还请大家帮忙,在此先道声谢!
我就举个简单的例子吧。数据库里可以查到这样一笔数据:Period Qty
1 1200
2 1402
3 4365
4 0
5 2300现在我要以这样的形式在DBGrid里显示:8:00-10:00 10:00-12:00 12:00-14:00 14:00-16:00 16:00-18:00
1200 1402 4365 0 2300第一行是标题行,每个时间段对应数据库中的period,如何做让DBGrid显示这样的数据?
我就举个简单的例子吧。数据库里可以查到这样一笔数据:Period Qty
1 1200
2 1402
3 4365
4 0
5 2300现在我要以这样的形式在DBGrid里显示:8:00-10:00 10:00-12:00 12:00-14:00 14:00-16:00 16:00-18:00
1200 1402 4365 0 2300第一行是标题行,每个时间段对应数据库中的period,如何做让DBGrid显示这样的数据?
解决方案 »
- delphi读写wab地址薄
- TTcpServer 产生的 ClientSocket 怎么回复不了客户端信息,客户端的OnReceive事件没有触发!
- 关于ORACLE 的BLOB存储再开一帖
- 什么快捷方式可以直接从函数声明处跳到函数定义处?
- 一个很小的问题,关于query
- 急求~~~~请问表里的日期字段是这样 1999-11-11 12:00:09 请问日期和时间怎么分开呀?等候
- 如何在RichEdit组件中给每个字加上背景色
- 各位大侠请帮忙!!!
- 请问段落怎样显示数字标号?
- (请告诉我几个参数我还不太懂!
- 条码输入,大家一般采用哪种网格控件?100分问个问题哈
- 前面问题加分zhao_yong
dataset可以是clientdataset或memorydataset,根據Period的值來創建相關欄位.....
DbGrid的数据集指向MyQuery
MyQuery:=TAdoQuery.create(nil);
with MyQuery do
begin
sql.clear;
sql.text:='select a.qty,b.qty,c.qty,d.qty,e.qty from '+
'(select Qty from test where Period=1) a,'+
'(select Qty from test where Period=2) b,'+
'(select Qty from test where Period=3) c,'+
'(select Qty from test where Period=4) d,'+
'(select Qty from test where Period=5) e';
open;
end;DbGrid的标题栏要设为相应的日期8:00-10:00,这要写代码(不要告诉我你不会写)
我用这种方法试了一下,用的是ClientDataset。
然后创建相关栏位,名字是那些时间段,类型是TFloatField
关键是下面这个sql语句该怎么写呢?
就是说怎么把相关的值赋值到栏位呢?
Tks!
下午试一下你这个方法,现在该吃饭了。
我把我的SQl语句贴出来吧。
OutputPeriod Qty
1 1200
2 1402
3 4365
4 0
5 2300 光查询这个结果的SQL就这么长:
SELECT OutputPeriod,SUM(OutputQty) AS Qty
FROM DPrintingDetail INNER JOIN DBCTicket
ON BCNO = BC_No INNER JOIN DTimePeriod
ON OutputPeriod = Period
Where OutputDate ='20090115'
Group By OutputPeriod
依照8楼的方法,我的SQL语句不知道要写多长,天哪
procedure Tdm.qu9AfterOpen(DataSet: TDataSet);
const
cp:array[0..4] of string=('8:00-10:00','10:00-12:00','12:00-14:00','14:00-16:00','16:00-18:00');
var
i:integer;
begin
for i:=0 to 4 do
dataset.Fields[i].DisplayLabel:=cp[i];
end;
procedure Tdm.qu9AfterOpen(DataSet: TDataSet);
const
cp:array[0..4] of string=('8:00-10:00','10:00-12:00','12:00-14:00','14:00-16:00','16:00-18:00');
var
i:integer;
begin
for i:=0 to 4 do
dataset.Fields[i].DisplayLabel:=cp[i];
end;
delphi里干这个,费力不讨好
我都不怎么用DBgrid