亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

用Delphi開發報表打印的ASP組件

2019-11-18 18:47:35
字體:
來源:轉載
供稿:網友
     asp在對數據庫操作方面提供了很好的內嵌對象。但是,其他方面的功能有所欠缺,如:報表打印。特別是國內的復雜的報表,用ASP很難實現。

       不過,ASP支持插件,這就可以根據需要開發ASP插件,筆者用Delphi5.0開發了ASP打印組件。下面筆者將分步來開發一個通用的報表打印的ASP組件。

       第一步:新建一個Activex Library,命名為PRintT,然后再新建一個Active Server Object Class,命名為Print,即建立了一個名為Print的ASP組件,文件命名為Unit1.pas。

      第二步:打開Type Library,新建一個方法Print1,用于傳遞報表打印。

      第三步:新建一個DataModule,放入Adoconnection組件和AdoTable組件,文件名為Unit2.pas。

     第四步:新建一個TQuickRep,設計你要打印的報表,文件名為文件名為Unit23.pas。以下是個文件的詳細代碼:
{=============Unit1.pas===============}

unit Unit1;

interface

uses
  ComObj, ActiveX, AspTlb, PrintT_TLB, StdVcl;

type
  TPrint = class(TASPObject, iprint)
  protected
    procedure OnEndPage; safecall;
    procedure OnStartPage(const AScriptingContext: IUnknown); safecall;
    procedure Print1; safecall;
  end;

implementation

uses ComServ,unit2,unit23;

procedure TPrint.OnEndPage;
begin
  inherited OnEndPage;
end;

procedure TPrint.OnStartPage(const AScriptingContext: IUnknown);
begin
  inherited OnStartPage(AScriptingContext);
end;

procedure TPrint.Print1;
begin
     IdearRpt.Print;
end;

initialization
  TAutoObjectFactory.Create(ComServer, TPrint, Class_Print,
    ciMultiInstance, tmApartment);
end.

{===============Unit2.pas===============}

unit Unit2;

interface

uses
  SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms,
  Dialogs, DBTables, DB, ADODB;

type
  TCustomerData = class(TDataModule)
    ADOConnection1: TADOConnection;
    ADOTable1: TADOTable;
    DataSource1: TDataSource;
    ADOTable1NIANH: TStringField;
    ADOTable1XUH: TStringField;
    ADOTable1SHENQDW: TStringField;
    ADOTable1SHENQRQ: TDateTimeField;
    ADOTable1FARDB: TStringField;
    ADOTable1FARDH: TStringField;
    ADOTable1LIANXR: TStringField;
    ADOTable1LIANXRDH: TStringField;
    ADOTable1DANWZCDZ: TStringField;
    ADOTable1JIANSXZDM: TStringField;
    ADOTable1JIANSGM: TBCDField;
    ADOTable1ZHIGRS: TBCDField;
    ADOTable1YONGDFH: TBCDField;
    ADOTable1RIYSL: TBCDField;
    ADOTable1RIPSL: TBCDField;
    ADOTable1JIANZSJGD: TBCDField;
    ADOTable1RANQYL: TBCDField;
    ADOTable1YONGDYQ: TStringField;
    ADOTable1RELYL: TBCDField;
    ADOTable1JIANSXM: TStringField;
    ADOTable1PIZWH: TStringField;
    ADOTable1JIANSGM2: TBCDField;
    ADOTable1YONGDXZDM: TStringField;
    ADOTable1YONGDWZ: TStringField;
    ADOTable1DONGL: TStringField;
    ADOTable1XIL: TStringField;
    ADOTable1NANL: TStringField;
    ADOTable1BEIL: TStringField;
    ADOTable1CHANG: TBCDField;
    ADOTable1KUAN: TBCDField;
    ADOTable1ZONGMJ1: TBCDField;
    ADOTable1ZONGMJ2: TBCDField;
    ADOTable1YOUXRQ1: TDateTimeField;
    ADOTable1YOUXRQ2: TDateTimeField;
    ADOTable1BEIZ: TStringField;
    ADOTable1JINGB: TStringField;
    ADOTable1SHENH: TStringField;
    ADOTable1SHEND: TStringField;
    ADOTable1SHENDRQ: TDateTimeField;
    ADOTable1PICTURE: TBlobField;

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  CustomerData: TCustomerData;

