当前位置:文档之家› 推荐下载-财务管理系统应用程序设计 精品

推荐下载-财务管理系统应用程序设计 精品

财务管理系统应用程序设计本程序设计的是一个小型商店每天记的流水帐管理程序,没有具体到销售的每一样商品,只是记载了每一笔的收入和支出情况。

经过简单扩充就可以成为一个完整的商店销售管理系统。

下面来说一下本程序的各个模块的功能及数据库的结构。

一、本程序由封面、登录界面、主窗口、打印窗口及关于窗口五部分组成。

主窗口又由增添记录、编辑记录、查询信息、打印数据、管理功能组成。

封面:在启动主程序之前显示一个软件封面,停留大约二秒钟,用于说明本软件的功能版本信息,消除用户等待主程序启动的焦虑(一般用于主程序启动需要较长时间的软件中)登录界面:登录界面产生一个用户的下拉列表,用户可选择相应的用户名称,输入对应的密码进入,选择“取消”终止程序运行。

防止用户以外的人看到密码,密码输入框内的密码用“*”屏蔽。

主窗口:主窗口是本软件的核心,百分之九十的功能代码都在这里实现。

主窗口上方是一组下拉菜单,实现功能的切换和数据的处理。

下面一组标签页实现相应的功能。

最下方的状态条显示当前的时间和日期。

打印窗口:实现所要打印的数据输出之前的预览,可以通过上面的一排功能按钮调整预览效果。

关于窗口:一个小对话框,显示的是本软件的说明信息。

添加记录:该标签页由上面的一组数据明细和下面的控制按钮组成,输入框前的文本提示输入框内存储的内容,输入框内是我们要输入的数据信息,下方的“第一条”,“上一条”,“下一条”,“最后一条”用于浏览数据,右下方的两个按钮用于数据的添加和存储。

编辑记录:该标签页和“添加记录”很相似,增加了一个“删除记录”按钮和“修改记录”按钮。

删除记录前会有一个删除确认对话框出现,防止用户误删数据。

查询信息:由上面的一组查询组件和下面的数据表格组成。

首先在下拉框中选择要查询的字段,然后在右边的文本框内输入要查询的内容,单击“查询”按钮即可在下面的数据表格中显示所需要的信息。

支持模糊查询,可以只输入查询信息的一部分。

单击“全部”按钮将显示全部记录。

打印数据:界面和“查询信息”标签相似,增加了一个“打印数据”按钮。

这样,既可以打印全部信息,又可以只打印查询出来的信息,所打印的数据就是下方数据表格中的数据。

管理功能:包括用户管理和系统初始化功能。

用户管理我们可以增加和删除用户,修改用户登录口令。

初始化功能将清空数据表。

二、数据库的结构设计本程序用到了两个数据表,一个是记的流水帐表,另一个是用户表,全部存在于一个ACCESS2000数据库中(XMJL.MDB)。

