pb一步步开发APP

    APP越来越流行,客户需要开发APP,对习惯了pb开发者来说,如何开发APP是个让人头大的问题。其实pb开发APP是完全可行的。

下面就通过示例,一步步都大家如何开发一个APP。先上几张最终的效果图

     

示例和后面的所有对象可以从 QQ群:345559891 下载

PB开发Http服务

1.建立pb工程

建立workspace命名为test, 建立一个application命名为plugin,创建一个全局函数satrda_service,导入n_satapi对象(对象用于与应用交互)

这些相信各位pb老司机都很熟悉,就不多说了。最后如图:


当我们在浏览器或者应用进行Http请求相应的资源时,会调用到satrda_service,我们在satrda_service里面实现对应的逻辑就行

2.建立业务处理对象

新建一个不可视对象,这里我取名为n_apptest,用于统一处理APP相关的逻辑。

在satrda_service里面添加代码

/*
 *	客户端请求服务器,会首先调用到该函数
 *  @as_url  url地址
 *  @al_context http上下文,用于http相关操作
 */
 
//n_api.of_writejson( al_context, "test show")
 n_apptest ln_test
 ln_test = create n_apptest
 ln_test.of_init( al_context)
 ln_test.of_service(as_url)
 destroy ln_test

of_init主要是保存al_context的值到n_apptest实例变量,便于后面函数调用。主要逻辑在of_service中,我们关心of_service代码就可以

3.响应http文件请求

当浏览器请求相应的文件如 浏览器输入 http://127.0.0.1:5555/pbtest/login.html,会调用到of_service方法里面,此时通过参数as_url的值 /pbtest/login.html可以判断出需要调用login.html,我们只要调用satrda提供的文件输出函数就行了,代码如下

//加载html,css,js等
string ls_path,ls_dir

ls_path = "myapp/" + as_url

n_api.ServeContent(il_context,ls_path)

我们的html和css、js文件等放在server目录下面的myapp目录,所以这里ls_path指定了myapp路径, html和css可以

4.响应http表单请求

当app或者浏览器通过http请求服务时,我们可以响应请求并给出回应,如请求 http://127.0.0.1:5555/pbtest/api/login.do进行登录,通过表单传入了account和password两个数据过来(如何调用的可以参考html或者pb示例)。

//处理登录
if as_url = "api/login.do" then

	ls_user = n_api.of_formvalue( il_context, "account")
	ls_pwd = n_api.of_formvalue( il_context, "password")
	
	n_api.of_writeLog(n_api.log_debug,"account:" + ls_user)
	
	//通过数据库查询ls_user,ls_pwd是否存在,建议通过satrda的连接去查询,更高效
	//这里不进行查询,直接返回
//	if ls_user = "satrda" and ls_pwd = "satrda" then
//		lbl_login = true
//	end if
	
	ll_session = n_api.SessionStart(il_context)
	if ll_session <> 0 then
		n_api.SessionSet(ll_session,"user",ls_user)
		ls_token = n_api.of_sessionid( ll_session)
	end if
	
	//返回json数据
	ls_json = '{"success": true,"token":"' + ls_token + '"}'
	n_api.of_writeLog(n_api.log_debug,"json:" + ls_json)
	n_api.of_writeJson(il_context,ls_json)
	return
end if
上面的代码通过

ls_user = n_api.of_formvalue( il_context, "account")
ls_pwd = n_api.of_formvalue( il_context, "password")

取出用户名和密码,可以数据窗口或者嵌入式sql语句判断用户名和密码是否正确,如果正确,那么我们生成一个session(后面讲解)

并给调用端返回一个代表成功的json语句具体见n_api.of_writeJson的定义,这里就不详细说明了

5.Session处理

satrda中的session是保存在服务端的一些信息,实际业务中我们需要在服务端保存一些信息,由于http是无状态的,每次请求都是独立的,所以服务器信息通过session来保存。如每次请求时,如何知道是否已经登录过,某些操作需要登录后才能获取,我们就把登录信息保存在session里。

session相关的操作

ll_session = n_api.SessionStart(il_context) 会按照先后顺序分别从cookies,formdata和url参数中查找是否有存在key为"token"的值,如果存在就把相应的session取出来,如果不存在就会新建一个session

n_api.SessionSet(ll_session,"user",ls_user)把用户名存入到session中,key为user,下次可以通过key取出,见n_api中SessionGet说明

ls_token = n_api.of_sessionid( ll_session)取session的id,这里取出id并通过json方式告诉客户端

6.运行服务

我们通过以上的处理就实现了一个Http服务,只要把pbl或者编译后的pbd放入到指定目录,并进行简单的配置,就可以看到效果了,相当easy。具体配置可以下载示例后看相关的说明。

