我的DBGrid 连着一个表
表里面有TotalName,F01,..F31,Total 这些字段 ,这个表是用来统计一个月每天中一些事件出现的次数
我现在要根据不同的月份来显示表里的数据
例如:3月有31天 那我就需要所有的数据
但是2月就28 天 那么F29,F30,F31的字段我就不需要显示出来了
我试过用Query 组件,通过SQL语句里面加SELECT TOTALNAME,F01 ....F31 FROM table 但是觉得这样要把需要的字段一一列出, 太麻烦了,
有没更好的方法
请高手指点
表里面有TotalName,F01,..F31,Total 这些字段 ,这个表是用来统计一个月每天中一些事件出现的次数
我现在要根据不同的月份来显示表里的数据
例如:3月有31天 那我就需要所有的数据
但是2月就28 天 那么F29,F30,F31的字段我就不需要显示出来了
我试过用Query 组件,通过SQL语句里面加SELECT TOTALNAME,F01 ....F31 FROM table 但是觉得这样要把需要的字段一一列出, 太麻烦了,
有没更好的方法
请高手指点
比如说先写一个28天的,SQL.Add ('select .....F27,F28');
case day-28 of
1:
SQL.Add(',F29')
2:
SQL.Add(',F29,F30')
3:
SQL.Add(',F29,F31')
end;
最后把剩下的补齐 SQL.Add(' from ......');
比如说先写一个28天的,SQL.Add ('select .....F27,F28');
case day-28 of
1:
SQL.Add(',F29')
2:
SQL.Add(',F29,F30')
3:
SQL.Add(',F29,F30,F31')
end;
最后把剩下的补齐 SQL.Add(' from ......');
var
i:integer;
begin
Case Monthof(Now) of
2:
for i:=Dayof(IncDay(StrtoDatetime(FormatDatetime('yyyy-03-01',Now)),-1))+1 to 31 do
Dbgrid1.Columns[i].Visible:=false;
4,6,9,11:
Dbgrid1.Columns[31].Visible:=false;
end;
end;
能不能把DBGrid和一个Table关联起来,但是显示的时候根据天数来显示,
例如2月就显示前面的28列,再加上后面的TOTAL列
4月就显示前面的30列,再加上后面的TOTAL列
for i:=1 to 27 do
SQL.Add('F'+IntToStr(i)+',');
SQL.Add('F28');