Farseer

导航

AX本地化金税系统

AX4.0SP1本地化有一个金税系统,据说国内基本上没人用,今天客户要修改一下这个东东,对金税系统不是很熟,据说金税要求客户银行的名称.
AX中能与金税系统进行字段映射的表是写死的,并没有客户银行CustBankAccount这个表,这也可以理解啦,金税接口毕竟是个相对比较死的东西,所以写死也无所谓.但这样如果要增加字段映射的表,比如要增加CustBankAccount这个表,就需要修改代码,修改步骤如下:
1.修改Form TaxSetupTable_CN的init方法,增加如下代码:
//CustBankAccount
        if (!TaxSetupTable_CN::existTable(tablenum(CustBankAccount)))
        
{
            TaxSetupTable_CN.TaxTableId 
= tablenum(CustBankAccount);
            TaxSetupTable_CN.TaxTableName 
= TaxSetupTable_CN.taxTablePName();
            seqNum
++;
            TaxSetupTable_CN.TableSequence 
= seqNum;
            TaxSetupTable_CN.insert();
        }

        
else
        
{
            TaxSetupTable_CN 
= TaxSetupTable_CN::find(tablenum(CustBankAccount), true);
            TaxSetupTable_CN.TaxTableName 
= TaxSetupTable_CN.taxTablePName();
            TaxSetupTable_CN.update();
        }
2.修改类TaxExportInvoice_CNbuildInvoicesbuildInvoicesTxt方法,类似代码如下:
case tableNum(CustBankAccount):
                    select firstonly Name from custBankAccount
                        exists join custTable
                            
where custTable.BankAccount == custBankAccount.AccountID &&
                                    custTable.AccountNum 
== _custInvoiceJour.OrderAccount;
                    fieldValue 
= this.getHeaderNodeValue(_taxSetupField,custBankAccount);
                    
break;
其实buildInvoicesbuildInvoicesTxt这两个方法的这段逻辑是差不多的,可以改造一下把这段代码抽出来,这样就不用每次改两个方法了.
OK,差不多就这些了.

posted on 2008-01-17 14:34  佛西亚  阅读(589)  评论(0编辑  收藏  举报