求一个系统设计的思路的改进

josxhn 2011-06-08 05:53:30
系统的核心功能是自动生成word文档,文档为树形结构,即一级目录,二级目录,三级目录,四级目录。。。。正文词条。。。。

录入数据(难)
:N级目录和正文词条(标题,内容)都由用户输入,这就需要提供一个编辑输入界面,由于正文词条是包含表格和图片的,因此编辑界面要支持编辑word文档(或者其他方案)。用户编辑好的内容会存入数据库中以实现共享。

生成文档(难):UI界面要将数据库中所有N级目录和正文词条(标题)以树形结构展示给用户,让用户勾选想要的目录和正文词条,然后将之按照其目录结构组合生成word文档并输出。

其他需求(较好实现):
对目录或正文的模糊查询
保存用户的某个选择方案
比较两个选择方案之间的差别
等等

----------------

目前我作了一个东西出来,基本实现了需求,但也存在缺陷,大体思路如下:
1.录入数据,即word编辑部分,我做了一个编辑word的控件,也就是一个容器控件在其中加载word编辑器,用户编辑完一个目录或者正文词条以后,就会将之存为一个临时word文档然后以二进制形式存入数据库。
2.生成文档,即word创建部分,将用户选择的目录和词条依次从数据库中取出,用在本地硬盘上用流存成一个临时word文档,并读取其中内容保存为特定的range对象序列,最后将这个对象序列按照目录级别写到同一个word文档对象中并生成

缺点如下:
1.录入部分的“用户编辑->保存临时word文档->数据库二进制字段”;以及生成部分的反序操作,消耗的资源太大,每读写一个目录或词条,都要创建一个临时word文档,也就意味着要执行一次word.document对象的创建、另存文档、注销操作,开销很大,据我测试大概要花费0.1s的时间。
2.word编辑控件实际上相当于另外启动一个word进程,即将嵌入一个word编辑窗口到我的程序UI中,因此在同一个界面中会有两种焦点状态,比如编辑好word控件中的内容后,要点击UI上的保存按钮时,必须点击两次,第一次点击焦点从word控件转移到UI界面,第二次点击才相当于执行了那个按钮的方法

----------------

类似于这种需求有没有现成的解决方案,或者各位有何高见?


...全文
263 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
josxhn 2011-06-15
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 awayy1432 的回复:]

引用 24 楼 josxhn 的回复:

引用 22 楼 chrisak 的回复:

引用 11 楼 wanghui0380 的回复:

百度谷歌翻了十几页都没有C# 操作 Tex的相关资料啊,能提供点资料链接吗


这些东西不牵扯好像语言的 大都是通过process来外部调用的

我觉得多级目录的处理,还是xml比较好 灵活性好控制
可以在用户选择方案后 对应生成……
[/Quote]

xml 格式支持文字,图片,表格的混合编辑吗?
脾气不坏 2011-06-15
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 josxhn 的回复:]

引用 22 楼 chrisak 的回复:

引用 11 楼 wanghui0380 的回复:

百度谷歌翻了十几页都没有C# 操作 Tex的相关资料啊,能提供点资料链接吗
[/Quote]

这些东西不牵扯好像语言的 大都是通过process来外部调用的

我觉得多级目录的处理,还是xml比较好 灵活性好控制
可以在用户选择方案后 对应生成xml文件 这样资源占用也较少
Maa 2011-06-15
  • 打赏
  • 举报
回复
tex是什么东西吧,不会是text少打了t字母吧,呵呵。
但是看22楼的推荐,又不象。。。
josxhn 2011-06-15
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 chrisak 的回复:]

引用 11 楼 wanghui0380 的回复:

不应该面对word

你应该面对一些更好,更容易交互的协议

比如xml,tex,你的程序应该只面对这些容易处理的东西

而表现层上,无论是表现为word或者合并成word导出,都是另外一件事情

我想,xml2word,,tex2word,rtf2word,pdf2word这类东西和代码,绝对要比word本身的资料要齐全的……
[/Quote]

百度谷歌翻了十几页都没有C# 操作 Tex的相关资料啊,能提供点资料链接吗
xj56ai 2011-06-15
  • 打赏
  • 举报
回复
路过,帮顶~~~~~~~~~
至尊贱客 2011-06-15
  • 打赏
  • 举报
