方正(SOA中间件)快速开发平台ES2007的安装问题(二)

来源:互联网 发布:js解析url 编辑:程序博客网 时间:2024/04/30 07:37

2 Studio相关
2.1 显示格式
·
去除数据显示列表上的按钮

document.all.item('对应按钮的id').style.display="none";

AddBtn为添加按钮,FlowStart启动按钮,ModifyBtn修改按钮,DeleteBtn删除按钮,BrowesBtn浏览按钮,SearchBtn查询按钮,ResetBtn重置按钮,MyCondition选择设置条件按钮,BtPrint导出明细按钮,WhereSqlShow当前显示内容,Table1全部隐藏,TablePaths应用名称隐藏。


·左边树右边表格的显示方式如何设置
左边树对应表的设置,递归设置,父子段为表中表示上级的字段,子字段为表中表示本级的字段,显示字段为要显示的字段;显示格式,维护表选择自己,维护字段为本级字段,关联字段为表中表示上级的字段。

右边内容表的设置,显示格式,维护表明为左边树状表,维护字段树状表的该级字段,关联字段为表中和树状表中关联的字段。


·根据数据列条件改变行背景。

for(var i=0;i<DataGridObj.ClientRows.length;i++)

    {

        var str = DataGridObj.ClientRows[i].cells[6].innerText;

       

        if(str=='急件')

        {     

            DataGridObj.ClientRows[i].style.background = '#FFFF00'  ;

        }

                  if(str=='加急件')

        {     

            DataGridObj.ClientRows[i].style.background = '#FF0000'  ;

        }

 

}

 


·关于自定义UNIFORM的导出明细按钮(JAVA)。

思路:

1.在UISCRIPT中接管导出明细按钮的ONCLICK事件,打开一个表单

2.在表单的PAGELOAD事件写导出的JAVA代码

 

1.UISCRIPT

 

var sql1 = "";

  var tmpEvent = String(Uniform.ExportBtnObj.onclick);

  if ( tmpEvent.indexOf("&sql1=")>-1 )

  {

      sql1 =  tmpEvent.substr( tmpEvent.indexOf("&sql1=")+6,tmpEvent.length );

      if ( sql1.indexOf("&")>-1 )

      {

         sql1 = sql1.substr(0,sql1.indexOf("&"))

     }

     //alert(sql1+'/n/n'+tmpEvent);

    

     sql1 = "&sql1="+sql1;

  }

  Uniform.ExportBtnObj.onclick = function()

  {

          window.open('localizer.jsp?MasterTable=会计科目&UseType=Report&guid=ODBCNOGUID&FormName=导出'+sql1,'','directories=0,location=0,toolbar=0,status=0,scrollbars=0,menubar=0,resizable=0,channelmode=0,width=0,height=0,left=0,top=0');

  }

 

 

2.表单的JAVA代码

 

