用RaveReport作报表,怎样才能在程序内设置自定义的纸张的大小?用设计器已经设计了报表,只是要求根据记录的多少更改纸张的大小。
解决方案 »
- TForm = class; 如何理解?
- D7 初学者的困惑!
- 老板提了个诡异的需求,兄弟我要抓狂了,弟兄们来帮帮忙啊,100分!
- 请问怎么往word的表格中插入rvf文件
- 在DBGrid中如何右击鼠标获得cell中的值?
- 【散分】好久没来了,狂散【散分】
- ReportMachine3的数据字典里定义的变量,如何按日期预览出来?
- AdoQuery动态参数设定的问题
- VCLUnZip可以解压压缩流吗
- 请大虾教我:TApplication.ProcessMessages是做什么用的,怎么用(最好有例子)
- 请教数据库连接出现的问题???
- 怎样用delphi7带的那个installshield实现中文路径?
rquery1.close;
rquery1.sql.Clear ;
rquery1.sql.add('select * from vs_pos where (c_code='+quotedstr(master.fieldbyname('c_code').value)+')');
rquery1.open;
frReport1.LoadFromFile(posmainform.exepath + 'report\pos.frf');
//小票设纸张长度************************************
filename:=ExtractFilePath(paramstr(0))+'setup.ini';
myinifile:=TInifile.Create(filename);
frreport1.Pages.pages[0].pgHeight:=frreport1.Pages.pages[0].pgHeight+myinifile.readinteger('printsetup','height',0)*rquery2.RecordCount;
myinifile.Destroy;
frReport1.ShowReport;
frPreview1.Clear;
frPreview1.Visible:=true;
frReport1.ShowReport;
frPreview1.Print;
PageHeight,PageWidth: Double; PageType,ReportName: string);
var
CurrPage: TRavePage;
CurrRegion: TRaveRegion;
TextTitle,TextXJ,TextXJSL,TextXJJE,TextHJ,TextHJSL,TextHJJE,TextSHR1,
TextSHR2,TextYWY,TextBMJL,TextCW,TextXJJE2,TextHJJE2: TRaveText;
DataXJSL,DataXJJE,DataHJSL,DataHJJE,DataXJJE2,DataHJJE2: TRaveCalcText;
DataDYSJ :TRaveDataText;
RegionTop,RegionHeight,Band1Height,DataBand1Height,TextXJBottom,TextHJBottom,
TextSHR1Bottom,DataTextDYSJBottom,XJOffSet: Double;
begin
CurrPage := nil; CurrRegion := nil;
with RvProject1.ProjMan do
begin
CurrPage := FindRaveComponent(ReportName+'.Page1',nil) as TRavePage;
CurrRegion := FindRaveComponent('Region1',CurrPage) as TRaveRegion;
TextTitle := FindRaveComponent('TextTitle',CurrPage) as TRaveText;
TextTitle.Text := FTitleName;
RegionTop := CurrRegion.Top * 25.4;
//RegionHeight := CurrRegion.Height * 25.4;
Band1Height := (FindRaveComponent('Band1',CurrPage) as TRaveBand).Height * 25.4;
DataBand1Height := (FindRaveComponent('DataBand1',CurrPage) as TRaveDataBand).Height * 25.4;
TextXJ := FindRaveComponent('TextXJ',CurrPage) as TRaveText;
if TextXJ <> nil then begin
TextXJBottom := (CurrPage.PageHeight-TextXJ.Top) * 25.4;
XJOffset := (TextXJ.Top - CurrRegion.Height-CurrRegion.Top) * 25.4;
end;
TextXJSL := FindRaveComponent('TextXJSL',CurrPage) as TRaveText;
TextXJJE := FindRaveComponent('TextXJJE',CurrPage) as TRaveText;
TextXJJE2 := FindRaveComponent('TextXJJE2',CurrPage) as TRaveText;
TextHJ := FindRaveComponent('TextHJ',CurrPage) as TRaveText;
if TextHJ <> nil then TextHJBottom := (CurrPage.PageHeight-TextHJ.Top) * 25.4;
TextHJSL := FindRaveComponent('TextHJSL',CurrPage) as TRaveText;
TextHJJE := FindRaveComponent('TextHJJE',CurrPage) as TRaveText;
TextHJJE2 := FindRaveComponent('TextHJJE2',CurrPage) as TRaveText;
TextSHR1 := FindRaveComponent('TextSHR1',CurrPage) as TRaveText;
if TextSHR1 <> nil then TextSHR1Bottom := (CurrPage.PageHeight-TextSHR1.Top) * 25.4;
TextSHR2 := FindRaveComponent('TextSHR2',CurrPage) as TRaveText;
TextYWY := FindRaveComponent('TextYWY',CurrPage) as TRaveText;
TextBMJL := FindRaveComponent('TextBMJL',CurrPage) as TRaveText;
TextCW := FindRaveComponent('TextCW',CurrPage) as TRaveText;
DataXJSL := FindRaveComponent('CalcTextXJSL',CurrPage) as TRaveCalcText;
DataXJJE := FindRaveComponent('CalcTextXJJE',CurrPage) as TRaveCalcText;
DataXJJE2 := FindRaveComponent('CalcTextXJJE2',CurrPage) as TRaveCalcText;
DataHJJE2 := FindRaveComponent('CalcTextHJJE2',CurrPage) as TRaveCalcText;
DataHJSL := FindRaveComponent('CalcTextHJSL',CurrPage) as TRaveCalcText;
DataHJJE := FindRaveComponent('CalcTextHJJE',CurrPage) as TRaveCalcText;
DataDYSJ := FindRaveComponent('DataTextDYSJ',CurrPage) as TRaveDataText;
if DataDYSJ <> nil then DataTextDYSJBottom := (CurrPage.PageHeight-DataDYSJ.Top) * 25.4; if UpperCase(PageType)='CUSTOM' then
CurrPage.PageHeight := (RegionTop+Band1Height+TextXJBottom+
(RecordCount * DataBand1Height)+XJOffSet)/25.4
else CurrPage.PageHeight := PageHeight/25.4;
CurrPage.PageWidth := PageWidth/25.4;
CurrRegion.Height := CurrPage.PageHeight - (RegionTop + XJOffSet + TextXJBottom)/25.4;
//CurrRegion.Height := (Band1Height+RecordCount*DataBand1Height)/25.4;
if TextXJ <> nil then TextXJ.Top := CurrPage.PageHeight - TextXJBottom/25.4;
if TextXJSL <> nil then TextXJSL.Top := CurrPage.PageHeight - TextXJBottom/25.4;
if TextXJJE <> nil then TextXJJE.Top := CurrPage.PageHeight - TextXJBottom/25.4;
if TextXJJE2 <> nil then TextXJJE2.Top := CurrPage.PageHeight - TextXJBottom/25.4;
if DataXJSL <> nil then DataXJSL.Top := CurrPage.PageHeight - TextXJBottom/25.4;
if DataXJJE <> nil then DataXJJE.Top := CurrPage.PageHeight - TextXJBottom/25.4;
if DataXJJE2 <> nil then DataXJJE2.Top := CurrPage.PageHeight - TextXJBottom/25.4;
if TextHJ <> nil then TextHJ.Top := CurrPage.PageHeight - TextHJBottom/25.4;
if TextHJSL <> nil then TextHJSL.Top := CurrPage.PageHeight - TextHJBottom/25.4;
if TextHJJE <> nil then TextHJJE.Top := CurrPage.PageHeight - TextHJBottom/25.4;
if TextHJJE2 <> nil then TextHJJE2.Top := CurrPage.PageHeight - TextHJBottom/25.4;
if DataHJSL <> nil then DataHJSL.Top := CurrPage.PageHeight - TextHJBottom/25.4;
if DataHJJE <> nil then DataHJJE.Top := CurrPage.PageHeight - TextHJBottom/25.4;
if DataHJJE2 <> nil then DataHJJE2.Top := CurrPage.PageHeight - TextHJBottom/25.4;
if TextSHR1 <> nil then TextSHR1.Top := CurrPage.PageHeight - TextSHR1Bottom/25.4;
if TextSHR2 <> nil then TextSHR2.Top := CurrPage.PageHeight - TextSHR1Bottom/25.4;
if TextYWY <> nil then TextYWY.Top := CurrPage.PageHeight - TextSHR1Bottom/25.4;
if TextBMJL <> nil then TextBMJL.Top := CurrPage.PageHeight - TextSHR1Bottom/25.4;
if TextCW <> nil then TextCW.Top := CurrPage.PageHeight - TextSHR1Bottom/25.4;
if DataDYSJ <> nil then DataDYSJ.Top := CurrPage.PageHeight - DataTextDYSJBottom/25.4;
end;
end;