PB从入坑到放弃(七)PBer们的福音来了

这篇具有很好参考价值的文章主要介绍了PB从入坑到放弃(七)PBer们的福音来了。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在前面

也许现在的你需要用PB完成毕业设计、需要维护远古时代的代码,又或者是你呆的公司就是要求要用PB开发项目。

不管你是出于什么原因还在使用PB,不可否认PB在数据窗口非常优秀,熟练使用之后开发数据库相关的应用非常高效

但由于PB这一框架出现得比较早,而且主要用于传统基于数据库得CS开发。

在网络、系统、数据传输等方面有很多欠缺,需要实现某些功能特别费劲,需要引入各种动态库才能实现

一、PB项目开发痛点

  • 调用基于http协议开发的webapi接口实现方式单一
  • 数据传输格式json数据的封装与解析不方便
  • 各种加密解密或者签名算法实现比较困难
  • utf8utf16ansi等字符集编码相互转换困难
  • 没法处理大文件(几百兆的txt文件下载,导入)

二、Pbidea来了

既然PB中存在这些问题,但又不得不使用PB时。

你是不是会想PB中有没有类似与Java中HutoolfastjsonLog4j等等这样的类库呢?

当然是有的,它就是今天要推荐给你的Pbidea.dll

Pbidea是大自在大佬开发的,平常大家都喊在叔。并且该项目一直在维护中,就在昨天20230804还发布了一个新版本。

它不仅可以解决上面的痛点,还封装了很多扩展功能,方便PBer们使用。

利用它,你甚至可以使用在PB中使用redisRibbitMQkafka 等这样的高并发组件。

还有你平常觉得在PB中很难实现的pdf、图片展现处理等等都能轻松实现。

这些怎么时候,在后面会一一说明

三、Pbidea 介绍

3.1 下载

① 通过GitHub下载

https://github.com/lxb320124/pbidea

PB从入坑到放弃(七)PBer们的福音来了

② 通过QQ群下载

GitHub上面好像没有同步更新,如果你需要最新的需要通过QQ群文件下载。

由于这里不方便发群,小伙伴们找不到可以私信哦。最新版是昨天(2023年08月04日更新的)

PB从入坑到放弃(七)PBer们的福音来了

3.2 文件目录简介

从上面渠道下载完项目后解压,目录如下。

你需要关注的主要是两个目录。9-->里面是基于PB9的demo。10-->是基于PB9以上版本的demo

PB从入坑到放弃(七)PBer们的福音来了

3.4 运行起来

既然demo都下载下来了,那么当然是要跑起来看看了。个人电脑上安装的是PB12.5 ,所以就打开了10目录下的demo

① 打开工作空间

PB从入坑到放弃(七)PBer们的福音来了

② 选择文件夹10下面的pbjson.pbw

PB从入坑到放弃(七)PBer们的福音来了

③ 直接运行

PB从入坑到放弃(七)PBer们的福音来了

PB从入坑到放弃(七)PBer们的福音来了

四、Pbidea 使用

从上面运行起来的demo中,我们可以看到,Pbidea包含了如下功能

  • json/bson/xml等各种交换格式
  • httpclient
  • 加/解密和编码
  • FTP/sFTP/FTP服务器
  • 扩展数据类型(map,string等)
  • 压缩/解压缩
  • 数据库扩展
  • PDF浏览与dw2pdf
  • 图形图片条码、多媒体
  • 数据窗口增强
  • websocket和tcp/ip客户端
  • 高并发组件
  • 物联网开发和只能设备
  • 计算机/打印及系统
  • 控件与界面美观
  • 其他PowerBuilder扩展功能
  • 行业应用案例

接下来的小节中,将带大家怎么找对应功能的代码。并对部分功能简单一一说明

4.1 项目代码说明

PB从入坑到放弃(七)PBer们的福音来了

websuit.pbl-->uo_json 中申明动态库

PB从入坑到放弃(七)PBer们的福音来了

pbjons-->uo_tabpage_json 调用上面申明好的动态库中方法(具体代码实现)

PB从入坑到放弃(七)PBer们的福音来了

4.2 json/bson/xm等各种交换格式 模块

①提供功能

  • 快速解析和生成json,基于datawinow 导入导出
  • bson数据的解析和生成
  • xml文件、字符串解析和生成

②涉及uo对象及可视化uo

  • uo_jsonuo_xmluo_bjson
  • uo_tabpage_jsonuo_tabpage_xmluo_tabpage_bson