String sql1 = This.Parameters.get("sql1");

    if ( sql1!=null && !sql1.equals("") )

     sql1 = " and " + sql1;

    String tabname = This.Parameters.get("MasterTable");

   

    This.response.setContentType("text/plain");

    This.response.setHeader("Content-disposition","attachment; filename="+java.net.URLEncoder.encode(tabname,"UTF-8")+".txt");

   

    com.egosystems.dbcore.Parm_Struct pstcode = new com.egosystems.dbcore.Parm_Struct( "tcode", tabname );

    com.egosystems.dbcore.Parm_Struct psuid = new com.egosystems.dbcore.Parm_Struct( "uid", This.user.getUserName() );

    com.egosystems.dbcore.Parm_Struct pswhereSql = new com.egosystems.dbcore.Parm_Struct( "whereSql",  sql1 );

    com.egosystems.dbcore.Parm_Struct psorderby = new com.egosystems.dbcore.Parm_Struct( "orderby", " 1 desc " );

    com.egosystems.dbcore.Parm_Struct psCurrentpage = new com.egosystems.dbcore.Parm_Struct( "currentpage", 1);

    com.egosystems.dbcore.Parm_Struct pspagesize = new com.egosystems.dbcore.Parm_Struct( "pagesize", 9999);

    com.egosystems.dbcore.Parm_Struct pspagecount = new com.egosystems.dbcore.Parm_Struct( "pagecount", 0 );

    pspagecount.setDirection(com.egosystems.dbcore.ParameterDirection.Output,java.sql.Types.VARCHAR);               

    com.egosystems.dbcore.Parm_Struct psrecordcount = new com.egosystems.dbcore.Parm_Struct( "recordcount", 0 );

    psrecordcount.setDirection(com.egosystems.dbcore.ParameterDirection.Output,java.sql.Types.VARCHAR);           

    List<com.egosystems.dbcore.Parm_Struct> ParamSp = new ArrayList<com.egosystems.dbcore.Parm_Struct>();

    ParamSp.add(pstcode);

    ParamSp.add(psuid);

    ParamSp.add(pswhereSql);

    ParamSp.add(psCurrentpage);

    ParamSp.add(pspagesize);

    ParamSp.add(psorderby);               

    ParamSp.add(pspagecount);

    ParamSp.add(psrecordcount);           

    This.dbgr.setResultNum(2);

   

    List<java.sql.ResultSet> ResultDs = This.dbgr.GetResultSets( "sp_getdata",com.egosystems.dbcore.CommandType.PROC,ParamSp);

   

    java.lang.StringBuilder sb = new java.lang.StringBuilder();

   

    com.egosystems.dbcore.DataTable ResultDt2 = new com.egosystems.dbcore.DataTable(ResultDs.get(1));

    for ( int i = 0; i < ResultDt2.Rows.length; i++ )

    {

        for ( int j = 0; j < ResultDt2.Rows[i].Items.length; j ++ )

        {

            sb.append(ResultDt2.Rows[i].Items[j].ToString()+",");

        }

        sb.append("/r/n");       

    }

    //System.out.println(sb.toString());

    This.Out.clear();

    This.Out.write(sb.toString());

This.Out.close();

 


·关于自定义UNIFORM的右键菜单。
在UNIFORM中有三个右键菜单

1.空白处的刷新菜单

2.业务表记录行中的右键菜单(修改,浏览等)

3.流程启动按钮的点击菜单(如启动报销流程)

4.JAVA版本的维护表的记录行的右键菜单

 

以上的菜单由tmpArray数组维护和行级中TR中的funcmenuParms属性维护数据

 

tmpArray[0] 为业务表的右键菜单

tmpArray[1] 为流程启动按钮的菜单

tmpArray[2] 为刷新菜单

tmpArray[9] 为JAVA版本下的维护表的右键菜单

 

例:

 

tmpArray[0] = [["处理过程>>>","fnOpenModal('WorkFlow/prolist.jsp?{guid}', 800, 600, 'scroll:1;');return false;"],["修改","fnOpenModal('localizer.jsp?MasterTable=采购计划{guid}$UseType=Modify', 800, 600, 'scroll:1;');return false;"],["删除","DelMouseRecord('{guid}')"],["浏览","fnOpenModal('localizer.jsp?MasterTable=采购计划{guid}$UseType=View$NoShowMoreOP=yes', 800, 600, 'scroll:1;');return false;"],["复制","fnOpenModal('localizer.jsp?MasterTable=采购计划{CopyGUID}$UseType=Add', 800, 600, 'scroll:1;');return false;"]];

 

funcmenuParms 为业务表数据行的TR的扩展属性:

funcmenuParms="0{guid}:$guid=6cb56c7b-4dbb-4049-b542-65e726354c04;{guid}:$guid=6cb56c7b-4dbb-4049-b542-65e726354c04;{guid}:$guid=6cb56c7b-4dbb-4049-b542-65e726354c04;{guid}:$guid=6cb56c7b-4dbb-4049-b542-65e726354c04;{CopyGUID}:$CopyGUID=6cb56c7b-4dbb-4049-b542-65e726354c04;{isenabled}:1,1,0,1,0;"

 

0表示调用tmpArray[0]

{guid}:表示在tmpArray[0]菜单项的第二个值中的变量需替换的值

{isenabled}:表示这几个菜单项目哪个可视哪个不可视

 

根据以上标准,需要添加菜单的话,则需要变动tmpArray的值和funcmenuParms 的值

 

代码(以业务表添加自定义菜单为例):

 

