浅谈文档管理系统的设计与实现Word文档格式.docx

上传人:b****8 文档编号:22147656 上传时间:2023-02-02 格式:DOCX 页数:47 大小:374.03KB
下载 相关 举报
浅谈文档管理系统的设计与实现Word文档格式.docx_第1页
第1页 / 共47页
浅谈文档管理系统的设计与实现Word文档格式.docx_第2页
第2页 / 共47页
浅谈文档管理系统的设计与实现Word文档格式.docx_第3页
第3页 / 共47页
浅谈文档管理系统的设计与实现Word文档格式.docx_第4页
第4页 / 共47页
浅谈文档管理系统的设计与实现Word文档格式.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

浅谈文档管理系统的设计与实现Word文档格式.docx

《浅谈文档管理系统的设计与实现Word文档格式.docx》由会员分享,可在线阅读,更多相关《浅谈文档管理系统的设计与实现Word文档格式.docx(47页珍藏版)》请在冰豆网上搜索。

浅谈文档管理系统的设计与实现Word文档格式.docx

3.通过系统可以完成对文档一系列日常操作。

4.保证系统的安全性、可靠性。

2总体设计

2.1项目规划

文档管理系统由基本信息、文档管理、系统设置等几个功能模块组成,规划系统功能模块如下:

基本信息:

基本信息包括单位档案、文档类别2部分。

文档管理:

文档管理包括添加文档、修改文档、删除文档、文档浏览4部分。

系统设置:

系统设置包括用户管理、口令修改、日志管理、退出系统4部分。

2.2系统功能结构

文档系统的功能结构如图1所示。

图1文档管理功能图

2.3设计目标

本系统是根据中小企业的实际需求而开发的,完全能够实现企业对制度文档的自动化管理,通过本系统可以达到以下目标:

系统运行稳定,安全可靠。

界面设计美观,人机交互界面友好。

信息查询灵活、方便、快捷、准确,数据存储安全可靠。

操作员可以随时修改自己的口令。

对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。

数据保密性强,为每个用户设置相应的权限级别。

3系统设计

3.1开发及运行环境

系统开发平台:

VisualC++6.0

数据库管理系统软件:

SQLServer2000

运行平台:

Windowsxp/Windows2000

3.2数据库设计

1.数据库概要说明

数据库WenDGL中包括单位表、类别表、文档表、日志表、用户表5个数据表。

图2所示的即为本系统中数据库中的数据表结构图,该数据表结构图包含系统所有数据表。

可以清晰地反应数据库信息。

图2数据库概要说明

2.主要数据表的结构

数据库中的数据表请参见附录B。

4主要功能模块设计

4.1建立工程框架

在VisualC++中建立文档管理系统的基本框架,步骤如下:

(1)单击菜单“File-->

New”命令,打开“New”对话框,单击“Projects”选项卡,选择“MFCAppWizard(exe)”,输入工程名,并设置路径,如图3。

图3“New”对话框

(2)单击“OK”按钮,弹出“MFCAppWizard-Step1”对话框,如图4。

图4“MFCAppWizard-Step1”对话框

(3)选择“Dialogbase”选项,单击“Next”按钮,在弹出的“MFCAppWizard-Step2of4”对话框中,输入对话框标题,如图5所示。

图5“MFCAppWizard-Step2of4”对话框

(4)单击“Next”按钮,在接下来弹出的对话框中默认原有的选择项,最后设置好的对话框的属性如图6所示,单击“OK”按钮,新建工程成功。

图6工程属性

4.2封装数据库

1.添加ADO连接类

本实例采用ADO来连接SQLServer数据库,在使用ADO技术时,需要导入一个ADO动态链接库msado15.dll,该动态库位于系统盘下的“ProgramFiles\CommonFiles\System\ado\”目录下。

例如,如果您的系统盘为C盘,则该文件位于“C:

\ProgramFiles\CommonFiles\System\ado\”目录。

在VisualC++中,需要使用预处理命令#import,将动态库导入到系统中,代码如下。

#import

"

E:

\Program

Files\Common

Files\System\ado\msado15.dll"

