分享
 
 
 

文档自动生成系统的研究与开发

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

本文主要介绍了装备保障方案生成系统的功能,给出了装备保障方案生成系统的模型,并讨论了在VC下编程实现的技术难点。

1.1 生成保障态势

保障态势在电子地图系统(包括海图)上生成。指挥人员可以在所需地图上进行图上作业,设置装备保障点、选择装备保障类型、设定装备保障力量、计划装备保障时间和标绘保障意图等等。因此,该功能的实现需要开发一套GIS系统(地理信息系统),包括矢量图形系统(包括军标标绘)、装备保障信息数据库管理系统、矢量图形系统和数据库管理系统之间的连接、信息查询功能、空间信息统计和分析功能等等。

1.2 生成保障方案

保障方案的项目可以由用户事先定制。这里提供了一个保障方案生成的向导,主要针对装备保障任务和装备保障部队为实现保障决心而采取的行动计划,基本上能满足用户需要。

装备保障方案的数据描述由下列要素构成:

l 保障对象

l 保障目标

l 保障环境

l 保障需求分析

l 现有保障能力分析

l 保障决心

l 指挥机构的组织与设置

l 保障任务区分(子任务)

l 保障力量编组

l 通信与警戒防卫需求

l 保障行动计划

l 保障协调计划

l 保障环境建设

l 请求支援的问题

l 对该方案的评估

1.3 生成保障文档

装备保障方案由二种形式表现:保存于数据库中的装备保障方案数据描述和保存于各类文件的保障文档。因此,在装备保障方案生成系统中我们集成了Office系统,以便能在本系统中生成Word、Excel、Rtf和PowerPoint类型的文档。

1.4 自动提交方案文档

当用户利用GIS系统生成保障态势,利用向导生成保障方案,利用集成的Office系统拟定保障文档后,自动提交方案系统可根据用户需求将数据库和文件中的本次保障任务的所有相关数据提取出来,生成一份完整的供审批或下发的规范的方案文档。

2 装备保障方案生成系统的模型

在装备保障指挥自动化平台的构件中,采用“主板+插件”的构造方式[2],解决了装备保障指挥自动化系统的分布性、灵活性和开放性问题,使系统能够根据不同的作战情况变化灵活地进行重组与扩充,并能够随着各种新技术的发展进行升级和增加新的子系统。新的子系统以“插件”的形式通过“镶嵌”的方式“挂入”平台,这样可以很好地解决联合保障中不同类型系统之间的互连、互通和互操作问题。装备保障方案生成系统就是作为“插件”嵌入到装备保障指挥自动化平台中

3 装备保障方案生成系统开发实例

装备保障方案生成系统在编程实现时,主要的技术难点有:电子地图的加载、矢量图形系统与数据库管理系统的连接、GIS系统中空间信息的统计和分析、保障方案的协同处理、Office系统的集成、自动提交方案文档和数据库的访问。这里主要结合VC简单介绍一些难点的实现方法(工程名为EADPMS)。

3.1 添加模板

根据本系统的需要,我们添加了保障态势图模板、Office类保障文档模板和保障方案向导模板。首先在EADPMS.h头文件定义相关的对象指针。

CTypedPtrList<CObList,CMultiDocTemplate*> m_myFileTypeList; //保障态势的文件模板的链表

CTypedPtrList<CObList,CMultiDocTemplate*> m_officeFileTypeList; //Office的文件模板的链表

CTypedPtrList<CObList,CWizardTemplate*> m_wizardList; //保障方案向导的链表

然后,在EADPMS.cpp文件中添加模板。

BOOL CEADPMSApp::InitInstance()

{

CMultiDocTemplate* pDocTemplate;

(1)增加保障态势模板

pDocTemplate = new CMultiDocTemplate(

IDR_TSTTYPE,

RUNTIME_CLASS(CTstDoc),

RUNTIME_CLASS(CTstMDIChildFrame), // custom MDI child frame

RUNTIME_CLASS(CTstView));

AddDocTemplate(pDocTemplate);

m_myFileTypeList.AddTail(pDocTemplate);

(2)增加Office文件模板

pDocTemplate = new CMultiDocTemplate(

IDR_MYWORDTYPE,

RUNTIME_CLASS(CMyWordDoc),

RUNTIME_CLASS(CRTFChildFrame), // custom MDI child frame

RUNTIME_CLASS(CMyOfficeView));

pDocTemplate->SetContainerInfo(IDR_OFFICETYPE_CNTR_IP);

AddDocTemplate(pDocTemplate);

m_officeFileTypeList.AddTail(pDocTemplate);

(3)增加保障方案向导模板

AddWizardTemplate(new CWizardTemplate(

IDR_SPECIALTYPLAN,

RUNTIME_CLASS(CSpecialtyPlan)));

}

