Axapta中的保留字

看到一份微软的文档,介绍了Axapta中的保留字,把Axapta中特有的一些保留字和摘录如下:

anytype:
    说明:该类型的方法可以返回任意类型的数据.
    举例:

None.gif anytype Method1(Args a)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    
// Commands
InBlock.gif
    Return xyz;
ExpandedBlockEnd.gif}

at
    说明:跟保留字Window结合使用,可以指定输出窗体在Axapta主窗体的相对位置.
    举例:

None.gif static   void  Job4(Args _args)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    CustTable ct;
InBlock.gif    window 
80,30 at 5,3;
InBlock.gif
InBlock.gif    
while select name from ct
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        print ct.name;
ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}

Breakpoint:
    说明:添加一个断点用于调试.这确实是个保留字,不过还真不知道怎么玩.
    举例:
            可以在代码编辑器里按Shift+F9显示所有的断点及其位置.
ChangeCompany:
    说明:用数据库中另一个公司的数据,数据库表中有个字段DataAreaId用于表示某条记录是哪个公司的.
    举例:              

None.gif static   void  main()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    Custtable Custtable;
InBlock.gif    
// Assume that we are running in company 'aaa'
InBlock.gif
    changecompany('bbb')
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
// default company is now 'bbb'
InBlock.gif
        Custtable = NULL;
InBlock.gif        
while select Custtable
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
// Custtable is now selected in company 'aaa'
ExpandedSubBlockEnd.gif
        }

ExpandedSubBlockEnd.gif}

InBlock.gif
// default company is now set back to 'aaa' again
InBlock.gif

InBlock.gifchangeCompany(
'ccc')
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
// default company is now 'ccc'
InBlock.gif
        Custtable = NULL;
InBlock.gif        
// clear Custtable to let the select work on new default company
InBlock.gif
        while select Custtable
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
// Custtable is now selected in company 'ccc'
ExpandedSubBlockEnd.gif
            }

ExpandedSubBlockEnd.gif    }

InBlock.gif    
// default company is now 'aaa' again
ExpandedBlockEnd.gif
}
 

Client:
           说明:指定方法运行的位置.如果方法是static的,那么可以在声明的时候用Client指定其运行在Client端,如果是实例方法,那只能跟这Class的Runon属性混了.
            举例:

None.gif client Static xy(args a)
Container:
            说明:X++中的一般类型,可以认为无类型的动态数组,可以存放int等primitive类型的数据,也可以存放Array,Container.同一个Container变量可以存放不同的数据类型.Runbase的Pack和Unpack方法就是用了Container.
            举例:
None.gif container c  =  [ 1 3.14 , “abc”];
Date:
             说明:日期类型,包含年月日.
Delete_From:
            说明:如果要删除多条记录可以用这个关键字节省语句,另外由于只需要访问一次数据库就可以删掉多条记录,大多数情况下要比Delete的效率高一些.
            举例:
None.gif MyTable myTable;
None.gifDELETE_FROM myTable
None.gifWHERE MyTable.AmountMST 
<= ' 1000 ' ;
  display:
            说明:方法修饰符(类似于Static,Private,Publci等).用于标识该方法的返回值是用于在Form或者Report上显示.返回值通常是通过计算得到的,比如sum.
            举例:
None.gif
None.gif //  displays Subtotal_A and Subtotal_B, along with their total
None.gif
display  int  SubtotalSum()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    
return this.Subtotal_A + this.Subtotal_B;
ExpandedBlockEnd.gif}
div:
            说明:返回两个数(可以是整数也可以是浮点数)相除所得的整数部分.
            举例:
None.gif  
None.gif
//  Returns integer division of 100 by 21. i=4(4*21 = 84, remainder 16)
None.gif
=   100  div  21
None.gif
 edit:
            说明:edit方法是display的扩展,除了可以显示数据外,还可以获取用户的输入.方法参数有一个boolean类型的值set,用于表示对应的控件值是否被改写过,另一个是对应控件的值.
            举例:       
None.gif edit description getGrpName(Boolean  set , Description value)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    
if (set)
InBlock.gif        Box::Info(‘The contents of the field 
is: ‘+value);
InBlock.gif    
return (select CustGroup
InBlock.gif    where CustGroup.CustGroup
==this.CustGroup).Name;
ExpandedBlockEnd.gif}
None.gif
firstFirst:
         说明:意味着在取数据的时候第一条优先取出来,但这种情况下整体数据的速度有可能会慢一些.多用于对话框的更新.
         举例:
None.gif
None.gif select firstfast custTable order by accountNum;
firstOnly:
         说明:只取第一条数据.
None.gif
None.gif select firstonly custTable order by accountNum;
flush:
        说明:清空整张表的缓存.