回复
路过,帮顶~~~~~~~~~
Maa 2011-06-15
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 josxhn 的回复:]

引用 26 楼 awayy1432 的回复:

引用 24 楼 josxhn 的回复:

引用 22 楼 chrisak 的回复:

引用 11 楼 wanghui0380 的回复:

百度谷歌翻了十几页都没有C# 操作 Tex的相关资料啊,能提供点资料链接吗


这些东西不牵扯好像语言的 大都是通过process来外部调用的

我觉得多级目录的处理,还是xml比较好……
[/Quote]

纯文本的,都不支持。
ChrisAK 2011-06-14
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wanghui0380 的回复:]

不应该面对word

你应该面对一些更好,更容易交互的协议

比如xml,tex,你的程序应该只面对这些容易处理的东西

而表现层上,无论是表现为word或者合并成word导出,都是另外一件事情

我想,xml2word,,tex2word,rtf2word,pdf2word这类东西和代码,绝对要比word本身的资料要齐全的多
[/Quote]+1.
推荐tex
josxhn 2011-06-14
  • 打赏
  • 举报
回复
征集思路,因此晚点结贴,见谅啊各位
josxhn 2011-06-13
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 wangxu8550 的回复:]

强帖留名
[/Quote]

真惭愧啊
PerDign 2011-06-13
  • 打赏
  • 举报
回复
强帖留名
Maa 2011-06-13
  • 打赏
  • 举报
回复
不知道兄弟用过HP的QC没?这是一个测试管理系统,管理测试需求和测试用例等等。它是B/S架构的,大家通过Browser录入需求或者用例,存放在数据库中,既可以使用Browser查看以前录入的数据,也可以通过一些插件导出成Word文档格式的需求和用例,相信这个系统可以给兄弟提供一些参考思路。
josxhn 2011-06-13
  • 打赏
  • 举报
回复
自己up一下
josxhn 2011-06-12
  • 打赏
  • 举报
回复
josxhn 2011-06-11
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 mafangming 的回复:]

这个实现方式其实不难,只是奇怪既然兄弟录入都采用的控件加载word编辑器,那么为什么不让客户自己直接写Word文档呢,你这里的应用场景是怎么样子的呢?
[/Quote]

你说的问题我也考虑过,但这个需求比较特殊,我说出来请大家帮忙分析下。

我们公司经常要向客户输出“产品规格书”,描述产品可以实现哪些功能,这些功能的具体定义是怎样的,以便和客户确认需求,以及作为产品交付时检验的依据。

以往制作“产品规格书”都是手工制作,而一份规格书往往有好几十页,因此工作量很巨大。考虑到不同的产品拥有的功能集合,有差异也有重复,如果定义一个“功能规格库”,每次输出规格书的时候,只需要在其中选择该产品实现的功能,然后按照功能的层次结构,按一定格式自动编排输出就好了。

关于功能规格的描述,有的只需要几行文本即可,而还有的仅靠纯文本是不够的,更需要图片和表格,因此我就考虑用word来实现对其的编辑。但如果像 mafangming 兄弟所说,每条规格做一个word文档,考虑到规格数量的庞大以及那些仅有几行文字描述的规格,似乎就不太合适。

需求基本就是这样。

Maa 2011-06-11
  • 打赏
  • 举报
回复
这个实现方式其实不难,只是奇怪既然兄弟录入都采用的控件加载word编辑器,那么为什么不让客户自己直接写Word文档呢,你这里的应用场景是怎么样子的呢?
雲遥 2011-06-11
  • 打赏
  • 举报
回复
崩溃啊崩溃 不知所云
josxhn 2011-06-11
  • 打赏
  • 举报
回复


放哥的思路比较正点哦。。。

8楼的资料研习中,英文啊英文
artoriar 2011-06-10
  • 打赏
  • 举报
回复
帮你顶下把,需求挺特别的
wanghui0380 2011-06-10
  • 打赏
  • 举报
回复
不应该面对word

你应该面对一些更好,更容易交互的协议

比如xml,tex,你的程序应该只面对这些容易处理的东西

而表现层上,无论是表现为word或者合并成word导出,都是另外一件事情

我想,xml2word,,tex2word,rtf2word,pdf2word这类东西和代码,绝对要比word本身的资料要齐全的多
加载更多回复(9)

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