?? posprintex.~pas
字號:
Write(FAutoOpenBox,SizeOf(FAutoOpenBox));
Write(FFootSpaceRow,SizeOf(FFootSpaceRow));
Write(FPageWidth,SizeOf(FPageWidth));
Write(FTitleRowCount,SizeOf(FTitleRowCount));
Write(FQuantityDiciaLength,SizeOf(FQuantityDiciaLength));
Write(FMoneyDiciaLength,SizeOf(FMoneyDiciaLength));
RowCount:=FReportLines.Count;
Write(RowCount,SizeOf(RowCount));
For I:=0 to RowCount-1 do
begin
tmpLine:=FReportLines[I];
Write(tmpLine,SizeOf(tmpLine));
end;
end;
FOpenFlag:=True;
FFilePathName:=FileName;
Finally
PosFile.Free;
end;
end;
procedure TPosReport.SetBodyFields(AValue: TDataSet);
begin
FBodyType:=btDataSet;
FDataSet:=AValue;
end;
procedure TPosReport.SetBodyFields(AValue: TYTXStringGridEh);
begin
FBodyType:=btGrid;
FGrid:=AValue;
end;
procedure TPosReport.SetTitleVars(TitleVars: TReportVars);
begin
if FTitleVars<>TitleVars then
FTitleVars:=TitleVars;
end;
procedure TPosReport.ShowDesign;
begin
// FrmPrintMan:=TFrmPrintMan.Create(AOwner);
if FOpenFlag then
begin
end;
if Assigned(FrmDesign) then
begin
if FrmDesign.ShowModal=mrOk then
begin
end;
end;
end;
procedure TPosReport.ShowVarList(VarType: TDataType;
out ListFields: TListBox);
var
I:integer;
ListVars:TReportVars;
begin
if VarType<>DtBodyFields then //系統(tǒng)及表頭字段處理
begin
if VarType=DtSysFields then
ListVars:=FSysVars;
if VarType=DtTitleFields then
ListVars:=FTitleVars;
ListFields.Clear;
if Assigned(ListVars) then
begin
for I:=0 to ListVars.ItemCount-1 do
begin
ListFields.Items.AddObject(ListVars.Items[i].Caption,TObject(ListVars.Items[i]));
end;
end;
end else //表體處理
begin
if FBodyType=btGrid then
begin
For I:=1 to FGrid.ColCount-1 do
begin
if FGrid.Columns[I].Visible then
begin
ListFields.Items.AddObject(FGrid.Columns[i].Title.Caption,TObject(FGrid.Columns[I]));
end;
end;
end;
if FBodyType=btDataSet then
begin
if TDataSet(FDataSet).Fields[i].Visible then
begin
ListFields.Items.AddObject(TDataSet(FDataSet).Fields[I].DisplayName,TObject(TDataSet(FDataSet).Fields[I]));
end;
end;
end;
end;
{ TReportVar }
procedure TReportVar.Assign(Source: TPersistent);
begin
if Source is TReportVar then
begin
Caption:=TReportVar(Source).Caption;
Name:=TReportVar(Source).Name;
Value:=TReportVar(Source).Value;
end else
inherited Assign(Source);
end;
constructor TReportVar.Create(ReportVars: TCollection);
var
Report:TPosReport;
begin
Report:=nil;
if Assigned(ReportVars) and (ReportVars is TReportVars) then
Report:=TReportVars(ReportVars).PosReport;
try
inherited Create(ReportVars);
FVarCaption:='變量1';
FVarName:='Var1';
FVarValue:='';
finally
if Assigned(Report) then
//
end;
end;
function TReportVar.GetDisplayName: string;
begin
Result:=FVarName;
if FVarName='' then
Result:=inherited GetDisplayName;
end;
function TReportVar.GetVarCaption: String;
begin
Result:=FVarCaption;
end;
function TReportVar.GetVarName: String;
begin
Result:=FVarName;
end;
function TReportVar.GetVarValue: Variant;
begin
Result:=FVarValue;
end;
function TReportVar.Index: integer;
begin
Result:=inherited Index;
end;
procedure TReportVar.SetVarCaption(Value: String);
begin
if FVarCaption<>Value then
FVarCaption:=Value;
end;
procedure TReportVar.SetVarName(Value: String);
begin
if FVarName<>Value then
FVarName:=Value;
end;
procedure TReportVar.SetVarValue(Value: Variant);
begin
if FVarValue<>Value then
FVarValue:=Value;
end;
{ TReportVars }
function TReportVars.Add: TReportVar;
begin
Result:=TReportVar(Inherited Add);
end;
procedure TReportVars.AddVar(ACaption, AName: String; Value: Variant);
var
tmpVar:TReportVar;
begin
tmpVar:=Add;
if Assigned(tmpVar) then
begin
tmpVar.Caption:=ACaption;
tmpVar.Name:=AName;
tmpVar.Caption:=ACaption;
end;
end;
procedure TReportVars.Clear;
var
I:integer;
begin
For I:=ItemCount-1 downto 0 do
Delete(I);
end;
constructor TReportVars.Create(Report:TPosReport;ReportVarClass: TReportVarClass);
begin
inherited Create(ReportVarClass);
FPosReport:=Report;
end;
function TReportVars.GetCount: integer;
begin
Result:=inherited Count;
end;
function TReportVars.GetNameByCaption(Caption: String): String;
var
I:integer;
begin
for I:=0 to ItemCount-1 do
begin
if striComp(Pchar(Items[I].Caption),PChar(Caption))=0 then
begin
Result:=Items[I].Name;
Break;
end;
end;
end;
function TReportVars.GetOwner: TPersistent;
begin
Result:=FPosReport;
end;
function TReportVars.GetReportVar(Index: integer): TReportVar;
begin
Result:=Items[Index];
end;
function TReportVars.GetValueByCaption(VarCaption: String): Variant;
var
I:integer;
begin
for I:=0 to ItemCount-1 do
begin
if striComp(Pchar(Items[I].Caption),PChar(VarCaption))=0 then
begin
Result:=Items[I].Value;
Break;
end;
end;
end;
function TReportVars.GetValueByName(VarName: String): Variant;
var
I:integer;
begin
for I:=0 to ItemCount-1 do
begin
if striComp(Pchar(Items[I].Name),PChar(VarName))=0 then
begin
Result:=Items[I].Value;
Break;
end;
end;
end;
procedure TReportVars.SetReportVar(Index: integer; Value: TReportVar);
begin
Items[Index].Assign(Value);
end;
procedure TReportVars.SetValueByCaption(varCaption: String;
Value: Variant);
var
I:integer;
begin
for I:=0 to ItemCount-1 do
begin
if striComp(Pchar(Items[I].Caption),PChar(VarCaption))=0 then
begin
if Items[I].value<>Value then
Items[I].Value:=Value;
Break;
end;
end;
end;
procedure TReportVars.SetValueByName(varName: String; Value: Variant);
var
I:integer;
begin
for I:=0 to ItemCount-1 do
begin
if striComp(Pchar(Items[I].Caption),PChar(varName))=0 then
begin
if Items[I].value<> Value then
Items[I].Value:=Value;
Break;
end;
end;
end;
end.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -