转移单的装运和收货

news/2024/7/5 3:29:05
正如前文所说的,AX的很多功能与窗体绑定了,需要剥离出来,有一些类提供了供其他代码直接调用的方法,比如PurchFormLetter及SalesFormLetter的Update方法,它们就帮忙处理了Parm*等一系列的表,并自动过账,于是客户段代码可以很方便地调用它们。但也有一些类没有提供类似的方法,就需要我们自己去处理Parm*表,比如转移单的装运和收货,本文仿照PurchFormLetter的方式给转移单对应的类添加方法,以期实现类似的效果,供客户端类调用。
1.给类InventTransferUpdate添加构造方法:
static  InventTransferUpd construct(InventTransferUpdateType _InventTransferUpdateType)
{
    ;
    
switch(_InventTransferUpdateType)
    
{
        
case InventTransferUpdateType::PickingList:
        
{
            
if (InventParameters::logisticsRegistrationEnabled())
                
return InventTransferUpdPick_Journal::construct();
 
            
return  InventTransferUpdPick_Pick::construct();
            
break;
        }

        
case InventTransferUpdateType::Shipment:
                    
return InventTransferUpdShip::construct();
                    
break;
        
case InventTransferUpdateType::Receive:
                    
return InventTransferUpdReceive::construct();
                    
break;
        
default:
            
break;

    }

}


2.给类InventTransferUpdate添加updateShip和updateReceive方法:
发货:

void  updateShip(InventTransferId                _inventTransferId,                   // InventTransfer Order Number
            InventTransferShipUpdateQty     _inventTransferShipUpdateQty,        // Ship Qty the value is Enum:InventTransferShipUpdateQty
            InventTransferEditLines         _editLines       =  NoYes::No,
            InventTransferAutoReceiveQty    _autoReceiveQty 
=  NoYes::No,
            NoYes                           _printTransferPickingList 
=  NoYes::No, // print pick list
            NoYes                           _printTransferReceipt      =  NoYes::No, // print transfer receipt
            NoYes                           _printTransferShip         =  NoYes::No, // print transfer ship
            TransDate                       _transDate       =  SystemDateGet())
{
    InventTransferParmTable     localInventTransferParmTable;
    ;
    localInventTransferParmTable.skipTTSCheck(
true);
    localInventTransferParmTable.TransferId                 
= _inventTransferId;
    localInventTransferParmTable.AutoReceiveQty             
= _autoReceiveQty;
    localInventTransferParmTable.ShipUpdateQty              
= _inventTransferShipUpdateQty;
    localInventTransferParmTable.EditLines                  
= _editLines;
    localInventTransferParmTable.TransDate                  
= _transDate;
    localInventTransferParmTable.PrintTransferPickingList   
= _printTransferPickingList;
    localInventTransferParmTable.PrintTransferReceipt       
= _printTransferReceipt;
    localInventTransferParmTable.PrintTransferShipment      
= _printTransferShip;
    localInventTransferParmTable.ParmBuffer::initParmId();
    localInventTransferParmTable.write();

    
this.parmParmBuffer(localInventTransferParmTable);

    
this.run();

}

收货:

