Domion OA 日记

  我现在使用的是IBM的 Lotus Dimion 8.5

   以下内容是个人的浅显了解,在此记录下,已作为后续记录的翻看

  第一次接触文档型数据库,确实颠覆了我对数据模型的认知,我之前一直用sql的

  文档型数据库与关系型数据库的对比:

      文档型数据库       关系型数据库     

     数据库文件          数据库                 

     表单                   表               

     文档               一条记录      

     域                     字段  

 

  Domion分为3大部分: 用一个模块的数据库举例

      1.表单 :表单分为主表单和子表单,一个主流程表单可能由多个子表单组成,主表单类似模板,里面存一些公用的信息,

           子表单实现具体的功能,所以如果在主表单里面看到 <计算的值>  就是嵌套的子表单,在前端界面如果想找当前页面对应的数据库以及Form,

    可以右键看属性,看在哪个 Form里面,以此来定位问题   表单上的按钮是在一个通用的子表单里面,按钮的js事件大概都是在这个里面写的

       表单可以直接从视图里面取值: 域值的取值是:

      @DbLookup 返回表的一列中通过关键字匹配选定的值。

      name:=@DbLookup(class : "NoCache" ; "" : 数据库; "视图";关键字;视图的第几列);
      @If(@IsError(name);"";name)

    

  

        2。代理(Agent):代理是表单和数据的一个中间处理环节,表单里面可以直接调用代理,调用方法有在页面加载时 主表单的WebQueryOpen

    输入执行代理 @Command([ToolsRunMacro]; "代理名称");  还有一种就是通过js 调用 代码如下:     

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var xmlhttp;
function GetInfo(){
     var thisFrm = document.forms[0];
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    
    xmlhttp.onreadystatechange = SetInfo;
       //调用代理的方式:
    xmlhttp.open("Post", "/oadata/数据库名.nsf/代理名?openagent", true);
    xmlhttp.send();
 
}
 
function SetInfo(){
    var thisFrm = document.forms[0];
    if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
       var xmlDoc = xmlhttp.responseXML.documentElement;
       alert(xmlDoc.xml);
      }
}

 

   代理的类型有多种:常用的LotusScript 、公式、简单操作、java、引入的java(因为接触的LotusScript较多,所以就说或LotusScript)

       LotusScript 是纯vb的语法,(相当于类)Initialize 初始化加载方法  ,可直接调用Script下面的LotusScript   (需要引用:Use "类名") 

              Script下面可写通用的类方法, 在当前操作的数据库里面可以直接得到当前操作的表单的数据   (以下代码列示)   

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    Dim session As NotesSession
Set session = New NotesSession
Dim doc As NotesDocument
Set doc = session.DocumentContext
Dim db As NotesDatabase
Set db = session.CurrentDatabase    
    Dim depdb As NotesDatabase
    Dim personview As NotesView
Dim persondoc As notesdocument
 
    'doc  就得到了当前操作的文档的所有域的内容
 
    'doc.域的名称得到值
 
   
   '如果是想得到其它数据库里面的数据
   ’先连接上数据库
   Set depdb=session.Getdatabase(db.Server, "oadata\AIS_Org.nsf")
   '根据数据库查询它的视图
    Set personview=depdb.getview("视图名")
   ’根据源文档的信息从当前视图里面查询 注意:以上视图名的第一列一定是这个Key列才能查询到
   Set persondoc=personview.Getdocumentbykey(“Key”, True)
 
   '然后就可以对persondoc.列名 得到想要的值

   3.视图(View)

     Domion  OA的数据查询都是根据视图作为查询的数据源,视图里面可以定义改数据内容 :

SELECT form="mainform"  & sys_SuperUserdeal != "1" & sys_SoftDelete != "1"

       mainform 表名  是该数据库里面所有表单的记录  ! & 后面跟的是条件,类似与where 后面的列条件 以上就可以定义一个视图,

      视图里面有此表单里面的所有域的值(相当于是物理表里面的列)

 

 

 以上作为一个初学者还可以看看,希望有大牛可以知道纠错!

posted @   不必太用力  阅读(308)  评论(2编辑  收藏  举报
编辑推荐:
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
阅读排行:
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地
· 程序员转型AI:行业分析
历史上的今天:
2009-12-24 ASP.NET会话(Session)保存模式(收藏)感谢原创
点击右上角即可分享
微信分享提示