Inside Dynamics Axapta源代码赏析(一)

看不到书,就读代码解解馋吧,呵呵.感谢Ivan Gao提供源代码.
4.:MorphX Development Tools
代码修改了SysBPCheckMemberFunction这个类,增加了checkUseOfNames()方法,并在check()方法中调用,搞不清楚这个类是干什么用的.增加的这方法的作用是检查scanner中的每一行是否包含devNames中定义的姓名,为了说明宏的定义和使用?Container的使用或者字符串函数的使用?搞不清楚.
None.gif protected   void  checkUseOfNames()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    #Define.MyErrorCode(
50000)
InBlock.gif    container devNames 
= ["Arthur""Lars""Michael"];
InBlock.gif    
int i;
InBlock.gif    
int j;
InBlock.gif    
int pos;
InBlock.gif    str line;
InBlock.gif    
int lineLen;
InBlock.gif
InBlock.gif    
for (i=scanner.lines(); i; i--)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        line 
= scanner.sourceLine(i);
InBlock.gif        lineLen 
= strlen(line);
InBlock.gif        
for (j=conlen(devNames); j; j--)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            pos 
= strscan(line, conpeek(devNames, j), 1, lineLen);
InBlock.gif            
if (pos)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                sysBPCheck.addError(#MyErrorCode, i, pos, 
"Don't use your name!");
ExpandedSubBlockEnd.gif            }

ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}
6 Customizing Dynamics Ax
A.FormImageJoinedDataSources和FormImageTabActivated
这两个工程是为了说明一个问题的,如何让通过文档管理增加的图片显示在Form上.本示例以SalesTable这Form为例进行说明.
FormImageJoinedDataSources:用Active的方式关联DocuRef和DocuValue两个表.通过DocuValue的Active方法给picture控件赋值,代码如下:
None.gif public   int  active()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    Image           image;
InBlock.gif    
int ret;
InBlock.gif
InBlock.gif    ret 
= super();
InBlock.gif
InBlock.gif    
if (docuValue.File)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        image 
= new Image();
InBlock.gif        image.setData(docuValue.File);
InBlock.gif        bikeImage.image(image);
ExpandedSubBlockEnd.gif    }

InBlock.gif    
else
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        bikeImage.imageResource(
0);
ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif    
return ret;
ExpandedBlockEnd.gif}
FormImageTabActivated:不关联任何数据源,而是在Table SalesLine上增加一个display方法,picutre控件用这个方法填充.
None.gif server  public  DocuValueFile bikeImage()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    DocuRef     docuref;
InBlock.gif    DocuValue   docuValue;
InBlock.gif    ;
InBlock.gif    select forceplaceholders firstonly tableid from docuRef
InBlock.gif        where docuRef.RefCompanyId  
== this.DataAreaId  &&
InBlock.gif              docuRef.RefTableId    
== this.TableId     &&
InBlock.gif              docuRef.RefRecId      
== this.RecId       &&
InBlock.gif              docuRef.TypeId        
== 'Image'
InBlock.gif    join file from docuValue
InBlock.gif        where docuValue.RecId   
== docuRef.ValueRecId;
InBlock.gif
InBlock.gif    
return docuValue.File;
ExpandedBlockEnd.gif}
我一般采用第二种方法,不知道哪个更好一些.
B.InventoryDimensions
这个工程可以看做是增加物料维组的一个例子,这个示例增加了两个物料维组BikeWheelSize和BikeFrameSize,步骤如下:
1.增加扩展数据类型BikeFrameSize和BikeWheelSize
2.增加表BikeFrameSizeTable和BikeWheelSizeTable,这两个表的字段跟InventColor以及InvetSize等类似包含Itemid等字段.
3.修改Table InventDim,包括以下内容:
   1).Fields,增加BikeFrameSize和BikeWheelSize这两个字段.
   2).Indexs->DimIdx中增加BikeFrameSize和BikeWheelSize这两个字段.
   3).Field Groups  在AutoReport,InventoryDimensions,ItemDimensions中分别增加上述两个字段.
   4).Methods中需要修改的方法列表如下:
       initFromInventDimCombination,dim2dimCombination,dim2dimParm,dimParm2dim,findDim,findOrCreate,formQueryAddDynalink,isFieldIdItemDim,
       isFieldIdTransferReceiptMergeable,isFieldIdTransferTransitReceiptMergeable,
4.修改Table InventDimCombination,包括以下内容.
  1).Fields.增加BikeFrameSize和BikeWheelSize这两个字段.
  2).Field Groups  在Identification,InventoryDimensions,ItemDimensions中分别增加上述两个字段.
  3).Indexs->ItemIdx中增加BikeFrameSize和BikeWheelSize这两个字段.
5.修改Table InventDimParm,包括以下内容:
  1)Fields,增加BikeFrameSize和BikeWheelSize这两个字段.
  2)Field Groups  在FixedView,View中分别增加上述两个字段.
  3)Methods中需要修改的方法列表如下:
     initFromInventDimCombination,findAllDimIdCombinations
6.修改如下宏文件:
   InventDimExistsJoin,InventDimGroupAllFields,InventDimJoin,InventDimSelect
7.增加类似于InventColor,InventSize的Form,用于设定新建的两个纬度的值以及组合.

转载于:https://www.cnblogs.com/Farseer1215/archive/2006/09/25/514624.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值