implementation

{$R *.DFM}

 

end.

{===========Unit23.pas===============}

unit Unit23;

interface

uses Windows, SysUtils, Messages, Classes, Graphics, Controls,
  StdCtrls, ExtCtrls, Forms, Quickrpt, QRCtrls;

type
  TIdearRpt = class(TQuickRep)
    PageFooterBand1: TQRBand;
    PageHeaderBand1: TQRBand;
    QRLabel1: TQRLabel;
    QRLabel2: TQRLabel;
    QRLabel3: TQRLabel;
    QRDBText15: TQRDBText;
    QRDBText17: TQRDBText;
    QRDBText19: TQRDBText;
    QRDBText13: TQRDBText;
    QRLabel46: TQRLabel;
    QRLabel47: TQRLabel;
    TitleBand1: TQRBand;
    QRShape1: TQRShape;
    QRShape2: TQRShape;
    QRShape3: TQRShape;
    QRShape4: TQRShape;
    QRShape5: TQRShape;
    QRShape6: TQRShape;
    QRLabel4: TQRLabel;
    QRLabel5: TQRLabel;
    QRLabel6: TQRLabel;
    QRShape7: TQRShape;
    QRShape8: TQRShape;
    QRLabel7: TQRLabel;
    QRLabel8: TQRLabel;
    QRLabel11: TQRLabel;
    QRLabel12: TQRLabel;
    QRDBText1: TQRDBText;
    QRDBText2: TQRDBText;
    QRDBText4: TQRDBText;
    QRDBText6: TQRDBText;
    QRDBText3: TQRDBText;
    QRShape9: TQRShape;
    QRLabel9: TQRLabel;
    QRDBText5: TQRDBText;
    QRShape17: TQRShape;
    QRShape22: TQRShape;
    QRShape23: TQRShape;
    QRShape24: TQRShape;
    QRShape25: TQRShape;
    QRShape26: TQRShape;
    QRShape27: TQRShape;
    QRShape10: TQRShape;
    QRShape11: TQRShape;
    QRShape12: TQRShape;
    QRShape13: TQRShape;
    QRShape18: TQRShape;
    QRShape19: TQRShape;
    QRLabel10: TQRLabel;
    QRLabel13: TQRLabel;
    QRLabel14: TQRLabel;
    QRLabel15: TQRLabel;
    QRLabel16: TQRLabel;
    QRLabel17: TQRLabel;
    QRLabel18: TQRLabel;
    QRLabel19: TQRLabel;
    QRLabel20: TQRLabel;
    QRLabel21: TQRLabel;
    QRLabel22: TQRLabel;
    QRLabel23: TQRLabel;
    QRLabel24: TQRLabel;
    QRLabel32: TQRLabel;
    QRLabel33: TQRLabel;
    QRLabel34: TQRLabel;
    QRLabel35: TQRLabel;
    QRLabel36: TQRLabel;
    QRShape20: TQRShape;
    QRLabel37: TQRLabel;
    QRLabel38: TQRLabel;
    QRLabel41: TQRLabel;
    QRLabel42: TQRLabel;
    QRLabel43: TQRLabel;
    QRLabel44: TQRLabel;
    QRLabel45: TQRLabel;
    QRLabel48: TQRLabel;
    QRLabel49: TQRLabel;
    QRLabel50: TQRLabel;
    QRLabel51: TQRLabel;
    QRLabel52: TQRLabel;
    QRLabel53: TQRLabel;
    QRLabel54: TQRLabel;
    QRLabel55: TQRLabel;
    QRLabel56: TQRLabel;
    QRLabel57: TQRLabel;
    QRLabel58: TQRLabel;
    QRLabel59: TQRLabel;
    QRLabel60: TQRLabel;
    QRLabel61: TQRLabel;
    QRShape28: TQRShape;
    QRLabel62: TQRLabel;
    QRLabel63: TQRLabel;
    QRDBText7: TQRDBText;
    QRDBText8: TQRDBText;
    QRDBText9: TQRDBText;
    QRDBText10: TQRDBText;
    QRDBText11: TQRDBText;
    QRDBText12: TQRDBText;
    QRDBText14: TQRDBText;
    QRDBText16: TQRDBText;
    QRDBText18: TQRDBText;
    QRDBText20: TQRDBText;
    QRDBText21: TQRDBText;
    QRDBText22: TQRDBText;
    QRDBText23: TQRDBText;
    QRDBText24: TQRDBText;
    QRDBText25: TQRDBText;
    QRDBText26: TQRDBText;
    QRDBText27: TQRDBText;
    QRDBText28: TQRDBText;
    QRDBText29: TQRDBText;
    QRDBText30: TQRDBText;
    QRDBText31: TQRDBText;
    QRDBText32: TQRDBText;
    QRDBText33: TQRDBText;
    QRDBText34: TQRDBText;
    QRDBText35: TQRDBText;
    QRMemo4: TQRMemo;
    QRDBText36: TQRDBText;
    QRDBText37: TQRDBText;
    QRDBText38: TQRDBText;
  private

  public

  end;