//向tmpArray[0]追加几个数组值

  tmpArray[0].push(new Array("自定义1","alert('自定义1{guid}');"));

  tmpArray[0].push(new Array("自定义2","alert('自定义2{guid}');"));

 

  for ( var i = 0; i < DataGridObj.ClientRows.length; i++ )

  {

          var tmpRow = DataGridObj.ClientRows[i];

          var str = tmpRow.getAttribute('funcmenuParms');

          var StrArr = str.split(';');

          var resetStr = "";

          for ( var j = 0; j < StrArr.length-1; j ++ )

          {

            var tmpstr = StrArr[j];

            if ( j == StrArr.length - 2 )

            {

//向isenabled添加两个标志菜单可用

                resetStr += ''+tmpstr+',1,1;';

            } 

            else if ( j == StrArr.length - 3 )

            {

//为菜单参数编值

                resetStr += tmpstr + ';{guid}:'+tmpRow.getAttribute('GUID')+';{guid}:'+tmpRow.getAttribute('GUID')+';';

            } 

            else

            {

                resetStr += tmpstr + ';';

            }

          }

         

          alert(resetStr);

         

          tmpRow.setAttribute('funcmenuParms',resetStr);

  }

 


·明细表的显示格式可以引用主业务表。

关联出来的业务表如果有明细的话,不显示出现明细,即不会出现手形的指针,但其它的功能都在,如果有需要可以到UISCRIPT里面编写手形

DataGridObj.Cursor = “hand”;

DataGridObj.hasDetail = true;

涉及的字段:SYS_DETIALTABLE.distype=’maingrid’

方正(SOA中间件)快速开发平台ES2007的安装问题(二) - 狮子座 - 快速开发平台ES2007


 

方正(SOA中间件)快速开发平台ES2007的安装问题(二) - 狮子座 - 快速开发平台ES2007

 

方正(SOA中间件)快速开发平台ES2007的安装问题(二) - 狮子座 - 快速开发平台ES2007
 
·如何设置UNIFORM的固定列。
方正(SOA中间件)快速开发平台ES2007的安装问题(二) - 狮子座 - 快速开发平台ES2007

 
 
·显
示格式中可以对浏览表单是否显示做配置。
设置或取消主表显示格式的显示主表详细信息,明细的PAGE有响应

只有一个明细的时候,页面应该没有PAGE

配置字段为sys_spec.DISVIEWFORM 

方正(SOA中间件)快速开发平台ES2007的安装问题(二) - 狮子座 - 快速开发平台ES2007

方正(SOA中间件)快速开发平台ES2007的安装问题(二) - 狮子座 - 快速开发平台ES2007

 

方正(SOA中间件)快速开发平台ES2007的安装问题(二) - 狮子座 - 快速开发平台ES2007

 

·更改uniform中列标题(Uiscript)

//找到需要更新的列

