AX凭证来源和凭证中的摘要文本
Dynamics AX系统中的凭证可以大致分为两类,一类为财务人员在“总账->日志->普通记账日志”和“总账->日志->固定资产”中手工录入的凭证,另一类为系统其它模块在过账、确认等操作过程中由AX自动产生的凭证。这两大类凭证摘要文本的录入和维护各不相同,下面做分别介绍:
1. 在“总账->日志->普通记账日志”中手工录入的凭证
该类凭证的摘要文本可以直接在“行”窗体的“摘要”中直接录入或从下拉列表中选择常用摘要。
2. 在“总账->日志->固定资产”中手工录入的凭证
该类凭证的摘要文本也可以直接在“行”窗体的“摘要”中直接录入或从下拉列表中选择常用摘要。
备注:常用的摘要文本在“总账->设置->日志->日志文本” 窗体中定义。
技巧:搜索名称用于快速输入摘要,例如:当你在凭证的“摘要”录入框中输入“D1”后,系统自动将于“D1”对应的摘要文本填充到“摘要”录入框。
3. AX自动产生的凭证
Dynamics AX系统会随着各种过账、确认等操作自动生成会计凭证,例如:当过账销售订单发票后,系统自动产生关于销售订单发票的凭证(该凭证包含四行:借主营业务成本、贷产成品、借应收账款、贷主营业务收入),这些自动产生的凭证的摘要文本需要在“基础设置->设置->摘要”窗体根据凭证类型预先设置,然后这些摘要文本会在系统产生凭证时自动填写摘要内容。
AX系统自动产生的凭证摘要的定义
AX自动产生的凭证的摘要文本在“基础设置->设置->摘要”窗体设置
该摘要文本支持多国语言,支持以“1%、2%、3%、4%、5%、6%”命名的参数、最大长度60个字符或30个汉字(可以通过二次开发增加长度,但会出现部分报表该信息无法显示完全的问题,需要特别注意)。
参数名 | 含义 | 备注 |
1% | 过账日期 | |
2% | 表格(Form Letter) | |
3% | 凭证号 | |
4% | 参数1 | 凭证行科目类型不同,参数代表的含义不同 |
5% | 参数2 | 凭证行科目类型不同,参数代表的含义不同 |
6% | 参数3 | 凭证行科目类型不同,参数代表的含义不同 |
例如:新建“销售订单 – 发票,客户/zh-cn/ 过账日期:%1,原始凭证:%2,凭证号:%3,销售订单:%4,客户:%5,客户组:%6”记录,当我们过账销售订单发票后,AX自动产生的凭证的摘要为:“过账日期:实际过账日期,原始凭证:实际发票号,凭证号:实际凭证号,销售订单:实际的销售订单号,客户:实际的客户编号,客户组:实际的客户组”。
AX系统自动产生的凭证摘要的二次开发
查找“4%、5%、6%”参数的具体含义和定义位置:
AX自动产生的凭证的摘要信息由“ClassTransactionTxt”类产生和维护,TransactionTxt类的结构如下:
class TransactionTxt
{
LedgerTransTxt type;
LanguageId languageId;
TransDate transDate;
str 20 formLetterNum;
Voucher voucherNum;
str 20 key1;
str 20 key2;
str 20 key3;
void new(…);
void resetLanguage(….);
void setDate(…);
void setFormLetter(…);
void setKey1(…);
void setKey2(…);
void setKey3(…);
void setLanguage(…);
void setType(…);
void setVoucher(…);
TransTxt txt(…);
}
AX自动产生凭证摘要时,需要执行TransactionTxt类的New方法,所有我们可以在TransactionTxt类的New方法中设置断点,跟踪代码,找到AX生成凭证的位置和传入的参数。
下面以过账销售订单发票为例说明:
1. 设置断点
2. 销售订单过账发票,进入断点调试模式。在Call Stack窗口中我们可以看到,过账销售订单发票功能是由ClassSalesFormLetter_Invoice类处理,其中initTransactionTxt()方法值得我们注意。
3. 进一步跟踪代码,从ClassSalesFormLetter_InvoiceinitTransactionTxt()方法可知3%(FormLetter)、4%(Key1)、5%(Key2)、6%(Key3)参数分别表示发票号、销售订单、客户、客户组。
注意:AX系统中很多地方一次操作可能同时产生多条会计凭证,只要继续跟踪代码,不难找出所有产生凭证的位置,在此不再赘述。
摘要的二次开发
从上面的分析不难看出,我们可以通过在ClassTransactionTxt类中添加更多的参数(Keyn),然后在产生凭证摘要的initTransactionTxt()方法中传入变量的方法实现灵活自定义凭证摘要的目的。
感谢MBS社区enjoywithme提供部分思路
版本:1.0.0
ww12345678
2007-12-28
转载请注明:ww12345678 的部落格 | AX Helper » [原创]Microsoft Dynamics AX中的凭证摘要文本