下面来说明一下数据表的数据结构XMB表New表程序结构图程序流程图:附程序源代码:program xmjl;usesForms,windows,main in 'main.pas' {Form1},dm in 'dm.pas' {dm2: TDataModule}, about in 'about.pas' {AboutBox}, report in 'report.pas' {qr1: TQuickRep}, logosrc in 'logosrc.pas' {logo},login in 'login.pas' {denglu};{$R *.res}beginApplication.Initialize;logo:=tlogo.Create(application);logo.Show;logo.Update;Application.CreateForm(Tdm2, dm2);Application.CreateForm(Tdenglu, denglu);sleep(1000);logo.Hide;logo.Free;Application.Run;end.unit logosrc;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, jpeg, ExtCtrls;typeTlogo = class(TForm)Image1: TImage;private{ Private declarations }public{ Public declarations }end;varlogo: Tlogo;implementation{$R *.dfm}end.unit login;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Mask, Buttons;typeTdenglu = class(TForm)BitBtn1: TBitBtn;BitBtn2: TBitBtn;boBox1: TboBox;MaskEdit1: TMaskEdit;Label1: TLabel;Label2: TLabel;procedure BitBtn2Click(Sender: TObject);procedure FormCreate(Sender: TObject);procedure BitBtn1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;vardenglu: Tdenglu;implementationuses dm,main;{$R *.dfm}procedure Tdenglu.BitBtn2Click(Sender: TObject);beginapplication.Terminate;end;procedure Tdenglu.FormCreate(Sender: TObject);beginwith dm2.ADOTable1 dobeginopen;first;while not eof dobeginbobox1.Items.Add(fields[0].Value );next;end;bobox1.ItemIndex :=0;end;end;procedure Tdenglu.BitBtn1Click(Sender: TObject);beginwith dm2.ADOTable1 dobeginif locate('us',bobox1.Text,[]) thenbeginif maskedit1.text=fields[1].Value thenbeginhide;with tform1.Create(self) doshowmodal;end;application.Terminate ;end;end;end;end.unit main;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Ctrls, ToolWin, Menus, DBActns, ActnList, DB,ExtCtrls, StdCtrls, Mask, DBCtrls, ImgList, Buttons, Grids, DBGrids;typeTForm1 = class(TForm)PageControl1: TPageControl;StatusBar1: TStatusBar;TabSheet1: TTabSheet;TabSheet2: TTabSheet;TabSheet3: TTabSheet;TabSheet5: TTabSheet;MainMenu1: TMainMenu;N1: TMenuItem;N2: TMenuItem;N4: TMenuItem;N5: TMenuItem;N8: TMenuItem;N9: TMenuItem;N10: TMenuItem;N12: TMenuItem;N13: TMenuItem;N14: TMenuItem;N15: TMenuItem;N16: TMenuItem;N17: TMenuItem;N18: TMenuItem; DataSource1: TDataSource; ActionList1: TActionList; DataSetFirst1: TDataSetFirst; DataSetPrior1: TDataSetPrior; DataSetNext1: TDataSetNext; DataSetLast1: TDataSetLast; DataSetInsert1: TDataSetInsert; DataSetDelete1: TDataSetDelete; DataSetEdit1: TDataSetEdit; DataSetPost1: TDataSetPost; Panel1: TPanel;Panel2: TPanel;Label1: TLabel;Label2: TLabel;Label3: TLabel;Label4: TLabel;Label5: TLabel;DBEdit1: TDBEdit;DBEdit2: TDBEdit;DBEdit9: TDBEdit;DBEdit10: TDBEdit;DBEdit11: TDBEdit;Panel3: TPanel;BitBtn1: TBitBtn;BitBtn2: TBitBtn;BitBtn3: TBitBtn;BitBtn4: TBitBtn;ImageList1: TImageList;BitBtn5: TBitBtn;BitBtn10: TBitBtn;Label25: TLabel;Label26: TLabel;Panel4: TPanel;BitBtn6: TBitBtn;BitBtn8: TBitBtn; BitBtn9: TBitBtn; BitBtn11: TBitBtn; BitBtn12: TBitBtn; BitBtn13: TBitBtn; Panel8: TPanel; DBGrid1: TDBGrid; Panel9: TPanel; Label27: TLabel; boBox1: TboBox; Label28: TLabel;Edit1: TEdit;BitBtn14: TBitBtn; BitBtn15: TBitBtn; Panel13: TPanel; DBGrid3: TDBGrid; Panel14: TPanel; Label59: TLabel; Label60: TLabel; boBox3: TboBox; Edit3: TEdit;BitBtn18: TBitBtn; BitBtn19: TBitBtn; BitBtn21: TBitBtn; Timer1: TTimer; Label6: TLabel; DBEdit3: TDBEdit; Panel5: TPanel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label14: TLabel; DBEdit4: TDBEdit; DBEdit5: TDBEdit; DBEdit6: TDBEdit; DBEdit7: TDBEdit; DBEdit8: TDBEdit; DBEdit12: TDBEdit; TabSheet4: TTabSheet;GroupBox1: TGroupBox;SpeedButton1: TSpeedButton;DBGrid2: TDBGrid;DBEdit13: TDBEdit;DBEdit14: TDBEdit;DBNavigator1: TDBNavigator;Label15: TLabel;Label16: TLabel;DataSource2: TDataSource;procedure N9Click(Sender: TObject);procedure N10Click(Sender: TObject);procedure N12Click(Sender: TObject);procedure N8Click(Sender: TObject);procedure N14Click(Sender: TObject);procedure N5Click(Sender: TObject);procedure BitBtn5MouseUp(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);procedure filldata(sender:tbobox);procedure search(f1:tbobox;t1:tedit);procedure dispall;procedure FormActivate(Sender: TObject);procedure BitBtn14Click(Sender: TObject);procedure BitBtn15Click(Sender: TObject);procedure BitBtn13Click(Sender: TObject);procedure BitBtn17Click(Sender: TObject);procedure BitBtn21Click(Sender: TObject);procedure Timer1Timer(Sender: TObject);procedure BitBtn11MouseUp(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);procedure BitBtn18Click(Sender: TObject);procedure SpeedButton1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementationuses about,dm,report,login;{$R *.dfm}procedure TForm1.N9Click(Sender: TObject);begintabsheet2.Show;end;procedure TForm1.N10Click(Sender: TObject);begintabsheet3.Show;end;procedure TForm1.N12Click(Sender: TObject);begintabsheet5.Show;end;procedure TForm1.N8Click(Sender: TObject);begintabsheet1.Show;end;procedure TForm1.N14Click(Sender: TObject);beginapplication.Terminate ;end;procedure TForm1.N5Click(Sender: TObject);beginwith taboutbox.Create(self) doShowModal ;end;procedure TForm1.BitBtn5MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begindbedit1.Text:=inttostr(dm2.adoquery1.RecordCount+1);dbedit2.SetFocus;end;procedure TForm1.filldata(sender:tbobox);variCount: Integer; //将从数据模块中取得的数据库表的字段名填入boBox中beginsender.Items.Clear; //首先清空boBox中Items的值for iCount := 0 to DM2.ADOQuery1.Fields.Count - 2 dobeginsender.Items.Add(DM2.ADOQuery1.Fields[iCount].FieldName); //加入字段名DM2.ADOQuery1.Next; //向下移动到下一个字段end;sender.ItemIndex := 0; //设置表单刚出现时boBox的值为第一个end;procedure TForm1.search(f1:tbobox;t1:tedit); //自定义过程search(在数据库中搜寻指定条件的数据)varSearchField: string; //要查找的字段名SearchValue: string; //要查找的字段值beginSearchField := Trim(f1.Text); //将boBox的值赋给SearchFieldSearchValue := '%' + Trim(t1.Text) + '%'; //将Edit的值赋给SearchFieldwith DM2.ADOQuery1 dobeginclose; //先关闭数据模块中的ADOQuerysql.Clear; //清空ADOQuery中的SQL值sql.Add('select * from xmb where ' + SearchField + ' like ''' +SearchV alue + ''''); //进行数据查询的SQL语句(SearchFidel和SearchValue// 分别赋到SQL语句中end;Dm2.ADOQuery1.Open; //打开数据模块中的ADOQueryend;procedure TForm1.FormActivate(Sender: TObject);beginfilldata(bobox1);filldata(bobox3);tabsheet1.Show;end;procedure TForm1.BitBtn14Click(Sender: TObject);beginsearch(bobox1,edit1);end;procedure TForm1.BitBtn15Click(Sender: TObject);begindispall;end;procedure TForm1.dispall;beginwith dm2.ADOQuery1 dobeginclose;sql.clear;sql.Add('select * from xmb');open;end;end;procedure TForm1.BitBtn13Click(Sender: TObject);beginif MessageDlg('你确信要删除记录?',mtwarning,[mbok,mbcancel],0)=mrok thenDM2.ADOQuery1.Delete;end;procedure TForm1.BitBtn17Click(Sender: TObject);begindispall;end;procedure TForm1.BitBtn21Click(Sender: TObject);beginwith tqr1.Create(self) doPreview;end;procedure TForm1.Timer1Timer(Sender: TObject);beginstatusbar1.Panels[3].Text :=timetostr(now);statusbar1.Panels[4].Text :=formatdatetime('yyyy年MM月dd日',now); end;procedure TForm1.BitBtn11MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begindbedit12.SetFocus;end;procedure TForm1.BitBtn18Click(Sender: TObject); beginsearch(bobox3,edit3);end;procedure TForm1.SpeedButton1Click(Sender: TObject); beginwith dm2.ADOQuery1 dobeginclose;sql.Clear;sql.Add('delete * from xmb');ExecSQL;close;sql.Clear;sql.Add('select * from xmb');open;end;end;end.unit dm;interfaceusesSysUtils, Classes, ADODB, DB;typeTdm2 = class(TDataModule)ADOConnection1: TADOConnection;ADOQuery1: TADOQuery;ADOQuery1DSDesigner: TWideStringField;ADOQuery1DSDesigner2: TBCDField;ADOQuery1DSDesigner3: TBCDField;ADOQuery1DSDesigner4: TDateTimeField;ADOQuery1DSDesigner5: TWideStringField;ADOQuery1total: TCurrencyField;ADOTable1: TADOTable;procedure ADOQuery1CalcFields(DataSet: TDataSet); private{ Private declarations }public{ Public declarations }end;vardm2: Tdm2;implementation{$R *.dfm}procedure Tdm2.ADOQuery1CalcFields(DataSet: TDataSet); beginadoquery1total.Value :=ADOQuery1DSDesigner2.Value -ADOQuery1DSDesigner3.value ; end;end.unit report;interfaceuses Windows, SysUtils, Messages, Classes, Graphics, Controls, StdCtrls, ExtCtrls, Forms, QuickRpt, QRCtrls, DB, ADODB;typeTqr1 = class(TQuickRep)ColumnHeaderBand1: TQRBand;TitleBand1: TQRBand;QRLabel1: TQRLabel;DetailBand1: TQRBand;QRLabel2: TQRLabel;QRLabel3: TQRLabel;QRLabel4: TQRLabel;QRLabel5: TQRLabel;QRLabel6: TQRLabel;QRLabel7: TQRLabel;QRDBText1: TQRDBText;QRDBText2: TQRDBText;QRDBText3: TQRDBText;QRDBText4: TQRDBText;QRDBText5: TQRDBText;QRDBText6: TQRDBText;QRShape1: TQRShape;QRShape2: TQRShape;QRShape3: TQRShape;QRShape7: TQRShape;QRShape8: TQRShape;QRShape9: TQRShape;SummaryBand1: TQRBand;QRSysData1: TQRSysData;QRLabel8: TQRLabel;QRLabel9: TQRLabel;QRSysData2: TQRSysData;QRLabel10: TQRLabel;QRSysData3: TQRSysData;privatepublicend;varqr1: Tqr1;implementationuses dm;{$R *.DFM}end.unit about;interfaceuses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Buttons, ExtCtrls;typeTAboutBox = class(TForm)Panel1: TPanel;ProgramIcon: TImage;ProductName: TLabel;V ersion: TLabel;Copyright: TLabel;ments: TLabel;OKButton: TButton;private{ Private declarations } public{ Public declarations } end;varAboutBox: TAboutBox;implementation{$R *.dfm}end.。

相关主题