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

📄 printform.pas

📁 中小企业管理系统------ ERP系统原代码
💻 PAS
📖 第 1 页 / 共 3 页
字号:
    if bNewReport and bPrintBar then
      BandPageHeader.dy := 0; //打印成条行表
    for i := 0 to Tree1.Bands.Count - 1 do
    begin
      if not Tree1.Bands[i].Visible then
        Continue;
      m := TRMMemoView(RMCreateObject(gtMemo, ''));
      m.SetBounds(x, BandPageHeader.y, Tree1.Bands[i].Width +
        GetBandSub(Tree1, Tree1.Bands[i].Index), Tree1.RowHeight + 4);
      m.Font.Assign(Tree1.BandFont);
      m.Memo.Text := Tree1.Bands[i].Caption;
      m.PLayout := rmtlCenter;
      m.PAlignment := GetAlignment(Tree1.Bands[i].Alignment);
      m.FillColor := Tree1.Color;
      //      if Tree1.ShowGrid then m.FrameTyp := $F;
      m.Prop['FrameTyp'] := $F;
      m.Name := 'Grid_Band_' + IntToStr(i);
      if Page1.FindObject(m.Name) <> nil then
        Page1.FindObject(m.Name).Assign(m)
      else
        Page1.Objects.Add(m);
      x := x + Tree1.Bands[i].Width + GetBandSub(Tree1, Tree1.Bands[i].Index);
    end;
  end;
  if Tree1.ShowHeader then //表头2
  begin
    x := C_LEFT;
    if bNewReport then
      BandPageHeader.dy := BandPageHeader.dy + Tree1.RowHeight + 4;
    if bNewReport and bPrintBar then
      BandPageHeader.dy := 0; //打印成条行表
    for i := 0 to Tree1.ColumnCount - 1 do
    begin
      if not Tree1.Columns[i].Visible then
        Continue;
      if (Tree1.Columns[i].Field = nil) and (Tree1.Columns[i].Visible = false) then
        Continue;
      m := TRMMemoView(RMCreateObject(gtMemo, ''));
      if Tree1.ShowBands then
        m.SetBounds(x, BandPageHeader.y + Tree1.RowHeight + 4,
          Tree1.Columns[i].Width + 1, Tree1.RowHeight + 4)
      else
        m.SetBounds(x, BandPageHeader.y, Tree1.Columns[i].Width + 1,
          Tree1.RowHeight + 4);
      m.Font.Assign(Tree1.Columns[i].Font);
      m.Memo.Text := Tree1.Columns[i].Caption;
      m.PLayout := rmtlCenter;
      m.PAlignment := GetAlignment(Tree1.Columns[i].Alignment);
      m.FillColor := Tree1.Color;
      m.Prop['FrameTyp'] := $F;
      m.Name := 'Row0' + Tree1.Columns[i].Name;
      if Page1.FindObject(m.Name) <> nil then
        Page1.FindObject(m.Name).Assign(m)
      else
        Page1.Objects.Add(m);
      x := x + Tree1.Columns[i].Width + 1;
    end;
  end;
end;

procedure TfrmPrintForm.SetTreeBody(Tree1: TdxDBTreeList);
var
  x, i: Integer;
  v: TRMView;
begin
  //画出表体
  if bNewReport then
    BandDetail.y := BandPageHeader.y + BandPageHeader.dy + C_HEIGHT;
  if bNewReport then
    BandDetail.dy := Tree1.RowHeight + 4;

  x := C_LEFT;
  for i := 0 to Tree1.ColumnCount - 1 do
  begin
    if not Tree1.Columns[i].Visible then
      Continue;
    if (Tree1.Columns[i].Field = nil) and (Tree1.Columns[i].Visible = false) then
      Continue;
    v := RMCreateObject(gtMemo, '');

    if not bNewReport and bPrintBar then
      v.SetBounds(x, BandDetail.y + Tree1.RowHeight + 4, Tree1.Columns[i].Width + 1, Tree1.RowHeight + 4)
    else
      v.SetBounds(x, BandDetail.y, Tree1.Columns[i].Width + 1, BandDetail.Dy);

    TRMMemoView(v).PAlignment := GetAlignment(Tree1.Columns[i].Alignment);
    if Tree1.ShowGrid then
      v.Prop['FrameTyp'] := $F;
    v.Prop['FrameTyp'] := $F;
    TRMMemoView(v).Font.Assign(Tree1.Columns[i].Font);
    //设置数据字段
    v.Memo.Text := Format('[%s.%s."%s"]', [Tree1.DataSource.DataSet.Owner.Name,
      Tree1.DataSource.DataSet.Name, Tree1.Columns[i].FieldName]);
    v.FillColor := Tree1.Color;
    v.Name := 'Row1' + Tree1.Columns[i].Name;
    //画饼图
    if Tree1.Columns[i].FieldName = sPrintChartX then
      sChartNameX := v.Name
    else
      if Tree1.Columns[i].FieldName = sPrintChartY then
        sChartNameY := v.Name;

    if lPrintChartType >= 0 then //如果是图形
    begin
      v.dy := 0;
      v.Visible := False;
    end;

    if Page1.FindObject(v.Name) <> nil then
      Page1.FindObject(v.Name).Assign(v)
    else
      Page1.Objects.Add(v);
    x := x + Tree1.Columns[i].Width + 1;
  end;
  if bNewReport and bPrintBar then
    BandDetail.y := BandPageHeader.y; //打印成条行表
  if bNewReport and bPrintBar then
    BandDetail.dy := Tree1.RowHeight * 3 + 12; //打印成条行表
