- 相關推薦
delphi+sql辦公自動化系統(+開題報告源程序+論文正文+外文
中文摘要
辦公自動化系統企事業單位辦公管理人員日常工作的調度、安排、計劃。文件撰寫、歸檔、調用、傳真、打印等提供充足的信息和快捷的查詢手段.其開發內容主要包括后臺數據庫的建立和維護以及前端應用程序的開發兩個方面。利用DELPHI 6.0軟件及其提供的各種面向對象的開發工具,建立完整性強、安全性好的數據庫,開發出功能完備,易使用的應用程序。經過調試、編譯與實現,該程序界面友好、程序設計風格樸素,使用起來美觀大方、方便易用。尤其是系統的“報表生成模塊”的功能極大的減輕工作人員的工作量,并以快速、準確等優點取代人工操作,提高了管理工作效率。
關鍵詞 : DELPHI 6.0 管理信息系統 數據庫 模塊 辦公自動化系統
引 言 1
1 Delphi語言概述 2
1.1 Delphi簡介 2
1.2 數據庫系統簡介 5
1.3 本應用軟件的基本介紹 7
2 本應用程序的構成和開發步驟 9
2.1 可行性研究 10
2.1.1 經濟可行性 11
2.1.2 時間可行性 12
2.1.3 技術可行性 13
2.1.4 社會可行性 14
2.2 數據庫的建立和連接 15
2.3 系統的總體設計 17
3 本程序的技術實現及具體功能 21
3.1 登錄的界面與程序設計實現 24
3.2 客戶信息界面與代碼設計實現 34
3.3 發送通知界面與代碼設計實現45
3.4 人事調動信息界面與代碼設計52
3.5 主界面設計與代碼設計 55
結 論 60
致 謝 61
參 考 文 獻 62
引 言
隨著經濟的發展,社會的進步,計算機越來越深入到我們日常的工作學習及生活中,成為我們日常生活中不可缺少的輔助工具。 隨著科學技術的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域并發揮著越來越重要的作用。它已經深入到日常工作和生活的方方面面,比如文字處理、信息管理、輔助設計、圖形圖像處理、教育培訓以及游戲娛樂等。各行各業的人們無須經過特別的訓練就能夠使用電腦完成許許多多復雜的工作。然而,雖然現在世界上已經充滿了多如牛毛的各種軟件,但它們依然不能滿足用戶的各種特殊需要,人們還不得不開發適合自己特殊需求的軟件。以前開發Windows應用軟件是專業人員的工作,需要掌握許多專業知識和經過特殊的培訓才能勝任,F在不同了,即使你沒有接受過嚴格的程序設計訓練,使用Delphi編程語言也一樣能夠開發出功能強大、適合自己特殊需求的應用程序了。Delphi編程語言繼承了其他語言易學易用的特點,特別適合于初學者學習Windows系統編程。 辦公自動化系統企事業單位辦公管理人員日常工作的調度、安排、計劃。文件撰寫、歸檔、調用、傳真、打印等提供充足的信息和快捷的查詢手段.其開發內容主要包括后臺數據庫的建立和維護以及前端應用程序的開發兩個方面。貨運管理系統是典型的信息管理系統(MIS),其開發主要包括后臺數據庫的建立和維護以及前端應用程序的開發兩個方面。對于前者要求建立起數據一致性和完整性強、數據安全性好的庫。而對于后者則要求應用程序功能完備,易使用等特點。 經過分析,我們使用 Delphi編程語言開發工具,利用其提供的各種面向對象的開發工具,尤其是數據窗口這一能方便而簡潔操縱數據庫的智能化對象,首先在短時間內建立系統應用原型,然后,對初始原型系統進行需求迭代,不斷修正和改進,直到形成用戶滿意的可行系統。
因為本人能力有限,加上時間緊迫,所以設計出來的本系統可能功能比較簡單,另外本系統是單機版,不能實現網絡互聯操作,這些都有待于我在以后的工作學習中進一步改進。
Delphi簡介
1.1 Delphi簡介
Delphi是Inprise公司出品的一個優秀的可視化程序開發工具軟件,它短小精悍,但功能卻可以與龐大的visual c++媲美。它易學易用,如同VB,因而被稱為“第四代編程語言”。
從1995年推出Delphi1.0至今已經經歷了7個版本,Delphi7.0運行在win9x或winme,win2000,winxp,windowsNT等操作系統下,是一個32位的應用程序開發工具。這里把“VB”比作是傻瓜相機,Delphi是帶有自動功能的專業相機。前些年,軟件界流行一句話叫“真正的程序員用VC,聰明的程序員用Delphi”。也有的把Delphi稱作VB殺手。
1.2 數據庫系統簡介
數據庫系統是一個實際可運行的存儲、維護和應用系統提供數據的軟件系統,是存儲介質、處理對象和管理系統的集合體。它通常由軟件、數據庫和數據管理員組成。其軟件主要包括操作系統、各種宿主語言,實用程序以及數據庫管理系統。數據庫是依照某種數據模型組織起來并存放二級存儲器中的數據集合。這些數據為多個應用服務,獨立于具體的應用程序。數據庫由數據庫管理系統統一管理,數據的插入、修改和檢索均要通過數據庫管理系統進行。數據庫管理系統是一種系統軟件,它的主要功能是維護數據庫并有效地訪問數據庫中任意部分數據。對數據庫的維護包括保持數據的完整性、一致性和安全性。數據管理員負責創建、監控和維護整個數據庫,使數據能被任何有權使用的人有效使用。數據庫管理員一般是由業務水平較高、資歷較深的人員擔任。
數據庫系統的個體含義是指一個具體的數據庫管理系統軟件和用它建立起來的數據庫;它的學科含義是指研究、開發、建立、維護和應用數據庫系統所涉及的理論、方法、技術所構成的學科。在這一含義下,數據庫系統是軟件研究領域的一個重要分支,常稱為數據庫領域。 數據庫研究跨越于計算機應用、系統軟件和理論三個領域,其中應用促進新系統的研制開發,新系統帶來新的理論研究,而理論研究又對前兩個領域起著指導作用。數據庫系統的出現是計算機應用的一個里程碑,它使得計算機應用從以科學計算為主轉向以數據處理為主,并從而使計算機得以在各行各業乃至家庭普遍使用。在它之前的文件系統雖然也能處理持久數據,但是文件系統不提供對任意部分數據的快速訪問,而這對數據量不斷增大的應用來說是至關重要的。為了實現對任意部分數據的快速訪問,就要研究許多優化技術。這些優化技術往往很復雜,是普通用戶難以實現的,所以就由系統軟件(數據庫管理系統)來完成,而提供給用戶的是簡單易用的數據庫語言。由于對數據庫的操作都由數據庫管理系統完成,所以數據庫就可以獨立于具體的應用程序而存在,從而數據庫又可以為多個用戶所共享。因此,數據的獨立性和共享性是數據庫系統的重要特征。數據共享節省了大量人力物力,為數據庫系統的廣泛應用奠定了基礎。數據庫系統的出現使得普通用戶能夠方便地將日常數據存入計算機并在需要的時候快速訪問它們,從而使的計算機走出科研機構進入各行各業、進入家庭。
1.3 本應用軟件的基本介紹
本應用軟件先是打開一個啟動窗口,就可以進入應用程序的主窗口了。主界面是一個圖型界面窗口,整個平臺顯示采用人性化方式,可以非常方便的系統管理、字典維護、抄表,報表管理等基本信息,管理日常經營的基本情況,通過各種條件查詢出水電管理的基本信息,以及打印出查詢出的基本信息,總之一切水電管理基本信息都會顯示在系統平臺上,大大提高了管理人員的工作效率。
本應用程序的構成和開發步驟
下面從軟件工程的角度介紹本程序的基本開發步驟。Delphi 應用程序一般包含以下三個基本部分: 應用程序運行的接口:負責系統整體環境的設置,運行狀態的監視,應用程序的啟動等。 應用程序的主體:主要完成用戶的業務邏輯功能,如系統參數配置,字典維護,抄表,報表生成.等信息.
應用程序的輔助部分:協助程序主體完成的一些工作。 下面從軟件工程的角度描述本程序的開發生命周期,開發過程和組織過程。
2.1 可行性研究
任何一個系統或一項工程,在建立之前,必須首選進行可行性分析,可行性分析包括兩層含義,一是可能性,二是必要性。可能性指開發信息系統的條件是否具備,必要性是指客觀上是否真正需要,通過可行性研究,可避免盲目投資,減少政治性要的損失。下面從四方面來討論:
2.1.1 經濟可行性
主要是只指算一個新的系統開發所需要的投資費用和運算費用,并與估計的新系統收益進行比較,看是否有利。本系統所需的軟硬件成本比較低,投資小,具有一定的通過性,因此 ,在經濟上是可行的。
2.1.2 時間可行性
主要包括系統在目前環境下能否正常運行,運行后所引起的各方面,以及這些變化對社會或人的因素所產生的影響。本系統對人事的管理比較全面,可長期使用。
2.1.3 技術可行性
利用現有的設備,軟件及技術人員,新系統的目標能否達到,這也是可行性研究中需要考慮的一個問題。關系型數據庫的高速發展使管理信息系統具備了良好的開發環境。本系統使用的Delphi 普及性好,操作簡單,用戶可以很快掌握使用方法,因此,在技術上是完全可行的。
2.1.4 社會可行性
人類社會文明的發展已進入信息化的高速發展時期,傳統的手工方式支持下的管理模式,已經不能滿足各方面的需要。開發本系統的目標不僅是提高工作效率,減輕勞動強度,而且減少出錯率,具有很好的社會意義。
2.2 數據庫的建立和連接
這個程序采用的數據庫是SQL,Delphi作為數據庫的前臺開發工具,必須與后臺數據庫進行連接,這樣才能控制和進行操作數據庫,數據庫的連接方式有兩種,ODBC和ADO。
ODBC是數據庫的通用接口,其缺點是效率低;專用接口調用直接速度快,但是通用性差,如果用ODBC連接數據庫一般要兩個步驟:1.要創建數據源;2.創建描述文件。數據庫的建立則時在SQL中建立的,在這里你可以設置數據庫的密碼,對數據庫進行保護。在創建數據源時可以通過BDE administrator進行創建,也可以通過系統控制面板中的ODBC數據源進行建立。而描述文件則可以在Delphi的主程序中用Database Profile中進行建立,之后進行數據庫的連接。接下來的工作是建表。同樣建表的過程也不是唯一的,但是最終實現的結果是唯一的。你可以通過Access進行建表,也可以通過在 delphi 主程序中建表,也可以通過powerdesigner進行可視化的建立,不過用這種方法,在導入的時候要把數據庫要先斷開,否則數據庫的數據容易丟失。建表的過程注意規范化命名規則,如表的字段名等等。同時也要注意表的字段長度和可否為空。因為以后要設計到主鍵,外鍵的問題。如果字段名不同,同一字段長度不同則主鍵和外鍵將會連接不上。可見建表時應做好全局的打算。我在程序開發的初期,同樣犯了這個錯誤,導致數據庫出錯,有時還要向表中新加入字段。導致數據窗口不好用的連鎖反映。
2.3 系統的總體設計
這個管理系統從4月1日開始著手設計開發,經過一段時間的分析,并根據對水電管理的具體要求及需要本軟件實現的功能,將本軟件分為5個大的模塊,分別是:第一部分:系統管理;第二部分:員工管理;第三部分:客戶管理; 第四部分:業務管理;第五部分:賬目管理;第六部分:賬目管理;第七部分:統計分析;
程序流程圖如下:
3 本程序的技術實現及具體功能
登錄的界面與程序設計實現
unit UlogIn;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls, Buttons;
type
TfrmLogIn = class(TForm)
Image1: TImage;
Bevel1: TBevel;
Label1: TLabel;
ComboBox1: TComboBox;
Label2: TLabel;
Label3: TLabel;
Edit2: TEdit;
Bevel2: TBevel;
Bevel3: TBevel;
bbtnOK: TBitBtn;
bbtnCancel: TBitBtn;
ComboBox2: TComboBox;
procedure bbtnCancelClick(Sender: TObject);
procedure ComboBox1DropDown(Sender: TObject);
procedure bbtnOKClick(Sender: TObject);
procedure ComboBox2DropDown(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmLogIn: TfrmLogIn;
LogTimes:Integer=0;
DeptName:string;
LogInTime:TDateTime;
UserName:string;
implementation
uses Umain, MyData, UtodayWork;
{$R *.dfm}
procedure TfrmLogIn.bbtnCancelClick(Sender: TObject);
begin
Application.Terminate;
end;
procedure TfrmLogIn.ComboBox1DropDown(Sender: TObject);
begin
ComboBox1.Items.Clear;
with dm.AQDept do
begin
close;
sql.Clear;
sql.Add('select distinct department from Users');
open;
first;
while not dm.AQDept.Eof do
begin
ComboBox1.Items.Add(dm.AQDept.FieldValues['department']);
dm.AQDept.Next;
end;
end;
end;
procedure TfrmLogIn.bbtnOKClick(Sender: TObject);
begin
if Edit2.Text='' then
begin
ShowMessage('用戶密碼不能為空!');
Exit;
end;
with dm.AQDept do
begin
close;
sql.Clear;
sql.Add('select * from Users where Department='''+Trim(ComboBox1.Text)+'''and UserName='''+Trim(ComboBox2.Text)+''' and PWD='''+frmMain.Encrypt(Trim(Edit2.Text))+'''');
open;
end;
if dm.AQDept.Eof then
begin
LogTimes:=LogTimes+1;
if LogTimes<3 then
begin
MessageBox(handle,pchar('密碼第'+IntToStr(LogTimes)+'次錯誤,請重新輸入!'),'密碼錯誤',MB_OK OR MB_ICONERROR);
Edit2.Text:='';
Edit2.SetFocus;
end
else
begin
MessageBox(handle,'密碼錯誤三次程序將關閉!','密碼錯誤',MB_ICONERROR);
Application.Terminate;
end;
end
else if dm.AQDept.RecordCount<>0 then
begin
DeptName:=Trim(ComboBox1.Text);
UserName:=Trim(ComboBox2.Text);
LogInTime:=Now;
self.Close;
end;
end;
procedure TfrmLogIn.ComboBox2DropDown(Sender: TObject);
begin
if ComboBox1.ItemIndex<0 then
begin
ShowMessage('請先選擇該用戶所在的部門!');
Exit;
end;
ComboBox2.Items.Clear;
with dm.AQDept do
begin
close;
sql.Clear;
sql.Add('select * from Users where Department='''+Trim(comboBox1.Text)+'''');
open;
first;
while not dm.AQDept.Eof do
begin
ComboBox2.Items.Add(dm.AQDept.FieldValues['UserName']);
dm.AQDept.Next;
end;
end;
end;
end.
客戶信息界面與代碼設計實現
unit Ucustom;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, ExtCtrls, Buttons, Grids, DBGrids, ImgList,
Menus, Mask, DBCtrls;
type
TfrmCustomer = class(TForm)
Panel2: TPanel;
Splitter1: TSplitter;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
bbtnNew: TBitBtn;
bbtnModify: TBitBtn;
bbtnDel: TBitBtn;
bbtnExit: TBitBtn;
ImageList1: TImageList;
GroupBox4: TGroupBox;
DBGrid3: TDBGrid;
PopupMenu1: TPopupMenu;
A1: TMenuItem;
B1: TMenuItem;
C1: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N8: TMenuItem;
GroupBox5: TGroupBox;
DBGrid1: TDBGrid;
GroupBox1: TGroupBox;
TreeView1: TTreeView;
HeaderControl1: THeaderControl;
ComboBox1: TComboBox;
Edit8: TEdit;
DBEdit4: TDBEdit;
DBEdit9: TDBEdit;
DBGrid2: TDBGrid;
bbtnShowAll: TBitBtn;
procedure bbtnNewClick(Sender: TObject);
procedure bbtnModifyClick(Sender: TObject);
procedure bbtnExitClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ComboBox1DropDown(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TreeView1Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure bbtnDelClick(Sender: TObject);
procedure A1Click(Sender: TObject);
procedure B1Click(Sender: TObject);
procedure C1Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure DBGrid2DblClick(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure bbtnShowAllClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmCustomer: TfrmCustomer;
implementation
uses MyData, Ufamily, Uconnact, UtodayWorkRecord, UcustomerAdd,
UcustomerUpdate;
{$R *.dfm}
procedure TfrmCustomer.bbtnNewClick(Sender: TObject);
begin
frmCustomerAdd.Show;
end;
procedure TfrmCustomer.bbtnModifyClick(Sender: TObject);
begin
if self.DBGrid1.DataSource.DataSet.IsEmpty then
begin
ShowMessage('沒有要修改的記錄,請選擇記錄后再試!');
Exit;
end
else
begin
frmCustomerUpdate.Show;
end;
end;
procedure TfrmCustomer.bbtnExitClick(Sender: TObject);
begin
close;
end;
procedure TfrmCustomer.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmCustomer.ComboBox1DropDown(Sender: TObject);
begin
ComboBox1.Items.Clear;
with dm.AQCustName do
begin
close;
sql.Clear;
sql.Add('select distinct DeptName from Customers');
open;
first;
while not Eof do
begin
ComboBox1.Items.Add(FieldValues['DeptName']);
next;
end;
end;
end;
procedure TfrmCustomer.FormShow(Sender: TObject);
var
node1,node2 :TTreeNode;
secoder :string;
first:string;
kind:string ;
begin
ComboBox1.Text :='';
TreeView1.Items.Clear;
with dm.AQCustName do
begin
close;
sql.Clear;
sql.Add('select distinct Intension from Customers');
open;
end;
dm.AQCustName.First;
while not dm.AQCustName.Eof do
begin
first:= dm.AQCustName.fieldbyname('Intension').AsString;
node1:=treeview1.Items.AddChild(nil,first);
node1.ImageIndex :=0;
node1.SelectedIndex :=0;
node1.StateIndex :=-1;
kind:=first;
with dm.AQDeptName do
begin
close;
sql.Clear;
sql.Add('select distinct DeptName from Customers where Intension='''+kind+'''');
open;
end;
dm.AQDeptName.First;
while not dm.AQDeptName.Eof do
begin
secoder:=dm.AQDeptName.fieldbyname('DeptName').AsString;
node2 :=treeview1.Items.AddChild(node1,secoder);
node2.ImageIndex :=1;
node2.SelectedIndex :=1;
node2.StateIndex :=-1;
dm.AQDeptName.Next;
end;
dm.AQCustName.Next;
end;
end;
procedure TfrmCustomer.TreeView1Click(Sender: TObject);
begin
if treeview1.Selected.Level=0 then
begin
with dm.AQCustInfo do
begin
close;
sql.Clear;
sql.Add('select * from Customers where Intension='''+treeview1.Selected.Text+'''');
open;
dm.ATCustInfo.Clone(dm.AQCustInfo);
end;
end
else
begin
with dm.AQCustInfo do
begin
close;
sql.Clear;
sql.Text :='select * from Customers where DeptName='''+treeview1.Selected.Text+''' '+
' and Intension='''+TreeView1.Selected.Parent.Text+'''';
open;
dm.ATCustInfo.Clone(dm.AQCustInfo);
end;
end;
end;
procedure TfrmCustomer.ComboBox1Change(Sender: TObject);
var
Tempstr:string;
i:integer;
begin
TempStr:=Trim(ComboBox1.Text);
if TreeView1.Items.GetFirstNode.Text=TempStr then
begin
TreeView1.Items.GetFirstNode.Selected:=True;
end
else
begin
for i:=1 to TreeView1.Items.Count do
begin
if TreeView1.Items.Item[i].Text=TempStr then
begin
TreeView1.SetFocus;
TreeView1.Items.Item[i].Selected :=True;
Break;
end
else
Continue;
end;
end;
end;
procedure TfrmCustomer.N1Click(Sender: TObject);
begin
bbtnNew.Click;
end;
procedure TfrmCustomer.N2Click(Sender: TObject);
begin
bbtnModify.Click;
end;
procedure TfrmCustomer.N3Click(Sender: TObject);
begin
bbtnDel.Click;
end;
procedure TfrmCustomer.N9Click(Sender: TObject);
begin
frmFamily.bbtnAdd.Click;
frmFamily.Show;
end;
procedure TfrmCustomer.bbtnDelClick(Sender: TObject);
var
Customerid,CustomerName:string;
begin
Customerid :=dm.ATCustInfo.FieldByName('CustomerID').AsString;
CustomerName:=dm.ATCustInfo.fieldbyname('Cusname').AsString;
if self.DBGrid1.DataSource.DataSet.IsEmpty then
begin
ShowMessage('沒有要刪除的記錄,請選擇記錄后再試!');
Exit;
end
else if MessageBox(self.Handle,'將刪除與該客戶的項目和家庭成員信息,確定嗎?','警告',MB_OKCANCEL+MB_ICONWARNING+MB_DefButton2)=IDOk then
begin
dm.ATCustInfo.Delete;
with dm.AQItems do
begin
close;
sql.Clear;
sql.Add('delete from ProjectItem where Customname='''+CustomerName+'''');
ExecSQL;
end;
with dm.AQCustInfo do
begin
close;
sql.Clear;
sql.Add('delete from Family where CustomerID='''+Customerid+'''');
ExecSQL;
end;
with dm.AQService do
begin
close;
sql.Clear;
sql.Add('delete from Service where SerName='''+CustomerName+'''');
ExecSQL;
end;
end;
end;
procedure TfrmCustomer.A1Click(Sender: TObject);
var
CustomerId :string;
begin
CustomerId :=dm.ATCustInfo.FieldValues['CustomerID'];
try
if Application.MessageBox('您確實要把此客戶移到A區嗎?','系統提示',MB_YESNO)=6 then
begin
with dm.AQCustInfo do
begin
close;
sql.Clear;
sql.Text :='update Customers set Intension=''一定'' where CustomerID='''+CustomerId+'''';
ExecSql;
end;
showmessage('成功移動到A區!');
self.FormShow(Sender);
end;
except
showmessage('移動到A區失敗!');
end;
end;
procedure TfrmCustomer.B1Click(Sender: TObject);
var
CustomerId :string;
begin
CustomerId :=dm.ATCustInfo.FieldValues['CustomerID'];
try
if Application.MessageBox('您確實要把此客戶移到B區嗎?','系統提示',MB_YESNO)=6 then
begin
with dm.AQCustInfo do
begin
close;
sql.Clear;
sql.Text :='update Customers set Intension=''初定'' where CustomerID='''+CustomerId+'''';
&enForm(TfrmLogdaily,frmLogdaily,self);
end;
procedure TfrmMain.FormShow(Sender: TObject);
begin
frmLogIn.ShowModal;
OpenForm(TfrmTodayWork,frmTodayWork,self);
end;
procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if MessageBox(self.Handle,'您確定真的要退出系統嗎?','提示',MB_OKCANCEL+MB_DefButton2+MB_ICONINFORMATION)=idOK then
Canclose:=True
else
Canclose:=False;
end;
procedure TfrmMain.Timer1Timer(Sender: TObject);
begin
StatusBar1.Panels[0].Text:='使用者:'+DeptName+'|'+UserName+' '+'登錄時間:'+DateTimeToStr(LogInTime);
StatusBar1.Panels[1].Text:='系統時間:'+TimeToStr(Now);
StatusBar1.Panels[2].Text:='使用時間:'+TimeGetStamp(TimeToStr(LogInTime));
StatusBar1.Panels[3].Text:='版權所有:南都信息網';
end;
procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
AddLogin;
Action := caFree;
end;
procedure TfrmMain.N1Click(Sender: TObject);
begin
OpenForm(TfrmServerChart,frmServerChart,self);
end;
procedure TfrmMain.N2Click(Sender: TObject);
begin
OpenForm(TfrmTotal,frmTotal,self);
end;
procedure TfrmMain.AboutClick(Sender: TObject);
begin
OpenForm(TfrmAbout,frmAbout,self);
end;
procedure TfrmMain.ExitClick(Sender: TObject);
begin
Application.Terminate;
end;
procedure TfrmMain.N3Click(Sender: TObject);
begin
OpenForm(TfrmTotal,frmTotal,self);
end;
procedure TfrmMain.N5Click(Sender: TObject);
begin
OpenForm(TfrmSendMsg,frmSendMsg,self);
end;
end.
總 結
辦公自動化系統是一個典型的信息管理系統,其主要通過軟件工程方面的選擇課題、需求分析、總體設計、選用工具、程序模塊、系統測試等幾個步驟來實現。開發本系統的過程中,首先要對水電管理進行系統調研,熟悉其中的系統設置、水電費用計算的流程、步驟;其次在系統需求分析過程中,要透過現象看本質,敏銳觀察到水電管理中存在的各種問題,并在總體設計把握好對問題的分析、理解,進而解決問題;選用開發工具要選用自己最熟悉、應用較多的開發工具,本系統開發選用DELPHI 6.0,其具有語言簡單、功能強大、組件眾多的優點。程序模塊的編制中,重點把握系統內部完整性、功能性、實用性、便捷性,使其能夠協調統一、運行無誤。
致 謝
我首先感謝我的指導老師呂老師,在他嚴格的要求下我懂得了開發軟件要有一種極其認真負責的態度。無論做什么事都要大膽的去想去做,這樣會有好的創意,才能更有作為。
在這里我還要感謝我們宿舍的其它5個同學。他們和我共同生活了四年,在生活和學習上給了我很大的幫助。
參 考 文 獻
1 張春林.Delphi 6程序設計導學.北京:清華大學出版社,2002.5
2 飛思科技. Delphi6開發者手冊. 北京:電子工業出版社,2002.3
3 飛思科技. Delphi6數據庫開發. 北京:電子工業出版社, 2002.1
4 丁寶康.數據庫原理. 北京:經濟科學出版社,2004.1
5 何旭洪.Delphi 6.0數據庫系統開發實例導航.北京:人民郵電出版社, 2002.4
6周璋鵬. 基于B/S結構的學生信息管理系統垢研究與開發.西北電力技術.2003,31(4):15~17,26
7 李全彬, 顧明亮. 基于ASP技術的學生信息管理系統的研究與開發. 徐州師范大學學報(自然科學版).2001,19(2):25~28
8 谷軍.用Authorware開發學生信息管理系統.計算機與與現代化.2003(7):40~41,44
9李丹榮,杜維.基于Delphi6.0的實時數據采集與分析系統 機電工程.2003,20(5): 64~67
【delphi+sql辦公自動化系統+開題報告源程序+論文正文+外文】相關文章:
論文開題報告和正文的聯系03-15
論文開題報告和正文的格式要求03-15
論文開題報告及正文寫作方法12-03
排課系統的實現Delphi+SQL11-23
家庭理財系統Delphi+SQL11-23
旅游網站系統的設計論文開題03-20
論文正文標準格式08-25
世界杯投注系統Delphi+SQL03-08
網站教學管理系統論文開題報告范文模板03-29