var tda =  DataGridObj.Header.cells[6].all(0).rows[0].cells[0];

  var tmpStr = tda.innerHTML;

  tmpStr = tmpStr.replace('附件','

 

 正文附件');

  tda.innerHTML = tmpStr; 

 
·
如何Uniform一条数据可以点击,打开新的页面(JAVASCRIPT)
       点击页面上的记录打开新的页面

1.给表建视图。

eg:

create view a_SANXIAOMING

as

select '<a href=javascriptnOpenModal(''localizer.aspx?MasterTable=SANXIAOMING$guid='+guid+'$UseType=Modify'',800,600)>'+a+'</a>' as re,* from SANXIAOMING

2.表—>操作—>显示格式—>显示内容

  在查询语句中写上视图名称

  在显示字段中添加视图中起的别名

 
·
如何Uniform一条数据下显示图片(JAVASCRIPT)
       在表单显示格式中UISCRIPT中写:

//基础代码结构

  var DataGridObj = new DataGrid(DataGrid1);

  DataGridObj.Refresh();

  var j=1;

  for(var i =0;i< DataGridObj.ClientRows.length;i++)

  {

      var guid = DataGridObj.ClientRows.getAttribute('GUID');

          DataGridObj.setBBForm("报刊亭机构图","U浏览","450",j,guid,"View")

          j = j+2;

  }

 


·如何显示格式中UIScript自定义处理脚本(JAVASCRIPT)

将业务表的显示格式->显示内容->附加操作设置成“自定义”后,可以通过扩展UIScript的方法扩展数据列表上字段的超链接

1.方法一:

//基础代码结构

var DataGridObj = new DataGrid(DataGrid1);

DataGridObj.Refresh();

DataGridObj.CustomExecute = function(guid,tablename){alert(guid);alert(tablename);};

2.方法二:

//基础代码结构

var DataGridObj = new DataGrid(DataGrid1);

DataGridObj.Refresh();

function CustomExecute(guid,tablename)//显示GUID出来

{

          alert(guid);

        alert(tablename);

}

DataGridObj.CustomExecute = CustomExecute;

 

另外,如果要取当前点击的超链接的文本,可以用js的event.srcElement.innerHTML方法取到被点击对象的文本。如果要取同行的其他列的值,利用js对Dom对象操作即可。如:event.srcElement.parentElement.parentElement.previousSibling.innerHTML,取到前一个td的内容,当然里面还会有一些Div包围着


·如何显示格式中UIScript隐藏按钮(JAVASCRIPT)
          //基础代码结构

  var DataGridObj = new DataGrid(DataGrid1);

  DataGridObj.Refresh();

  try

  {

    document.all.item('AddBtn').style.display="none";    //添加按钮隐藏

    document.all.item('FlowStart').style.display="none";    //启动按钮隐藏

      document.all.item('ModifyBtn').style.display="none";    //修改按钮隐藏

      document.all.item('DeleteBtn').style.display="none";    //删除按钮隐藏

      document.all.item('BrowesBtn').style.display="none";    //浏览按钮隐藏

      document.all.item('SearchBtn').style.display="none";    //查询按钮隐藏

      document.all.item('ResetBtn').style.display="none";    //重置按钮隐藏

      document.all.item('MyCondition').style.display="none";    //选择设置条件按钮隐藏

    document.all.item('BtPrint').style.display="none";    //导出明细按钮隐藏

    document.all.item('WhereSqlShow').style.display="none";    //当前显示内容隐藏

    document.all.item('Table1').style.display="none";    //全部隐藏,一片空白

      document.all.item('TablePaths').style.display="none";    //应用名称隐藏

  }

  catch(e){}

 


·如何显示格式中UIScript添加按钮(JAVASCRIPT)

var InputSQL = '<input type="button" id="checkall" name="checkall" value="全选未审" onclick="check(gridobj);">';

Uniform.AddBtnObj.insertAdjacentHTML('BeforeBegin',InputSQL);   

Uniform.TablePathsObj.insertAdjacentHTML('BeforeBegin',InputSQL);

 
·
如何显示格式中UIScript浏览并操作数据页面修改(JAVASCRIPT)
           //基础代码结构

    var DataGridObj = new DataGrid(DataGrid1);

    DataGridObj.Refresh();

//找到需要更新的列

var tda =  DataGridObj.Header.cells[6].all(0).rows[0].cells[0];        //剥皮进去查找

alert(tda.outerHTML);                            //输出HTML代码

var tmpStr = tda.innerHTML;                        //读出HTML代码

tmpStr = tmpStr.replace('附件','正文附件'');                 //替换显示文字(因为附件显示,显示格式中无法修改)

tda.innerHTML = tmpStr;

 
·
如何显示格式中UIScript更改uniform中列标题(JAVASCRIPT)
        //基础代码结构

    var DataGridObj = new DataGrid(DataGrid1);

    DataGridObj.Refresh();

//找到需要更新的列

var tda =  DataGridObj.Header.cells[6].all(0).rows[0].cells[0];        //剥皮进去查找

alert(tda.outerHTML);                            //输出HTML代码

var tmpStr = tda.innerHTML;                        //读出HTML代码

tmpStr = tmpStr.replace('附件','正文附件'');                 //替换显示文字(因为附件显示,显示格式中无法修改)

tda.innerHTML = tmpStr;

 


·如何对数据列表(uniform)的选中数据进行处理

在业务表单的查询表单上可以用如下代码取得选中的数据行的guid串。(本段代码在实现批量打印时用得着,此处不给出uniform批量打印功能的完整实现)

//DeleteBtn是uniform上的删除按钮

//平台在做删除功能时将当前选中的数据行的guid串娬给DeleteBtn的guid属性

var delBtn = parent.innerMain.document.all.item('DeleteBtn');

var guidStr = Page.getProperty(delBtn,'GUID');

alert(guidStr);

只能到当前页上选中的数据、翻页之后由于页面刷新DeleteBtn的guid属性值也被清空。

 

方正(SOA中间件)快速开发平台ES2007的安装问题(二) - 狮子座 - 快速开发平台ES2007

 
·如何隐藏Uniform显示最前面的复选框
      Uniform上有时候想要自定义一些界面显示,例如,隐藏某些列,自定义双击事件等等。

如果要隐藏的不是第一列,可直接在显示格式中讲此列的宽度设置为"-2"

如果要隐藏的是第一列,即包含复选框的列,需通过显示格式里的UIScript来实现

var DataGridObj = new DataGrid(DataGrid1);

//遍历第一列的单元格

  for (var i = 0; i <  DataGridObj.Obj.rows.length; i++ )

  {

         //隐藏最前面的每行第一个单元格

       DataGridObj.Obj.rows[i].cells[0].style.display = "none";

         //自定义行的双击事件,此处为屏蔽原来的双击打开效果

       DataGridObj.Obj.rows[i].ondblclick = function(){}

  }

  DataGridObj.Refresh();

 


·直接在Uniform上显示对应的表单的明细表单

function CustomExecute(guid,tablename)//显示GUID出来

{

var j=1;

 for(var i =0;i< DataGridObj.ClientRows.length;i++)

{

var guid = DataGridObj.ClientRows[i].getAttribute('GUID');

DataGridObj.setBBForm("T_SYS_MEMBERINFO","PVIEW","450",j,guid,"View")

 j = j+2;

}            

}

DataGridObj.CustomExecute = CustomExecute;

 
·Uniform不显示一列数据

       var Rows=DataGridObj.ClientRows.length;

for(var i=0;i<Rows;i++)

 {DataGridObj.ClientRows[i].cells[1].style.display='none'; }

 


·获取Uniform当前点击的指定列的数据

var i=event.srcElement.parentElement.parentElement.parentElement.rowIndex;

var rowObj=  DataGridObj.Obj.rows[i];    

var date=rowObj.cells[4].innerText;

 
·2.2 关联表设置
·
关联显示的表不显示。
关联表是否勾选显示。关联表的表单权限是否设置。

 
·
系统附件存放方式,如何设置
      系统支持两种附件上传模式,数据库存放附件和Web文件系统存放附件。数据库存放附件可使用附件分离。

选择对应的数据表,右键选中<操作>,<关联表设置>,在附件存储可选择附件存放方式。

 
·
数据列显示页面,报错“‘)’附近有语法错误”
检查关联表的设置,是否存在关联字段。显示内容视图是否有错误。

 
·数据接口设置关联表时,关联表能否设置显示格式
不能

 
·2.3 表单权限
·为什么导入应用后,权限要重新分配,才能看到页面呢

A系统的模块到B系统,2者人员组织架可能完全不同,权限当然要重设

 
·数据安全与表单权限 和 sys_data_pru 是怎样的表结构?
数据安全与表单权限要在sys_data_pru表中得到相关guid

 
·流程管理->流程追踪,点任务时,显示“没有操作权限”,这个是什么问题造成的?
权限设置问题,或者是表单没有上传。

 
·2.4 数据安全
·
数据安全设置根据关联表中的某个字段来判断。
需要在写数据库的函数,然后在数据安全中调用函数来判断。

 
·表单数据安全设置中,如何设置部门只能看部门人员填报的数据,也就是登录人只能看到自己所在部门的数据
数据安全设置复合模式,在表单数据相关里面设置。

 
·在数据安全内,每个表都写了同样的一段语句,能不能把这段语句写在一个地方然后统一调用,也便于以后的修改。
在数据库里写一个公共函数,每个地方都调用这个函数。

 
·数据安全里面表单数据相关不同的项目之前是什么关系,是and还是or?
or。

 
·怎样让人可以浏览,但不能删除数据
数据安全设置,设成只读共享。

 
·流程数据进行修改
在对应表的数据安全里面设置

 

·2.5 应用主页
·
添加数据的应用主页,如何操作

对应模块的应用主页中添加菜单。

 


·用数据接口做明细表设计,并在应用主页挂接,但就是不能显示,权限里面只有一个表单权限,没有数据权根。是不是数据接口只能做表单明细,不能直接生成明细?
数据接口只能做报表,但可以直接显示。

 
·2.6 其他
·
映射表跟业务表的区别(平台)

1.映射表没有自己的字段数据,用的是业务表的。

2.业务表可以做流程而映射表不行。

3.业务表做关联表可以级联添加、级联删除、级联更新;映射表不能级联删除和级联更新。

4.映射表做关联后,打开表单设计器,右边表单集合看不到关联表(必须它相对应的业务表也关联到那张表)

5.映射表不能做上传附件,业务表可以。

 
·
关于平台生成更新包工具和自动更新的说明。
该功能用与生成系统升级资源包,并通过工具打包生成自动升级包,以进行开发出的系统的升级工作

1.UPD.exe

  生成数据库的更新包(SQL语句)

2.ES2007UPGRADE.exe

  真正的更新程序,该程序存在与更新文件夹内,他与update.ini、install.ini和

  更新文件夹并存,

  并由MakeUpgrade.exe压缩整个文件夹成EXE自解压文件

3.MakeUpgrade.exe

  打包工具

  作用:将更新资源文件夹打包成EXE自解压文件

        更新文件夹需要有ES2007UPGRADE.exe、更新文件、update.ini、install.ini

4.install.ini

  安装配置文件

  分两个版本

  只能写入与数据库相关的信息,此功能用与更新用户的数据库

  ENABELD=false为无效,则读取更新机的注册表信息

  ENABELD=true则优先考虑之

5.update.ini更新的配置文件,其由UPD.exe自动生成,可后期自已配置其它更新

 

使用方法:

1.UPD.exe、mainframe.pbd

  更新至 Designer 文件夹,运行studio

2.在studio的工具菜单下运行生成更新包

3.选择需要更新的模块,生成更新包,更新包以GUID的文件夹形式存放在Designer/UPD 文件夹下

4.COPY 最新生成的更新包里的更新文件夹和update.ini 到一新建目录(如 更新ABC)

5.COPY ES2007UPGRADE.exe 到新建目录(如 更新ABC)

6.如需预设更新数据库信息 COPY install.ini文件到新建目录(如 更新ABC),并编辑它

7.运行MakeUpgrade.exe

  打包文件名:任起,例如: ES2007.20090714 该名为生成的自解压更新包的文件名

  目的地目录:为生成的更新包文件的存放地,任选

  需压缩目录:为更新包的目录(如 更新ABC)

8.生成更新包

  更新包生成后,为一自解压EXE文件(如 ES2007.20090714.exe )

  点击运行测试

 
·
ES2007平台的小技巧。

1.表单权限有复制权限,可以把某一条数据复制成新数据

2.UNIFORM数据展现有省略号的配置

3.UNIFORM无关联表时可双击打开浏览表单

4.UNIFORM具有固定列功能,UISCRIPT支持

5.UNIFORM可配置某一列作为浏览、修改的表单链接

6.表单控件如有runat="client"的功能,如是,则不进行控件化处理,只认为是前台HTML控件

7.平台附件有缓存机制,且具备分库功能

8.在数据安全有提交人相关时,sys_data_pru必须要有该表所有数据的GUID

9.t_sys_count是为表单sysIndex自动编号功能提交的

10.studio 搜索时可以按拼音查询

11.平台的所有操作DDL语句有录制,可在系统数据模块中找到

12.平台有关联的级联更新和级联删除功能,注:是无级级联,包括明细表的级联

13.明细表可以‘垂直’或‘水平’显示,且可设定比例

14.表单的非空与提交按钮对应,可设定在保存时可为空,在提交时不为空等

 
·
平台支持全球唯一码吗?
支持。平台表中是包含GUID列的。

 
平台映射表如何使用
映射表没有自己的字段,使用的字段是映射对象的。不能建立流程。不可级联删除和级联更新。表单设计器中的关联表和映射对象的相同。不能上传附件。针对同样的表,系统需要不同的表现方式时可以使用映射表。

 
·
数据接口与业务表有什么区别。
业务表只是记录数据的表,数据接口是用来使用自己写好的对应的视图,存储过程的。在业务表上可建立表单,报表,查询。数据接口只可建立报表,查询。

 
·数据接口关联表显示
新建映射表,设置映射表的显示内容,映射目标做关联。

 
·一个存储过程参数和一个控件绑定后,如果控件不填值,传进去是一个带空格的值 ' ',怎么让其传入空字符串''。
可在存储过程里将参数默认值设为null。

 
·首页的日历项,代办事宜,未读邮件等这些东西在哪里设置,如果我不想在首页出现未读邮件,怎么设置
设计器,工具,系统UI设计。

 
·在视图里加了新字段,但是在对一个查询按钮做检索条件的时候,这个视图却没有显示这个字段。
到数据借口里找到这个视图,右键选择‘设计’,点击自动更新。


·有什么办法让databrowse从存储过程的里读出的列名 变成中文?不要在存储过程里改。
数据接口的显示字段,设计里的显示字段。