随笔分类 - AX 2009
摘要:有MVC开发经历的童鞋,可能发现X++由于不支持静态变量是不支持单例模式,Form之间传值只能通过Args类传递。这样程序开发的灵活性就大大受到限制。有人发现,通过系统全局缓存机制来实现单例模式。 1 public static SingletonClass getInstance() 2 { 3 SingletonClass instance; 4 SysGlobalCache globalCache = infolog.objectOnServer() ? appl.globalCache() : infolog.globalCache(); 5 ; 6 7 ...
阅读全文
摘要:1 static void findStr(Args _args) 2 { 3 Dictionary dictionary = new Dictionary(); 4 SysDictTable dictTable; 5 SysDictField dictField; 6 Common common; 7 int i, j, _tableId, _fieldId; 8 ; 9 for (i = 1; i <= dictionary.tableCnt(); i++)10 {11 ...
阅读全文
摘要:AX的键盘事件比较简单,通过侦听task()事件的taskID。 1 public int task(int _taskId) 2 { 3 int ret; 4 ; 5 6 ret = super(_taskId); 7 8 if (_taskId == 288) //288是Enter键,其它键值可自测获取 9 {10 //Do something11 }12 13 return ret;14 }
阅读全文
摘要:AX的事物管理通过关键字ttsbegin/ttscommit/ttsabort来处理。用一个事务,要不全做,要不全不做。常用的写法有: 1 try 2 { 3 ttsbegin; 4 //do something1 5 //do something2 6 ttscommit; 7 } 8 catch 9 {10 ttsabort;11 }这里do something1和do something2,要不全做,其中有一个出现问题,则两个都不做。另外,使用tts,还有下面一些小细节:(1)ttsabort不会马上终止程序,而是继续运行后面与transaction无关的statem...
阅读全文
摘要:Following Job creates the Purchase order from code and post the invoice by making use of PurchFormLetter class.If you don't have demo data , please test with your input values. 1 static void Dev_CreatePO_and_Invoice(Args _args) 2 { 3 NumberSeq numberSeq; 4 Purchtable Purchtable; 5 PurchLine Pu..
阅读全文
摘要:1 static void Job_Testing(Args _args) 2 { 3 Query query = new Query(); 4 QueryBuildDataSource qbds; 5 QueryRun qr; 6 TableID tableId; 7 int icount = 0; 8 ; 9 tableid = tablename2id('CustTable');10 qbds = query.addDataSource...
阅读全文
摘要:不要把barCode 想的有多么高深。 它其实只是模拟键盘的操作而已,当光标定位在某个控件,在该位置输入字符串。有些细节需要注意的:在报表中打印条形码时,有时会发现打出乱码,即使是标准系统。在设置打印条形码时,对应的StringEdit有两个属性需要注意:Font和DataMethod。以BC开头的字体是条形码,如果将Font设置为:“BC C128 HD Wide” 则需要将DataMethod设置为对应的“BarcodeEAN128”。学习如何使用BarCode,可以参考“Report :AssertBarcode”,在确定了我们要使用的BarCode字体后。1 BarcodeCode39
阅读全文
摘要:1、控制行的颜色,重写Grid的displayOption()。 1 public void displayOption(Common _record, FormRowDisplayOption _options) 2 { 3 PushTbBOMConfiguration config; 4 ; 5 6 config = _record; 7 if (config.Color == 'Red') 8 { 9 _options.textColor(WinAPI::RGB2int(255,0,0));10 }11 supe...
阅读全文
摘要:1、通过数据源获取记录,以EmplTable为例。1 EMPlTable emp;2 ;3 4 for (emp = EmplTable_ds.getFirst(1); emp; emp = EmplTable_ds.getNext())5 {6 //do something7 } 1 voidclicked() 2 { 3 CustTablecustTable; 4 ; 5 for (custTable = CustTable_ds.getFirst(true)?CustTable_ds.getFirst(true):CustTable_ds.cursor(); //从当前...
阅读全文
摘要:1、从本地读取图片文件,并判断格式是否附合要求。 1 FilenameFilter filter = ['Image Files','*.bmp;*.jpg;*.gif;*.jpeg']; 2 BinData binData = new BinData(); 3 str extention, path, nameOfFile; 4 Container imageContainer ; 5 imageFilePathName = WinAPI::getOpenFileName(element.hWnd(),filter,'', "@SYS
阅读全文
摘要:在AX有两个非常有用的方法,Display() 和 Edit()。它们都可以用于显示数据,但Eidt()还有一个功能,编辑保存数据。1、Display()非常简单和理解,它就是一个带返回值的函数,不带任何参数,不过前面多了一个关键字“Display”。1 Display ItemName itemName()2 {3 ;4 5 return InventTable::find("ItemId").ItemName;6 }2、Edit()方法,它和Display()相似,唯一不同的是,它带有参数,也有自己的关键字“Edit”。 1 Edit noYes editMark(..
阅读全文

浙公网安备 33010602011771号