end;

procedure TfrmPrintForm.SetTreeSummary(Tree1: TdxDBTreeList); //表尾
var
  x, i: Integer;
  m: TRMMemoView;
begin
  if bNewReport then
    BandPageFooter.y := BandDetail.y + BandDetail.dy + C_HEIGHT;
  if bNewReport then
    BandPageFooter.dy := 0;
  if bNewReport then
    BandReportSummary.y := BandPageFooter.y + BandPageFooter.dy + C_HEIGHT;
  if bNewReport then
    BandReportSummary.dy := BandReportSummary.dy + Tree1.RowHeight + 4;
  x := C_LEFT;
  if Tree1.ShowFooter then
  begin
    for i := 0 to Tree1.ColumnCount - 1 do
    begin
      if not Tree1.Columns[i].Visible then
        Continue;
      if (Tree1.Columns[i].Field = nil) and (Tree1.Columns[i].Visible = false) then
        Continue;
      m := TRMMemoView(RMCreateObject(gtMemo, ''));
      m.SetBounds(x, BandReportSummary.y, Tree1.Columns[i].Width + 1,
        Tree1.RowHeight + 4);
      m.PAlignment := GetAlignment(Tree1.Columns[i].Alignment);
      if Tree1.ShowGrid then
        m.Prop['FrameTyp'] := $F;
      m.Prop['FrameTyp'] := $F;
      m.Font.Assign(Tree1.Columns[i].Font);
      m.Memo.Text := Tree1.Columns[i].SummaryFooterText; // .SummaryFooterFormat;
      m.FillColor := Tree1.Color;
      m.Name := 'Summary' + Tree1.Columns[i].Name;
      if Page1.FindObject(m.Name) <> nil then
        Page1.FindObject(m.Name).Assign(m)
      else
        Page1.Objects.Add(m);
      x := x + Tree1.Columns[i].Width + 1;
    end;
  end;
end;

function TfrmPrintForm.GetPoint(Control: TControl): TPoint;
var
  Point: TPoint;
begin
  Point.x := 0;
  Point.y := 0;
  Point := Control.ClientToScreen(point);
  Point := frmForm1.ScreenToClient(Point);
  Result := Point;
end;

function TfrmPrintForm.GetAlignment(Align: TAlignment): TRMAlignment;
begin
  case Align of
    taLeftJustify: Result := rmtaLeftJustify;
    taRightJustify: Result := rmtaRightJustify;
    taCenter: Result := rmtaCenterJustify;
  else
    Result := rmtaLeftJustify;
  end;
end;

function TfrmPrintForm.ViewAssign(m1: TRMMemoView; Control: TControl): Boolean;
begin
  Result := true;

  if Control is TSeSkinLabel then
  begin //标准控件
    m1.Font.Assign(TSeSkinLabel(Control).Font);
    m1.Memo.Text := TSeSkinLabel(Control).Caption;
  end
  else
    if Control is TCustomEdit then
    begin
      m1.Font.Assign(TEdit(Control).Font);
      m1.Memo.Text := TEdit(Control).Text;
    end
    else
      if Control is TCustomMemo then
      begin
        m1.Font.Assign(TMemo(Control).Font);
        m1.Memo.Assign(TMemo(Control).Lines);
      end
      else
        if Control is TCustomdxEdit then
        begin //Express No DB
          m1.Font.Assign(TdxEdit(Control).Font);
          m1.Memo.Text := TdxEdit(Control).Text;
        end
        else
          if Control is TCustomdxDateEdit then
          begin
            m1.Font.Assign(TdxDateEdit(Control).Font);
            m1.Memo.Text := TdxDateEdit(Control).Text;
          end
          else
            if Control is TCustomdxPickEdit then
            begin
              m1.Font.Assign(TdxPickEdit(Control).Font);
              m1.Memo.Text := TdxPickEdit(Control).Text;
            end
            else
              if Control is TdxButtonEdit then
              begin
                m1.Font.Assign(TdxButtonEdit(Control).Font);
                m1.Memo.Text := TCustomdxButtonEdit(Control).Text;
              end
              else
                if Control is TCustomdxDBEdit then
                begin //Express is DB
                  m1.Font.Assign(TdxDBEdit(Control).Font);
                  m1.Memo.Text := TdxDBEdit(Control).Text;
                end
                else
                  if Control is TCustomdxDBDateEdit then
                  begin
                    m1.Font.Assign(TdxDBDateEdit(Control).Font);
                    m1.Memo.Text := TdxDBDateEdit(Control).Text;
                  end
                  else
                    if Control is TCustomdxDBPickEdit then
                    begin
                      m1.Font.Assign(TdxDBPickEdit(Control).Font);
                      m1.Memo.Text := TdxDBPickEdit(Control).Text;
                    end
                    else
                      if Control is TdxDBButtonEdit then
                      begin
                        m1.Font.Assign(TdxDBButtonEdit(Control).Font);
                        m1.Memo.Text := TCustomdxDBButtonEdit(Control).Text;
                      end
                      else
                        if Control is TdxInplaceTextEdit then
                        begin
                          m1.Font.Assign(frmForm1.Font);
                          m1.Memo.Text := TdxInplaceTextEdit(Control).Text;
                        end
                        else
                          Result := false;
