金数逻辑校验器(GDLogic)配置步骤

金数逻辑校验器(GDLogic)是一款程序逻辑校验和字段携带工具。

能实现金蝶表单界面,根据源字段,经过逻辑计算赋值到目标字段。计算逻辑可灵活配置。告别把程序逻辑写在程序文件中,修改繁琐的问题。程序所有逻辑实现后台统一配置。

应用案例:《采购订单》上配置字段,携带物料的最近采购时间,最近采购数量。《销售订单》上配置字段,携带产品最近采购价,产品成本等。

本文说明金数逻辑校验器(GDLogic)配置步骤。

一、 安装插件

在要需要使用逻辑校验的单据上添加逻辑校验器插件。

插件文件可在文末下载。

 

二、添加表单上要监控的字段

如果还没创建监控字段表先创建监控字段表,创建监控字段表sql语句。可在文末下载完整文件。

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[GoldLogic_Fields](
[FormID] [nvarchar](50) NULL,
[FField] [nvarchar](50) NULL,
[FBillHeadName] [nvarchar](50) NULL,
[FEntrName] [nvarchar](50) NULL,
[GetFieldName] [nvarchar](50) NULL,
[GetPropertyName] [nvarchar](50) NULL,
[FBillName] [nvarchar](50) NULL,
[FForbidStatus] [bit] NULL CONSTRAINT [DF_GoldLogic_Fields_FForbidStatus] DEFAULT ((0)),
[Fdate] [datetime] NULL CONSTRAINT [DF_GoldLogic_Fields_Fdate] DEFAULT (getdate())
) ON [PRIMARY]

GO

添加示例代码,可根据需要自行修改。

INSERT [dbo].[GoldLogic_Fields] ([FormID], [FField], [FBillHeadName], [FEntrName], [GetFieldName], [GetPropertyName], [FBillName], [FForbidStatus], [Fdate])
VALUES
(N'PUR_Requisition', N'FMaterialId', NULL, N'FEntity', N'MaterialId', N'ID', N'采购申请单', 0, GETDATE())
GO
INSERT [dbo].[GoldLogic_Fields] ([FormID], [FField], [FBillHeadName], [FEntrName], [GetFieldName], [GetPropertyName], [FBillName], [FForbidStatus], [Fdate]) VALUES
(N'PUR_PurchaseOrder', N'FMaterialId', NULL, N'FPOOrderEntry', N'MaterialId', N'ID', N'采购订单', 0, GETDATE())
GO
INSERT [dbo].[GoldLogic_Fields] ([FormID], [FField], [FBillHeadName], [FEntrName], [GetFieldName], [GetPropertyName], [FBillName], [FForbidStatus], [Fdate]) VALUES
(N'SAL_OUTSTOCK', N'FMaterialId', NULL, N'FEntity', N'MaterialId', N'', N'销售出库单', 0, GETDATE())

GoldLogic_Fields表字段说明

[FormID]:识别表单的FormID
,[FField]:要监控改动的字段名,此字段修改会触发更新事件
,[FBillHeadName]:如果字段是表头,表头名称
,[FEntrName]:表体字段名称
,[GetFieldName]:获取字段值,用于逻辑计算
,[GetPropertyName]
,[FBillName]

 

三、添加值更新计算逻辑

如果还没创建值更新字段表先创建表,sql语句如下。可在文末下载完整文件。

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GoldLogic_FieldUpdateLogic](
[Ftype] [nvarchar](10) NULL,
[FormID] [nvarchar](50) NULL,
[FField] [nvarchar](50) NULL,
[FTargetField] [nvarchar](50) NULL,
[FLogic] [nvarchar](1000) NULL,
[FNullOrEmptyClean] [bit] NULL CONSTRAINT [DF_GoldLogic_FieldUpdateLogic_FNullOrEmptyClean] DEFAULT ((1)),
[FForbidStatus] [bit] NULL CONSTRAINT [DF_GoldLogic_FieldUpdateLogic_FForbidStatus] DEFAULT ((0)),
[Fdate] [datetime] NULL CONSTRAINT [DF_GoldLogic_FieldUpdateLogic_Fdate] DEFAULT (getdate())
) ON [PRIMARY]

值更新示例代码。

INSERT [dbo].[GoldLogic_FieldUpdateLogic] ([Ftype], [FormID], [FField], [FTargetField], [FLogic], [FNullOrEmptyClean], [FForbidStatus], [Fdate]) VALUES
(NULL, N'PUR_Requisition', N'FMaterialId', N'FLastOutDate', N'select top 1 o.fdate from T_SAL_OUTSTOCK o
left join T_SAL_OUTSTOCKENTRY oe on o.FID=oe.FID
where FBILLTYPEID='
'ad0779a4685a43a08f08d2e42d7bf3e9''
and FDOCUMENTSTATUS='
'C''
and FCANCELSTATUS ='
'A''
and FSTOCKORGID={0}
and -1<>{1}
and FMATERIALID={2}
order by Fdate desc'
, 1, 0, CAST(N'2022-11-17 19:36:16.487' AS DateTime))
GO

[GoldLogic_FieldUpdateLogic]表字段说明:

[FormID],窗体
,[FField],
,[FTargetField]
,[FLogic]
,[FNullOrEmptyClean]
,[FForbidStatus]
,[Fdate]

 

完整插件文件和SQL语句可联系我们下载。

密码保护区域

此区域内容受密码保护,查阅请联系我们(info@zjgkd.cn)

 

源代码下载

密码保护区域

此区域内容受密码保护,查阅请联系我们(info@zjgkd.cn)

 

2 条评论

  • 研究者 2023年11月22日 回复

    能否提供学习研究。谢谢~

    • RedLab 2023年11月23日 回复 作者

      解锁密码见邮件。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

本站提供金蝶、钉钉等开发实施相关技术文章的发布和转载。如有侵权,联系立删(info@zjgkd.cn) 。
Powered by WordPress · 苏ICP备13058196号-11