【问题标题】:Create new unique field in table CustTable在表 CustTable 中创建新的唯一字段
【发布时间】:2014-06-25 19:59:54
【问题描述】:

我正在开发一个关于 Dynamics AX 2012 的项目,我想在 CustTable 中添加一些字段。

我想添加一个包含 11 个字符且由 4 位数字组成的唯一字段

1:1 性别字符

2: 2 个字符表示出生年份

3: 2 个字符代表出生月份

4: 6 个字符这个字符应该是自动递增的

我怎样才能完成这个,当我创建新表单时,我怎样才能自动实现这个字段?

谢谢

----------------------------post update------------------------------------------

感谢您的回复,

我要创建的字段由 10 个字符组成,分为 4 个组件(段/数字)

我想要的是:如何创建由 4 段组成的唯一字段(例如 cust_Id)。例如,如果我想创建新客户,在表单中,我抓住了性别和出生日期等。

我想创建这个字段:

1. Gender (1 digit) 

          •1 for men 

          •2 for women 

2. Year of birth (2 digits) 

          • The last two digits of the year 

          • Example: 78 for 1978 

3. Month of birth (2 digits) 

4. Order number (5 digits)  auto increment

全局示例:

men     22/03/1990   00001

当我提交表单时,该字段必须包含以下值:1-90-03-00001,这是自动生成的新客户插入的唯一标识符。

下一条记录:

women   30/12/1994   00002       =>   value :  0-94-12-00002

我做了一些研究,我发现我可以通过数字序列范围或分段来做到这一点, 谢谢

【问题讨论】:

  • 您能否更详细地解释一下您所说的“当我创建新表单时如何自动实现此字段?”?

标签: axapta x++ dynamics-ax-2012 ax morph-x


【解决方案1】:

要向表中添加字段,请查看How to: Create Tables [AX 2012],“向表中添加字段”。

要向表单添加字段,请查看How to: Add Fields to a Details Form [AX 2012]

话虽如此,我强烈建议不要创建包含多位信息的字段。相反,您可以查看包含性别、出生月份和出生年份字段的 DirPerson 表,并尝试弄清楚如何将它们提供给客户。

【讨论】:

【解决方案2】:

您可以通过创建一个数字序列来完成,但这将是一个有点繁琐的解决方案,因为您的需求是独一无二的,您应该寻求一个独特且更简单的解决方案,

如果我是你,我会在 CustTable 中添加一个文本字段,并在我的表单上添加多个下拉控件(用于性别、DOB 等),每个控件都由一个枚举绑定,并且当表单提交时获取这些返回值和根据您的要求格式化它们(1-90-03-00001)

对于最后一个自增数字,你可以取出最后插入的记录,然后用“-”分割,最后一个数字加一。

【讨论】:

  • 你能逐步解释我如何为你的方法生产吗?我可以使用这个没有“-”的 1900300001。谢谢
  • 第 1 步 - 在 CustTable 中创建一个简单的文本字段第 2 步 - 为性别创建枚举,然后将其绑定到表单上的下拉控件,对于 DOB,只需使用表单上的日历控件第 3 步- 当用户提交表单时,您将从性别下拉列表中获得性别,以及来自日历控件的日期,用“/”分割日期,这将返回一个包含所有分割值的容器
  • 第 4 步 - 从 CustTable 获取最后插入的记录(CreatedDate 字段将为您提供最后插入的记录),用“-”拆分该记录,这将为您提供所有拆分值,取最后一个值(00001,00002 等)将其加一,然后将其与您在步骤 3 中获得的值合并,如下所示(性别值 - 出生年份 - 出生月份 - 00003),然后将其插入新记录
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-31
  • 2018-08-14
  • 1970-01-01
  • 2012-04-15
  • 1970-01-01
  • 2015-07-05
相关资源
最近更新 更多