end;

function TfrmPrintForm.ShapeViewAssign(s1: TRMShapeView; Control: TControl):
  Boolean;
begin
  Result := True;
  if Control is TShape then
  begin
    {$IFNDEF NoRmComPass}
    case TShape(Control).Shape of
      stRectangle: s1.ShapeType := rmskRectangle;
      stSquare: s1.ShapeType := rmskRectangle;
      stRoundRect: s1.ShapeType := rmskRectangle;
      stRoundSquare: s1.ShapeType := rmskRectangle;
      stEllipse: s1.ShapeType := rmskRectangle;
      stCircle: s1.ShapeType := rmskRectangle;
    end;
    {$ELSE}

    {$ENDIF}
    s1.FillColor := TShape(Control).Brush.Color;
    s1.dx := TShape(Control).Pen.Width;
    s1.FillColor := TShape(Control).Pen.Color;
    s1.PenMode := TShape(Control).Pen.Mode;
  end
  else
    Result := false;
end;

function TfrmPrintForm.PicViewAssign(p1: TRMPictureView; Control: TControl):
  Boolean;
begin
  Result := True;
  if Control is TImage then
  begin
    if TImage(Control).Picture.Graphic <> nil then
      p1.Picture.Assign(TImage(Control).Picture);
    p1.Flags := (p1.Flags and not flPictCenter) + Word(TImage(Control).Center) *
      flPictCenter;
    p1.Flags := (p1.Flags and not flStretched) + Word(TImage(Control).Stretch) *
      flStretched;
    p1.Flags := (p1.Flags and not flPictRatio) + Word(0) * flPictRatio;
  end
  else
    if Control is TdxGraphicEdit then
    begin
      if TdxGraphicEdit(Control).Picture.Graphic <> nil then
        p1.Picture.Assign(TdxGraphicEdit(Control).Picture);
      p1.Flags := (p1.Flags and not flPictCenter) +
        Word(TdxGraphicEdit(Control).Center) * flPictCenter;
      p1.Flags := (p1.Flags and not flStretched) +
        Word(TdxGraphicEdit(Control).Stretch) * flStretched;
      p1.Flags := (p1.Flags and not flPictRatio) + Word(0) * flPictRatio;
    end
    else
      if Control is TdxDBGraphicEdit then
      begin
        if TdxDBGraphicEdit(Control).Picture.Graphic <> nil then
          p1.Picture.Assign(TdxDBGraphicEdit(Control).Picture);
        p1.Flags := (p1.Flags and not flPictCenter) +
          Word(TdxDBGraphicEdit(Control).Center) * flPictCenter;
        p1.Flags := (p1.Flags and not flStretched) +
          Word(TdxDBGraphicEdit(Control).Stretch) * flStretched;
        p1.Flags := (p1.Flags and not flPictRatio) + Word(0) * flPictRatio;
      end
      else
        Result := false;
end;

end.



//此源码由程序太平洋收集整理发布,任何人都可自由转载,但需保留本站信息
//╭⌒╮┅~ ¤ 欢迎光临程序太平洋╭⌒╮
//╭⌒╭⌒╮╭⌒╮~╭⌒╮  ︶  ,︶︶
//,︶︶︶︶,''︶~~ ,''~︶︶  ,''
//╔ ╱◥███◣═╬╬╬╬╬╬╬╬╬╗
//╬ ︱田︱田 田 ︱          ╬
//╬       http://www.5ivb.net ╬
//╬  ╭○╮●                     ╬
//╬  /■\/■\                    ╬
//╬   <| ||    有希望,就有成功! ╬
//╬                 ╬
//╚╬╬╬╬╬╬╬╬╬╬╗  ╔╬╬╬╬╝
//
//说明:
//专业提供VB、.NET、Delphi、ASP、PB源码下载
//包括:程序源码,控件,商业源码,系统方案,开发工具,书籍教程,技术文档

⌨️ 快捷键说明

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