This commit is contained in:
oneao committed 2026-03-19 22:15:36 +08:00
1 parent 4aaa93df7d
commit c330e52fd3
66 files changed
+7386 -4

No files matched your search

@@ -0,0 +1,215 @@
CREATE TABLE s_columnlib2 (
-- 主键,自增
b_id INT IDENTITY(1,1) PRIMARY KEY,
-- 基本标识
col_table_name VARCHAR(50) NOT NULL, -- 表名
col_field_name VARCHAR(50) NOT NULL, -- 字段名
col_field_name_v VARCHAR(50), -- 字段别名/显示名
col_caption VARCHAR(50), -- 字段描述
-- 展示相关
col_visible CHAR(1) DEFAULT '1', -- 是否可见
col_width INT, -- 宽度
col_position INT, -- 显示位置
col_group_index INT, -- 分组编号
col_color VARCHAR(50), -- 颜色
col_display_format VARCHAR(50), -- 显示格式
col_show_summary CHAR(1) DEFAULT '0', -- 是否统计汇总
-- 校验 / 默认
col_allow_null CHAR(1) DEFAULT '1', -- 是否允许空值
col_allow_repeat CHAR(1) DEFAULT '1', -- 是否允许重复
col_allow_readonly CHAR(1) DEFAULT '0', -- 是否只读
col_allow_reserve CHAR(1) DEFAULT '0', -- 是否保留字段
col_default_value TEXT, -- 默认值
-- 查询相关
col_search CHAR(1) DEFAULT '0', -- 是否可搜索
col_search_order INT, -- 搜索顺序
col_search_group_index INT, -- 搜索分组编号
-- 类型定义
col_type VARCHAR(50), -- 字段类型
col_show_property CHAR(1) DEFAULT '0', -- 显示属性
-- 编辑相关
col_edit CHAR(1) DEFAULT '0', -- 是否可编辑
col_edit_position INT, -- 编辑位置
col_edit_width INT, -- 编辑宽度
col_edit_height INT, -- 编辑高度
col_edit_group_index INT, -- 编辑分组编号
col_edit_batch CHAR(1) DEFAULT '0', -- 是否批量编辑
col_edit_source_data VARCHAR(50), -- 编辑数据源表
col_edit_source_field VARCHAR(50), -- 编辑数据源字段
-- 唯一约束
CONSTRAINT uk_tablename_fieldname UNIQUE (col_table_name, col_field_name)
);
INSERT INTO s_columnlib (
col_table_name,
col_field_name,
col_field_name_v,
col_caption,
col_width,
col_visible,
col_position,
col_show_summary,
col_group_index,
col_allow_null,
col_allow_repeat,
col_default_value,
col_allow_readonly,
col_color,
col_search,
col_search_order,
col_allow_reserve,
col_display_format,
col_search_group_index,
col_type,
col_show_property,
col_edit,
col_edit_position,
col_edit_width,
col_edit_height,
col_edit_group_index,
col_edit_batch,
col_edit_source_data,
col_edit_source_field
)
SELECT
col_TableName,
col_FieldName,
col_FieldName_v,
col_Caption,
TRY_CAST(col_Width AS INT) AS col_width,
col_Visible,
TRY_CAST(col_Position AS INT) AS col_position,
col_ShowSummary,
TRY_CAST(col_BandIndex AS INT) AS col_group_index, -- 分组编号
col_AllowNull,
col_AllowRepeat,
col_DefaultValue,
col_ReadOnly,
col_Color,
col_CanSearch, -- 是否可搜索
TRY_CAST(col_SearchOrder AS INT) AS col_search_order, -- 搜索顺序
col_NeedReserve, -- 保留字段
col_DisplayFormat,
TRY_CAST(col_SearchGroupIndex AS INT) AS col_search_group_index,
col_type,
col_edit_type,
col_ShowDetail, -- 显示属性
col_edit,
TRY_CAST(col_edit_position AS INT) AS col_edit_position,
TRY_CAST(col_edit_width AS INT) AS col_edit_width,
TRY_CAST(col_edit_height AS INT) AS col_edit_height,
TRY_CAST(col_edit_grouping AS INT) AS col_edit_group_index, -- 编辑分组编号
col_edit_batch,
col_edit_source_table, -- 编辑数据源表
col_edit_source_field
FROM s_columnLib3
WHERE
-- 只保留关键字段不为空的行,例如表名和字段名必须有值
col_TableName IS NOT NULL AND col_FieldName IS NOT NULL;
CREATE PROCEDURE [dbo].[G3_CheckColumnSettings_New]
@viewname SYSNAME
AS
BEGIN
SET NOCOUNT ON;
/* ========== 1. 取视图 / 表字段 ========== */
DECLARE @Tmp TABLE (name SYSNAME);
INSERT INTO @Tmp (name)
SELECT c.name
FROM sys.columns c
WHERE c.object_id = OBJECT_ID(@viewname);
/* ========== 2. 删除不存在的字段配置 ========== */
DELETE s
FROM s_columnLib s
WHERE s.col_table_name = @viewname
AND NOT EXISTS (
SELECT 1
FROM @Tmp t
WHERE t.name = s.col_field_name
);
/* ========== 3. 计算起始 position ========== */
DECLARE @startPos INT;
SELECT @startPos = ISNULL(MAX(col_position), 0) + 10
FROM s_columnLib
WHERE col_table_name = @viewname;
/* ========== 4. 插入新增字段配置 ========== */
INSERT INTO s_columnLib (
col_table_name,
col_field_name,
col_field_name_v,
col_caption,
col_width,
col_visible,
col_position,
col_show_summary,
col_group_index,
col_allow_null,
col_allow_repeat,
col_allow_readonly,
col_allow_reserve,
col_default_value,
col_search,
col_search_order,
col_search_group_index,
col_type,
col_show_property,
col_edit,
col_edit_position,
col_edit_width,
col_edit_height,
col_edit_group_index,
col_edit_batch,
col_edit_source_data,
col_edit_source_field,
col_display_format
)
SELECT
@viewname,
t.name,
'', -- col_field_name_v 默认空
t.name, -- col_caption 默认用字段名
60, -- col_width 默认 60
'1', -- col_visible 默认显示
@startPos + ROW_NUMBER() OVER (ORDER BY t.name) * 10,
'0', -- col_show_summary 默认 0
0, -- col_group_index 默认 0
'1', -- col_allow_null 默认允许
'1', -- col_allow_repeat 默认允许
'0', -- col_allow_readonly 默认不只读
'0', -- col_allow_reserve 默认 0
'', -- col_default_value 默认空
'0', -- col_search 默认 0
0, -- col_search_index 默认 0
0,
'', -- col_type 默认空
'0', -- col_show_property 默认 0
'0', -- col_edit 默认 0
0, -- col_edit_position 默认 0
0, -- col_edit_width 默认 0
0, -- col_edit_height 默认 0
0, -- col_edit_group_index 默认 0
'0', -- col_edit_batch 默认 0
'', -- col_edit_source_data 默认空
'', -- col_edit_source_field 默认空
'' -- col_display_format 默认空
FROM @Tmp t
WHERE NOT EXISTS (
SELECT 1
FROM s_columnLib s
WHERE s.col_table_name = @viewname
AND s.col_field_name = t.name
);
END