pb ole database blob 能显示二页的Word 文档数据吗?

xslinlin 2013-11-09 09:12:13
我用pb ole database blob 列显示了Word 文档数据,当保存进去的Word文档是二页时,blob 列不能显示二页,只能显示一页的数据,要看二页只能激活Word文档才能查看。
请问,能不打开Word 主能看到二页的文档数据吗?
激活Word的代码:dw_1.OLEActivate(dw_1.getrow(),"f_olename",0)
我用的是PB9 + SQL SERVER 2005的。请朋友们指点一下哦
...全文
1154 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
做梦的猫 2013-12-04
  • 打赏
  • 举报
回复
真不好意思。。很久以前的代码,记错了!刚刚查了一下代码,原来是设为打印预览模式 如:dw_1.object.datawindow.print.preview = "yes" // 设为打印预览模式 还有一种更简单的方法,就是在双击事件中返回非零值(但记忆里这种方法在 pb6.5 下有时会失效) 如:if dwo.name = "ole_1" then return 1
xslinlin 2013-12-03
  • 打赏
  • 举报
回复

你好 dw_1.readonly = true 这个代码在PB9 中是错误的啊
你说是更高的版本吗。

上图中:显示错误提示。
做梦的猫 2013-12-01
  • 打赏
  • 举报
回复
dw_1 本身也有 readonly 属性啊!就是 dw_1.readonly = true,这是我已经试过的,肯定可行。 为便于录入,可以在双击事件中解除只读。
xslinlin 2013-12-01
  • 打赏
  • 举报
回复
我试了,在单击事件中输入以下代码: dw_1.Object.DataWindow.ReadOnly='yes' 不过,还是没用啊,可能是这个ole database blob 数据窗口没有 display only 属性的原因吧。
做梦的猫 2013-11-30
  • 打赏
  • 举报
回复
把数据窗口设为只读就无法打开控件了,如果数据窗口需要录入,可以考虑在 clicked 事件中通过 dwo.name 判断是否为 OLE 来动态设定只读。不过我没这么搞过,是否可行还得试下看了。。
做梦的猫 2013-11-30
  • 打赏
  • 举报
回复
不是设置数据窗口的 enabled 属性,是 readonly 属性。在单击事件 clicked 中动态设定,因为到双击事件中设置时已经晚了,再试试。。
xslinlin 2013-11-30
  • 打赏
  • 举报
回复
dw_1.enabled = false 能实现无法打开控件的功能,但是下拉滚动滑块不能用了,有一页的数据只能看到半页啊。 要数据可以控制的,把属性改回来就可以了。就是下拉滚动滑块不能用, 在双击事件中输入dw_1.enabled = false没有用,还是可以打开的。
xslinlin 2013-11-29
  • 打赏
  • 举报
回复
很感谢 6#朋友 的帮助,写了那么多的代码。 我真看不懂,上面的代码能实现 限制用户双击打开 db ole控件吗? 用"按键"实现打开Word,用下面一个语句就可能了啊, dw_1.OLEActivate(dw_1.getrow(),"f_olename",0) 我想实现的功能是 当用户双击db ole 控件时,不能打开Word,而只能通过单击“功能按钮”来实现打开Word.
做梦的猫 2013-11-29
  • 打赏
  • 举报