var
  IdearRpt: TIdearRpt;

implementation
uses unit2;
{$R *.DFM}

end.

{=========PrintT.dpr============}

library PrintT;

{%File 'Print.asp'}

uses
  ComServ,
  PrintT_TLB in 'PrintT_TLB.pas',
  Unit1 in 'Unit1.pas' {Print: CoClass},
  Unit2 in 'Unit2.pas' {CustomerData: TDataModule},
  Unit23 in 'Unit23.pas' {IdearRpt: TQuickRep};

exports
  DllGetClassObject,
  DllCanUnloadNow,
  DllRegisterServer,
  DllUnregisterServer;

{$R *.TLB}

{$R *.RES}

begin
     IdearRpt := TIdearRPt.Create(NiL);{必不可少}
end.

      第五步:編譯并注冊PrintT組件,即可在ASP代碼中調用,調用示例如下:

<% Set DelphiASPObj = Server.CreateObject("PrintT.Print")
   DelphiASPObj.Print1

%>

    通過以上步驟,我們就順利地利用Delphi開發出了具有報表功能的ASP組件了。當然,筆者只是介紹了一個簡單的思路,希望能起到拋磚引玉之功效。


上一篇:Delphi編寫網絡程序的安全措施

下一篇:Delphi下常用數學運算函數

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色婷婷成人综合| 成人免费观看a| 91成人性视频| 亚洲少妇中文在线| 国产日本欧美一区二区三区在线| 亚洲第一免费网站| 国产亚洲精品一区二区| 97久久精品视频| 国产第一区电影| 4k岛国日韩精品**专区| 26uuu亚洲伊人春色| 欧美日韩成人在线视频| 日韩福利在线播放| 色樱桃影院亚洲精品影院| 国产精品9999| 亚洲精品日韩激情在线电影| 精品国产乱码久久久久久天美| 欧美专区日韩视频| 欧美激情视频在线免费观看 欧美视频免费一| 久久精品国产69国产精品亚洲| 亚洲色图第三页| 久久亚洲春色中文字幕| 国产主播精品在线| 欧美丰满少妇xxxxx做受| 日韩在线免费高清视频| 国产精品欧美激情在线播放| 久久精品99无色码中文字幕| 亚洲r级在线观看| 欧美精品福利在线| 亚洲视频在线免费看| 一二美女精品欧洲| 日韩欧美一区二区在线| 精品国产一区二区三区久久| 国产剧情久久久久久| 国模视频一区二区三区| 日韩精品中文字幕在线播放| 日韩成人在线视频| 久久夜精品va视频免费观看| 精品久久中文字幕| 欧美夫妻性视频| 97久久精品人搡人人玩| 97精品在线视频| 中文字幕久精品免费视频| 国产专区欧美专区| 久久久国产精品免费| 精品欧美aⅴ在线网站| 午夜精品久久久久久久99热| 精品国偷自产在线| 国产91精品久久久| 久久久免费精品| 欧美在线视频一区| 久久久在线视频| 亚洲欧美中文日韩在线v日本| 九九精品在线观看| 91九色综合久久| 精品伊人久久97| 北条麻妃久久精品| 欧美成人sm免费视频| 久久香蕉国产线看观看av| 成年人精品视频| 色视频www在线播放国产成人| 国产精品丝袜久久久久久高清| 日韩欧美极品在线观看| 久久久久久久999精品视频| 91成人精品网站| 久久成人人人人精品欧| 亚洲日本成人女熟在线观看| 国内免费精品永久在线视频| 亚洲性生活视频在线观看| 青青久久av北条麻妃海外网| 亚洲а∨天堂久久精品喷水| 中文字幕在线视频日韩| 国色天香2019中文字幕在线观看| 美女撒尿一区二区三区| 91精品国产电影| www.欧美免费| 亚洲精品免费网站| 亚洲午夜久久久影院| 日韩麻豆第一页| 精品国内亚洲在观看18黄| 欧美xxxx18国产| 91视频免费在线| 国内精品一区二区三区| 国产精品成人在线| 91黄色8090| 亚洲成人黄色在线| 久久亚洲春色中文字幕| 国模视频一区二区| 91精品在线播放| 中文字幕欧美精品日韩中文字幕| 疯狂蹂躏欧美一区二区精品| 日韩av在线电影网| 亚洲系列中文字幕| 国产亚洲成精品久久| 亚洲精品国产电影| 日韩av免费在线播放| 久久精品99久久香蕉国产色戒| 国产精品稀缺呦系列在线| 91天堂在线视频| 国产91对白在线播放| 亚洲影院色在线观看免费| 91久久综合亚洲鲁鲁五月天| 91av网站在线播放| 欧美老肥婆性猛交视频| 色婷婷综合久久久久中文字幕1| 91天堂在线视频| 久久久精品视频在线观看| 亚洲天堂视频在线观看| 欧美在线中文字幕| 久久夜色撩人精品| 日韩在线视频免费观看高清中文| 欧美有码在线视频| 中日韩美女免费视频网址在线观看| 亚洲男人天堂2024| 久久精品中文字幕| 国产日本欧美一区| 久久久成人的性感天堂| 日韩成人中文字幕在线观看| 国产精品久久久久久久久久久新郎| 欧美国产第一页| 欧美激情手机在线视频| 欧美野外猛男的大粗鳮| 久久久精品网站| 亚洲精品电影网在线观看| 91亚洲国产成人久久精品网站| 欧美理论电影在线播放| 国产精品美女免费视频| 日韩美女免费观看| 欧美黑人又粗大| 91极品女神在线| 久久久av网站| 亚洲免费福利视频| 成人精品视频99在线观看免费| 欧美日韩电影在线观看| 黄色成人av网| 91精品国产99久久久久久| 日韩欧美黄色动漫| 国内精品久久久久影院优| 亚洲一区二区三区xxx视频| 国产精品激情av电影在线观看| 538国产精品一区二区免费视频| 日韩免费观看在线观看| 亚洲美女性视频| 亚洲天堂免费视频| 欧洲s码亚洲m码精品一区| 国产亚洲免费的视频看| 亚洲欧美日韩在线一区| 国产日韩精品综合网站| 亚洲2020天天堂在线观看| 久久成年人免费电影| 亚洲欧美日韩网| 久久久久久网站| 高清在线视频日韩欧美| 欧美夜福利tv在线| 久久久久久亚洲精品不卡| 欧美日韩国产成人在线观看| 亚洲精品电影久久久| 久久精品国产91精品亚洲| 欧美国产日韩一区二区三区| 久久久久久久av| 国内精品久久久久久久久| 日本高清不卡在线| 日韩欧美在线看| 日韩av一卡二卡|