版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
财务管理系统应用程序设计
本程序设计的是一个小型商店每天记的流水帐管理程序,没有具体到销售的每一
样商品,只是记载了每一笔的收入和支出情况。经过简单扩充就可以成为一个完整
的商店销售管理系统。下面来说一下本程序的各个模块的功能及数据库的结构。
一、本程序由封面、登录界面、主窗口、打印窗口及关于窗口五局部组成。主窗
口又由增添记录、编辑记录、查询信息、打印数据、管理功能组成。
封面:在启动主程序之前显示一个软件封面,停留大约二秒钟,用于说明本软件
的功能版本信息,消除用户等待主程序启动的焦虑(一般用于主程序启动需要较长
时间的软件中)
登录界面:登录界面产生一个用户的下拉列表,用户可选择相应的用户名称,输
入对应的密码进入,选择“取消〃终止程序运行。防止用户以外的人看到密码,密
码输入框内的密码用“*〃屏蔽。
主窗口:主窗口是本软件的核心,百分之九十的功能代码都在这里实现。主窗口
上方是一组下拉菜单,实现功能的切换和数据的处理。下面一组标签页实现相应的
功能。最下方的状态条显示当前的时间和日期。
打印窗口:实现所要打印的数据输出之前的预览,可以通过上面的一排功能按钮
调整预览效果。
关于窗口:一个小对话框,显示的是本软件的说明信息。
添加记录:该标签页由上面的一组数据明细和下面的控制按钮组成,输入框前的
文本提示输入框内存储的内容,输入框内是我们要输入的数据信息,下方的“第一
条〃,“上一条〃,“下一条〃,“最后一条〃用于浏览数据,右下方的两个按钮用于
数据的添加和存储。
编辑记录:该标签页和“添加记录〃很相似,增加了一个“删除记录〃按钮和“修
改记录〃按钮。删除记录前会有一个删除确认对话框出现,防止用户误删数据。
查询信息:由上面的一组查询组件和下面的数据表格组成。首先在下拉框中选择
要查询的字段,然后在右边的文本框内输入要查询的内容,单击“查询〃按钮即可
在下面的数据表格中显示所需要的信息。支持模糊查询,可以只输入查询信息的一
局部。单击“全部〃按钮将显示全部记录。
打印数据:界面和“查询信息〃标签相似,增加了一个“打印数据〃按钮。这样,
既可以打印全部信息,又可以只打印查询出来的信息,所打印的数据就是下方数据
表格中的数据。
管理功能:包括用户管理和系统初始化功能。用户管理我们可以增加和删除用户,
修改用户登录口令。初始化功能将清空数据表。
二、数据库的结构设计
本程序用到了两个数据表,一个是记的流水帐表,另一个是用户表,全部存在于
一个ACCESS2000数据库中(XMJL.MDB)。下面来说明一下数据表的数据结构
XMB表
字段名类型长度
序号文本10
收入货币自动
支出货币自动
日期日期/时间自动
经手人文本8
合计货币/计算自动
New表
字段名类型长度
Us文本50
Ps文本50
程序结构图
程序流程图:
附程序源代码:
programxmjl;
uses
Forms,
windows,
mainin*main,pas>{Forml),
dmin'dm.pas'{dm2:TDataModu1e},
aboutin'about,pas'{AboutBox),
reportin'report,pas'{qrl:TQuickRep),
logDsrcin*logosrc.pas*{logo},
loginin'login,pas,(donglu);
{$R*.res)
begin
Application.Initialize;
logo:=tlogo.Create(application);
logo.Show;
logo.Update;
Application.CreateForm(Tdm2,dm2);
/\pplication.CreateForm(Tdenglu,denglu);
siepp(1000):
1ogo.Hide;
logo.Free;
Application.Run;
end.
unitlogosrc;
interface
uses
Windows,Messages,SysUtiIs,Variants,Classes,Graphics,Controls,Forms,
Dialogs,jpeg,ExtCtrls;
type
Tlogo=class(TForm)
Image1:TImage;
private
{Privatedeclarations)
public
{Publicdeclarations}
end;
var
logo:Tlogo;
implementation
{$R*.dfm}
end.
unitlogin;
interface
uses
Windows,Messages,SysUti1s,Variants,Classes,Graphics,Controls,Forms,
Dialogs,StdCtrls,Mask,Buttons;
type
Tdenglu=class(TForm)
BitBtnl:TBitBtn:
BitBtn2:TBitBtn;
CnmhoRox1:TComhoRox:
MaskEditl:TMaskEdit;
Label1:TLabel;
Labe12:TLabel;
procedureBitBtn2Click(Sender:TObject);
procedureFormCrcatc(Sender:TObject);
procedureBitBtnlClick(Sender:TObject);
private
{Privatedeclarations)
public
{Publicdeclarations}
end;
var
denglu:Tdenglu;
implementation
usesdm,main;
{$R♦.dfm}
procedureTdenglu.BitBtn2Click(Sender:TObject);
begin
application.Terminate;
end;
procedureTdenglu.FormCreate(Sender:TObject);
begin
withdm2.ADOTableldo
begin
open;
first;
whilenoteofdo
begin
combobox1.Items.Add(fields[0].Value);
next;
end;
combobox1.Itemlndex:=0;
end;
end;
procedureTdenglu.BitBtnlClick(Sender:TObject);
begin
withdm2.ADOTableldo
begin
iflocate(*us*,comboboxl.Text,[])then
begin
ifmaskeditl.text.=fields[1].Valuethen
begin
hide;
withtforml.Create(self)do
showmodcil;
end;
application.Terminate;
end;
end;
end;
end.
unitmain;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,ComCtrls>TooIWin,Menus,DBActns,ActnList,l)B,
ExtCtrls,StdCtrls,Mask,DBC:rls,ImgList,Buttons,Grids,DBGrids;
type
TForml=class(TForm)
PageControll:TPageControl;
StatusBarl:TStatusBar;
TabSheet1:TTabSheet;
TabSheet2:TTabSheet;
TabSheetB:TTabSheet;
TabSheet5:TTabSheet;
MainMenu1:TMainMenu;
N1:TMenuItem;
N2:TMenuItem;
N4:TMenuItem;
N5:TMenuItem;
N8:TMenuItem;
N9:TMenuItem;
N10:TMenuItem;
N12:TMenuItem;
N13:TMcnuItem;
N14:TMenuItem;
N15:TMenuItem;
N16:TMenuItem;
N17:TMenuItem;
N18:TMenuItem:
DalaSourcel:TDataSource;
ActionList1:TAc.tionl.ist:
DataSetFirs11:TDataSetFirs:;
DataSetPriorl:TDataSetPrior;
DataSotNcxtl:TDataSetNoxt;
DataSetUistl:TDataSetLast;
DataSctlnscrtl:TDataSetlnscrt;
DalaSetDeletel:TDataSetDelete;
DataSetEditl:TDataSetEdit;
DataSetPostl:TDataSetPost;
Panel1:TPancl;
Panel2:TPanel;
Label1:TLabel;
Labe12:TLabel;
Label3:TLabel;
Label4:TLabel;
Label5:TLabel;
DBEditl:TDBEdit;
DBEdit2:TDBEdit;
DBEdit9:TDBEdit;
DBEditlO:TDBEdit;
DBEditll:TDBEdit;
Panel3:TPanel;
BitBtnl:TBitBtn;
BitBtn2:TBitBtn;
BitBtn3:TBitBtn;
BitBtn4:TBitBtn:
ImageListl:TImagcList;
BitBtn5:TBitBtn:
BitBtnlO:TBitBtn;
Labe125:TLabel;
Labe126:TLabel;
Pane14:TPanel;
BitBtn6:TBitBtn:
BitBtn7:TBitBtn;
BitBtn8:TBitBtn:
BitBtn9:TBitBtn;
BitBtnll:TBitBtn;
BitBtnl2:TBitBtn;
BitBtnl3:TBitBtn;
Panel8:TPanel;
DBGridl:TDBGrid;
Panel9:TPanel;
Labcl27:TLabel;
ComboBox1:TComboBox;
Labe128:TLabel;
Editl:TEdit;
RitRtnl4:TRitRtn:
BitBtnl5:TBitBtn;
Panell3:TPanel;
DBGrid3:TDBGrid;
Panel14:TPanel;
Labe159:TLabel;
Labe160:TLabel;
ComboBox3:TComboBox;
Edit3:TEdit;
BitBtnl8:TBitBtn;
BitBtnl9:TBitBtn;
BitBtn21:TBitBtn;
Timcrl:TTimor;
Label6:TLabel;
DBEdit3:TDBEdit;
Panel5:TPanel;
Label?:TLabel;
Label8:TLabel;
Labe19:TLabel;
Label10:TLabel;
Labelll:TLabel;
Label12:TLabel;
Label13:TLabel;
Label14:TLabel;
DBEdit4:TDBEdit;
DBEdit5:TDBEdit;
DBEdit6:TDBEdit;
DBEdit7:TDBEdit;
DBEdit8:TDBEdit;
DBEditl2:TDBEdit;
TabSheet4:TTabSheet;
Panel6:TPanel;
GroupBox1:TGroupBox;
SpeedButton1:TSpcodButton;
DBGrid2:TDBGrid;
DBEditl3:TDBEdit;
DBEditl4:TDBEdit;
DBNavigatorl:TDBNavigator;
Label15:TLabel;
Label16:TLabel;
DataSource2:TDataSource;
procedureN9Click(Sender:TObject);
procedureN10Click(Sendcr:TObject);
procedureN12Click(Sender:TObject);
procedureN8C1ick(Sender:TObject);
procedureN14Click(Sender:TObject);
procedureN5C1ic.k(Sender:TOhject):
procedureBitBtn5MouseUp(Sender:TObject;Button:TMouseliutton;
Shift:TShiftState:X,Y:Integer);
procedurefi1Idata(sender:tcombobox);
proceduresearch(fl:tcombobox;tl:tedit);
proceduredispall;
procedureFormActivate(Sender:TObject);
procedureBitBtn14C1ick(Sender:TObject);
procedureBitBtnl5Click(Sender:TObject);
procedureBitBtnl3Click(Sender:TObject);
procedureBitBtnl7Click(Sender:TObject);
procedureBitBtn21Click(Sender:TObject);
procedureTimerITimer(Sender:TObject);
procedureBitBtnlIMouseUpCSender:TObject;Button:TMouseButton;
Shift:TShiftState;X,Y:Integer);
procedureBitBtn18C1ick(Sender:TObject);
procedureSpeedButtonlClick(Sender:TObject);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
Forml:TForml;
implementation
usesabout,dm,report,login;
{$R*.dfm}
procedureTForml.N9Click(Sender:TObject);
begin
tabsheet2.Show;
end;
procedureTForml.N10C1ick(Sender:TObject);
begin
tabsheet3.Show;
end;
procedureTForml.N12Click(Sender:TObject);
begin
tabshoet5.Show;
end;
procedureTForml.N8C1ick(Sender:TObject);
hpgin
tabsheet1.Show;
end;
procedureTForml.N14C1ick(Sender:TObject);
begin
application.Terminate;
end;
procedureTForml.N5Click(Sender:TObject);
begin
withtaboutbox.Create(self)do
ShowModal;
end;
procedureTForml.BitBtn5MouseUp(Sender:TObject;Button:TMouseButton;
Shift:TShiftState;X,Y:Integer);
begin
dbeditl.Text:-inttostr(dm2,adoqueryl.RecordCount+1);
dbedit2.SctFocus;
end;
procedureTForml.filldata(sender:tcombobox);
var
iCount:Integer;〃将从数据模块中取得的数据库表的字段名填入ComboBox中
begin
sender.Items.Clear;〃首先清空ComboBox中Items的值
foriCount:=0toDM2.ADOQueryl.Fields.Count-2do
begin
sender.Items.Add(DM2.ADOQueryl.Fields[iCount].FieldName);〃参加字段名
DM2.ADOQueryl.Next;〃向下移动到下一个字段
end;
sender.Itemlndex:=0;〃设置表单刚出现时ComooBox的值为第一个
end;
procedureTForml.search(fl:tcombobox;11:tedit);〃自定义过程search(在数据库中搜寻指定条件的
数据)
var
SearchField:string;〃要查找的字段名
SearchValue:string;〃要查找的字段值
begin
SearchField:=Trim(fl.Text);〃将ComboBox的值赋给SearchField
ScarchValuc:=+Trim(tl.Text)+〃将Edit的值赋给SearchField
withDM2.ADOQuery1do
begin
close;〃先关闭数据模块中的ADOQuery
sql.Clear:〃清空ADOQuery中的SQL值
sql.Add(Jselect*fromxmbwhere'+SearchField+'1ike'''+
SearchValue+//进行数据查询的SQL语句(SearchFidel和SearchValue
//分别赋到SQL语句中
end;
Dm2..ADOQuery1.Open;翻开数据模块中的ADOQuery
end;
procedureTForml.FormActivatc(Sender:TObjcct);
begin
filldata(combobox1);
filldata(combobox3);
tabsheetl.Show;
end;
procedureTForml.BitBtnl4Click(Sender:TObject);
begin
search(combobox1,edit1);
end;
procedureTForml.BitBtnl5Click(Sender:TObject);
begin
dispall;
end;
procedureTForml.dispall;
begin
withdm2.ADOQuery1do
begin
close;
sql.clear;
sql.Add('select*fromxmb');
open;
end;
end;
procedureTForml.BitBtnl3Click(Sender:TObject);
begin
ifMessageDlg(,你确信要删除记录?',mtwarning,[mbok,mbcancel],0)=mrok
then
DM2.ADOQuery1.Delete;
end;
procedureTFnrm!.RitRt.n17Click(Sender:TOhjeet):
begin
dispall;
end;
procedureTForml.BitBtn21Click(Sender:TObjcct);
begin
withtqrl.Create(self)do
Preview;
end;
procedureTForml.TimerlTimer(Sender:TObject);
begin
statusbarl.PaneIs[3].Text:=:imetostr(now);
statusbarl.Panels[4].Text:=zormatdatetimeCyyyy年MM月dd日',now);
end;
procedureTForml.BitBtnlIMouseUp(Sender:TObject;Button:TMouseButton;
Shift:TShiftState;X,Y:Integer);
begin
dbedit12.SetFocus;
end;
procedureTForml.BitBtnl8Click(Sender:TObject);
begin
search(combobox3,edit3);
end;
procedureTForml.SpccdButtonlClick(Sender:TObjcct);
begin
withdm2.ADOQueryldo
begin
close;
sql.Clear;
sql./\dd(*delete*fromxmb*);
ExecSQL;
close;
sql.Clear;
sql.Add(Jselect*fromxmb');
open;
end;
end;
end.
unitdm;
interface
uses
SysUtils,Classes,ADODB,DB;
type
Tdm2=class(TDataModulc)
ADOConnectionl:TAIMXJonnection;
ADOQuery1:TADOQuery;
ADOQueryIDSDesigner:TWideS:ringField;
ADOQuery1DSDesigner2:TBCDField;
ADOQuery1DSDesigner3:TBCDField;
ADOQuery1DSDesigner4:TDateTimeField;
ADOQuery1DSDesigncr5:TWidcStringFicld;
ADOQuery1lolai:TCurrencyField;
ADOTablel:TADOTable;
procedureADOQueryICalcFields(DataSet:TDataSet);
private
{Privatedeclarations)
public
{Publicdeclarations}
end;
var
dm2:Tdm2;
implementation
{$R*.dfm}
procedureTdm2.ADOQuery1Ca1cEie1ds(DataSeI:TDataSet);
begin
adoqueryltotal.Value:=AD0QuerylDSDesigner2.Value-
ADOQuery1DSDesigner3.value;
end;
end.
unitreport;
interface
usesWindows,SysUtiIs,Messages,Classes,Graphics,Controls,
StdCtrls,ExtCtrls,Forms,QuickRpt,QRCtrls,DB,ADODB;
type
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海立达学院《Access 数据库程序设计》2025-2026学年第一学期期末试卷(B卷)
- 上海立信会计金融学院《安全管理》2025-2026学年第一学期期末试卷(A卷)
- 2026年厂内机动车辆(叉车)安全管理与检查维护制度
- 上海立信会计金融学院《Android 手机软件开发》2025-2026学年第一学期期末试卷(B卷)
- 上海科技大学《安全生产技术与管理》2025-2026学年第一学期期末试卷(A卷)
- 2026年运维团队变更管理流程优化
- 上海科学技术职业学院《阿拉伯语会话》2025-2026学年第一学期期末试卷(B卷)
- 2026年狐狸与水貂人工养殖技术规范
- 上海科学技术职业学院《安全生产管理知识》2025-2026学年第一学期期末试卷(B卷)
- 上海科学技术职业学院《安全学原理》2025-2026学年第一学期期末试卷(B卷)
- 八大浪费的课件
- 电厂脱硝系统设计计算书
- 2026年妇联权益维护类面试题型及答案
- 镇江市2024年江苏科技大学人事代理工作人员招聘8人笔试历年参考题库典型考点附带答案详解(3卷合一)
- 腹壁成型术术后护理
- 纱门纱窗更换施工方案
- 项目施工协同工作方案
- 国企投融资专员笔试题
- (正式版)DB1506∕T 33-2023 《露天煤矿智能化建设与管理规范》
- 口腔门诊晕厥抢救
- 成人自考大专入学考试题目含答案
评论
0/150
提交评论