7.扩展服务

许多第三方服务并没有提供delphi SDK,比如支付宝、微信、七牛、阿里云等,但是提供了java,.net或者C++的SDK。satrda支持直接调用java和.net等语言,具体可以参考插件说明。由于微信小程序、ios应用等都要求https, 同时服务器还支持Https服务。

通过上面的步骤,我们已经完成了服务端的开发,有人可能会问,这个和APP有什么关系,看到的都是网页和服务的开发,别急,通过示例效果应该可以看得出来,这些页面效果其实是针对APP的,通过H5框架可以很容易地实现示例的效果,并且在手机浏览如果需要用到扫描二维码,摄像等功能,还可以打包成android或者ios应用发布。这些内容等待后面的微博介绍吧。心急的同学,可以通过示例页面先熟悉下。





第 1 章 Hello World...........................................................................................................................1 1.1 创建 WorkSpace..................................................................................................................1 1.2 创建 Target ..........................................................................................................................2 1.3 创建窗口 .............................................................................................................................4 1.3.1 修改 Title 属性.........................................................................................................6 1.3.2 放置命令按钮...........................................................................................................6 1.3.3 编写脚本 ..................................................................................................................7 1.4 在 Application 对象上编写脚本.........................................................................................9 第 2 章 数据库 ................................................................................................................................12 2.1 创建数据库 .......................................................................................................................12 2.2 连接数据库 .......................................................................................................................16 2.2.1 创建 DSN ...............................................................................................................16 2.2.2 建立 DB Profile......................................................................................................19 2.3 创建数据表 .......................................................................................................................20 2.3.1 使用 Database 画板创建数据表............................................................................20 2.3.2 使用 PowerDesigner 创建数据表..........................................................................28 2.3.3 导出已有的数据表.................................................................................................39 第 3 章 窗口和菜单 ........................................................................................................................41 3.1 创建版权信息窗口 ...........................................................................................................41 3.2 创建主菜单 .......................................................................................................................47 3.3 创建主窗口 .......................................................................................................................52 3.4 创建屏幕保护窗口 ...........................................................................................................54 第 4 章 Application 对象.................................................................................................................58 第 5 章 数据窗口对象 ....................................................................................................................65 5.1 名片录入数据窗口 ...........................................................................................................65 5.2 名片修改数据窗口 ...........................................................................................................70 5.3 名片查询数据窗口 ...........................................................................................................72 第 6 章 错误处理机制 ....................................................................................................................74 第 7 章 多用户 ................................................................................................................................80 7.1 登录窗口 ...........................................................................................................................80 7.2 权限分配 ...........................................................................................................................84 7.2.1 创建 dw_users ........................................................................................................84 7.2.2 创建 w_users ..........................................................................................................86 7.2.3 创建 w_privelege....................................................................................................90 7.3 初始化 ...............................................................................................................................93 第 8 章 编写数据录入程序 ............................................................................................................95 8.1 创建全局函数 gf_getbh ....................................................................................................95 .III. 8.2 创建窗口 w_mp_input ......................................................................................................97 第 9 章 编写数据修改程序 ..........................................................................................................102 9.1 查询条件窗口 .................................................................................................................102 9.2 修改窗口 .........................................................................................................................104 第 10 章 编写查询程序 ................................................................................................................108 10.1 名片查询程序 ...............................................................................................................108 10.2 通用查询一 ...................................................................................................................109 10.2.1 显示所有数据表.................................................................................................109 10.2.2 设置查询条件.....................................................................................................111 10.2.3 设计窗口 ............................................................................................................111 10.3 通用查询二 ...................................................................................................................115 10.3.1 获取指定表中的字段.........................................................................................116 10.3.2 修改程序 ............................................................................................................118 10.4 通用查询三 ...................................................................................................................120 第 11 章 可恢复的删除.................................................................................................................123 11.1 准备知识........................................................................................................................123 11.1.1 缓冲区 123 11.1.2 应用实例 124 11.2 名片修改程序二 126 11.3 名片修改程序三............................................................................................................128 第 12 章 通用打印预览 ................................................................................................................131 第 13 章 通用排序程序 ................................................................................................................134 13.1 通用排序一 ...................................................................................................................134 13.1.1 创建数据窗口对象.............................................................................................134 13.1.2 设计窗口程序.....................................................................................................134 13.2 通用排序二 ...................................................................................................................140 第 14 章 制作帮助 ........................................................................................................................143 14.1 软件快速入门 ...............................................................................................................143 14.2 创建项目 .......................................................................................................................143 14.3 设置工程属性 ...............................................................................................................147 14.3.1 设置工程属性.....................................................................................................147 14.3.2 设置运行窗口属性.............................................................................................148 14.4 添加内容和索引 ...........................................................................................................150 14.5 全文搜索功能 ...............................................................................................................154 第 15 章 编译程序 ........................................................................................................................157 第 16 章 制作安装盘 ....................................................................................................................161 16.1 基本概念 .......................................................................................................................161 16.1.1 安装盘 ................................................................................................................161 16.1.2 程序组 ................................................................................................................161 .IV. 16.1.3 文件组、部件、安装类型.................................................................................162 16.2 使用步骤 .......................................................................................................................162 16.2.1 创建工程 ............................................................................................................162 第 17 章 编码规范 ........................................................................................................................173 17.1 综 述 .......................................................................................................................173 17.1.1 编程对象的分类.................................................................................................173 17.1.2 编程对象的组织.................................................................................................173 17.2 团 队 开 发 .................................................................................................................174 17.3 版 本 说 明 .................................................................................................................174 17.4 对象命名规范 ...............................................................................................................175 17.4.1 命名约定 ............................................................................................................175 17.4.2 具体命名规则.....................................................................................................175 17.5 变量命名规范 ...............................................................................................................179 17.5.1 变量类型约定.....................................................................................................180 17.5.2 变量范围命名约定.............................................................................................180 17.6 编 程 规 范 .................................................................................................................181 17.6.1 书写格式 ............................................................................................................181 17.6.2 流控制 ................................................................................................................182 17.6.3 注释及格式要求.................................................................................................182 17.6.4 Powerbuilder 脚本编程规范...............................................................................184 17.7 控件编程规范 ...............................................................................................................187 17.7.1 公共部分 ............................................................................................................187 17.7.2 控件细则 ............................................................................................................188 17.8 用 户 反 馈 .................................................................................................................191 17.8.1 使用反馈的场合.................................................................................................191 17.8.2 提供反馈的几种技术手段.................................................................................192 17.9 提高程序的健壮性 .......................................................................................................192 17.9.1 安全的应用软件.................................................................................................192 17.9.2 什么是安全的应用.............................................................................................192 17.9.3 使用数据窗口中应注意的问题.........................................................................193 17.10 文 档 标 准 ...............................................................................................................195 17.10.1 注释 ..................................................................................................................195 17.10.2 联机帮助 ..........................................................................................................195 17.11 错误处理准..............................................................................................................196 17.12 其 他 .....................................................................................................................196
目 录 一、 实现目标 4 二、 框架构思及概念图 4 三、 数据类(DataClass) 5 3.1、 系统对象信息(D_SYSOBJECTS) 5 3.2、 系统字段信息(D_SYSCOLUMNS) 6 3.3、 主外键关系(D_SYSFOREIGNKEYS) 6 四、 资源类(ResourceClass) 7 4.1、 框架参数(FrameworkParameter) 7 4.2、 数据元素字典D_DATAELEMENT(DataElement) 8 4.3、 字段属性表达式类(D_SYSCOLUMNS_ATTRIBUTES) 9 4.4、 系统参数字典(D_SYSPARMDICT) 9 五、 信息类(InformationClass) 10 六、 功能类(FunctionClass) 10 七、 组织类(OrganizeClass) 11 7.1、 角色(Role) 11 7.2、 操作员(Operator) 11 八、 框架设计结构图 11 8.1、 数据项属性表达式部分 11 九、 窗口基类设计 12 9.1、 带有提示栏的窗口 12 十、 数据窗口服务及相关对象 13 10.1、 框架参数对象(uo _FrameworkParameter) 13 10.2、 表达式替换 14 10.3、 操作员数据权限(my_n_cst_dwsrv_popedom_data) 15 10.4、 修改属性表达式(my_n_cst_dwsrv_ModifyDWExpression) 15 10.5、 修改字段显示标题(my_n_cst_dwsrv_ModifyColumnTitle) 16 10.6、 关联查询服务(my_n_cst_dwsrv_RelationSearch) 16 10.7、 GRID风格DW打印服务(my_n_cst_dwsrv_DWPrint) 18 10.8、 DW显示风格设置(my_n_cst_dwsrv_ViewStyle) 19 10.9、 系统字典维护工具 20 10.9.1、 数据结构字典定义 20 10.10、 允许用户进行自定义的参数(D_SYSCONFIG) 21 十一、 简单业务流程处理(Simple Business Flow) 22 11.1. 简单业务流程的定义 22 11.1.1. 业务流程中环节的定义 23 11.1.2. 业务流程的实例化 24 11.1.3. 任务数据的检索 26 11.1.4. 业务流程处理引擎(my_n_cst_workflowengine) 27 11.1.5. 界面设计 31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值