OrDroid APP 相关
OrDroid CloudKanBan 对象插件使用说明
OrDroid V13 APP 安装与使用说明
01- V13 移动浏览器升级及更新说明
02- V13 移动事务对象插件使用说明
03- V13 查询元对象插件使用说明
04- V13 协同工作流插件使用说明
04- V13 消息对象插件使用说明
05- V13 ESOP 插件使用说明
06- V13 DOC 插件使用说明
07- V13 Andon 插件使用说明
09- V13 自定义 Apk 插件使用说明
10- V13 OrDroid Html 网页插件使用说明
OrDroid V13&V15 版本差异说明
OrDroid V15 APP 安装与使用说明
01- V15 主程序安装与使用说明
02- V15 其它插件安装与更新说明(除主程序外)
03- V15 移动事务对象插件使用说明
04- V15 打印插件安装与使用
Poinse一体式打印机参数说明文档
TSC打印机参数说明文档
佳博打印机参数说明文档
富立叶一体式打印机参数说明文档
斑马打印机参数说明文档
汉印打印机参数说明文档
瑞利信一体式打印机参数说明文档
蓝畅一体式打印机参数说明文档
译维打印机参数说明文档
05- V15 消息对象插件说明
OrDroid-Msg 消息推送架构搭建手册
消息推送机制说明
消息通知函数说明
06- V15 DOC插件使用说明
07- V15 ESOP插件使用说明
08- V15 自定义插件开发指南
09- V15 自定义打印插件开发指南
10- V15 OrDroidSSO使用说明
11- UHF-SLR5100系列RFID设备使用指南
11- V15 OrDroid Html网页插件使用说明
OrDroid 开发配置与测试用例
OrDroid 查询对象挂载 Mrz 使用说明
OrDroid 通过斑马打印机ZPL指令实现移动打印
OrDroid 限制同一个用户在不同设备同时登录
-
+
首页
02- V13 移动事务对象插件使用说明
# 一、背景与目的 OrDroid移动事务对象插件开发是在WinCE移动事务对象插件基础上参考而来,使用逻辑上基本一致,本手册只着重介绍基于此逻辑而新增的几个特性。 # 二、图片参数(单张图片) 2.1 创建“图片参数” 用户在移动事务对象参数中勾选”是否是一个图片”,即可在Android端的移动事务对象插件中生成一个图片参数。 ![](/media//202011/2020-11-25_153931.png) 2.2 图片参数功能按钮 ![](/media//202011/2020-11-25_154012.png) 功能按钮: (1).拍照 用户点击拍照按钮将会调用系统相机app,因此,使用此功能需要存在系统原生相机app(部分PDA可能在出厂时并未安装此app,如果没有请联系PDA供应商提供系统相机app重新刷入安装)。当用户拍照完成后返回此界面时,将会显示刚刚拍摄的照片. (2). 选择本地图片 用户点击选择本地图片按钮将会调用系统相册app,因此,使用此功能需要存在系统原生相机app(部分PDA可能在出厂时并未安装此app,如果没有请联系PDA供应商提供系统相册app重新刷入安装)。当用户拍照完成后返回此界面时,将会显示刚刚选择的照片. (3). 图片上传 图片上传目前只支持基于Ftp协议上传,主要步骤如下,当用户点击图片上传按钮后,程序将会调用存储过程OrDroid_FtpFileNew,此存储过程将会返回Ftp上传参数数据集,如Ftp地址、Ftp账号、Ftp密码、Ftp主目录、Ftp子目录、上传文件名称、Ftp表FtpFile的主键等关键字段(所以用户在上传前必须检查Ftp地址、Ftp账号、Ftp密码、Ftp路径是否正确,否则将无法上传文件);获取到Ftp关键参数后,插件将会开始上传图片至服务器;图片上传完成后,程序将会调用存储过程OrDroid_FtpFileSave,将上传图片的FtpFile表主键更新至FtpFile表。以上步骤完成后,用户可先自行检查Ftp目录下是否存在此图片,然后在检查FtpFile表是否存在此图片信息字段. (4). 图片下载 图片下载目前只支持基于Ftp协议下载,下载方式有两种,一、用户可使用移动事务对象方法(即存储过程),存储过程只需将图片对应的FtpFile表主键回传到界面对应的图片参数,程序将会自动调用存储过程OrDroid_FtpFileGet获取Ftp下载关键字段,如Ftp地址、Ftp账号、Ftp密码、Ftp主目录、Ftp子目录、下载文件名称等关键字段(所以用户在上传前必须检查Ftp地址、Ftp账号、Ftp密码、Ftp路径、下载文件名称是否正确,否则将无法下载文件),然后程序根据获取到的Ftp路径、文件名将图片下载到移动端,最后将此图片显示到指定的图片参数上. # 三、M类型参数(多张图片) 3.1 图片网格(M类型参数)定义 M类型参数表示图片网格参数,可通过使用此参数实现图片批量上传、下载. 3.2 图片网格(M类型参数)使用 3.2.1 在系统参数管理下的参数名”[Query Data Type]”中,增加M类型参数 ![](/media//202011/2020-11-25_154721.png) 3.2.2 在移动事务对象参数中定义数据类型”M” ![](/media//202011/2020-11-25_154818.png) 3.2.3 在存储过程定义数据集下载字段,然后在移动事务对象方法中调用此存储过程,并且定义回刷网格参数名为图片网格参数. ![](/media//202011/2020-11-25_154927.png) ![](/media//202011/2020-11-25_154944.png) 3.2.4 最终效果图 ![](/media//202011/2020-11-25_155036.png) # 四、S类型参数 4.1 S类型参数定义 S类型参数是扫描类型参数,作用主要为扫描一维码、二维码,当移动设备不存在红外扫描模块时,设置此参数可调用设备摄像头扫描,注意,使用此功能需要启用app摄像头权限。 ![](/media//202011/2020-11-25_155719.png) 4.2 S类型参数使用 4.2.1 点击蓝色标题,此时界面将跳转至”扫描条码”界面 ![](/media//202011/2020-11-25_155843.png) 4.2.2 将条码/二维码放置于界面中的黄色扫描框内即可扫描条码,扫码完成后则自动返回原插件界面 ![](/media//202011/2020-11-25_155929.png) ![](/media//202011/2020-11-25_155942.png) # 五、移动标签打印 (V13.0) 5.1 打印机支持型号 ZEBRA ZQ520、ZEBRA ZR328、佳博 ZH380、佳博GPM32B、Handheld手持式一体机、富立叶CM550X、EZSCAN GL21 5.2 选择打印机品牌及选择打印机型号 ![](/media//202011/2020-11-25_160206.png) 5.2.1 连接步骤(一体式打印机可跳过此步骤) (1). 打开app主程序蓝牙及定位权限 (2). 打开设备蓝牙及定位功能 (3). 选择打印机品牌 (4). 选择打印机型号(蓝牙Mac地址) 注意:OrDroid V15.2 还是需要开启移动事务插件和打印插件应用的存储权限。 5.3 定义存储过程 5.3.1 定义打印参数(如果为多个标签,则定义表变量来存储) ```sql `DECLARE @Temp TABLE( Id INT PRIMARY KEY IDENTITY, PrintFile NVARCHAR(50), --文件名,本地生成实际的图片文件名 ZPL NVARCHAR(300), --ZPL命令,针对不采用图片打印,并且只能支持斑马打印机 Copies INT, --标签打印份数 Concentration INT, --文字浓度 Gap INT, --间距 LableSizeX INT, --标签宽度(斑马打印机须设置成-1自适应尺寸,其它型号打印机须按实际尺寸填写,单位mm) LableSizeY INT, --标签高度(斑马打印机须设置成-1自适应尺寸,其它型号打印机须按实际尺寸填写,单位mm) leftMargin INT, --图片左边距 ImageResolution INT, --图片分辨率 PrintX int, --打印坐标X PrintY INT, --打印坐标Y Direction INT, --打印方向(0,90,180,270) isPrintInt BIT, --是否初始化打印机 Speed INT, --打印速度 GapType INT, --间隔类型(GL21打印机参数:0.打印机默认设置类型, 1.使用带定位孔的标签纸进行定位,2.使用间隙纸进行打印,3.使用黑标纸进行打印) Orientation INT --打印页面旋转角度(GL21打印机参数, 可设置对应角度0、 90、 180、 270度) )` ``` 5.3.2 通过CLR_MRZPrint(CLR_MRZPrint使用方法请参考应用技巧) ![](/media//202011/2020-11-25_160618.png) 5.3.3 往@Temp写入数据,如果有多个标签则写入多次 ```sql `INSERT INTO @Temp(PrintFile,ZPL,Copies,Gap,LableSizeX,LableSizeY,PrintX,PrintY) VALUES(@PrintFile,N'',1,1,-1,-1,200,0)` ``` 备注: 1) @PrintFile 为通过CLR_MRZPrint 输出的图片路径,默认是保存在WCF/DownLoad文件夹里,需要考虑多用户使用时,图片文件名称如何定义,另外,PDA对于相同标签名的标签图片不会重复下载,而且还需要考虑DownLoad文件夹图片文件使用后如何清除的问题. 2) @PrintFile 如果为文件名,则系统会默认指向WCF下DownLoad文件夹目录下,否则,则需要提供一个完整的Http路径。或者为一个 FtpId,Ftp 参数维护在系统参数 [Ftp Server Setting],后台存储过程为 OrDroid_FtpFileGet 5.3.4 输出@Temp表字段 ```sql `SELECT PrintFile,ZPL,Copies,Gap,LableSizeX,LableSizeY,PrintX,PrintY FROM @Temp` ``` 备注:ZPL 指令打印方式,后续补充 # 六、SOP文件预览 6.1 SOP文件支持类型 移动事务对象Android插件支持SOP文件预览,目前支持包括微软Word、Excel、PPT类型文件,还支持PDF、JPG、PNG等类型文件的预览。 6.2 定义存储过程 定义SOP参数(如果为多个SOP文件,则定义表变量来存储) ![](/media//202011/2020-11-25_161821.png) 6.3 OpenFile字段参数定义 6.3.1 OpenFile参数可定义为一个Http链接地址 6.3.2 OpenFile参数可定义为一个Ftp文件主键 6.3.3 OpenFile参数可定义为SOP文件名,此时移动客户端将从OrBitConfig设置中的文档服务器地址下载此SOP文件. ![](/media//202011/2020-11-25_162136.png) 6.3.4 往@Temp表写入SOP字段(如果有多个SOP文件则写入多行) ![](/media//202011/2020-11-25_162334.png) 6.3.5 输出@Temp表字段 ![](/media//202011/2020-11-25_162414.png) # 七、自定义网格列宽、自适应列宽、自定义消息行宽度、多网格回刷 7.1 自定义网格列宽,只需存储过程自定义网格列宽字段 **ColumnWidth** ![](/media//202011/2020-11-25_162651.png) 7.2 自适应列宽设置,在OrDroid插件勾选"是否自动列宽"即可 ![](/media//202111/2021-11-29_161211.png) 7.3 自定义消息行宽度,在OrDroid插件中的"消息框宽度(dt)"填写一个大于屏幕宽度的数值即可 ![](/media//202111/2021-11-29_161425.png) 7.4 多网格回刷,只需在移动事务对象方法下的回刷网格参数名中使用逗号拼接网格参数 ![](/media//202011/2020-11-25_162757.png) 7.4.1 最终效果图 ![](/media//202011/2020-11-25_162846.png) # 八、网格参数行跳转控制 8.1 **RowSelectId** 字段 在存储过程返回数据集中定义 **RowSelectId** 字段,当 **RowSelectId** 值为0时,数据行状态为未选中状态,当 **RowSelectId** 值为1时,数据行状态为选中状态。 ![](/media//202011/2020-11-25_163031.png) # 九、V类型参数(视频网格) 9.1 视频网格(V类型参数)定义 V类型参数表示视频网格参数,可通过使用此参数实现视频批量上传、下载. 9.2 视频网格(M类型参数)使用 9.2.1 在系统参数管理下的参数名"[Query Data Type]"中,增加"V"类型参数 ![](/media//202207/2022-07-07_110531.png) 9.2.2 在移动事务对象参数中定义数据类型"V" ![](/media//202207/2022-07-07_110911.png) 9.2.3 在存储过程定义数据集下载字段,然后在移动事务对象方法中调用此存储过程,并且定义回刷网格参数名为视频网格参数. ![](/media//202011/2020-11-25_154927.png) ![](/media//202207/2022-07-07_111606.png) 9.2.4 最终效果图 ![](/media//202207/2022-07-07_150117.png) # 十、移动端扫码登录 10.1 二维码内容 二维码内容格式:User+Password+OrDroid 10.2 移动端扫码步骤 (1) 选择扫码界面 (2) 调用摄像头扫码(此功能需要启用APP摄像头权限) ![](/media//202101/2021-01-06_113837.png) # 十一、跨页签跳转、跨页签传值 11.1 跨页签传值 `PDATest7.Param1` 备注: 跨页签传值格式:"页签名.参数名" 11.2 跨页签跳转 `SET @I_ExceptionFieldName='PDATest7.Param1'` 备注: 跨页签跳转格式:"页签名.参数名" # 十二、网格参数的可编辑模式 12.1 在存储过程中定义可编辑模式字段"**ColumnProperty**" ```sql SELECT mo.MobileObjectName, mo.MobileObjectDesc, mo.IsActivity, mop.MobileObjectParameterName, mop.DataType, mo.FieldWidth, mop.CreateDate, '(ColumnName:MobileObjectName,Type:C,ValueList:null,RowMethod:null,IsMustInput:0,IsReadOnly:1) (ColumnName:MobileObjectDesc,Type:C,ValueList:null,RowMethod:PDA_TestColumnResult,IsMustInput:1,IsReadOnly:0) (ColumnName:MobileObjectParameterName,Type:C,ValueList:null,RowMethod:PDA_TestColumnResult,IsMustInput:0,IsReadOnly:0) (ColumnName:DataType,Type:V,ValueList:MetadataQueryDataType_ViewList,RowMethod:PDA_TestColumnResult,IsMustInput:1,IsReadOnly:0) (ColumnName:FieldWidth,Type:I,ValueList:null,RowMethod:PDA_TestColumnResult,IsMustInput:0,IsReadOnly:0) (ColumnName:IsActivity,Type:B,ValueList:null,RowMethod:PDA_TestColumnResult,IsMustInput:0,IsReadOnly:0) (ColumnName:CreateDate,Type:D,ValueList:null,RowMethod:PDA_TestColumnResult,IsMustInput:0,IsReadOnly:0)' 'ColumnProperty' FROM dbo.MobileObjectParameter mop INNER JOIN dbo.MobileObject mo ON mo.MobileObjectId = mop.MobileObjectId WHERE mo.MobileObjectId='MBO1000000XM' ``` 12.2 "**ColumnProperty**"属性定义 (1). ColumnName:列名(必填属性)。 (2). Type:列类型(必填属性,B:Boolean类型, C:字符类型, D:DateTime类型, F:I:Integer类型, F:Decimal类型, I:Integer类型, V:ValueList值列表类型) (3). ValueList:值列表存储过程定义,如果为空,请填null(必填属性) (4). RowMethod:行方法,可被单元格绑定的存储过程,可通过值列表选择事件、日期选择事件、CheckBox事件、回车事件触发此存储过程,此存储过程触发后会将单元格所在行数据拼接成JSON字符串赋值到以网格参数名为存储过程参数值中,具体可参考如下代码: ```sql ALTER PROCEDURE [dbo].[PDA_TestColumnResult] @I_Sender nvarchar(200)='', --客户端执行按钮 @I_ReturnMessage nvarchar(max)='' output, --返回的信息,支持多语言 @I_ExceptionFieldName nvarchar(100)='' output, --向客户端报告引起冲突的字段 @I_LanguageId char(1)='1', --客户端传入的语言ID @I_PlugInCommand NVARCHAR(50)='', --插件命令 @I_OrBitUserId char(12)='', --用户ID @I_OrBitUserName nvarchar(100)='', --用户名 @I_ResourceId char(12)='', --资源ID(如果资源不在资源清单中,那么它将是空的) @I_ResourceName nvarchar(100)='', --资源名 @I_PKid char(12) ='', --主键 @I_ParentPKId char(12)='', --父级主键 @I_Parameter nvarchar(MAX)='', --插件参数 --以上变量为系统服务固定接口参数,必须在每一个DoEvent过程中实现. @Param1 NVARCHAR(MAX)='' --网格参数名,回传选中行参数JSON字符串 --[{"MobileObjectParameterName":"Param1","FieldWidth":"250.0","MobileObjectName":"PDATest1","MobileObjectDesc":"PDA测试1","DataType":"S","IsActivity":1,"CreateDate":"2020/5/14 15:59:37"}] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED DECLARE @Temp1 TABLE( Id INT PRIMARY KEY IDENTITY, MobileObjectName NVARCHAR(50), MobileObjectDesc NVARCHAR(100), IsActivity BIT, MobileObjectParameterName NVARCHAR(100), DataType CHAR(1), FieldWidth INT, CreateDate DATETIME, ColorControlId NVARCHAR(100) ) DECLARE @Temp2 TABLE ( Id INT PRIMARY KEY IDENTITY, NAME NVARCHAR(2000), StringValue NVARCHAR(MAX) ) INSERT INTO @Temp2 ( NAME, StringValue ) SELECT NAME, StringValue FROM dbo.ParseJSON(@Param1) WHERE parent_ID=1 INSERT INTO @Temp1 ( MobileObjectName, MobileObjectDesc, IsActivity, MobileObjectParameterName, DataType, FieldWidth, CreateDate, ColorControlId ) VALUES ( (SELECT StringValue FROM @Temp2 WHERE Id=3), -- MobileObjectName - nvarchar(50) --'gffhhghgh', (SELECT StringValue FROM @Temp2 WHERE Id=4), -- MobileObjectDesc - nvarchar(100) (SELECT StringValue FROM @Temp2 WHERE Id=6), -- IsActivity - bit (SELECT StringValue FROM @Temp2 WHERE Id=1) , -- MobileObjectParameterName - nvarchar(100) (SELECT StringValue FROM @Temp2 WHERE Id=5), -- DataType - char(1) CAST((SELECT StringValue FROM @Temp2 WHERE Id=2) AS FLOAT), -- FieldWidth - int (SELECT StringValue FROM @Temp2 WHERE Id=7), -- CreateDate - datetime N'MobileObjectDesc:X4YAZ' -- ColorControlId - nvarchar(100) 设置单元格颜色 ) SELECT * FROM @Temp1 --此查询不可超过一行数据 SET @I_ReturnMessage='ServerMessage:就是想弹个消息' return 0 END ``` (5). IsMustInput:当前指定列是否必填(必填属性, 0.否/1.是)。 (6). IsReadOnly:当前指定列是否只读(必填属性, 0.否/1.是)。 # 十三、浮点型参数的小数位设置 13.1 修改MobileObjectParameter表,增加DecimalPlace字段,类型为int整型。 ![](/media//202111/2021-11-30_170556.png) 13.2 修改存储过程MobileObjectParameterMainView,增加查询DecimalPlace字段 ![](/media//202111/2021-11-30_171004.png) 13.3 修改存储过程MobileObjectParameterSaveData,增加传入参数@DecimalPlace ![](/media//202111/2021-11-30_171247.png) ![](/media//202111/2021-11-30_171310.png) 13.4 修改存储过程GetOrDroidMobileObjectInfo,增加查询DecimalPlace字段 ![](/media//202111/2021-11-30_171510.png) 13.5 在移动事务对象元字段中新增元字段DecimalPlace,可通过此字段控制浮点型参数小数位长度(最高可设置8位长度,不设置按8位长度处理) ![](/media//202111/2021-11-30_170258.png) # 十四、弹窗提示 14.1 方法按钮执行之前弹窗,可在"移动事务对象方法"中,勾选"执行前需要提示吗?",并且可按需求定制弹窗信息或者执行一个弹窗存储过程,如下图所示。 ![](/media//202207/2022-07-20_141140.png) 14.2 方法按钮执行完成之后的弹窗,可在存储过程中定义"@I_ReturnMessage"参数,示例如下: ```sql SET @I_ReturnMessage='ServerMessage:W:测试W弹窗' ``` # 十五、插件升级 15.1 插件升级流程 由于不同安卓设备厂商会对安卓系统的定制化开发导致安卓系统设置略有不同,以下插件升级流程仅供参考:设置-应用管理-OrDroid-强行停止-存储-清空缓存 ![](/media//202011/2020-11-25_163415.png) ![](/media//202011/2020-11-25_163431.png) ![](/media//202011/2020-11-25_163448.png) ![](/media//202011/2020-11-25_163503.png) ![](/media//202011/2020-11-25_163526.png) # 十六、备注 本手册相关内容请参考公司开发库示例OrDroid插件PDAT。 # 十七、常见问题及解决办法 1)
HF0028
2023年1月4日 15:20
分享
上一篇
下一篇
目录
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
下载Markdown文件