www.pudn.com > 邮件群发程序1.2.rar > DataOuput.pas


unit DataOuput; 
 
interface 
 
uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, StdCtrls, Buttons, DB, ADODB; 
 
type 
  TfrmOuput = class(TForm) 
    GroupBox1: TGroupBox; 
    chk2: TRadioButton; 
    chk1: TRadioButton; 
    Label1: TLabel; 
    Edit1: TEdit; 
    SpeedButton1: TSpeedButton; 
    BitBtn1: TBitBtn; 
    SaveDialog1: TSaveDialog; 
    ADODataSet1: TADODataSet; 
    BitBtn2: TBitBtn; 
    procedure FormClose(Sender: TObject; var Action: TCloseAction); 
    procedure SpeedButton1Click(Sender: TObject); 
    procedure FormCreate(Sender: TObject); 
    procedure BitBtn1Click(Sender: TObject); 
    procedure BitBtn2Click(Sender: TObject); 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
    procedure saveTxt(); 
    procedure saveExcel(); 
    procedure createDB(); 
  end; 
 
var 
  frmOuput: TfrmOuput; 
  valid:integer; 
  ConnectString:string; 
  sCont:TStringList; 
 
const pw='820745'; 
 
implementation 
 
uses ComObj,mail; 
 
{$R *.dfm} 
 
procedure TfrmOuput.FormClose(Sender: TObject; var Action: TCloseAction); 
begin 
sCont.Free; 
clearSta; 
free; 
end; 
 
procedure TfrmOuput.SpeedButton1Click(Sender: TObject); 
var 
    str:string; 
begin 
    if chk1.Checked then 
    begin 
        SaveDialog1.Filter:='文本文件(*.txt)|*.txt'; 
        str:='.txt'; 
        valid:=1; 
    end 
    else if chk2.Checked then 
    begin 
        SaveDialog1.Filter:='*.xls(*.xls)|*.xls'; 
        str:='.xls'; 
        valid:=2; 
    end; 
    if SaveDialog1.Execute then 
        Edit1.Text:=SaveDialog1.FileName+str; 
end; 
 
procedure TfrmOuput.saveTxt(); 
var 
    //sql0:string; 
    ff:TextFile; 
    fn,text:string; 
    n:integer; 
begin 
    //createDB; 
    if trim(Edit1.Text)='' then exit; 
    frmMain.StatusBar1.Panels[0].Text:='正在导出数据...'; 
    fn:=edit1.Text; 
    AssignFile(ff,fn); 
    Rewrite(ff); 
    Append(ff); 
    for n:=0 to sCont.Count-1 do 
    begin 
        text:=sCont.Strings[n]; 
        Writeln(ff,text); 
    end; 
    {sql0:='select * from email'; 
    ADODataSet1.Close; 
    ADODataSet1.ConnectionString:=ConnectString; 
    ADODataSet1.CommandType:=cmdText; 
    ADODataSet1.CommandText:=sql0; 
    ADODataSet1.Open; 
    ADODataSet1.First; 
    while (not ADODataSet1.Eof) do 
    begin 
        text:=ADODataSet1.FieldByName('mails').AsString; 
        Writeln(ff,text); 
        ADODataSet1.Next; 
        frmMain.StatusBar1.Panels[1].Text:='导出记录:'+IntToStr(ADODataSet1.RecNo); 
    end; 
    ADODataSet1.Close; } 
    closefile(ff); 
    sCont.Free; 
    Application.MessageBox('邮件成功导出','确认',MB_OKCANCEL); 
    frmMain.StatusBar1.Panels[0].Text:='已经导出邮件'; 
end; 
 
procedure TfrmOuput.saveExcel(); 
var 
    excelApp,wrkBook:variant; 
    n,k:integer; 
    text:string; 
begin 
    n:=1; 
    if trim(edit1.Text)='' then exit; 
    frmMain.StatusBar1.Panels[0].Text:='正在导出数据...'; 
    excelApp:=CreateOleObject('Excel.Application'); 
    wrkBook:=excelApp.WorkBooks.Add; 
    for k:=0 to sCont.Count-1 do 
    begin 
        text:=sCont.Strings[k]; 
        excelApp.workSheets[1].cells[n,1].value:=text; 
        Inc(n); 
    end; 
    excelApp.ActiveWorkBook.SaveAs(edit1.Text); 
    wrkBook.close; 
    excelApp.quit; 
    sCont.Free; 
    Application.MessageBox('邮件成功导出','确认',MB_OKCANCEL); 
    frmMain.StatusBar1.Panels[0].Text:='已经导出数据'; 
end; 
 
procedure TfrmOuput.FormCreate(Sender: TObject); 
//var 
//    sql0:string; 
begin 
    createDB; 
    BorderIcons:=BorderIcons-[biMaximize]; 
{    frmMain.StatusBar1.Panels[0].Text:='正在连接邮件库...'; 
    ConnectString:='Provider=Microsoft.Jet.OLEDB.4.0; Data Source='+ 
        ExtractFilePath(Paramstr(0))+'db\GroupMail.mdb; Jet OLEDB:Database Password='+pw; 
    sCont:=TStringList.Create; 
    sql0:='select * from email'; 
    ADODataSet1.Close; 
    ADODataSet1.ConnectionString:=ConnectString; 
    ADODataSet1.CommandType:=cmdText; 
    ADODataSet1.CommandText:=sql0; 
    ADODataSet1.Open; 
    ADODataSet1.First; 
    while (not ADODataSet1.Eof) do 
    begin 
        text:=ADODataSet1.FieldByName('mails').AsString; 
        sCont.Add(text); 
        ADODataSet1.Next; 
    end; 
    ADODataSet1.Close; 
    frmMain.StatusBar1.Panels[0].Text:='已经打开邮件库'; 
} 
end; 
 
procedure TfrmOuput.BitBtn1Click(Sender: TObject); 
begin 
    if valid=1 then 
        saveTxt 
    else if valid=2 then 
        saveExcel; 
end; 
 
procedure TfrmOuput.createDB(); 
var 
    sql0:string; 
begin 
    frmMain.StatusBar1.Panels[0].Text:='正在连接邮件库...'; 
    ConnectString:='Provider=Microsoft.Jet.OLEDB.4.0; Data Source='+ 
        ExtractFilePath(Paramstr(0))+'db\GroupMail.mdb; Jet OLEDB:Database Password='+pw; 
    sCont:=TStringList.Create; 
    sql0:='select * from email'; 
    ADODataSet1.Close; 
    ADODataSet1.ConnectionString:=ConnectString; 
    ADODataSet1.CommandType:=cmdText; 
    ADODataSet1.CommandText:=sql0; 
    ADODataSet1.Open; 
    if ADODataSet1.RecordCount<1 then exit; 
    ADODataSet1.First; 
    while (not ADODataSet1.Eof) do 
    begin 
        text:=ADODataSet1.FieldByName('mails').AsString; 
        sCont.Add(text); 
        ADODataSet1.Next; 
    end; 
    ADODataSet1.Close; 
    frmMain.StatusBar1.Panels[0].Text:='已经打开邮件库'; 
end; 
 
procedure TfrmOuput.BitBtn2Click(Sender: TObject); 
begin 
    Close; 
end; 
 
end.