移动BOS开发技巧 -- 如何打开一个设计好的移动表单或者单据
在K/3 Cloud的移动BOS,我们可以看到在设计器中我们区分为移动表单核移动单据
下面我们就来看一下,我们如何用代码打开他们,我们以一个简单的场景为例:
我们在当前页面的一个按钮点击的时候,打开另外一个页面(移动表单和移动单据列表)
以下是打开移动表单的写法,如果要打开移动单据列表,只需要把 MobileShowParameter 换成 MobileListShowParameter即可
MobileShowParameter param = new MobileShowParameter(); param.FormId = "你想打开的formid";
//也可以添加自定义的参数
param.CustomParams.Add("key名", “value”);
//如果需要支持回调参考以下写法
param.SyncCallBackAction = false;
this.View.ShowForm(param, new Action<FormResult>((res) => {
this.View.Refresh(); //刷新当前页面
}));
如何在移动BOS中打开链接时传递自定义的参数
大家在云之家中使用移动BOS,如果使用了外部页面和移动页面的混合方式,一般跳转都是采用链接方式,那么如何传递自定义参数呢。看下面的url,这个是我们打开移动表单的url
http://localhost/k3cloud/mobile/k3cloud.html?entryrole=XT&appid=101091440&formId=test_xiaogy&formType=mobile
我们的实现思路是:移动bos在url上固定了一个参数,用于自定义数据传输
A 首先如上的链接,我们可以修改为
http://localhost/k3cloud/mobile/k3cloud.html?entryrole=XT&appid=101091440&formId=test_xiaogy&formType=mobile&custparam=test
在参数中增加custparam=test,其中custparam是固定的,不能修改,test就是你爱传什么就传什么了
B 然后你再this.View.OpenParameter.GetCustomParameter("custparam"),就可以获取到cusparam中的值了
一、蓝牙打印机配对
登录Cloud 工作台 -》设置 -》蓝牙打印设置,如下图:
二、插件代码示例:
1、打印文本
var helper = PrintHelper.CreateHelper(this.Context, "");
var prtEntity = helper.CreateEntity();
prtEntity.ElementCollection.Add(helper.GetFormatString("HelloWorld!"));
this.View.MobilePrint(prtEntity);
2、打印条形码
var helper = PrintHelper.CreateHelper(this.Context, "");
var prtEntity = helper.CreateEntity();
prtEntity.ElementCollection.Add(helper.GetFormat1DBarcode("123456789012"));
this.View.MobilePrint(prtEntity);
3、打印二维码
var helper = PrintHelper.CreateHelper(this.Context, "");
var prtEntity = helper.CreateEntity();
prtEntity.ElementCollection.Add(helper.GetFormat2DBarcode("HelloWorld!"));
this.View.MobilePrint(prtEntity);
4、打印图片("image/print"图片所在目录,"print.gif"图片名称)
var helper = PrintHelper.CreateHelper(this.Context, "");
var prtEntity = helper.CreateEntity();
prtEntity.ElementCollection.Add(helper.GetFormatPicture(PathUtils.GetPhysicalPath(@"image/print", "print.gif")));
this.View.MobilePrint(prtEntity);
5、按模板打印
“MOB_PrintShop”为打印模板。
模板定义路径:Administrator登录系统,主控台 -》 基础管理 -》 公共设置 -》 移动平台设置 -》 移动打印格式模板列表。
var sphelper = PrintHelper.CreateHelper(this.Context, "MOB_PrintShop");
var spprtEntity = sphelper.CreateEntity();
if (spprtEntity.Header.IsEmpty())
{
var headerString = sphelper.GetFormatString("金蝶商城");
headerString.Format.AntiWhite = true;
headerString.Format.DoubleWidth = true;
spprtEntity.Header.Add(headerString);
spprtEntity.Header.Add(sphelper.GetFormatString("----------------------------"));
if (spprtEntity.Footer.IsEmpty())
{
spprtEntity.Footer.Add(sphelper.GetFormatString("----------------------------"));
}
}
spprtEntity.ElementCollection.Add(sphelper.GetFormatCollumns(new[] { "拖把(促销)", "$100", "2.0" }));
spprtEntity.ElementCollection.Add(sphelper.GetFormatCollumns(new[] { "叼牌洗面奶(促销)", "$200", "5.0" }));spprtEntity.ElementCollection.Add(sphelper.GetFormatCollumns(new[] { "购物袋", "$2", "1.0" }));spprtEntity.ElementCollection.Add(sphelper.GetFormatCollumns(new[] {"HelloWorld", "$100", "2.0" }));spprtEntity.ElementCollection.Add(sphelper.GetFormatCollumns(new[] { "Oh中文MyGod.", "$100", "2.0" }));
spprtEntity.ElementCollection.Add(sphelper.GetFormatCollumns(new[] { "你好吗?这是超长商品名称,谢谢光顾!", "$2", "1.0" }));
this.View.MobilePrint(spprtEntity);
适配的打印机是北京瑞工科技的RG-MTP58B-SUBT。
推荐阅读