ContractedBlock.gif ExpandedBlockStart.gif Code
void updateReceive(InventTransferId                _inventTransferId,                  //InventTransfer Order Number
            InventTransferReceiveUpdateQty     _inventTransferReceiveUpdateQty,       //Ship Qty the value is Enum:InventTransferShipUpdateQty
            InventTransferEditLines         _editLines      = NoYes::No,
            InventTransferAutoReceiveQty    _autoReceiveQty 
= NoYes::No,
            NoYes                           _printTransferPickingList 
= NoYes::No,//print pick list
            NoYes                           _printTransferReceipt     = NoYes::No,//print transfer receipt
            NoYes                           _printTransferShip        = NoYes::No,//print transfer ship
            TransDate                       _transDate      = SystemDateGet())
{
    InventTransferParmTable     localInventTransferParmTable;
    ;
    localInventTransferParmTable.skipTTSCheck(
true);
    localInventTransferParmTable.TransferId                 
= _inventTransferId;
    localInventTransferParmTable.AutoReceiveQty             
= _autoReceiveQty;
    localInventTransferParmTable.ReceiveUpdateQty           
= _inventTransferReceiveUpdateQty;
    localInventTransferParmTable.EditLines                  
= _editLines;
    localInventTransferParmTable.TransDate                  
= _transDate;
    localInventTransferParmTable.PrintTransferPickingList   
= _printTransferPickingList;
    localInventTransferParmTable.PrintTransferReceipt       
= _printTransferReceipt;
    localInventTransferParmTable.PrintTransferShipment      
= _printTransferShip;
    localInventTransferParmTable.ParmBuffer::initParmId();
    localInventTransferParmTable.write();

    
this.parmParmBuffer(localInventTransferParmTable);

    
this.run();

}

 

3.调用示例:

发货:

InventTransferUpd       inventTransferUpd  =  InventTransferUpd::construct(InventTransferUpdateType::Shipment);
inventTransferUpd.update(
' 00031_080 ' ,InventTransferShipUpdateQty::PickedQty);
收货:
ContractedBlock.gif ExpandedBlockStart.gif Code
//Receive
            inventTransferUpd = InventTransferUpd::construct(InventTransferUpdateType::Receive);
            inventTransferUpd.updateReceive(transferId,InventTransferReceiveUpdateQty::Registered);

转载于:https://www.cnblogs.com/Farseer1215/archive/2008/04/13/1151598.html


http://www.niftyadmin.cn/n/547493.html

相关文章

JAVA学习笔记(1-第一行代码)

为什么80%的码农都做不了架构师?>>> 初期常用DOS命令行: dir:列出当前目录下的文件以及文件夹 md:创建目录 rd:删除目录 cd:进入指定目录 cd..:退回上一级目录 cd/:退回到根目录 del:删除文件 exit:退出DOS命令行 相关版本 J2EE(…

攒机的“三大忌律 八项注意”

对于那些想攒机且又对电脑初来乍到的朋友来说,最应该防范的就是传统观念的惯性和奸商的忽悠。我们怎么样才能造就一身反忽悠的本领呢?那就听我总结一下攒机的“三大‘忌’律 八项注意”吧。第一忌:找“熟人”装机可能没有买电脑的朋友传统观念…

java mail.smtp.host_[求助] spring java mail,无法连接smtp问题

谢谢,解决了,写一下解决过程,给有同样需要的人参考:1. 开通客户端授权密码,在163网页上。在客户端登陆,这个密码将替代邮箱密码。2. 下载了一个foxmail,配置25,死活不行。3. 继续配置…

男女的魅力在哪里?

我想男女由于在社会中扮演的角色不同,人们对他们的期待和评价也不尽相同。 当然不论男女对各自的期待都是要求对方起码要人品好,心地善良,有孝心,有爱心等。除此之外,我认为还必须具有以下品质。 女人魅力:…

自动化运维工具之Ansible(二)

一、Ansible基础安装通过Yum安装rpm使用与epel6,7等。但是必须安装Python2.4或者更高的版本的Python。添加源:wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repoyum install ansible -y二、Ansible配置1、ssh面密钥登陆设…

netstat,arp,tracert和route命令的使用方法 (转)

http://blog.donews.com/digital/archive/2006/01/02/680962.aspx netstat netstat -s能够按照协议显示统计数据。如果你的应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么你就可以用本选项来查看一下所显…

java visualvm监控jetty_java – VisualVM打破了jetty

我正在尝试分析由“mvn jetty:run”运行的应用程序,当我将VisualVM连接到它并单击Profile jetty崩溃时:Profiler Agent: Waiting for connection on port 5140 (Protocol version: 8)Profiler Agent: Established local connection with the tool## A fa…