简单问题。字段值为 1到7 报表输出时如何换为 星期一到星期七?(100分)

  • 主题发起人 主题发起人 wzpok
  • 开始时间 开始时间
W

wzpok

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,最好给出一段示范代码,小弟基础比较差,有例子好上手!
 
在字段的ONGETTEXT事件中转换
就是case选择嘛不用说了吧:)
 
procedure TForm1.ADOQuery1CalcFields(DataSet: TDataSet);
var
i:Integer;
begin
i:=ADOQUERY1.FieldByName('FieldName').AsString;
case i of
1:ADOQUERY1.FieldByName('FieldName').AsString:='Monday'
2:
3:
4:
5:
6:
7:
end;
end;
 
我的具体情况是这样的:
根据用户选择的需要在报表中显示的字段, 用sql语句查出符合条件的记录。
也就是动态生成报表。 然后用quick report 作出报表。
我是第一次做报表,许多基础不清楚所以向大家请教,如果谁有这方面比较简单
易学的例子给我一个,我自己看看可能快一些!
 
在QRDBText的onPrint事件中。
procedure TForm1.QRDBText1Print(sender: TObject;
var Value: String);
begin
case Value of
1: Value:='星期一'
2: Value:='星期二'
3:
4:
5:
6:
7:
end;
end;

OK。简单吧。
 
我也想知道。
 
function WeekToStr(Week: Integer): string;
const
WeekStr = '一二三四五六七';
begin
Result := '';
if (Week > 0) and (Week < 8) then
Result := '星期' + Copy(WeekStr, Week * 2 - 1, 2);
end;

在DataSet中设置计算字段,在事件中:
计算字段.AsString := WeekStr(星期字段.AsInteger);
报表中就用计算字段好了.
 
用枚举类型喽。
 
select DATEname(weekday,X+1) from tablename
 
谢谢!搞定!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部