4.1.2 序列号

6. 在窗体中使用序列号

要在AX中的窗体上,或者Enterprise
Portal上使用序列号,你会典型地添加代码到窗体的数据源或数据集。你也可以直接在代买中获得一个序列号。

6.1 场景:在窗体中使用序列号

业务应用开发人员,正在AX中开发一个新模块——Fleet
management。它已经创建了新的序列号,并且在参数窗体上设置了序列号。现在,他想让系统自动获得下一个序列号,在用户添加一个新记录到Vehicle窗体时。

6.1.1 步骤:实现序列号窗体处理程序

要设置一个窗体,对应的处理程序,在窗体中来创建和更新序列号,你必须在窗体关闭或记录删除时,插入或更新序列号。使用下面的样例代码,可以实现序列号窗体处理程序。在例子中,假设你已经有一个表和窗体数据源,叫做FMVEHICLE,它上面有一个字段叫做VehicleId。

从窗体的class delaration中定义NumberSeqFormHandler开始。

public class FormRun extends ObjectRun
{
NumberSeqFormHandler numberSeqFormHandler;
}

接着,创建一个叫做numberSeqFormHandler的新方法。该方法必须在numberSeqFormHandler类上调用newForm()这个静态方法。确保你从你的参数表(这个表存储着序列号,表和字段持有生成的序列号)传递序列号引用。


NumberSeqFormHandler numberSeqFormHandler()
{
if (!numberSeqFormHandler)
{
numberSeqFormHandler =
NumberSeqFormHandler::newForm(FleetManagementParameters::nu
mRefVehicleNumber().NumberSequenceId,
element,
FMVehicle_DS,
fieldNum(FMVehicle, VehicleID));
}
return numberSeqFormHandler;
}

接着,你必须在序列号落户的数据源上覆盖create()方法。


NumberSeqFormHandler numberSeqFormHandler()
{
if (!numberSeqFormHandler)
{
numberSeqFormHandler =
NumberSeqFormHandler::newForm(FleetManagementParameters::nu
mRefVehicleNumber().NumberSequenceId,
element,
FMVehicle_DS,
fieldNum(FMVehicle, VehicleID));
}
return numberSeqFormHandler;
}

formMethodDataSourceCreatePre()方法用来验证这是序列号的最后一个号码。对这个方法的调用,必须在super()的调用之前。

formMethodDataSourceCareate()方法,使用一个序列号值,来创建记录。对该方法的调用,必须在super()的调用之后。

下一步是覆盖要插入序列号的那个数据源上的的validateWrite()和write()方法。


public boolean validateWrite()
{
boolean ret;
ret = super();
ret =
element.numberSeqFormHandler().formMethodDataSourceValidate
Write(ret) && ret;
return ret;
}
void write()
{
ttsbegin;
super();
element.numberSeqFormHandler().formMethodDataSourceWrite();
ttscommit;
}

接着,你必须覆盖要插入序列号的那个数据源的delete()方法。这是重要的一步,当你从表单中删除了一条含有序列号的记录时,来确保序列号能取消并删除。

void delete()
{
ttsbegin;

element.numberSeqFormHandler().formMethodDataSourceDelete()
;

super();
ttscommit;
}

最后一步,是在窗体上覆盖close()方法,来确保窗体关闭后,序列号会取消。


void close()
{
if (numberSeqFormHandler)
{
numberSeqFormHandler.formMethodClose();
}
super();
}

7. 实验:实现一个新的序列号

实现一个新序列号的引用。

7.1 场景

业务应用开发人员,正在在应收帐狂模块开发一个新的特性,来跟踪客户合同。新客户合同特性会被用来跟踪客户账款上的多个合同的明细和期限。

7.2 挑战自己

4.1.2 序列号,码迷,mamicode.com

时间: 2024-12-22 03:52:31

4.1.2 序列号的相关文章

如何找回SQL Server实例安装时的序列号

当需要再次安装SQL Server时,如果序列号找不到了,可以试着从已经安装的实例里找回序列号,因为安装完SQL Server后,序列号(Product Key)被保存在注册表里: MSDN订阅下载的安装包是内置序列号的,则没有这个困扰. 一. 序列号保存在哪 通过无文档记载的扩展存储过程xp_regread读取注册表: --For SQL Server 2008, 2008 R2 use master GO exec xp_regread 'HKEY_LOCAL_MACHINE','SOFTW

Atitit.获取主板与bios序列号获取硬件设备信息  Wmi wmic 的作用