③界面位置

PB从入坑到放弃(七)PBer们的福音来了

4.3 httpclient 模块

① 提供功能

  • 提供基于Winhttphttp/https协议的数据访问,封装由下载和上传功能,可以直接传输json对象,自带utf8转码
  • 提供基于libcurlhttp/https协议的数据访问,封装由下载和上传功能,可以直接传输json对象,自带utf8转码

②涉及uo对象及可视化uo

  • uo_httpclientuo_curl
  • uo_tabpage_httpclientuo_tabpage_curl

③界面位置

PB从入坑到放弃(七)PBer们的福音来了

4.4 加/解密和编码

基于openssl实现常用功能

① 提供功能

  • RSA公钥私钥生成,加密、解密、签名和验签

  • CRC32CRC16CRC18校验

  • MD5、SHA、SM3、base64、urlencode/urldecode、timestamp等编码解密

  • AES、DES、3DES、SM4 等加密解密功能

② 涉及uo对象及可视化uo

  • uo_crypto
  • uo_tabpage_crypto_rsauo_tabpage_crypto_crcuo_tabpage_crypto_auo_tabpage_crypto_sm2uo_tabpage_crypto_asn1

③ 截图

PB从入坑到放弃(七)PBer们的福音来了

4.5 FTP/sFTP/FTP服务器

① 提供功能

  • 提供一个ftp服务器,可以共享本机文件给客户端
  • 基于libftp,完全从底层协议实现的ftp客户端
  • 基于ssh协议的FTP 客户端,除上传下载以外,还可以在服务端执行操作系统命令,相当于合并了ssh功能

②涉及uo对象及可视化uo

  • uo_ftp_serveruo_ftp
  • uo_tabpage_ftp_serveruo_tabpage_ftpuo_tabpage_ftp_browseruo_tabpage_sftp

③ 截图

PB从入坑到放弃(七)PBer们的福音来了

4.6 扩展数据类型(map、string等)

①提供功能

  • 扩展实现了map容器
  • 扩展了二进制数据处理功能
  • 扩展了字符串处理功能
    • 正则表达式搜索、匹配、替换
    • 大文本按行处理
    • 字符集转换
    • 直接读写文本文件
    • 字符串分割
    • 控制台输出调试功能
  • 位操作与进制转换
  • 大整数biginteger处理功能
  • 日期事件处理与计算

②涉及uo对象及可视化uo

  • uo_mapuo_blobuo_stringuo_bitsuo_bigintegeruo_datatime
  • uo_tabpage_map_asn1uo_tabpage_blobuo_tabpage_stringuo_tabpage_bitsuo_tabpage_bigintegeruo_tabpage_datatime

③ 截图

PB从入坑到放弃(七)PBer们的福音来了

4.7 压缩/解压缩

①提供功能

  • 提供zip格式的压缩和解压缩功能(还可以将BLOB数据添加进压缩包,或者将压缩包内容读取到BLOB变量)
  • 提供数据流压缩和解压缩功能。支持压缩、解压缩.gz格式文件

②涉及uo对象及可视化uo

  • uo_zipuo_compress
  • uo_tabpage_zipuo_tabpage_compress

③ 截图

PB从入坑到放弃(七)PBer们的福音来了

4.8 数据库扩展

① 提供功能

  • 提供众多数据库连接支持,快速高效范围数据库和结果集
  • 自身数据库改进,支持断线检测功能
  • dbf文件的导入与导出
  • 解析Oracle的TNS文件为json格式
  • 提供非关系型数据库的支持

