Skip to content

开发第一个表单

本节介绍如何开发一个表单,包含表单列表、表单编辑功能

业务模型设计

1、 登录平台 进入平台主界面,在工程列表中,点击“工程设计”

2、 新建表单组别,方便区分归类业务表单

3、 新建一个单据类型(可存取数据)的表单

Details

新增表单

添加控件组件及字段组件

设置组件属性

单据头数据库表名设置

表单属性设置

姓名文本输入组件属性

姓名表单域组件属性

手机号文本输入及手机号表单域的组件属性设置与姓名类似

保存按钮组件属性

WARNING

记得保存表单元数据哦!

4、 新建一个动态表单类型(显示单据列表)的表单

Details

复制“应用框架”里的“角色管理”表单,不同单据列表显示结构差异不大,可以复制后再做调整

调整后如下图

WARNING

记得保存表单元数据哦!

开发业务插件

1、 创建业务工程项目

在服务器端项目的安装目录,打开工程项目,创建业务工程项目,安装Kejie.SDK nuget包,并在Server.Web.csproj中引用此项目

2、 添加单据列表插件CustomerList.cs

CSharp
using Kejie.BOS.Core;
using Kejie.BOS.Core.Bill;
using Kejie.BOS.Core.DynamicForm;
using Kejie.BOS.Core.DynamicForm.Plugin.Args;
using Kejie.BOS.Core.DynamicService;
using Kejie.BOS.Core.List.Plugin;

namespace Demo.Business.Plugin
{
    public class CustomerList : ListPlugin
    {
        public CustomerList(IDynamicFormView view) : base(view)
        {
        }

        public override async Task BeforeInvokeEvent(BeforeInvokeEventArgs e)
        {
            if (e.Key == "FBtnCreate" && e.EventName == "click")
            {
                var showParams = ShowFormParametersCreator.CreateDialog(View.DbContext, "Kj_Customer", View.ServiceProvider);
                showParams.DialogWidth = "30%";
                showParams.DialogHeight = "auto";
                View.ShowForm(showParams, async (res) =>
                {
                    if (res.ReturnData?.ToString() != "ok") return;
                    await ListView.Refresh();
                });
                return;
            }

            if (e.Key == "FBtnModify" && e.EventName == "click")
            {
                var showParams = ShowFormParametersCreator.CreateDialog<BillShowParameters>(View.DbContext, "Kj_Customer", View.ServiceProvider)!;
                showParams.DialogWidth = "30%";
                showParams.DialogHeight = "auto";
                showParams.PkValue = e.EventArgs!["item"]!["Id"]!.ToString();
                showParams.Status = BillStatus.EDIT;
                View.ShowForm(showParams, async (res) =>
                {
                    if (res?.ReturnData?.ToString() != "ok") return;
                    await ListView.Refresh();
                });
                return;
            }

            if (e.Key == "FBtnDelete" && e.EventName == "click")
            {
                View.ShowConfirm("删除客户", "您确定要删除此客户吗?", async (isOK) =>
                {
                    if (!isOK) return;
                    View.ServiceProvider.GetService<IFormDataService>()
                    .Delete(View.DbContext, "Kj_Customer", e.EventArgs!["item"]!["Id"]!.GetValue<string>());
                    await ListView.Refresh();
                    View.ShowSuccess("删除成功");
                });

                return;
            }

            await base.BeforeInvokeEvent(e);
        }
    }
}

3、 添加单据编辑插件CustomerEdit.cs

CSharp
using Kejie.BOS.Core.Bill;
using Kejie.BOS.Core.Bill.Plugin;
using Kejie.BOS.Core.DynamicForm.Plugin.Args;

namespace Demo.Business.Plugin
{
    public class CustomerEdit : BillPlugin
    {
        public CustomerEdit(IBillView view) : base(view)
        {
        }

        public override async Task BeforeInvokeEvent(BeforeInvokeEventArgs e)
        {
            if (e.Key == "FBtnSave" && e.EventName == "click")
            {
                await View.InvokeService("Save", null);
                View.ReturnToParentView("ok");
                View.ShowSuccess("保存成功");
                View.Close();
                return;
            }

            if (e.Key == "FBtnCancel" && e.EventName == "click")
            {
                View.Close();
                return;
            }

            await base.BeforeInvokeEvent(e);
        }
    }
}

4、 表单模型配置业务插件

打开Kj_Customer单据编辑表单,配置插件信息及列表显示表单

WARNING

记得保存表单元数据哦!

部署配置

1、 配置主控台菜单

平台工具栏 -> 桌面端 -> 配置菜单 打开配置界面,配置相关菜单

2、 配置图标导出

平台工具栏 -> 工程 -> 导出图标 打开配置界面,勾选新增的两个表单

本地部署

打开科捷低代码开发助手,执行“部署业务”。任务完成!Yeah!