ax附件存取研究

在标准ax中,允许在Table中上传文档,而这些文档是专用一个表来储存的,这个表是DocuValue

ax将所有table的文档都储存在一起,那么必定有关系将记录连接,这种关系就是:

  1. DataAreaId
  2. TableId
  3. 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中有几个字段是存放文件路径用的,一个完整的文件路径存放在下面三个字段中。

  1. path
  2. filename
  3. fileType

不过,DocuRef表为我们提供了一个方法用于取文件路径,此方法名是:

docuRef.completeFilename();

这个方法使用很简单:

DocuRef::FindRecid(….).completeFilename();  //即可返回需要的文件路径

posted @ 2012-03-14 12:37  perock  阅读(411)  评论(0编辑  收藏  举报