forceLiterals:
        说明:告诉Axapta Kernel在数据库引擎优化的时候向数据库引擎提供where字句中的真实值.在涉及多个表的join时,默然采用该方式.
forceNestedLoop:
        说明:该关键字告诉数据库在执行包含Join的SQL语句的时候,先取主表中的一条记录,然后再取对应的明细记录,如此往复,直到结束.通常与关键字ForceSelectOrder搭配使用.
forcePlaceholders:
        说明:告诉Axapta Kernel在数据库引擎优化的时候不要向数据库引擎提供where字句中的真实值,而是用占位符代替.在没有Join语句的时候默认采用这种方式.优点是对于相似的语句可以重复使用查询计划,缺点是不会针对具体的值优化查询.
forceSelectOrder:
        说明:告诉SQL Server引擎在获取数据的时候按照Join的顺序取数据,先取Join的第一个表中的数据,再取第二个......,与forceNestedLoop配合使用.
forUpdate:
        说明:取出数据更新,对于不同的数据库引擎,可能会锁定相应的记录.
        举例:
None.gif static   void  deleteTransFromVoucher(JournalNum _journalNum, 
None.gif                                                           Voucher _voucher)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    LedgerJournalTrans ledgerJournalTrans;
InBlock.gif    LedgerJournalTable ledgerJournalTable 
=
InBlock.gif    LedgerJournalTable::find(_journalNum);
InBlock.gif    Counter counter;
InBlock.gif    ttsBegin; 
InBlock.gif    
while select forUpdate ledgerJournalTrans
InBlock.gif    index hint NumVoucherIdx
InBlock.gif    where ledgerJournalTrans.journalNum 
== 
InBlock.gif        _journalNum 
&&  ledgerJournalTrans.voucher == _voucher
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        ledgerJournalTrans.doDelete();
InBlock.gif        counter
++;
ExpandedSubBlockEnd.gif    }

InBlock.gif    
if (counter && ledgerJournalTable.journalType != 
InBlock.gif        LedgerJournalType::Periodic)
InBlock.gif    NumberSeq::release(ledgerJournalTable.voucherSeries, _voucher);
InBlock.gif    ttsCommit;
ExpandedBlockEnd.gif}

None.gif
hint:
        说明:给数据库查询引擎一个提示,提示让其按照特定的引擎去排序抓取的数据,当然既然是个提示,数据库查询引擎可以当它不存在.
        举例:
None.gif while  select forUpdate ledgerJournalTrans
None.gifindex hint NumVoucherIdx
None.gifwhere ledgerJournalTrans.journalNum 
==  _journalNum 
None.gif
insert_RecordSet:
        说明:批量插入数据.
        举例:
None.gif INSERT_RECORDSET myTable (myNum,mySum) 
None.gifSELECT myNum, SUM(myValue) FROM anotherTable GROUP BY myNum WHERE myNUM 
<=   100 ;
None.gif
nofetch:
        说明:表示语句当前不取任何数据,通常用在当前的select将会传递给其他应用程序对象的情况,比如query真正执行查询.
        举例:
None.gif select nofetch custTable order by accountNum

print:
        说明:打开Print窗体输出结果.print后面要跟pause,要不然一闪而过,啥玩意都看不到.
        举例:

None.gif do
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    
++ii;
InBlock.gif    print (ii
<=3?"Summen er =< 3":"Summen er over 3");
ExpandedBlockEnd.gif}
  while  (ii  <   10 );
None.gifpause;
None.gif

reverse:
        说明:把结果以相反的顺序输出.
        举例:

None.gif select reverse custTable order by accountNum;

server:
        说明:跟Client,不过运行在服务器端而已.
        举例:

None.gif server  static  xy(Args a)

Setting:
        说明:跟Update_RecordSet配合使用,更新满足条件的一批数据,value可以是表达式.
        举例:

None.gif Example  1 : assigns a single value to a field  in  all records  in  a table:
None.gifUPDATE_RECORDSET myTable
None.gif    SETTING field1 
=   1 ;
None.gif
None.gifExample 
2 : Increments a field  in  all records  in  a table by  10 % :
None.gifUPDATE_RECORDSET myTable
None.gif    SETTING field1 
=  myTable.field1  *   1.10 ;
None.gif

Update_RecordSet:
        说明:批量更新数据.
        举例:

None.gif UPDATE_RECORDSET myTable 
None.gifSETTING field1 
=  myTable.field1  *   1.10 ;
None.gif

Window:
     说明:调整输出窗体的大小.
     举例:

None.gif static   void  Job4(Args _args)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    str navn;
InBlock.gif    
int jjj=1;
InBlock.gif
InBlock.gif    window 
80,30;
InBlock.gif    …
ExpandedBlockEnd.gif}

None.gif

  

转载于:https://www.cnblogs.com/Farseer1215/archive/2006/08/09/472476.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值