3.2 Office的集成

本系统通过Ole来实现Office的嵌入。EADPMS工程中基于COleDocument类生成一个CMyOfficeDoc类,我们在这个类中激活相应的Office办公软件。有关Word、PowerPoint、Excel图表和Excel工作表的CLSID码分别为:

{0x00020906,0,0,{0xc0,0,0,0,0,0,0,0x46}、{0x64818d10,0x4f9b,0x11cf,{0x86,0xea,0,0xaa,0,0xb9,0x29,0xe8}}、{0x00020821,0,0,{0xc0,0,0,0,0,0,0,0x46}}和{0x0020820,0,0,{0xc0,0,0,0,0,0,0,0x46}}。

这样我们就可以在MyOfficeDoc.cpp中通过CLSID码来激活Office系统。

BOOL CMyOfficeDoc::OnNewDocument()

{

COfficeDocItem* pItem = new COfficeDocItem(this);

pItem->m_lpStorage = m_lpRootStg;

pItem->m_lpStorage->AddRef();

pItem->CreateNewItem(CLSID) //通过CLSID值激活Office应用程序

}

3.3 GIS系统中空间信息的统计和分析

空间信息统计和分析功能是GIS系统的一个基本功能,其本质就是利用图形元素的空间拓扑关系,通过图形元素来实现对信息数据的统计和分析。主要通过以下两个步骤来完成:

在矢量图形上,按照各种图形元素的拓扑关系得到需要统计和分析的矢量图形元素,涉及到图形元素的选择方法。主要有点选、区域选择、线类相交操作选择和区域相交操作选择。

对选择的图形元素的性质数据信息进行统计和分析。

GIS系统的空间信息统计和分析功能,并不是为了对矢量图形元素进行统计和分析,而是以矢量图形元素作为操作的中介,实现对性质数据的统计和分析功能。也就是说,要统计分析的是记录在数据库管理系统的数据表中的装备保障数据信息。

3.4 自动提交方案文档

自动提交方案文档的主要功能是将记录在数据库管理系统的数据表中的装备保障方案数据提取出来,在Office中以表或电子表格的形式保存。

装备保障方案数据提取是通过一系列数据视图来实现的,这些视图来源于装备保障方案的原始数据表中,依据方案文档的输出要求生成。

文档的自动生成通过2个函数来完成,函数CopyFromTable按需要的格式自动生成文档表格。

void CopyFromTable(CSession *pSession,_Document *pdoc,LPCTSTR strTableName)

{…

读取数据视图

pBind = new MYBIND[m_ulFields];

rs.CreateAccessor(m_ulFields, pBind, sizeof(MYBIND)*m_ulFields);

for (ULONG l=0; l<m_ulFields; l++)

rs.AddBindEntry(l+1, DBTYPE_STR, sizeof(TCHAR)*500, &pBind[l].szValue,

NULL, &pBind[l].dwStatus);

// Create a rowset containing data.

m_strQuery.Format("select * from %s", strTableName);

if (rs.Open(*pSession, m_strQuery) != S_OK);

依照数据视图生成空表

int nRecords=0;

while (((CRowset *)&rs)->MoveNext() == S_OK) nRecords++;

oTables.Add(oRange,nRecords+1,m_ulFields,COleVariant((short)1),COleVariant((short)1));

导入数据

if (((CRowset *)&rs)->MoveFirst() == S_OK);

do

{ nCol=1;

while (nCol<m_ulFields+1)

{ oCell = oTable.Cell(nRow+1,nCol);

oCellRange = oCell.GetRange();

oCellRange.InsertAfter(pBind[nCol-1].szValue);

nCol++;

}

nRow++;

}while (((CRowset *)&rs)->MoveNext() == S_OK);

}

函数OutPutFromTable从数据视图中依照需要的格式自动生成文档文本。

void OutPutFromTable(CSession *pSession,_Document *pdoc,LPCTSTR strTableName)

{

…读取数据视图

按固定格式生成文本

while (((CRowset *)&rs)->MoveNext() == S_OK)

{ nCol=1;

strtmp.Format("%d、",m_nRecords);

oSel.SetStyle(COleVariant((short)-31));

oSel.TypeText(strtmp);

if (pColumns->MoveFirst() == S_OK) ;

do

{ oSel.SetStyle(COleVariant((short)-31));

oSel.TypeText(pColumns->m_szColumnName);

oSel.TypeText(":");

oSel.TypeText(pBind[nCol-1].szValue);

oSel.TypeParagraph();

nCol++;

}while ((pColumns->MoveNext() == S_OK));

m_nRecords++;

}

}

作者简介

陈志刚 男,讲师,硕士研究生,1976年12月生,专业模式识别与智能控制

邮箱: chinastone@163.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有