Atitit.获取主板与bios序列号获取硬件设备信息  Wmi wmic 的作用 1 获取硬件核心基础核心基础Wmi1 2 其他资料2 3 Wmic WMI 命令行接口2 4 Atitit.获取主板与bios序列号2 5 参考3 1 获取硬件核心基础核心基础Wmi WMI,是Windows 2K/XP管理系统的核心:对于其他的Win32操作系统,WMI是一个有用的插件.WMI以CIMOM为基础,CIMOM即公共信息模型对象管理器(Common Information Model Object 

Windows server 2016 key 序列号 密钥 破解 激活工具

Windows server 2016 key 序列号 密钥  破解 激活工具 Windows Server 2016 中的新增功能 点击获取Windows 2016 激活工具 计算 虚拟化区域包括适用于 IT 专业人员的虚拟化产品和功能,以设计.部署和维护 Windows Server. 常规 由于 Win32 Time 和 Hyper-V 时间同步服务的改进,物理和虚拟计算机从更高的时间准确性中受益. 现在,Windows Server 可以托管与即将推出的要求 UTC 准确性为 1 ms

通过WMI - Win32_Processor - ProcessorId获取到的并不是CPU的序列号,也并不唯一

现在网上不少教程,教人通过WMI - Win32_Processor - ProcessorId来获取CPU的“序列号”,典型代码如下: public static string GetCPUSerialNumber() { string cpuSerialNumber = string.Empty; ManagementClass mc = new ManagementClass("Win32_Processor"); ManagementObjectCollection moc =

myeclipse序列号

Subscriber:huazai          Subscription Code:uLR8ZC-855550-61565856301609203 Subscriber:feifei            Subscription Code:sLR8ZC-855550-61565856701742177 Subscriber:kobe            Subscription Code:xLR8ZC-855550-615658598517277 myeclipse序列号,码迷,mam

Webstorm 10 for mac osx 注册机,序列号,kegen

小菜最近get到mac体验机会,早就耳闻mac非常适合做开发,于是迫不及待的安装各种开发工具,不知不觉,轮到前端开发神器webstorm了,看了一下官网的价格,心拔凉拔凉的. 果断搜索注册机,搜到的结果不少,20%是版本太旧,80%需要vip才能下载. 目前最新的是10+版本,勉强可以下载的都是8+版本,不太符合心思,而其他号称9+版本带注册机的,或者10+版本带序列号的,vip才能下载,既然不想买正版,却给盗版充值,哪有这样的道理. 如果读者因为这件事而苦恼,恰好又看到这篇文章,那么您的问题至

Redis实现高并发分布式序列号

使用Redis实现高并发分布式序列号生成服务 序列号的构成 为建立良好的数据治理方案,作数据掌握.分析.统计.商业智能等用途,业务数据的编码制定通常都会遵循一定的规则,一般来讲,都会有自己的编码规则和自增序列构成.比如我们常见的身份证号.银行卡号.社保电脑号等等. 以某公司产品标识码(代表该产品的唯一编码)的构成为例: 规则定义:商品款号(8位)+颜色号(3位)+号型码(3位) (共14位) 其标识码为:62X19001 001 46A 业务含义为: 2009年男装秋冬季仿毛套西黑色170A版

修改ECSHOP系统红包序列号规律

ECSHOP系统线下发放红包时系统生成的红包序列号是在10000的基础上增加四位随机数字.如果当我们要发放大额度红包的时候,这样的序列号规则难免给人不安全的感觉,万一真的有哪个无聊的人,用一天时间来蒙几个红包序列号出来,那就亏大了.因为最多只要试10000次就可以了,所以我们需要更改一下系统的红包序列号发放规则,让红包的序列号是由a-z,A-Z,0-9的字符组合而成,下面给出修改方法: 1.修改ecs_user_bonus表中bonus_sn字段的数据类型 ECSHOP 2.7.2中该字段类型为

获取当前 Windows 的安装序列号

Dim s s = InputBox("当前Windows系统序列号为:", "Windows序列号", GetWindowsSN) WScript.Quit '取得当前Windows序列号函数 Function GetWindowsSN() Const HKEY_LOCAL_MACHINE = &H80000002 strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion" s

设计软件注册之一网卡序列号

根据网卡序列号设计软件注册 通过注册软件获取本机网卡序列号,然后通过网卡序列号.随机数及指定算法生成注册码,最后将注册码写入注册表. 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using Syste