- 博客(32)
- 资源 (17)
- 收藏
- 关注
原创 一键变更为webbutton按钮风格
//本代码放到所有窗口的基类中,本窗口必须是 webbutton 风格的扁平窗口//WebButton_AttachButtonWindow(handle(this))uo_webbutton ibtncommandbutton btn_objthis.backcolor = RGB(255,255,255)Integer li_countInteger li_i// 窗口内控件数li_count = upperbound(this.control[])// 循环记录各控件大
2020-05-18 09:15:16 998
原创 PB调用DLL的常见问题及处理方法
PB调用DLL的常见问题及处理方法首先,为方便描述,先假设有一个DLL文件,名称为 test.dll,里面有个函数叫test。第一类:通用型标准DLL1、调用约定问题。Windows系统的标准DLL,通常有2种调用约定,即__cdecl和__stdcall,__stdcall约定在.h文件中通常又定义为 WINAPI和CALLBACK。咱们的PB只能调用__stdcall约定的DLL,不能调用__cdecl约定的DLL。如果调用了__cdecl约定的函数,会报以上错误。.
2022-05-08 18:19:03 7257
原创 cairo显示多行文本
在使用 cairo 绘制文本时,发现它不能绘制多行文本,搜索到官网[cairo] automatic multi-line text?,它说需要使用Pango库,这就痛苦了。于是研究了一下cairo源码,自己实现了一下。附上函数:#define HAVE_STDINT_H 1#define HAVE_CONFIG_H 1#include "cairo/cairo-private.h"#include "cairo/cairo-compiler-private.h"#include "...
2022-05-05 17:58:16 799
原创 PbIdea 如何导入医保大文件
PbIdea 如何导入医保大文件?国家医保项目以zip格式提供药品、材料库下载,zip文件里面是一个文本文件,文本文件是utf8编码,解压出来有好几百M。这个文件对PB来说,比较难处理。PbIdea有专门功能来处理这个文件。首先使用 uo_httpclient或uo_curl对象,根据医保接口文档将zip文件下载,存为文件。假设文件存为d:\ 202202187369608330634159091.zip。接下来介绍如何把这个压缩包里的数据导入数据库。第一步:解析数据文件,把它分解成若干个小
2022-04-14 23:01:47 1675
原创 Pbidea库关于PB核心代码保护的一个方案
Pbidea库关于PB核心代码保护的一个方案我们写程序,总是希望自己的代码不容易被别人破解,有一定安全性。尤其是用PB写CS程序,如果代码被pbkiller之类的工具轻易反编译了,数据连接等信息、加密方法等就一止了然,别人可以直接使用这些信息连接到数据库,其影响不可估量。当然,也有人不在乎这些安全考量,那就不在此考虑之类,可以忽略本文。一、pbidea库核心代码安全保护方案1.给应用程序正常添加库文件。将核心代码单独放到一个pbl里面,库名称随意指定,这里假设我们指定的名称是panda.pb
2022-04-03 14:46:41 2121
原创 第一次使用Pocket-PowerBuilder和开发DLL的经历
第一次使用Pocket-PowerBuilder和开发DLL的经历有位朋友使用Pocket-PowerBuilder(以下简称PPB)开发PDA上使用的APP,遇到一个问题,找我帮忙:DLL在PDF上调用失败。以前听闻过这个版本,以为在 windows CE上跑,和windows平台没多大差别,结果是我想简单了。特此记录一下这次经历。1.常规操作,打开虚拟机,安装windows xp sp3。顺利!2.安装PPB。顺利!3.找到wince 6.0 模拟器。4.安装 vs2008 +
2022-03-03 12:31:40 1270
原创 datawindow中正确使用字体的重要性
datawindow中正确使用字体的重要性 datawindow界面设计中,许多人忽略了字体选择,字段往DW上一拖,一放,默认是 Arial字体,也不会去调整它。如果是英文字体,倒也无关紧要,但如果内容里有中文,那差别就太大了,这时候就应该选择合适的中文字体。下面就这个区别进行一下分析。 首先是打开体会上,就这样一个简单的DW,第一列使用Arial字体,打开时就有明显迟滞,如果改为宋体,则几乎感觉不到停顿,打开时丝一般顺滑。 接下来,测试生成...
2022-02-14 09:50:18 998 1
原创 PbIdea功能系列之PowerBuilder高级图像处理功能
PbIdea功能系列之PowerBuilder高级图像处理功能我们知道,PowerBuilder是CS桌面应用的开发利器,具方便、快捷、高效的特点。然而,PowerBuilder的特长在数据库方面,对于图像处理这块,功能几乎是一片空白,只有几个简单的图形形状,更谈不上图片处理与加工,甚至有些格式都不支持。本文着重于介绍利用PbIdea扩展库,增强PB图片处理功能。一、uo_image对象uo_image对象着重于图片显示、转换、缩放等处理的一些基础功能,着重实现图片的工具性功能。
2022-01-03 18:33:31 7772 3
原创 PowerBuilder中调用DLL参数类型
PowerBuilder中可以使用外部DLL来扩展程序功能。但在实际使用中,许多人并不了解如何 做好类型对应声明。类型声明错误,甚至调用错误,会导致隐藏bug,往往在多次调用后系统会崩溃而不自知。本文就DLL声明参数做一些分析,希望对一些使用者有一些引导作用。
2021-11-24 23:36:59 4957 4
原创 PB的扩展DLL开发(超级篇)(四)
PB的扩展DLL开发(超级篇)(四)(PB史上第一次开放的开发技术)前面已介绍过OB_THIS和OB_DATA这两个结构。本章介绍如何获取到PB里传给system library DLL 的各种参数和返回值。一、参数第一个函数:function any GetGlobalVar(string strVarname) system library "PbJson.dll" alias for "GetGlobalVar"这个函数它有个字符串参数,这个参数在DLL里是一个指针,所以取
2021-07-14 12:25:27 1706
原创 PB的扩展DLL开发(超级篇)(三)
PB的扩展DLL开发(超级篇)(三)(PB史上第一次开放的开发技术)最核心的一个结构,OB_THIS ,这个在上一章已做过介绍。本章介绍OB_DATA 这个结构。这个结构的重要程度仅次于OB_THIS。OB_DATA是PB里各种类型的数据参数在DLL里的存在形式。你在PB里写的代码例如Int I; long n;string ls_text; window w;….. 这些,对照到C内部的映射,它们全部都是一个OB_DATA指针。在这个函数里__declspec(dllexport) D
2021-07-07 12:40:44 1355
原创 PB的扩展DLL开发(超级篇)(二)
PB的扩展DLL开发(超级篇)(二)(PB史上第一次开放的开发技术)上一章里,我们说到system library 里的函数声明为下面这样的方式。__declspec(dllexport) DWORD __stdcall FuncName(POB_THIS obThis,int nArgCount){ BOOL isnull; return 1;}其中第一个参数POB_THIS obThis 是每个函数的核心,本篇重点介绍一下核心结构O...
2021-06-25 11:20:46 1808 3
原创 PB的扩展DLL开发(超级篇)
PB的扩展DLL开发(超级篇)PowerBuilder (pb)作为一个基于数据库的CS开发工具,在功能方面不够全面,需要使用 DLL做功能扩展。通常对PB写DLL,有3种方法。方法1:通用DLL。这种方式的DLL,所有能写标准DLL的语言都可以写。但缺点也比较明显,无法直接访问PB对象和属性、事件这些个性内容,不合适直接返回字符串,通过参数返回数据时,需要预分配内存,如果计算错误,会导致程序崩溃。方法2:PBNI法(PowerBuilder Native Interface),即官方开
2021-06-24 17:49:21 5187 2
原创 datawindow 如何根据鼠标位置取得行号和列号信息
datawindow 如何根据鼠标位置取得行号和列号信息datawindow 鼠标响应事件中,根据鼠标位置获取所在的行号和列号的未内置未公开方法:function boolean GetRowColUnderPoint)(ulong handle,long x, long y, ref long row, ref int col) library "pbdwe90.dll" alias for "dwGetRowColUnderPoint"具体其他版本,自己修改"pbdwe90.dll"为相应版本D
2020-12-25 10:23:50 705
原创 关于PowerBuilder开发过程中的变量声明的一个坑
关于PowerBuilder开发过程中的变量声明的一个坑PowerBuilder的变量声明随意性比较大,因而就有人一不小心为此挖坑,导致有出现问题而莫名其妙。本文就简单分析一下原因。先举一小段例子:Int iFor i = 1 to 3 Int n = iMessageBox("",n)Next这段代码很典型。大家可以很思考一下,MessageBox会显示3次,分别显示的是什么内容呢?也许你所预料的应该是显示1、2、3,然而事实与你预想大相径庭,实际上3次都会显示0。为什么会这...
2020-12-05 09:44:59 1513 4
原创 关于PowerBuilder中的字符集问题
关于PowerBuilder中的字符集问题搞PB的人,很多对字符集编码这个东西不理解。即使看了网上的文章,还是不懂。比如https://blog.csdn.net/qq_28098067/article/details/53486032这篇文章,就是非常好的一篇介绍字符集的文章。大家可以先耐心看一下这篇文章。本文不研究高深的字符集问题,仅仅就PowerBuilder里字符集使用问题,作一个简介。在PB里的字符串处理,我们熟悉的就是 ...
2020-12-03 14:15:07 5996 4
原创 关于PB里 reference value readonly 3 种参数引用类型
本题目从一小段代码开始://====================================================================// Function: uo_tabpage_xml.of_print_xml_nodes//--------------------------------------------------------------------// 描述://-------------------------------------------.
2020-07-15 14:57:12 2622
原创 介绍一个PB直接读 .xlsx 的方法
.xlsx 实际上是ZIP格式文件,完全可以当作 ZIP 文件来处理。然后直接用uo_zip解压它为指定文件,或者直接当作blob读出来,都可以。在各PB群里,找到我的PB_Json_httpclient_crypto_ftp_xxxxxx.rar 包,里面有个 uo_zip 对象。1. 打开它:zip.open("c:\temp\Book1.xlsx",false,"")2.zip 事件 ue_open 里读列表//取出ZIP文件里的列表long index[]strin...
2020-06-22 11:58:59 2895 1
原创 PB高拍仪无纸化软件方案
高拍仪无纸化软件方案硬件选型通过比较国产高拍仪产品,对高拍仪分辨率要求不是很高,选择1000元左右产品即可满足。测试了几款同类型产品,分辨率都能满足足,最终选型捷宇这个品牌,厂家配合按照我们要求做了产品方面的调整:改了配置的底板,原来的多功能底板换成单一底板。好处是厚度大大降低,方便空间使用。 提高了摄像头灵敏度,有助于提高工作效率。软件设计背景由于未能短期内找到开发维护服务单位,为了满足窗口业务需求,因故自行研发高拍仪无纸化软件。 软件架构:由于原来就有一套系统是CS架...
2020-05-18 09:12:06 1183 1
原创 海康威视人脸、指纹一体机SDK封装 for PowerBuilder 说明
海康威视人脸、指纹一体机SDK封装 for PowerBuilder 说明概述ACS 封装,用C++实现DLL开发,由PowerBuilder(9.0以上版本) 调用,基于海康威视 SDK,《设备网络SDK使用手册.chm》、《设备网络SDK编程指南(门禁&人证).pdf》、《HCNetSDK.h》,相关标准,参考这两个文档。所提供参数和返回值,均基于 json 传递。支持一机控制多台设备,以acsid 编号唯一指定每台设备,编号和保存方式由程序员自己管理。功能清单:注:以下功.
2020-05-18 09:11:07 4117 1
原创 PB像素转pbu的两种方法
像素转pbu的两种方法:/一、像素转pbu的计算方法int ConvertPBU(int nValue, int nType){ static int tmHeight = 0; static int tmAveCharWidth = 0; static int nLogPixelsX = 0; static int nLogPixelsY = 0; if (!tmHeight && !tmAveCharWidth) { ...
2020-05-18 09:09:32 964
原创 PB自定义数据接口名称的方法
自定义数据接口名称的方法:functionlongDBI_RegisterVendor(stringname,stringmemo)library"pbvm90.dll"DBI_RegisterVendor("DZZ","大自在数据接口")自定义数据接口名称的方法,你可以把pbmss90.dll复制一份,改名为pbdzz90.dll以后就可以sqlca.dbms="DZZ大自在数据接口"这样连上sqlserver了其他PB版本,自己注意改版本号...
2020-05-18 09:06:42 613
原创 PB直连数据库接口分析和自定义数据接口名称方法
经我研究发现,要给特定版本的PB加数据接口,还是挺方便的。具体如下:g_sql = create uo_sqlplusg_sql.DBMS = "DZZ 大自在数据接口"g_sql.Database = "db"g_sql.LogPass = "pass"g_sql.ServerName = "1.1.1.1"g_sql.LogId = "sa"g_sql.AutoCommit = Falseg_sql.DBParm = ""connect using g_sq.
2020-05-18 09:05:49 754
原创 轻便型FDW框架 for pb
FDW(Free Datawindow)快速开发框架(for PB),完全自建框架,基于webbutton,free datawindow等本人开发的自由使用组件,简单易用,上手即可用于系统开发。下载链接:https://download.csdn.net/download/lxbin2003/10612184...
2018-08-18 14:01:55 1512 1
fdw框架2_20200420.rar
2020-05-04
PB_Json_20191125.rar
2019-11-25
PowerBuilder Version Selector
2019-04-30
PB的串口通讯模块,可PB可订阅数据读取,事件驱动
2019-03-28
PB FDW 程序框架
2018-09-17
FDW(Free Datawindow)快速开发框架(for PB)
2018-08-18
PB IDE plugin,PB开发环境的增强功能插件
2017-12-13
数据窗口美化-文字垂直居中颜色线条窗口自动缩放等演示
2017-03-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人