②涉及uo对象及可视化uo

  • uo_databaseuo_transationuo_dbfuo_json、`uo_kv``
  • uo_tabpage_sqluo_tabpage_transationuo_tabpage_dbfuo_tabpage_kv

③ 截图

PB从入坑到放弃(七)PBer们的福音来了

4.9 PDF浏览与dw2dbf

① 提供功能

  • 加载pdf文件,可打印和另存
  • 将pdf文件转换成图片
  • 将pdf转换为纯文本内容,可取到每个单词
  • 在指定位置添加图片
  • 添加手写签名
  • dw生成pdf文件和图片

②涉及uo对象及可视化uo

  • uo_pdfmakeruo_pdfview
  • uo_tabpage_pdf_makeruo_tabpage_pdf_viewuo_tabpage_pdf_fpsbuo_tabpage_pdf_merge

③ 截图

PB从入坑到放弃(七)PBer们的福音来了

4.10 图形图形条形码、多媒体

① 提供功能

  • 支持bmp、jpg、png、emf、wmf、gif、tif等格式图片加载、显示转换
  • 支持条码、二维码生成
  • 支持条码、二维码识别
  • 图片浏览控件
  • 图形处理工具,类似于windows自带的绘图工具
  • 音频文件合并阅读

② 涉及uo对象及可视化uo

  • uo_imageuo_imageviewuo_painteruo_wavfileuo_speakuo_speak_recognize

  • uo_tabpage_imageuo_tabpage_codeuo_tabpage_symboluo_tabpage_image_viewuo_tabpage_painter_chart_arcuo_tabpage_painter_chart_areauo_tabpage_painter_chart_baruo_tabpage_painter_chart_bar3d

    uo_tabpage_painter_chart_barlineuo_tabpage_painter_chart_guageuo_tabpage_painter_chart_hbar

    uo_tabpage_painter_chart_lineuo_tabpage_painter_chart_npieuo_tabpage_painter_chart_percent

    uo_tabpage_painter_chart_pieuo_tabpage_painter_chart_radaruo_tabpage_painter_chart_scatter

    uo_tabpage_painter_clip、uo_tabpage_painter_imageuo_tabpage_painter_reuo_tabpage_wav

uo_tabpage_speakuo_tabpage_recognize

③ 截图

PB从入坑到放弃(七)PBer们的福音来了

4.11 数据窗口增强

① 提供功能

  • datawindow与excel导入与导出
  • 拖拽功能,可用于排班、排房间等业务
  • 超大文本文件导入(几百兆txt文件导入)
  • 鼠标拖拽选取获取datawindow数据
  • 数据窗口解析为json数据
  • 实时生成图片

②涉及uo对象及可视化uo

  • uo_datawindowexuo_drag_datawindowvuo_selected_datawindowuo_json
  • uo_tabpage_exceluo_tabpage_drag_datawindowuo_tabpage_datawindowuo_tabpage_datawindow_seletect

uo_tabpage_datawindow_syntaxuo_tabpage_datawindow_dimage

③ 截图

PB从入坑到放弃(七)PBer们的福音来了

4.12 websocket和tcp/ip客户端

① 提供功能

  • websocket客户端
  • socket客户端
  • ping、支持带端口的ping
  • 基于smtp协议发送邮件
  • 基于pop协议接收邮件,并将接收到的邮件解析为json结构方便使用

② 涉及uo对象及可视化uo

  • uo_websocket_clientuo_socket_clientuo_mail
  • uo_tabpage_ws_clientuo_tabpage_socket_clientuo_tabpage_pinguo_tabpage_mail

③ 截图

PB从入坑到放弃(七)PBer们的福音来了

4.13 高并发组件

① 提供功能

  • 提供RibbitMQ 功能
  • 提供kafka功能
  • 提供mqtt功能
  • 提供redis缓存共功能

② 涉及uo对象及可视化uo

  • uo_rabbitmquo_rabbitmq_exchangeuo_rabbitmq_queueuo_kafka_consumeruo_kafka_producer

uo_mqttuo_redis

  • uo_tabpage_hc_rabbitmquo_tabpage_hc_kafkauo_tabpage_hc_mqttuo_tabpage_hc_redis

③ 截图

PB从入坑到放弃(七)PBer们的福音来了

4.14 物联网开发和只能设备

① 提供功能

  • 提供modbus-tcp功能
  • 海康指纹仪
  • 串口通讯
  • 读取身份证信息

② 涉及uo对象及可视化uo

  • uo_modbus_tcpuo_fingerprintuo_serialuo_sdtapi
  • uo_tabpage_modbusuo_tabpage_fingerprintuo_tabpage_serialuo_tabpage_sdtapi

③ 截图

PB从入坑到放弃(七)PBer们的福音来了

1.15 计算机/打印机及系统

① 提供功能

  • 打印机控制相关功能
  • 无驱动打印机
  • 取ip、cpu序列号等信息
  • 多显示器管理
  • 窗口子类化处理、拦截窗口信息,自己做出判断处理
  • 多线程和进程数据共享
  • 系统环境变量管理

② 涉及uo对象及可视化uo

  • uo_printeruo_printer_usbuo_hardwareuo_monitoruo_subclassuo_thread_factoryuo_threaduo_sysenv
  • uo_tabpage_printeruo_tabpage_printer_usbuo_tabpage_printer_hardwareuo_tabpage_printer_monitor

uo_tabpage_systemuo_tabpage_subclassuo_tabpage_threaduo_tabpage_env

③ 截图

PB从入坑到放弃(七)PBer们的福音来了

1.16 控件与界面美观

① 提供功能

  • 打开和保存对话框美化
  • 编辑器语法高亮功能
  • 计算器控件
  • 漂亮日历控件,支持鼠标、键盘 操作日期可快速跳转
  • 不同类型进度条
  • 内置字体图标
  • 基于微软最新edge webview2的浏览器控件

② 涉及uo对象及可视化uo

  • uo_scintillauo_calculatoruo_calendaruo_wait_boxuo_progressuo_messagewidgetuo_webview2

  • uo_tabpage_opensaveuo_tabpage_scintillauo_tabpage_calculatoruo_tabpage_calendaruo_tabpage_progress

    uo_tabpage_awesome uo_tabpage_webview2uo_tabpage_webview2_2

③ 截图

PB从入坑到放弃(七)PBer们的福音来了

1.17 其他PowerBuilder扩展功能

① 提供功能

  • 各种杂项函数和功能集合
  • 保护pbd不受反编译
  • 文件读写操作增强功能
  • dll函数调用
  • pb动态编译
  • 配置文件及序列化

②涉及uo对象及可视化uo

  • uo_utilsuo_fileuo_blobuo_stringuo_logfileuo_dlluo_orcauo_config
  • uo_tabpage_pb_readeruo_tabpage_pb_varuo_tabpage_pb_safeuo_tabpage_file_op

uo_tabpage_dlluo_tabpage_orcauo_tabpage_config

③ 截图

PB从入坑到放弃(七)PBer们的福音来了

1.18 行业应用和案例

① 提供的功能

  • 阿里cbs签名

  • 内蒙古预算管理一体化系统接口签名

  • 农业银行商户接口签名

  • 赣州银行开放接口平台

  • 工商银行二维码被扫支付接口

  • 建行互联网银企直连请求加密及返回验签方法

  • 国家医保目录上传下载接口

  • 诺诺企业发票接口加密

②涉及uo对象及可视化uo

  • uo_cryptouo_httpclientuo_curl
  • uo_tabpage_bussess_csbuo_tabpage_bussess_nmysuo_tabpage_bussess_nyyhsh

uo_tabpage_bussess_gzbankuo_tabpage_bussess_ghpayuo_tabpage_bussess_yb_ud

uo_tabpage_bussess_nnfp

③ 截图

PB从入坑到放弃(七)PBer们的福音来了

以上对Pbidea 提供的18个功能做了简要说明,有什么不清楚的就多看看demo。

五、怎么在项目中使用Pbidea

5.1 新项目

如果是新项目,新建项目之后,直接将Pbidea.dll放入到指定路径,并将websuite.pblsciter.pblsql.pblweb.pblweb_client.pblpainter.pblhaikang.pbl 加入到工作空间中即可,当然了如果你只用到其中的部分功能,可以先只加入websuite.pbl

① 将Pbidea.dll拷贝到项目跟目录

PB从入坑到放弃(七)PBer们的福音来了

②右键选择Properties...

PB从入坑到放弃(七)PBer们的福音来了

③ 选择需要添加的pbl文件(pbl文件路径和项目路径同一个目录)

PB从入坑到放弃(七)PBer们的福音来了

PB从入坑到放弃(七)PBer们的福音来了

5.2 老项目

如果是老项目,项目中新建的uo可能与Pbidea中的uo冲突,真个引入进去可能会影响原来代码功能

我们只能按需引入,确保引入的uo和之前项目中的uo不冲突

六、小结

工欲善其事必先利其器,多花费一点时间研究下Pbidea,尽量每个demo都点一点,做到心中有数。

当我们在工作中遇到类似的需求时,就可以参考着demo中实现即可。

用了这么久PB,Pbidea最好的扩展功能动态库了,没有之一

本期内容到此就结束了,希望对你有所帮助。

我们下期再见 (●'◡'●)文章来源地址https://www.toymoban.com/news/detail-632243.html

到了这里,关于PB从入坑到放弃(七)PBer们的福音来了的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PB从入坑到放弃(五)窗口使用技巧

    PB 应用程序就是由许多共同协作完成特定任务的窗口组成的集合。 窗口在应用程序的开发工作中占有很大的比重,是非常重要的一个 PB 对象 窗口类型 描述 Main ①可以覆盖其他窗口,也可以被其他窗口覆盖 ②可以最大、最小化,可以用鼠标改变其 大小 ③可以有边框,可以有

    2024年02月16日
    浏览(37)
  • PB从入坑到放弃(一)第一个HelloWorld程序

    网上关于 PowerBuilder 的资料确实是少之又少。 为了方便,后面我们都用 pb 来代替 PowerBuilder 说到这不得不来说说自己的 pb 入坑经历, 自己也不是计算机科班出生。 刚到公司面试,听到 pb 也是一脸懵逼,这啥东西,从来没听过。 然而,不知不觉已经干了好几年😔 也是有了这

    2024年02月11日
    浏览(43)
  • PowerBuilder从入坑到放弃(二)编码规范

    上一篇我们从0到1用 pb 开发了一个 helloworld 程序,并成功将开发的程序编译打包并且制作了安装包。 程序员最讨厌的莫过于写文档和别人不写注释。 不知道大家会不会和我一样,在找bug时,有段代码,心中不知默默的骂了它多少遍。 哪个sx写的这代码,研究了一段时间发现

    2024年02月12日
    浏览(40)
  • C桑(Cython)从入坑到入土(1)

    Cython 是一个将类似 Python 的代码文件编译为 C 代码的编译器。尽管如此,“Cython 不是 Python 到 C 的翻译器”。也就是说,它不会将完整的程序\\\"转换为 C\\\"------相反,结果会充分利用 Python 运行时环境。一种看待它的方式可能是,您的代码仍然是 Python,因为它在 Python 运行时环境

    2024年01月16日
    浏览(37)
  • 茅台党福音来了,一款开源自动预约茅台

    背景: 大家都知道贵州茅台是酒类企业中的龙头老大,上市公司,茅台的利润有多高,平台预约茅台价格是1499,转手出售2700,纯利1200。真是妥妥印钞机,话不多说,直接开始。 功能: i茅台自动预约,每日自动预约,支持docker一键部署,操作方便,配置简单即可快速上手。

    2024年04月17日
    浏览(48)
  • Spring AI来了,Java开发者福音

    Spring AI来了,Java生态接入LLM大模型变得更加简单! 今天官宣Spring AI已经上架到Spring Initializr 上,它提供了一种更简洁的方式和AI交互,减轻Java业务中接入LLM模型应用的学习成本,目前在 https://start.spring.io/ 上可以使用并构建。 Spring AI 是一个人工智能工程的应用框架。其目标

    2024年03月21日
    浏览(41)
  • AI一键换衣,阿里Outfit Anyone来了,电商人的福音!

            继谷歌推出Tryon Diffusion虚拟试穿后,国内的头部电商阿里也推出的Outfit Anyone虚拟试穿技术。该技术采用双流条件扩散模型,处理模特和服装数据,通过衣物图像实现逼真的虚拟试穿效果,结合Animate Anyone技术,轻松制作任意角色的换装视频。只需要一张人物照片和

    2024年02月21日
    浏览(47)
  • 是不是学了低代码就自动放弃了高薪?内部资深解答来了!

    近年来,低代码开发因其低门槛、高效率和易集成的特点受到市场的广泛关注。然而,随之而来的也有一系列质疑和争议:低代码是否只是一种伪需求?它会对程序员的就业产生怎样的影响?甚至有声音将其称为行业的“毒瘤”。在这样的背景下,理解低代码开发的真正含义

    2024年02月03日
    浏览(35)
  • 容器编排器们的自我介绍

    哈喽大家好,我是咸鱼 咸鱼在《一文带你了解容器技术的前世今生》有介绍过容器技术的由来以及Docker项目的发展 我们知道,Docker 及其他容器技术能够极大地简化应用程序的部署,做到了”开箱即用“ 俗话说:”凡是具有两面性“。容器技术给我们带来便利的同时,一些问

    2024年02月06日
    浏览(43)
  • 低代码治好了CIO们的 “精神内耗”

    目录 一、前言 二、低代码在企业数字化转型中能“C位出道”,凭什么? 三、低代码的数字化构建能力 四、结束语 近两年,我发现身边的CIO/CTO朋友都得了一种“病”——“数字化焦虑”症。 他们经常皱着眉头问我: “老板对数字化越来越重视了,也意味着CIO们的压力越来

    2024年02月16日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包