我在做一系统中有如下需求:
1. 操作人员对RTF档的操作权限分为 修改、打印(修改时可以打印,打印时只能查看,不能修改)
2. 对RTF文档的修改,应有字体、大小、行距等的设置;
3. 修改后的RTF保存有SQL Server的记录中;我尝试的方法如下:
一. 修改时在窗体中用DBRICHEDIT控件,直接绑定到SQL表,打印时用RAVE 控件绑定到SQL表,可基本实现。但有二个问题1.richedit我没能解决行距的问题(字体、大小都能解决);2.打印时rave有中文不兼容,明明排版时好的打印时会出现乱码(可能是:RAVE可以自动折行,折行时将一个汉字分在上下二行中,第二行就出现乱码)。第二个问题是致命的,我无法解决。二. 运用SERVER中的word控件,排版、打印都能解决,也可以解决操作权限(我是这样解决的,修改时调出WIN word窗体,打印时在后台运行WORD不显示),但致命问题是,在调出WORD修改内容后保存不能解决,原因是WORD是WIN的窗体,它的菜单条和工具条都它自有的只能以文件保存,不知如何能让它保存时保存到SQL中。三. 这种方法我正在试。方法如下在窗体中加入OLE对象(同时在窗体中加入菜单条),OLE对象采用数据流从表中提取RTF的内容,修改时使OLE对象处于修改状态(这时OLE对象的菜单条会加入DELPHI窗体的菜单中,而且OLE的菜单中没有”文件”这一菜单,可自行设计保存过程),保存过程用数据流存入SQL中,打印时,我将OLE对象的内容写入一临时文件中,再在窗体中加入WORD控件,调入临时文件打印(word在后台运行,不显示出来)。
但这种方法我没有解决的问题有1.OLE对象用数据流从SQL提取和写入(我想一定有人会,我没来得及试);2.OLE对象在没有激活时没有滚动条,修改状态时有滚动条也有菜单条,有一种状态是中间状态它是激活的,有滚动条没有菜单条,也不能修改,我想窗体一进入就是中间状态,我没有实现。3.因为打印时会内存中会调入WORD,如果使用频率高就太慢了,而且调试时经常出现不能正常调入WORD,可能是内存中多个WORD在运行。以上是我试验的一些方法,请大虾们指点,有无好的方法,大家多说说方法,能指点迷径的,万分感谢,进来讨论的同样感谢!!!!
1. 操作人员对RTF档的操作权限分为 修改、打印(修改时可以打印,打印时只能查看,不能修改)
2. 对RTF文档的修改,应有字体、大小、行距等的设置;
3. 修改后的RTF保存有SQL Server的记录中;我尝试的方法如下:
一. 修改时在窗体中用DBRICHEDIT控件,直接绑定到SQL表,打印时用RAVE 控件绑定到SQL表,可基本实现。但有二个问题1.richedit我没能解决行距的问题(字体、大小都能解决);2.打印时rave有中文不兼容,明明排版时好的打印时会出现乱码(可能是:RAVE可以自动折行,折行时将一个汉字分在上下二行中,第二行就出现乱码)。第二个问题是致命的,我无法解决。二. 运用SERVER中的word控件,排版、打印都能解决,也可以解决操作权限(我是这样解决的,修改时调出WIN word窗体,打印时在后台运行WORD不显示),但致命问题是,在调出WORD修改内容后保存不能解决,原因是WORD是WIN的窗体,它的菜单条和工具条都它自有的只能以文件保存,不知如何能让它保存时保存到SQL中。三. 这种方法我正在试。方法如下在窗体中加入OLE对象(同时在窗体中加入菜单条),OLE对象采用数据流从表中提取RTF的内容,修改时使OLE对象处于修改状态(这时OLE对象的菜单条会加入DELPHI窗体的菜单中,而且OLE的菜单中没有”文件”这一菜单,可自行设计保存过程),保存过程用数据流存入SQL中,打印时,我将OLE对象的内容写入一临时文件中,再在窗体中加入WORD控件,调入临时文件打印(word在后台运行,不显示出来)。
但这种方法我没有解决的问题有1.OLE对象用数据流从SQL提取和写入(我想一定有人会,我没来得及试);2.OLE对象在没有激活时没有滚动条,修改状态时有滚动条也有菜单条,有一种状态是中间状态它是激活的,有滚动条没有菜单条,也不能修改,我想窗体一进入就是中间状态,我没有实现。3.因为打印时会内存中会调入WORD,如果使用频率高就太慢了,而且调试时经常出现不能正常调入WORD,可能是内存中多个WORD在运行。以上是我试验的一些方法,请大虾们指点,有无好的方法,大家多说说方法,能指点迷径的,万分感谢,进来讨论的同样感谢!!!!
解决方案 »
- PostMessage 结构体,消息队列满了?内存泄漏???
- 关于用QReport报表计算表达式的问题?
- 小弟是菜鸟,跪求一简单算法!在线等候!!!急急急!!!
- 怎么进入小类从而提问...
- 关于使用formula one模板的问题,求助!!!
- 各位老大帮我看看
- 在access中怎么判断一个一个字段的值是不是空?
- 备份access数据库原代码,看看错在哪里?
- 在clientsocket/serversocket中传图片?还有把query控件查询出来的结果传给客户端要怎样做?
- -------------- 请教大牛问题,关于hook socket ----------------------
- 救命!我的源码没了,如何得到程序可执行体的某个控件的值?(在线等)
- ADO连接的问题:连接超时
存到外边的固定目录下,然后在数据库中存个路径不就可以了?