ax附件存取研究
在标准ax中,允许在Table中上传文档,而这些文档是专用一个表来储存的,这个表是DocuValue
ax将所有table的文档都储存在一起,那么必定有关系将记录连接,这种关系就是:
- DataAreaId
- TableId
- RecId
文档存储使用到了两个表,DocuRef与DocuValue.
DocuRef存放的是各表的引用关系,而DocuValue则存放的是文档的核心内容。
这种关系可以用一条SQL来说明:
Select firstonly tableid from docuRef
where docuRef.RefCompanyId == InventTable.DataAreaId &&
docuRef.RefTableId == InventTable.TableId &&
docuRef.RefRecId == InventTable.RecId &&
docuRef.TypeId == “图片"
join docuValue
where docuValue.RecId == docuRef,ValueRecId;
docuValue.file字段是文档内容,另外如果是指定路径而非将文档存放在docuValue中,除了使用上述逻辑之外,还需要获取文档存放路径。
在DocuValue中有几个字段是存放文件路径用的,一个完整的文件路径存放在下面三个字段中。
- path
- filename
- fileType
不过,DocuRef表为我们提供了一个方法用于取文件路径,此方法名是:
docuRef.completeFilename();
这个方法使用很简单:
DocuRef::FindRecid(….).completeFilename(); //即可返回需要的文件路径