For simple user operation posting packing slip with purchase order. we added a function button on Quality Orders Form.

// VAR Changed by Xie Yu Fan.Fandy 谢宇帆
void YIP_PostPurchPackingSlip()
{
PurchFormLetter_PackingSlip purchFormLetter;
SysQueryRun chooseLinesQuery; PurchParmUpdate purchParmUpdate;
PurchLine purchLine;
PurchParmTable purchParmTable;
PurchParmLine purchParmLine;
InventDim inventDim;
;
ttsbegin;
chooseLinesQuery = new SysQueryRun(querystr(PurchUpdate)); chooseLinesQuery.query().dataSourceTable(tablenum(PurchTable)).addRange(fieldnum(PurchTable, PurchId)).value(queryValue(this.InventRefId));
chooseLinesQuery.query().dataSourceTable(tablenum(PurchLine)).addRange(fieldnum(PurchLine, InventTransId)).value(queryValue(this.InventRefTransId)); chooseLinesQuery.query().interactive(false);
chooseLinesQuery.saveUserSetup (false); purchFormLetter = PurchFormLetter::construct(DocumentStatus::PackingSlip); purchFormLetter.chooseLinesQuery (chooseLinesQuery);
purchFormLetter.purchTable (PurchTable::find(this.InventRefId));
purchFormLetter.transDate (systemdateget());
purchFormLetter.specQty (PurchUpdate::All);
purchFormLetter.printFormLetter (NoYes::No);
purchFormLetter.splitDeliveryInformation(NoYes::No);
purchFormLetter.sumBy (AccountOrder::None); purchFormLetter.createParmUpdate(false);
purchFormLetter.chooseLines();
purchFormLetter.setForUpdatePurchParmTable(); purchParmTable = purchFormLetter.currentPurchParmTable();
if (!purchParmTable)
throw Exception::Break; purchParmLine = purchParmLine::findInventTransId(purchParmTable.ParmId,this.InventRefTransId,true);
if (!purchParmLine)
throw Exception::Break; inventDim = this.inventDim();
purchParmLine.InventDimId = InventDim::findOrCreate(inventDim).inventDimId;
purchLine = PurchLine::findInventTransId(this.InventRefTransId);
[purchParmLine.ReceiveNow, purchParmLine.RemainBefore , purchParmLine.RemainAfter ] = purchFormLetter.qtyPurch (purchLine, purchLine.YIP_calcPurchQty(this.Qty));
[purchParmLine.InventNow, purchParmLine.RemainBeforeInvent, purchParmLine.RemainAfterInvent] = purchFormLetter.qtyInvent(purchLine, this.Qty);
purchParmLine.setLineAmount(purchParmLine.ReceiveNow,purchLine);
purchParmLine.update(); purchFormLetter.reArrangeNow(true);
purchFormLetter.YIP_parmFromExternalRun(true);
purchFormLetter.saveLast();
ttscommit;
if (purchFormLetter.prompt())
{
try
{
ttsbegin;
purchFormLetter.run();
this.YIP_QCStatus = YIP_QCStatus::PackingSlip;
this.doUpdate();
ttscommit;
}
catch(exception::Error)
{
ttsabort;
throw error("Catch an error exception.");
}
catch(exception::CLRError)
{
ttsabort;
throw error(AifUtil::getClrErrorMessage());
}
}
}

How to using code post packingSlip on Quality Orders Form[AX2009]的更多相关文章

  1. 什么是Code Review(转)

    Code Review是一种通过复查代码提高代码质量的过程,在XP方法中占有极为重要的地位,也已经成为软件工程中一个不可缺少的环节.本文通过对Code Review的一些概念和经验的探讨,就如何进行C ...

  2. Code Understanding Step by Step - We Need a Task

      Code understanding is a task we are always doing, though we are not even aware that we're doing it ...

  3. Code Review(转)

    Code Review是一种通过复查代码提高代码质量的过程,在XP方法中占有极为重要的地位,也已经成为软件工程中一个不可缺少的环节.本文通过对Code Review的一些概念和经验的探讨,就如何进行C ...

  4. Code is not literature

    http://www.gigamonkeys.com/code-reading/ I have started code reading groups at the last two companie ...

  5. asp.net权限认证:OWIN实现OAuth 2.0 之授权码模式(Authorization Code)

    asp.net权限认证系列 asp.net权限认证:Forms认证 asp.net权限认证:HTTP基本认证(http basic) asp.net权限认证:Windows认证 asp.net权限认证 ...

  6. spotify engineering culture part 1

    原文 ,因为原视频说的太快太长, 又没有字幕,于是借助youtube,把原文听&打出来了. 中文版日后有时间再翻译. one of the big succeess factors here ...

  7. C# Note37: Writing unit tests with use of mocking

    前言 What's mocking and its benefits Mocking is an integral part of unit testing. Although you can run ...

  8. mongodb与mysql区别(超详细)

    MySQL是关系型数据库. 优势: 在不同的引擎上有不同 的存储方式. 查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高. 开源数据库的份额在不断增加,mysql的份额页在持续增长. 缺 ...

  9. API返回错误信息的最佳实践

    使用HTTP Status区分不同消息返回 最基础的三个状态200 OK, 400 Client Error, 500 Server Error 这些应该是够的, 如果客户端可以处理更细的划分, 可以 ...

随机推荐

  1. 078 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 03 创建类

    078 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 03 创建类 本文知识点:创建类 说明:因为时间紧张,本人写博客过程中只是对知识点的关 ...

  2. C\C++中strcat()函数

    转载:https://blog.csdn.net/smf0504/article/details/52055971 C\C++中strcat()函数                           ...

  3. 【题解】[SDOI2016]征途

    Link 题目大意:给定序列,将它划分为\(m\)段使得方差最小,输出\(s^2*m^2\)(一个整数). \(\text{Solution:}\) 这题我通过题解中的大佬博客学到了一般化方差柿子的写 ...

  4. Inno Setup 5打包exe遇到的坑,做一个学习记录

    ; 脚本由 Inno Setup 脚本向导 生成!; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档! #define MyAppName "人员管理系统"#de ...

  5. BOOST库 消息队列

    直接贴实验代码: /******* boost 消息队列 **********/ #if 1 #include <boost/thread/thread.hpp> #include < ...

  6. beego增删改查

    package main import ( "fmt" "github.com/astaxie/beego/orm" _ "github.com/go ...

  7. 第七章 TCP和UDP原理

    一.引入 1.TCP/IP协议族的传输层协议主要包括TCP和UDP 2.TCP是面向连接的可靠的传输层协议.它支持在并不可靠的网络上实现面向连接的可靠的数据传输 3.UDP是无连接的传输协议,主要用于 ...

  8. CSS常见标签类型

      块级(block): div,ul,li,h1~h6,p 独自占据一行 可设置宽高 行内(inline): span,a 占据所设置字体大小 不可设置宽高 上下margin值不会占用空间 行内块( ...

  9. 从一个例子入手Istio

    转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 本文使用的Istio源码是 release 1.5. 本篇是Istio系列的第一篇,希望 ...

  10. 感知机vs支持向量机

    感知机原理:二维空间中找到一条直线可以把所有二元类别分离开,三维或多维空间中,找到一个分离超平面把所有二元类别分离开.而可把所有二元类别分离开的超平面不止一个,哪个是最好的呢?损失函数:所有误分类的点 ...