快表客服 发表于 2023-12-27 11:30:44

自定义条件生成编号

本帖最后由 快表客服 于 2023-12-27 13:34 编辑


自定义条件生成编号


需求:按一个单元格中所选择的不同的值并依据另外一个日期字段的年份值生成一个流水编号。
比如:今年的合同类型A生成一个类型的编号,合同类型B生成另外一个类型的编号,下一年的两类合同分别生成下一年度的流水编号


效果:





实现:通过表间公式




定义变量 @Count Int = (
Select 排除重复 计数( T_2049.F_65621 )FromT_2049Where[编号_主表].[编号类型]=   本报表.[编号_主表].[编号类型]并且 年份([编号_主表].[签约日期])= 年份(本报表.[编号_主表].[签约日期])
);
If @Count > 0
Begin
    Select 排除重复 Left(最大值( T_2049.F_65621 ),7) + Right('0000'+ Cast(Right(最大值( T_2049.F_65621 ),4)+1 As Varchar(4)),4) AS 本报表.[编号_主表].[编号]x填充不锁定
FromT_2049Where [编号_主表].[编号类型]= 本报表.[编号_主表].[编号类型] 并且 年份([编号_主表].[签约日期])= 年份(本报表.[编号_主表].[签约日期])
END
ELSE
Begin
    Select Case
When本报表.[编号_主表].[编号类型] ='A' Then 'ST'+ Convert(Varchar(4),年份( 本报表.[编号_主表].[签约日期])) + '-0001'
      When本报表.[编号_主表].[编号类型] ='B' Then 'XN'+ Convert(Varchar(4),年份( 本报表.[编号_主表].[签约日期])) + '-0001'
      EndAS 本报表.[编号_主表].[编号]x填充不锁定
      From T_0
End



T_2049.F_65621是编号字段,表间公式执行时机为保存执行



页: [1]
查看完整版本: 自定义条件生成编号