no_namespacerename("

EOF"

"

adoEOF"

)rename("

BOF"

adoBOF"

添加一个用来连接的ADO的类。

在系统菜单中选择“Insert-->

NewClass”选项,打开“NewClass”窗口,选择“GenericClass”,然后输入类名,即完成了类的添加。

代码如下。

创建ADO连接类。

classADOConn

{

public:

//添加一个指向Connection对象的指针

_ConnectionPtrm_pConnection;

//添加一个指向Recordset对象的指针

_RecordsetPtrm_pRecordset;

ADOConn();

virtual~ADOConn();

//初始化--连接数据库

voidOnInitADOConn();

//执行查询

_RecordsetPtr&

GetRecordSet(_bstr_tbstrSQL);

//执行SQL语句

BOOLExecuteSQL(_bstr_tbstrSQL);

//断开数据库连接

voidExitConnect();

};

实现ADO连接类函数和程序代码如下。

voidADOConn:

:

OnInitADOConn()

//初始化OLE/COM库环境

:

CoInitialize(NULL);

try

{

//创建connection对象

m_pConnection.CreateInstance("

ADODB.Connection"

);

//设置连接字符串

_bstr_tstrConnect="

Provider=SQLOLEDB.1;

IntegratedSecurity=SSPI;

PersistSecurityInfo=False;

InitialCatalog=WenDGL;

DataSource=MRLZJ"

;

//SERVER和UID,PWD的设置根据实际情况来设置

m_pConnection->

Open(strConnect,"

adModeUnknown);

}

//捕捉异常

catch(_com_errore)

//显示错误信息

AfxMessageBox(e.Description());

}

_RecordsetPtr&

ADOConn:

GetRecordSet(_bstr_tbstrSQL)

//连接数据库,如果connection对象为空,则重新连接数据库

if(m_pConnection==NULL)

OnInitADOConn();

//创建记录集对象

m_pRecordset.CreateInstance(__uuidof(Recordset));

//取得表中的记录

m_pRecordset->

Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

e.Description();

//返回记录集

returnm_pRecordset;

BOOLADOConn:

ExecuteSQL(_bstr_tbstrSQL)

_variant_tRecordsAffected;

//是否已连接数据库

if(m_pConnection==NULL)

OnInitADOConn();

//connection对象的Execute方法(_bstr_tCommandText,

//VARIANT*RecordsAffected,longOptions)

//其中CommandText是命令字符串,通常是SQL命令

//参数RecordsAffected是操作完成后所影响的行数

//参数Options表示CommandText的类型,adCmdText-文本命令,adCmdTable-表名

//adCmdProc-存储过程,adCmdUnknown-未知

m_pConnection->

Execute(bstrSQL,NULL,adCmdText);

returntrue;

returnfalse;

ExitConnect()

//关闭记录集和连接

if(m_pRecordset!

=NULL)

m_pRecordset->

Close();

//释放环境

CoUninitialize();

4.3主窗口设计

1.菜单资源设计

主窗口菜单设置的主要步骤如下:

(1)单击“ResourceView”选项卡,右键单击“WordGLXTResources”选项,在快捷菜单中选择“Insert”菜单项,弹出“InsertResource”窗口,如图7所示。

图7“InsertResource”窗口

(2)选择“Menu”文件夹,单击“New”按钮,在WordGLXTResources目录下新增一个Menu目录项,菜单ID为IDR_MENU1。

然后,双击此菜单,对此菜单项的属性进行设计,如图8所示。

图8“InsertResource”窗口

2.客户区设计

(1)打开对话框IDD_WORDGLXT_DIALOG属性窗口,在对话框中添加1个TreeControl和1个RichEdit控件,右键单击TreeControl控件,将Hasbuttons/Haslines/Clientedge/Linesatroot选中,属性设置如表1所示。

表1属性表

ID

MemberVariables

Type

Member

IDC_TREE1

CtrrCtrl

m_tree

ID_RICHEDITI

CRichEditCtrl

m_tichedit

(2)预先在下边留出状态栏,声明Ctime、CstatusBarCtrl类对象实体,程序代码如下。

CTimet;

CStatusBarCtrlm_StatusBar;

在程序中,引用外部变量。

externCWordGLXTApptheApp;

在头文件中定义程序变量,代码如下。

CStringstr;

CStringstrWord;

CStringstrText;

voidAddtoTree(HTREEITEMm_node);

HTREEITEMarrays[10],brrays[20],hitem[100];

HTREEITEMm_root,temp;

CDwxxbdwb;

CZdmlbmlb;

CZdxxbxxb;

CRizhibzhi;

CImageListm_treeImageList;

(3)在OnInitDialog成员函数中,添加状态栏以及给Tree控件定义图标,添加数据,代码如下所示。

//TODO:

Addextrainitializationhere

dwb.Load_dep();

mlb.Load_dep();

xxb.Load_dep();

m_treeImageList.Create(16,16,ILC_MASK,4,1);

m_treeImageList.Add(theApp.LoadIcon(IDI_ROOTICON));

m_treeImageList.Add(theApp.LoadIcon(IDI_CHILDICON1));

m_treeImageList.Add(theApp.LoadIcon(IDI_CHILDICON2));

m_treeImageList.Add(theApp.LoadIcon(IDI_CHILDICON4));

m_tree.SetImageList(&

m_treeImageList,LVSIL_NORMAL);

m_root=m_tree.InsertItem("

基本信息管理"

0,0);

