PB转纯BS工具

pbtoweb

Convert Powerbuilder UI to web Automatically.

源码地址:GitHub - pcwe2002/pbtoweb: automatically convert Powerbuilder UI to web

支持转换控件

  •  Window
  •  DataWindow
  •  CommandButton
  •  CheckBox
  •  RadioButton
  •  Tab
  •  DropdownListbox
  •  StaticText
  •  EditMask
  •  SinglelineEdit
  •  GroupBox
  •  UserObject
  •  Progress
  •  Picture
  •  TreeView

使用说明:

  1. 如未安装nodejs, 需要安装nodejs, 可以 下载 | Node.js 下载安装
  2. 导出pb代码,包括窗口和继承的对象到一个目录(如示例中的pbocde目录中), 如果pb10以下的代码导出后需要用nodepad++ 打开文件转换编码为utf8编码
  3. 进入命令行窗口cmd, 进入当前目录输入
node pbtoweb convert pbcode w_test_amis d:/form.js --js

窗口将转化为web窗口form.js 其中pbcode为pb导出的源码目录, w_test_amis为要导出窗口的名称, d:/form.js为导出的代码目录 --js表示导出为js窗口

导出后的form.js类似这样

export default class PBPage extends PB.AmisPage {constructor(root, options, dialog) {super(root, options, dialog);const page = this;let amisJSON = {...}this._init(amisJSON);}onLoad() {}onResize(sizetype, newwidth, newheight) {console.log('onResize', newwidth, newheight);}onClose() {console.log('onClose');}cb_1_clicked(e, props) {// code} }

代码事件对应关系

JS事件PB事件说明
onLoadload窗口打开
onResizeresize窗口改变大小
onCloseclose窗口关闭
cb_1_clickedclick!名称为cb_1控件的click事件,根据按钮的click事件自动生成

可以在事件中添加自己的处理代码,控件操作和pb中基本一致

...onResize(sizetype, newwidth, newheight) {this.cb_1.x = 10;this.cb_1.y = 100;this.cb_1.resize(100, 30);}async cb_3_clicked(e, props) {let ll_rtn = await PB.messageBox("消息", "您好", "", "YesNo!");if (ll_rtn == 1)  {this.tab_1.tabpage_2.cbx_1.checked = true;this.tab_1.tabpage_2.cbx_2.checked = false;} else {this.tab_1.tabpage_2.cbx_2.checked = true;this.tab_1.tabpage_2.cbx_1.checked = false;}console.log(ll_rtn);}cb_2_clicked(e, props) {// codethis.tab_1.tabpage_2.sle_1.text = "amis演示";this.tab_1.tabpage_2.cbx_2.checked = true;}cb_1_clicked(e, props) {// codethis.tab_1.tabpage_1.dw_1.retrieve()}

在satweb中显示效果

  1. 将生成的form.js放到 server\plugins\web\dist\data\page 目录下面,并运行satserver.exe
  2. 浏览器输入 http://127.0.0.1:5555/webui ,如果未配置数据库,请参考http://www.satrda.com/doc/satweb/config.html 中的开始使用配置
  3. 在系统管理->菜单管理中随意找一个菜单,点击修改 修改-> 组件路径:amispage, 路由地址为 /data/page/vd.js 并保存。
  4. 刷新浏览器进入菜单可以看到效果。参考demo/vd.js 中的事件可以写实现自己的事件,代码基本和pb一样 了解更多satweb可以进入 SatWeb | SatRDA文档

在amis网站上查看效果

  1. 命令行运行以下命令,会导出amis的json文件
node pbtoweb convert pbcode w_test_amis d:/out.json --demo
  1. 打开d:/out.json并复制文本
  2. 进入 amis网站, 找一个示例点击编码代码
  3. 粘贴就可以

单独网页中查看

  1. 下载源码的文件夹demo
  2. 放到文件服务器中,如ngnix等,或者直接放到下载的satrda的 server/public 目录, 运行satserver.exe
  3. 浏览器输入 http://127.0.0.1:5555/demo

更多信息,QQ群:836173975

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/85987.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

有效保护敏感数据的最佳实践

在当今数据驱动的环境中,数据就是力量,组织仍然高度关注如何利用其数据进行 BI、分析和其他业务驱动计划。 事实上,最近的研究表明,数据领导者的主要动机是对高质量分析洞察的需求,而不是合规性。 然而,…

eNSP基础网络学习-v02

一、eNSP 1.什么是eNSP eNSP(Enterprise Network Simulation Platform)是一款由华为提供的免费的、可扩展的、图形化操作的网络仿真工具平台,主要对企业网络路由器、交换机进行软件仿真,完美呈现真实设备实景,支持大型网络模拟,让…

git reset origin --hard解决‘Your branch is ahead of ‘origin/xxxx‘ by xx commit.’

git reset origin --hard解决‘Your branch is ahead of origin/xxxx by xx commit.’ 如图: 之前是这么解决的解决git:Your branch is ahead of ‘XXX‘ by X commits-CSDN博客git删除/撤销远已经push到程服务器上某次代码提交场景:不小心把…

忽视日志吃大亏,手把手教你玩转 SpringBoot 日志

一、日志重要吗 程序中的日志重要吗? 在回答这个问题前,笔者先说个事例: ❝ 笔者印象尤深的就是去年某个同事,收到了客户反馈的紧急bug。尽管申请到了日志文件,但因为很多关键步骤没有打印日志,导致排查进…

K8S:pod集群调度及相关操作

文章目录 一.pod集群调度概念1.调度约束( List-Watch组件)2.List-Watch的工作机制(1)List-Watch的工作机制流程(2)List-Watch的工作机制图示 3.调度的过程(1)调度的任务(2)调度选择p…

vue3项目发布后修改配置文件仍然生效

使用json,并且要用ajax来加载;应用过程中也有一些注意的问题。 有关“vue3项目发布后修改配置文件仍然生效”问题,之前做过一篇笔记《vue项目读取全局配置》。但事实上,那篇笔记的步骤,只解决了项目发布后&#xff0c…

【工具插件类教学】三种常用日期选择UI控件工具

目录 一. DataPicker的简介 二. DateTimePicker的简介 ​三. FlatCalendar的简介 一. DataPicker的简介 一种是常显,一种是按钮控制显示逻辑,可以设置年,月,日。并输出结果

Ubuntu 22.04 快速安装 MySQL 数据库 8.0

Ubuntu 22.04 快速安装 MySQL 数据库 8.0 1. 安装 MySQL2. 配置 MySQL2.1 公网访问2.2 添加用户2.2.1 切换 root 用户2.2.2 链接 MySQL2.2.3 添加新的 MySQL 用户2.2.4 退出 MySQL2.2.5 退出 root 用户 2.3 测试新用户 1. 安装 MySQL sudo apt install mysql-server-8.02. 配置…

【Vue3 源码解析】reactive 全家桶

// 泛型约束&#xff1a;只能传入引用类型 export function reactive<T extends object>(target: T): UnwrapNestedRefs<T> // 判断只读&#xff0c;否则创建reactive响应式对象 export function reactive(target: object) {// if trying to observe a readonly pr…

求生之路2服务器搭建插件安装及详细的游戏参数配置教程windows

求生之路2服务器搭建插件安装及详细的游戏参数配置教程windows 大家好我是艾西&#xff0c;最近研究了下 l4d2&#xff08;求生之路2&#xff09;这款游戏的搭建以及架设过程。今天就给喜欢l4d2这款游戏的小伙伴们分享下怎么搭建架设一个自己的服务器。毕竟自己当服主是热爱游…

Unity Bolt 实现UI拖拽功能

最近在学习使用Bolt插件实现五代码对UGUI Image元素实现拖拽。先看效果 录制_2023_09_15_17_50_45_29 下面是实现方式介绍&#xff1a; 1&#xff1a;注册RectTransformUtility 在使用Bolt插件实现UI拖拽的功能&#xff0c;需要使用 RectTransformUtility.ScreenPointToLoca…

数据分析总结

数据分析 AB检测 AB检测&#xff0c;也称为AB测试&#xff0c;是一种在线实验的方法&#xff0c;用于比较两个或多个版本的网页或应用程序的效果&#xff0c;以确定哪个版本能够更好地实现预期的目标&#xff0c;例如提高用户转化率、点击率、留存率等。AB检测的流程大致如下…

【微信小程序】文章设置

设置基本字体样式&#xff1a;行高、首行缩进 font-size: 32rpx;line-height: 1.6em;text-indent: 2em;padding: 20rpx 0;border-bottom: 1px dashed var(--themColor); 两端对齐 text-align: justify; css文字两行或者几行显示省略号 css文字两行或者几行显示省略号_css…

go-redis简单使用

目录 一&#xff1a;官方文档和安装方式二&#xff1a;简单案例使用 一&#xff1a;官方文档和安装方式 官方中文文档&#xff1a;https://redis.uptrace.dev/zh/guide/go-redis.html安装&#xff1a;go get github.com/redis/go-redis/v9 二&#xff1a;简单案例使用 简单的…

Verilog 不同编码风格对综合电路的影响

文章目录 示例 #1示例 #2示例 #3 Verilog是一种硬件描述语言&#xff08;HDL&#xff09;&#xff0c;用于设计数字电路和系统。统一、良好的代码编写风格&#xff0c;可以提高代码的可维护性和可读性。 同样的功能&#xff0c;不同的Verilog 编码风格也会对综合过程产生重大影…

java框架-Springboot3-基础特性+核心原理

文章目录 java框架-Springboot3-基础特性核心原理profiles外部化配置生命周期监听事件触发时机事件驱动开发SPISpringboot容器启动过程自定义starter java框架-Springboot3-基础特性核心原理 profiles 外部化配置 生命周期监听 事件触发时机 事件驱动开发 Component public c…

requests爬虫详解

Requests 安装 pip install requests 示例 from fake_useragent import UserAgent import requestsdef cra1_1(): url http://xx/front/website/findAllTypes headers {User-Agent: UserAgent().chrome} resp requests.get(url, headersheaders) result resp.json()i…

Linux下du指令详情介绍

磁盘空间使用统计&#xff0c;方便排行哪些文件占用内存大 1.统计指定目录磁盘空间使用情况 du 目录路径2.可读形式 du -h 目录路径3.显示所有文件和目录的磁盘使用情况 du -a [目录路径]4.仅统计目录的磁盘空间使用情况&#xff0c;不包括子目录&#xff1a; du -S [目录路…

Windows利用Docker开发miniob

拉取github代码 找个文件夹Git Bash # 将代码拉到本地 git clone https://github.com/oceanbase/miniob -b miniob_test 利用Dockerfile构建 用powershell运行 #到存放刚下载代码的文件夹(填写自己存放的路径) cd /xxx/xxx # build docker build -t miniob . build的时候…

Vue的详细教程--Vue路由与nodejs

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Vue的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.Vue路由是什么 二.使用Vue路由的步骤 1、…