回复
试试用 API 模拟双击。。转贴 PB 代码模拟按键 API函数keybd_event 及相应的键值说明 Subroutine keybd_event(char bVk, char bScan, ulong dwFlags, ref ulong dwExtraInfo) Library "USER32.DLL" 函数定义如: ulong ll_ExtraInfo char lc_shift, lc_tab lc_shift=char(16) lc_tab=char(9) keybd_event(lc_shift, char(0), 0, ll_ExtraInfo) keybd_event(lc_tab, char(0), 0, ll_ExtraInfo) keybd_event(lc_tab, char(0), 2, ll_ExtraInfo) keybd_event(lc_shift, char(0), 2, ll_ExtraInfo)//在窗口中声明如下的全局或局部外部函数: 代码触发按键 subroutine keybd_event(int bVk,int bScan,int dwFlags,int dwExtraInfo) Library "user32" // tab键的keyvalues为9,如下使用: // keybd_event(9,0,0,0) //相当于键值为9的键被按下,即TAB键被按下。 // keybd_event(9,0,2,0) //相当于键值为9的键被释放,即TAB键被释放。 // shift 的键值为16.其它的你可以自己查资料。 VK_Down=40. VK_LEFT=37. VK_UP=38. VK_RIGHT=39 F1-F12分别对应112-123 键码常数 键码 常数 值 描述 vbKeyLButton 1 鼠标左键 vbKeyRButton 2 鼠标右键 vbKeyCancel 3 CANCEL 键 vbKeyMButton 4 鼠标中键 vbKeyBack 8 BACKSPACE 键 vbKeyTab 9 TAB 键 vbKeyClear 12 CLEAR 键 vbKeyReturn 13 ENTER 键 vbKeyShift 16 SHIFT 键 vbKeyControl 17 CTRL 键 vbKeyMenu 18 菜单键 vbKeyPause 19 PAUSE 键 vbKeyCapital 20 CAPS LOCK 键 vbKeyEscape 27 ESC 键 vbKeySpace 32 SPACEBAR 键 vbKeyPageUp 33 PAGEUP 键 vbKeyPageDown 34 PAGEDOWN 键 vbKeyEnd 35 END 键 vbKeyHome 36 HOME 键 vbKeyLeft 37 LEFT ARROW 键 vbKeyUp 38 UP ARROW 键 vbKeyRight 39 RIGHT ARROW 键 vbKeyDown 40 DOWN ARROW 键 vbKeySelect 41 SELECT 键 vbKeyPrint 42 PRINT SCREEN 键 vbKeyExecute 43 EXECUTE 键 vbKeySnapshot 44 SNAP SHOT 键 vbKeyInser 45 INS 键 vbKeyDelete 46 DEL 键 vbKeyHelp 47 HELP 键 vbKeyNumlock 144 NUM LOCK 键 A 键到 Z 键与其 ASCII 码的相应值'A' 到 'Z' 是一致的 常数 值 描述 vbKeyA 65 A 键 vbKeyB 66 B 键 vbKeyC 67 C 键 vbKeyD 68 D 键 vbKeyE 69 E 键 vbKeyF 70 F 键 vbKeyG 71 G 键 vbKeyH 72 H 键 vbKeyI 73 I 键 vbKeyJ 74 J 键 vbKeyK 75 K 键 vbKeyL 76 L 键 vbKeyM 77 M 键 vbKeyN 78 N 键 vbKeyO 79 O 键 vbKeyP 80 P 键 vbKeyQ 81 Q 键 vbKeyR 82 R 键 vbKeyS 83 S 键 vbKeyT 84 T 键 vbKeyU 85 U 键 vbKeyV 86 V 键 vbKeyW 87 W 键 vbKeyX 88 X 键 vbKeyY 89 Y 键 vbKeyZ 90 Z 键 0 键到 9 键与其 ASCII 码的相应值 '0' 到 '9' 是一致的 常数 值 描述 vbKey0 48 0 键 vbKey1 49 1 键 vbKey2 50 2 键 vbKey3 51 3 键 vbKey4 52 4 键 vbKey5 53 5 键 vbKey6 54 6 键 vbKey7 55 7 键 vbKey8 56 8 键 vbKey9 57 9 键 数字小键盘上的键 常数 值 描述 vbKeyNumpad0 96 0 键 vbKeyNumpad1 97 1 键 vbKeyNumpad2 98 2 键 vbKeyNumpad3 99 3 键 vbKeyNumpad4 100 4 键 vbKeyNumpad5 101 5 键 vbKeyNumpad6 102 6 键 vbKeyNumpad7 103 7 键 vbKeyNumpad8 104 8 键 vbKeyNumpad9 105 9 键 vbKeyMultiply 106 乘号 (*) 键 vbKeyAdd 107 加号 (+) 键 vbKeySeparator 108 ENTER 键(在数字小键盘上) vbKeySubtract 109 减号 (-) 键 vbKeyDecimal 110 小数点 (.) 键 vbKeyDivide 111 除号 (/) 键 功能键 常数 值 描述 vbKeyF1 112 F1 键 vbKeyF2 113 F2 键 vbKeyF3 114 F3 键 vbKeyF4 115 F4 键 vbKeyF5 116 F5 键 vbKeyF6 117 F6 键 vbKeyF7 118 F7 键 vbKeyF8 119 F8 键 vbKeyF9 120 F9 键 vbKeyF10 121 F10 键 vbKeyF11 122 F11 键 vbKeyF12 123 F12 键 vbKeyF13 124 F13 键 vbKeyF14 125 F14 键 vbKeyF15 126 F15 键 vbKeyF16 127 F16 键
xslinlin 2013-11-29
  • 打赏
  • 举报
回复
另外,想问一下各位同仁:db ole 中双击能直接打开Word 。现在我想双击 不能打开 Word ,通过按键来实现,怎么实现啊,谢谢了
做梦的猫 2013-11-10
  • 打赏
  • 举报
回复
具体没做过,说说思路。。 实现此功能的关键就是要把多页文档切割成单页文档。如果只查看不编辑的话,就可以简化成另存为单页图片,然后把图片存入数据库,再用 lzp_lzp 的方法检索到本地通过 ole 控件显示。 实际上,也就是要解决 word 转 jpg 的问题。为了方便实现,只有放弃使用 db ole 控件,直接用 ole 控件。
xslinlin 2013-11-10
  • 打赏
  • 举报
回复
我想问,可能 PB9换成更高的版本能实现吗? 或者,不能datawindow,用其他控件能实现显示二页或二页以上的类似word文档的数据呢
xslinlin 2013-11-10
  • 打赏
  • 举报
回复
好象 用ole连接后,显示出来的也只能是显示一页的,也不能同时显示二页的吧。要查看也要打开Word才能查看的。我想要实现的是直接用ole控件显示有二页的文档。有好办法吗
WorldMobile 2013-11-09
  • 打赏
  • 举报
回复
换种方法吧,这种方法实现不了 建议你把数据从数据库用selectblob取出来后放在临时目录下,生成一个word文件,然后再用ole连接这个word文件进行查看

611

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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