AddtoTree(m_root);

m_tree.Expand(m_root,TVE_EXPAND);

m_StatusBar.EnableAutomation();

m_StatusBar.Create(WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),this,0);

intwidth[]={200,400};

m_StatusBar.SetParts(4,&

width[0]);

m_StatusBar.SetText("

长春市明日科技有限公司"

CStringStatusText;

StatusText.Format("

当前用户:

%s"

user.GetUsername());

m_StatusBar.SetText(StatusText,0,1);

t=CTime:

GetCurrentTime();

CStringstrdate;

strdate.Format("

当前日期:

t.Format("

%y-%m-%d"

));

m_StatusBar.SetText(strdate,0,2);

returnTRUE;

//returnTRUEunlessyousetthefocustoacontrol

(4)定义AddtoTree函数,将各表中数据按层次结构添加到Tree控件中,代码如下。

voidCWordGLXTDlg:

AddtoTree(HTREEITEMm_node)

inti,j;

for(i=0;

i<

dwb.a_DWbh.GetSize();

i++)

arrays[i]=m_tree.InsertItem(dwb.a_DWmc.GetAt(i),1,1,m_node);

for(j=0;

j<

mlb.a_DWbh.GetSize();

j++)

{

if(atoi(dwb.a_DWbh.GetAt(i))==atoi(mlb.a_DWbh.GetAt(j)))

{

brrays[j]=m_tree.InsertItem(mlb.a_LBmc.GetAt(j),2,2,arrays[i]);

}

}

xxb.a_WDbh.GetSize();

if(atoi(xxb.a_DWbh.GetAt(i))==atoi(mlb.a_DWbh.GetAt(j))&

&

atoi(xxb.a_LBbh.GetAt(i))==atoi(mlb.a_LBbh.GetAt(j)))

hitem[i]=m_tree.InsertItem(xxb.a_WDmc.GetAt(i),3,3,brrays[j]);

m_tree.SetRedraw();

(5)为Tree控件添加OnDblclkTree1双击事件,程序代码如下。

OnDblclkTree1(NMHDR*pNMHDR,LRESULT*pResult)

Addyourcontrolnotificationhandlercodehere

CStringstrWjian="

//读取当前节点

temp=m_tree.GetSelectedItem();

//将当前节点子节点付给temp

temp=m_tree.GetChildItem(temp);

if(temp!

=NULL)

while(temp!

//取出temp中的文本

strText=m_tree.GetItemText(temp);

strWjian+=strText+"

\n"

//RichEdit控件显示数据

m_richedit.SetWindowText(strWjian);

//将temp的兄弟节点付给temp

temp=m_tree.GetNextItem(temp,TVGN_NEXT);

else

temp=m_tree.GetSelectedItem();

for(inti=0;

if(temp==hitem[i])

//取出temp对应的文档路径

strWord=xxb.a_WJlj.GetAt(i);

//word应用程序

_Applicationapp;

//初始化连接

app.CreateDispatch("

word.Application"

Documentsdoc;

CComVarianta(_T(strWord)),b(false),c(0),d(true),aa(0),bb

(1);

_Documentdoc1;

doc.AttachDispatch(app.GetDocuments());

doc1.AttachDispatch(doc.Add(&

a,&

b,&

c,&

d));

Rangerange;

//求出文档的所选区域

range=doc1.GetContent();

//取出文件内容

str=range.GetText();

m_richedit.SetWindowText(str);

//关闭

app.Quit(&

c);

//释放环境

app.ReleaseDispatch();

*pResult=0;

(6)在Menu组合框中选择IDR_MENU1。

单击工具栏中的“运行”按钮,看到系统的主界面如图9所示。

图9系统运行界面

(7)打开ClassWizard窗口,为菜单项ID_MENULIULWD添加代码,实现文档浏览功能。

OnMenuliulwd()

Addyourcommandhandlercodehere

CStringstrd,strs;

for(inti=0;

strd=xxb.a_WDmc.GetAt(i);

strs+=strd+"

m_richedit.SetWindowText(strs);

(8)为菜单项ID_MENURZGL添加代码,实现日志管理功能。

OnMenurzgl()

ADOConnm_AdoConn;

m_AdoConn.OnInitADOConn();

CStringsql,sqlzd="

用户名\t登录时间\t动作\n"

sql.Format("

select*fromRizhib"

m_AdoConn.GetRecordSet((_bstr_t)sql);

while(m_AdoConn.m_pRecordset->

adoEOF==0)

sqlzd+=(char*)(_bstr_t)m_AdoConn.m_pRecordset->

GetCollect("

name"

sqlzd+="

\t"

DLsj"

\t"

dz"

m_AdoConn.m_pRecordset->

MoveNext(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1