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

📄 ubasereport.~pas

📁 在打沙场用的最简单
💻 ~PAS
字号:
unit ubasereport;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGridEh, StdCtrls, Buttons, PDJComEdit, wwdblook,  MDIbase,inifiles,
  comobj, Excel2000,wwdbdatetimepicker, Mask, wwdbedit, ExtCtrls, DB, DBTables, DBClient,
  ADODB;

type
  Tfrmbasereport = class(TfrmMDIbase)
    paneltitle: TPanel;
    formTitle: TLabel;
    spbtnprint: TSpeedButton;
    spbtnprior: TSpeedButton;
    SpeedButton1: TSpeedButton;
    Label3: TLabel;
    refno: TwwDBEdit;
    paneledit: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label4: TLabel;
    Label11: TLabel;
    wwDBDateTimePicker1: TwwDBDateTimePicker;
    wwDBEdit1: TwwDBEdit;
    wwDBEdit4: TwwDBEdit;
    wwDBEdit5: TwwDBEdit;
    wwDBEdit8: TwwDBEdit;
    billno: TwwDBEdit;
    wwDBLookupCombo1: TwwDBLookupCombo;
    wwDBDateTimePicker2: TwwDBDateTimePicker;
    wwDBEdit3: TwwDBEdit;
    CDSselectsub: TClientDataSet;
    Con1: TADOConnection;
    ADOQuery1: TADOQuery;
    conSource: TDataSource;
    DBGridEh1: TDBGridEh;
    Edit1: TEdit;
    Label15: TLabel;
    Label16: TLabel;
    Edit2: TEdit;
    Edit3: TEdit;
    Label10: TLabel;
    Edit6: TEdit;
    Edit5: TEdit;
    Edit4: TEdit;
    Label13: TLabel;
    Label14: TLabel;
    Label12: TLabel;
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormCreate(Sender: TObject);
    procedure spbtnpriorClick(Sender: TObject);
    procedure DBGridEh1TitleBtnClick(Sender: TObject; ACol: Integer;
      Column: TColumnEh);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmbasereport: Tfrmbasereport;

implementation

{$R *.dfm}

procedure Tfrmbasereport.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
canclose:=true;
end;

procedure Tfrmbasereport.FormCreate(Sender: TObject);
var
  s:string;
  ini:Tinifile;
  usercode:string;
  serverIP:string;
begin
  inherited;
     dbgrideh1.RowHeight:=24;
 // creastoredata;
  s:=Extractfilepath(application.ExeName);
  if s[length(s)]<>'\' then
    s:=s+'\'+'Default.ini'
    else
    s:=s+'Default.ini';
  try
    ini:=Tinifile.Create(s);
    serverIP:=ini.ReadString('ADO','FILE NAME','');
  finally
    ini.Free;
  end;

  if Serverip<>'' then
    con1.ConnectionString:='FILE NAME='+serverip
    else
    con1.ConnectionString:='FILE NAME=\kc.udl';
    con1.Connected:=true;
end;

procedure Tfrmbasereport.spbtnpriorClick(Sender: TObject);
var
  excelid, mybook: variant;
  row, col, i, j, colcount, frow: integer;
  excelflg: boolean;
  rpstr: string;
  per_count,  datasum, dsum1, dsum2: integer;
  datas1, datas2, datas3: string;
begin
  adoquery1.DisableControls;
  try
    excelid := createoleobject('excel.application');
    mybook := createoleobject('excel.sheet');
    mybook := excelid.workbooks.add;
    row := 1;
    col := 1;
    excelflg := true;
  except
    excelflg := false;
    application.MessageBox('请确定EXCEL是否正确安装!', '提示信息', mb_ok);
  end;
  if excelflg then
  begin
      colcount :=adoquery1.FieldCount;
      excelid.range['A' + inttostr(row), chr(64 + colcount) +
        inttostr(row)].merge();
      mybook.worksheets[1].cells.item[row, col] :=  '基本报表';
      mybook.worksheets[1].cells.item[row, col].font.size := 18;
      mybook.worksheets[1].cells.item[row, col].font.bold := true;
      mybook.worksheets[1].cells.item[row, col].HorizontalAlignment := xlcenter;
      row := row + 1;
      excelid.range['A' + inttostr(row), chr(64 + colcount) +
        inttostr(row)].merge();
      mybook.worksheets[1].cells.item[row, col] := '报表日期:' +
        datetostr(date);
      row := row + 1;
      frow := row;
      adoquery1.First;
      for i := 1 to colcount do
      begin
        excelid.columns[i].ColumnWidth := dbGrideh1.Columns[i - 1].Width /
          8;
        excelid.columns[i].NumberFormatLocal := '@';
        mybook.worksheets[1].cells.item[row, i] := dbgrideh1.Columns[i -
          1].Title.Caption;
        mybook.worksheets[1].cells.item[row, i].HorizontalAlignment := xlcenter;
      end;
      row := row + 1;
      while not adoquery1.Eof do
      begin
        for i := 1 to colcount do
          mybook.worksheets[1].cells.item[row, i] :=  adoquery1.Fields[i -1].AsString;
        row := row + 1;
         adoquery1.Next;
      end;
      excelid.range['A' + inttostr(row), chr(64 + colcount) +
        inttostr(row)].merge();
      mybook.worksheets[1].cells.item[row, col].font.size := 12;
      mybook.worksheets[1].cells.item[row, col].font.bold := true;
      mybook.worksheets[1].cells.item[row, col].HorizontalAlignment := xlcenter;
      mybook.worksheets[1].cells.item[row, col] := '总记录数:' +
       inttostr(adoquery1.RecordCount) + '条';
      row := row + 1;
      rpstr := '报表条件:';

      excelid.range['A' + inttostr(row), chr(64 + colcount) +
        inttostr(row)].merge();
      mybook.worksheets[1].cells.item[row, col] := rpstr;
      row := row + 1;
      excelid.range[chr(65) + inttostr(frow), chr(64 + colcount) + inttostr(row
        - 1)].Borders[1].LineStyle := xlContinuous;
      excelid.range[chr(65) + inttostr(frow), chr(64 + colcount) + inttostr(row
        - 1)].Borders[2].LineStyle := xlContinuous;
      excelid.range[chr(65) + inttostr(frow), chr(64 + colcount) + inttostr(row
        - 1)].Borders[3].LineStyle := xlContinuous;
      excelid.range[chr(65) + inttostr(frow), chr(64 + colcount) + inttostr(row
        - 1)].Borders[4].LineStyle := xlContinuous;
    excelid.visible := true;
  end;
  adoquery1.EnableControls;

end;

procedure Tfrmbasereport.DBGridEh1TitleBtnClick(Sender: TObject;
  ACol: Integer; Column: TColumnEh);
var

sortstring:string; //排序列

begin

//进行排序

with Column do

begin

if FieldName = '' then

Exit;


case Title.SortMarker of

smNoneEh:

begin

Title.SortMarker := smDownEh;

sortstring := Column.FieldName + ' ASC';

end;

smDownEh: sortstring := Column.FieldName + ' ASC';

smUpEh: sortstring := Column.FieldName + ' DESC';

end;

//进行排序

try

adoquery1.Sort := sortstring //dataset为实际数据集变量名

except

end;

end;

end;

end.

⌨️ 快捷键说明

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