n
result:=poPortrait;//0为竖直
Form_rep.QuickRep.PrinterSettings.Orientation:=poPortrait;
end;
1:begin
result:=poLandscape;//1为水平
Form_rep.QuickRep.PrinterSettings.Orientation:=poLandscape;
end;
end;
end;
function Open_IniFile():Tinifile;//打开临时文件
var Filename:string;
Ini_Filename:string;
begin
Filename:=’Report.ini’;
Ini_Filename:=File_Path+Filename;
Result:=Tinifile.Create(Ini_Filename);
end;
procedure Read_Rep_Summary(Inifile_Name:Tinifile);//读取报表的摘要信息
var Rep_Page,Rep_Orientation:integer;
begin
rep_Page:=Inifile_Name.Readinteger(''''rep_detail'''',''''Page'''',1);
Rep_Orientation:=Inifile_Name.Readinteger(''''rep_detail'''',''''Orientation'''',0);
with rep_Summary do
begin
Columns:=Inifile_Name.Readinteger(''''rep_detail'''',''''columns'''',0);
Title:=Inifile_Name.Readstring(''''rep_detail'''',''''Title'''',''''未命名报表'''');
page:=rep_chanslatepage(Rep_Page);//将打印页尺寸进行转换
Orientation:=rep_chanslateOrientation(Rep_Orientation);//将打印方式设置进行转换
end;
end;
procedure Read_Col_Summary(Inifile_Name:Tinifile);//读取报表列的摘要信息
var i_count:integer;
begin
//将列信息保存在数组中
with Rep_Col_Sum_store do
begin
SetLength(Caption_array,rep_Summary.Columns);
SetLength(DataFiled_array,rep_Summary.Columns);
SetLength(Width_array,rep_Summary.Columns);
end;
for i_count:=0 to rep_Summary.Columns-1 do
begin
with Rep_Col_Summary do
begin
Caption:=Inifile_Name.Readstring(''''col_''''+inttostr(i_count),''''Caption'''',''''未命名'''');
DataFiled:=Inifile_Name.Readstring(''''col_''''+inttostr(i_count),''''DataFiled'''','''''''');
Width:=Inifile_Name.Readinteger(''''col_''''+inttostr(i_count),''''Width'''',0);
end;
with Rep_Col_Sum_store do
begin
Caption_array[i_count]:=Rep_Col_Summary.Caption;
DataFiled_array[i_count]:=Rep_Col_Summary.DataFiled;
Width_array[i_count]:=Rep_Col_Summary.Width;
end;
end;
end;
procedure DynCreat_TQRRichtext(Colum_Num:integer);//动态创建TQRRichtext控件,此控件用来显示报表每列的中文名称
var Colum_Name_list:TStrings;
begin
Colum_Name[Colum_Num]:=tQRRichtext.Create(application); //创建TQRRichtext控件
Colum_Name[Colum_Num].Parent:=Form_rep.ColumnHeaderBand1;
Colum_Name[Colum_Num].Frame.DrawTop:=true;
Colum_Name[Colum_Num].Frame.DrawBottom:=true;
Form_rep.ColumnHeaderBand1.Height:=40;
Colum_Name[Colum_Num].Height:=40;
Colum_Name[Colum_Num].Font.Height:=-14;
Colum_Name[Colum_Num].Font.Name:=''''黑体'''';
Colum_Name[Colum_Num].Top:=0;
Colum_Name[Colum_Num].Alignment:=taCenter;
Colum_Name[Colum_Num].AutoStretch:=false;
//画表格线
Colum_Name[Colum_Num].Frame.Style:=psSolid;
Colum_Name[Colum_Num].Frame.Width:=1;
Colum_Name[Colum_Num].Frame.DrawRight:=true;
Colum_Name[Colum_Num].Frame.DrawBottom:=true;
if Colum_Num=0 then
begin
Colum_Name[Colum_Num].Frame.DrawLeft:=true;
end;
//将记录RRep_Col_Sum_store中的信息赋给Colum_Name
Colum_Name_list:=TStringList.Create;
Colum_Name_list.Add(Rep_Col_Sum_store.Caption_array[Colum_Num]);
Colum_Name[Colum_Num].Lines:=Colum_Name_list;
Colum_Name[Colum_Num].Width:=Rep_Col_Sum_store.Width_array[Colum_Num];
Colum_Name[Colum_Num].Visible:=true;
//计算左边界
if Colum_Num>0 then
Colum_Name[Colum_Num].Left:=Colum_Name[Colum_Num-1].Left+Colum_Name[Colum_Num-1].Width
else
Colum_Name[Colum_Num].Left:=0;
end;
说明:此处采用TQRRichtext控件是因为当名称过长时,TQRRichtext控件可以自动换行。
procedure DynCreat_TQRDBText(Colum_Num:integer;Colum_Height:integer;DataSet_Name:TQuery);//动态创建TQRDBText控件,此控件用来显示每列的值
begin
Colum_Data[Colum_Num]:=tQRDBText.Create(application);
Colum_Data[Colum_Num].Parent:=Form_rep.DetailBand1;
//设置数据集
Colum_Data[Colum_Num].DataSet:=DataSet_Name;
//将数组Colum_Data.DateField属性设置为C_Rep_Col_Sum_store中的字段名
Colum_Data[Colum_Num].DataField:=Rep_Col_Sum_store.DataFiled_array[Colum_Num];
Colum_Data[Colum_Num].Width:=Rep_Col_Sum_store.Width_array[Colum_Num];
Colum_Data[Colum_Num].Height:=Colum_Height;
Form_rep.DetailBand1.Height:=Colum_Height;
Colum_Data[Colum_Num].Top:=0;
Colum_Data[Colum_Num].AutoSize:=false;
Colum_Data[Colum_Num].AutoStretch:=false;
Colum_Data[Colum_Num].WordWrap:=false;
Colum_Data[Colum_Num].Visible:=true;
//画表格线
Colum_Data[Colum_Num].Frame.Style:=psSolid;
Colum_Data[Colum_Num].Frame.DrawRight:=true;
Colum_Data[Colum_Num].Frame.DrawBottom:=true;
if Colum_Num=0 then
Colum_Data[Colum_Num].Frame.DrawLeft:=true 上一页 [1] [2] [3] 下一页 [Delphi程序]QUICKREPORT SAVE AS [Web开发]在asp.net中动态生成web控件
|