⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 posprintex.~pas

📁 小票样式打印模板设计,和管家婆的pos收银系统小票样式设计差不多
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
      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  //系统及表头字段处理
  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.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -