电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

二开案例.让单据体文本字段转成二维码--转载

来源:金蝶云社区作者:金蝶2024-09-167

二开案例.让单据体文本字段转成二维码--转载

【应用场景】

二维码是控件,不是字段,无法将它加入到单据体中,如果单据体中有某个字段的值要转成二维码,目前可通过插件的方式,实时转换并显示。


【案例演示】

采购订单,单据体有一个二维码文本字段,将其值转成二维码图片并显示。

本案例演示了两种方式显示二维码图片:

<1>修改元数据的DataBound。

<2>通过控件编程模型更新属性SourceUrl。


【实现步骤】

<1>编写表单插件,代码如下。



using Kingdee.BOS.Core.DynamicForm.PlugIn;

using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;

using Kingdee.BOS.Core.Metadata.ControlElement;

using Kingdee.BOS.Util;

using System;

using System.ComponentModel;

using System.Text;

using ThoughtWorks.QRCode.Codec;


namespace Jac.XkDemo.BOS.Business.PlugIn

{

    /// <summary>

    /// 【表单插件】单据体文本字段转成二维码

    /// </summary>

    [Description("【表单插件】单据体文本字段转成二维码"), HotUpdate]

    public class ConvertTextToQrCodeFormPlugIn : AbstractDynamicFormPlugIn

    {

        /// <summary>

        /// 切换分录数据行时,自动生成二维码

        /// </summary>

        /// <param name="e"></param>

        public override void EntityRowClick(EntityRowClickEventArgs e)

        {

            base.EntityRowClick(e);

            if (!e.Key.EqualsIgnoreCase("FPOOrderEntry"))

            {

                return;

            }

            if (e.Row < 0)

            {

                return;

            }

            var text = (string)this.View.Model.GetValue("F_Jac_Text", e.Row);

            var qrText = "[Customer]" + text;

            SetQrCode("F_Jac_Barcode", qrText);

            this.View.ShowMessage(string.Format("已将当前分录行的二维码文本{0}生成为二维码图片,可用手机扫描查验。", text));


        }


        public override void BarItemClick(BarItemClickEventArgs e)

        {

            base.BarItemClick(e);

            if (e.BarItemKey.EqualsIgnoreCase("SetQrCode"))

            {

                var billNo = (string)this.View.Model.GetValue("FBillNo");

                var qrCodeImageUrl = GetQrCode(billNo);

                // 通过控件编程模型更新二维码

                this.View.GetControl("F_Jac_Barcode").SetCustomPropertyValue("SourceUrl", qrCodeImageUrl);

                this.View.ShowMessage(string.Format("已将单据编号{0}生成为二维码图片,可用手机扫描查验。", billNo));

            }

        }


        /// <summary>

        /// 通过修改元数据的方式更新二维码

        /// </summary>

        /// <param name="key"></param>

        /// <param name="value"></param>

        private void SetQrCode(string key, string value)

        {

            var qrCode = (Barcod

二开案例.让单据体文本字段转成二维码--转载

【应用场景】二维码是控件,不是字段,无法将它加入到单据体中,如果单据体中有某个字段的值要转成二维码,目前可通过插件的方式,实时转换...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信