简介
金数逻辑校验器(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
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())
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]
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
(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语句可联系我们下载。
源代码下载
2 条评论
能否提供学习研究。谢谢~
解锁密码见邮件。