• xForm应用开发手册


     

    xForm应用开发手册

    1          基本包含文件及简介

    文件名

    方式

    功能简介

    Basic.jse

    Client/Server

    基本函数库

    Control.jse

    Client

    基本控件的相关函数库(包括整个页面的初始化等功能)

    Dataset.jse

    Client

    客户端数据集的相关函数库

    Table.jse

    Client

    数据表格的相关函数库(包括表格初始化、增删表格行等功能)

    Editor.jse

    Client

    数据编辑控件的相关函数库

    Dropdown.jse

    Client

    实现动态数据下拉窗口的函数库

    Menu.jse

    Clent

    实现工具条菜单和弹出式菜单的函数库

    Tree.jse

    Client

    实现树状列表构件的函数库

    Svr_obj.jse

    Server

    实现在服务器端生成数据表格及客户端数组的函数库

    Client_ini.jse

    Client

    定义用于客户端的配置信息

    Server_ini.jse

    Server

    定义用于服务器端的配置信息

    2          开发规范

    2.1         文档结构

    xForm的基本原理如下:

    根据上图可知,xForm页面中的代码可分为Server端代码和Client端代码。下面是一个最基本的xForm页面:

    <%@ language=VBScript %>
    <html>
    <head>

    <!-- xForm
    的包含文件(使用xForm的页面必须包含这些代码文件) -->
    <link rel="stylesheet" type="text/css" href="_xForm_Library/control.css"></link>
    <script language="JScript.Encode" src="_xForm_Library/client_ini.jse"></script>
    <script language="JScript.Encode" src="_xForm_Library/basic.jse"></script>
    <script language="JScript.Encode" src="_xForm_Library/control.jse"></script>
    <script language="JScript.Encode" src="_xForm_Library/dataset.jse"></script>
    <script language="JScript.Encode" src="_xForm_Library/table.jse"></script>
    <script language="JScript.Encode" src="_xForm_Library/editor.jse"></script>
    <script language="JScript.Encode" src="_xForm_Library/dropdown.jse"></script>
    <script language="JScript.Encode" src="_xForm_Library/server_ini.jse" runat="server"></script>
    <script language="JScript.Encode" src="_xForm_Library/basic.jse" runat="server"></script>
    <script language="JScript.Encode" src="_xForm_Library/svr_obj.jse" runat="server"></script>

    <%

    '如果此页面使用了外部的XML定义文件,则可用下面的命令调用该文件

    initXMLFile "D:\Sample.xml"

    %>


    <%
    sql="select * from c_employee where dept_id='D11'"
    '
    创建一个本地记录集
    set dataset_employee = createAdoDataset("dataset_employee", sql, "Demo_ConnectionString", 0)
    dataset_employee.init
    %>
    </head>


    <body language="javascript" onload="
    initDocument();//页面初始化">

    <%'
    创建绑定到记录集数据导航条
    set pilot=createDataPilot("pilot_employee","dataset_employee")
    pilot.init
    %>

    <P>
    <!--
    以下是一个字段标签和一个数据编辑框 -->
    <label
    attrib="fieldlabel" datafield="employee_name" dataset= "dataset_employee"></label>
    <input
    attrib="editor" datafield="employee_name" dataset= "dataset_employee">
    </P>

    <%'
    创建绑定到记录集数据表格
    set table=createDataTable("table_employee","dataset_employee")
    table.init
    %>
    </body>
    </html>
    <%'
    销毁由xForm自动产生的临时对象

    destroyXFormObjects() %>

    2.2         配置Client_ini.js文件

    配置说明:

    变量名

    类型

    含义说明

    xForm_Library_path

    String

    指定xForm文件存放的URL,以便于应用在运行过程中可以随时定位到xForm的文件。

    如:"/ xForm_Demo/_xForm_Library/";

    showSubmitCommand

    Bool

    是否需要的保存数据之前提示要提交的字符串,以便于调试。

    disableSystemContextMenu

    Bool

    是否禁用用户界面上的右键菜单。

    其它

    String

    其它变量均是在xForm中用到的字符串表,可能根据您的需要予以调整。

    2.3         配置Server_ini.js文件

    Server_ini.js主要用于定义整个应用中经常用到的数据库的联结方式以便于进行统一管理。在该文件中有四个预定义的常量,含义如下:

    变量名

    类型

    含义说明

    Dictionary_ConnectionString

    String

    数据字典库的连接字符串。

    (数据字典是指将应用数据库中各表和字段的属性存放在特定的数据库中。xForm中的本地记录集、字段标签、数据表格都支持自动从数据字典中提取字段的标签等信息)

    RptTemplate_ConnectionString

    String

    报表模版库连接字符串。

    RptData_ConnectionString

    String

    报表数据库连接字符串。

    useDBDictionary

    Bool

    是否使用xForm的数据字典功能

    Server_ini.js文件的示例:

    //用户自定义

    var Demo_ConnectionString = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATASOURCE=" + Server.MapPath("/baoyilei/Product/xForm/Demo/DemoData.mdb");

    //数据字典连接字符串

    var Dictionary_ConnectionString = Demo_ConnectionString;

    //后台属性连接字符串

    var xFormProperty_ConnectionString = Demo_ConnectionString;

    //报表模版连接字符串

    var RptTemplate_ConnectionString = Demo_ConnectionString;

    //报表数据连接字符串

    var RptData_ConnectionString = Demo_ConnectionString;

    2.4         处理包含文件

    根据您的需要在Asp中包含必要的Javascript文件。

    包含方法如下:

    -         首先应当分别在Client端和Server端包含Client_ini.jsServer_ini.js这两个配置文件。

    -         Client <SCRIPT LANGUAGE=javascript SRC=”../ _xForm_Library /basic.js”> </SCRIPT>

    -         Server <SCRIPT LANGUAGE=javascript RUNAT=Server SRC=”../ _xForm_Library /basic.js”> </SCRIPT>

    -         一般来讲,在Clientbasic.jscontrol.js时必须包含的文件,在Server端如果要使用svr_dataobj.js那么basic.js必须被包含。

    -         除此之外,如果您包含标准控件的风格定义文件Control.css。具体的包含方式如:<LINK rel=”stylesheet” type=”text/css” href=”../ _xForm_Library /control.css”>

    2.5         页面初始化

    windowonload事件中添加对initDocument的调用。该函数可在页面加载时自动完成必要的页面初始化工作。

    函数

    说明

    [void] initDocument ()

    Client端的脚本中调用此函数以进行页面初始化。此函数应尽量在使用页面元素之前调用,因此一般应在window对象的onload事件中调用。

    2.6         加入xForm构件

    xForm对象事实上都是通过扩展标准的DHtml对象而获得的,也可以将此种扩展视为一种变相的继承。例如本地记录集是从Object继承而来、数据表格是从Table继承而来。

    您可以直接在HTML中编写普通的xForm对象,但如果要加入复杂的xForm对象(包括:本地记录集、数据表格、导航条、树状列表、多页控件、各种菜单)应当使用系统已提供的方法,这些方法将在后面的的部分中逐一介绍。

    编写普通的xForm对象的示例:

    <INPUT type=”text” id=text1 name=text1 attrib=editor dataset=dataset_employee datafield=company_id>

    其中attrib属性指定该控件为自定义编辑器、dataset属性指定要绑定的记录集的ID。(如果要在运行期修改数据构件的记录集属性,请不要直接将记录集的ID赋给该属性,而应当使用setElementDataset函数或将记录集对象赋给该属性。)

               加入复杂的xForm对象的示例:

    <%

    set table = createDataTable("table_employee", "dataset_employee")

    table.fields="employee_name,dept_id,degree,married,cmnt"

    table.init

    %>

    上面的代码创建了一个与dataset_employee记录集绑定的数据表格。

    2.7         开发自定义的下拉窗口

    待补充。

    2.8         使用xml定义文件辅助xForm页面的开发

    请使用xForm.xsd文件作为Schema定义新的XML文件。详细内容待补充。

    3          附加属性及用户事件的使用方法

    3.1         xForm对象的Attrib属性

    利用该属性使xForm专用的xForm对象区分于普通的DHTML对象。在页面初始化时initDocument() 将根据该属性对元素进行不同的初始化处理。如果使用createDataTable等函数生成xForm对象,那么Attrib属性将被自动指定,否则您需要在HTML中直接为元素指定其Attrib属性的值,例如:

    <LABEL attrib=editor dataset=dataset_employee datafield=company_id></LABEL >

    3.2         xForm对象的附加属性

    对于xForm对象的附加属性,您可以直接访问该属性也可以通过getAttribute (propertyname)setAttribute (propertyname, value)方法来访问。

    如要使用text1datafield属性,可使用text1.datafield来访问,也可以使用text1.getAttribute(“datafield”)读取属性值、使用text1.setAttribute(“datafield”, “employee_id”)设置属性值。

    3.3         记录集对象的属性和方法

    记录集对象的属性和方法可直接访问。

    如要使用dataset_employeerecord属性,可使用dataset_employee.record读取属性值。

    如要使用dataset_employeemoveFirst()方法,可使用dataset_employee.moveFirst()来调用。

    3.4         用户事件

    通过定义对象ID和事件名合成的函数来使用用户事件。

    如要使用dataset_employeebeforeUpdate事件,可定义如下函数:

    function dataset_employee_beforeUpdate(dataset){

           … …

    }

    同时可以通过定义函数的返回值向系统传递信息。

    4          pArray双向链表对象

    pArray双向链表对象由Object扩展得来,是本地记录集等对象的基类。

    4.1         创建pArray对象

    创建pArray对象的方法如下:

    var p=new pArray();

    4.2         pArray的属性

    (关于表格中[模式]的说明:c表示可在Client端使用、s表示可在Server端使用、r表示属性值可被读取、w表示属性值可被修改。如:c(r)表示此属性可在Client端读取,但不能被修改)

    属性

    类型

    模式

    说明

    firstUnit

    object

    c(r)

    链表中的第一个单元

    lastUnit

    object

    c(r)

    链表中的最后一个单元

    length

    int

    c(r)

    链表中当前的单元数量

    相关函数

    模式

    说明

    [void] pArray_clear(

    [pArray] pArray

    )

    c

    清除链表中的所有单元

    [void] pArray_insert(

    [pArray] pArray,

    [enum] mode,

    [unit] unit,

    [unit] newUnit

    )

    c

    向链表中插入一个单元

    参数说明:

    -         pArray 要操作的链表对象

    -         mode 插入方式。取值范围(”begin”, ”before”, “after”, “end”)分别表示在在所有单元之前插入、在参照单元之前插入、在参照单元之后插入、在所有单元的最后追加。如果不指定此参数的值,系统将默认按”end”方式插入。

    -         unit 参照单元。对于”begin””end”两种插入方式可以不指定此参数的值。

    -         newUnit 要插入的单元对象

    [void] pArray_insertArray(

    [pArray] pArray,

    [enum] mode,

    [unit] unit,

    [pArray] subArray

    )

    c

    向链表中插入一个链表

    参数说明:

    -         pArray 要操作的链表对象

    -         mode 插入方式。取值范围(”begin”, ”before”, “after”, “end”)分别表示在在所有单元之前插入、在参照单元之前插入、在参照单元之后插入、在所有单元的最后追加。如果不指定此参数的值,系统将默认按”end”方式插入。

    -         unit 参照单元。对于”begin””end”两种插入方式可以不指定此参数的值。

    -         subArray 要插入的pArray对象

    [void] pArray_delete(

    [pArray] pArray,

    [unit] unit

    )

    c

    从链表中删除一个单元

    参数说明:

    -         pArray 要操作的链表对象

    -         unit 要删除的单元对象

    [void] pArray_ex_insert(

    [pArray] pArray,

    [any] data

    )

    c

    向链表中插入数值。该函数会首先搜索链表中是否已存在相同数值的单元,如果没有,则自动向链表中插入一个新的单元,并且将数值赋给该单元。

    参数说明:

    -         pArray 要操作的链表对象

    -         data 要插入的数值

    [void] pArray_ex_delete(

    [pArray] pArray,

    [any] data

    )

    c

    从链表中删除某数值。该函数会首先搜索链表中是否已存在相同数值的单元,如果有,则将该单元从链表中删除。

    参数说明:

    -         pArray 要操作的链表对象

    -         data 要删除的数值

    4.3         pArray单元的属性

    属性

    类型

    模式

    说明

    prevUnit

    object

    c(r)

    该单元在链表中的下一个单元

    nextUnit

    object

    c(r)

    该单元在链表中的上一个单元

    data

    any

    c(rw)

    该单元中保存的数据

    5          Client端数据对象

    Client端记录集是值是扩展的pArray对象,因此它具有pArray的全部属性与方法。记录集中又包含了字段集对象用于存储记录集的字段信息。

    5.1         创建Client端记录集

    您可以在ASP文件中通过下面的三个方法创建记录集:

    函数

    模式

    说明

    [object] createDataset

    (

    [string] ID,

    [string] fields

    )

    s

    创建Client端记录集,并返回临时的Server端记录集对象。

    参数说明:

    -         ID 记录集的ID

    -         fields 指定新创建的记录集中包含的字段,各自端名间以 , 分隔。如:field1,field2,…

    [object] createAdoDataset

    (

    [string] ID,

    [string] sql,

    [string] conn_id,

    [int] pageSize,

    [string] tableName

    )

    s

    创建Client端记录集,并返回临时的Server端记录集对象。

    参数说明:

    -         ID 记录集的ID

    -         sql SQL命令或表名等,该参数将直接传给系统内部生成的ADO.Recordset对象。

    -         conn_id 数据库的连接字符串的标识。该标识的实质是在Server_ini.js中定义相应连接字符串的变量名。并且该标示最终将被输出到Client端已备本地记录集下载数据时使用,为了安全起见此处不直接使用连接字符串。

    -         pageSize 记录集每页的记录数,即每次下载的记录数。

    -         tableName 该记录集对应的缺省表名。

    [object] createXMLDataset

    (

    [string] ID,

    [string] fileUrl

    )

    s

    创建Client端记录集,并返回临时的Server端记录集对象。

    参数说明:

    -         ID 记录集的ID

    -         XML文件的URL

     

    在调用了以上三个函数之后,您可以利用该函数返回的对象修改记录集和字段的属性,最后调用init()函数。其中对记录集中的字段对象,可以通过fields属性来访问,详细信息请参考。例如:

    <%

    sql=”select * from WEB_ELEMENT”

    set dataset_element = createAdoDataset(“dataset_element”, sql, “Conn_web_app_ConnectionString”, 20, “web_element”)

    dataset_element.keyFields=”element_id”

    dataset_element.fields.element_id.label=”页面元素

    dataset_element.fields.elementtype_id.label=”元素类型

    dataset_element.fields.cmnt.label=”注释

    dataset_element.fields.parent_element_id.visible=false

    dataset_element.fields.app_id.visible=false

    dataset_element.fields.page_id.visible=false

    dataset_element.init

    %>

     

    5.2         记录集的属性及方法

    属性

    类型

    模式

    说明

    bof

    bool

    c(r)

    是否要前进到记录集的顶端

    connection

    Adodb.connection

    s(r)

    调用createAdoDataset后,系统自动生成的connection对象将被保存在此属性中。

    connection

    string

    c(r)

    server端使用的连接字符串的标识。该标识的实质是在Server_ini.js中定义相应连接字符串的变量名。

    dataString

    string

    s(rw)

    在调用记录集的Init()方法时,Init会把记录集中的所有数据转换成一个特定格式的字符串并传到Client端。如果在此之前您为dataString属性赋值,那么Init将直接使用dataString的值作为记录集数据。如果将dataString属性的值社为””,那么记录集中的数据将不会被下载到Client端。

    其格式说明如下:

    -         记录间以”;”分隔

    -         记录内部各字段的内容以”,”分隔

    注意:以上格式中的每一小段都是经Encode运算后产生的编码,以防止其内容与分隔符混淆。

    detailDatasets

    pArray

    c(r)

    从表列表,此属性仅在使用主从表功能时有效。

    如果需要建立主从关系或修改此属性的值,您可以使用setMasterDataset方法。

    detailSql

    string

    s(rw)

    c(r)

    系统用于下载从表数据的SQL命令。

    该命令中可以下列的方法来表示主表关键字段的值:select * from employee where dept_id=’[dept_id]’其中[dept_id]在使用前将被具体的字段值的内容替代,如果dept_id的值为001’,则系统实际使用的命令为:select * from employee where dept_id=’001’

    此属性也可以与beforeLoadDetail事件配合使用,在每次下在数据之前设置正确的detailSql

    注意:在上例中由于dept_id是字符型字段,因此在[dept_id]的前后应有两个单引号。而对于数值型字段则不应该被包含在引号中。

    disableControlCount

    int

    c(r)

    记录集被执行禁止刷新操作的计数器。

    参阅disableControl ()enableControl ()方法

    disableEventCount

    int

    c(r)

    记录集被执行禁止触发用户事件的计数器。

    参阅disableEvent ()enableEvent ()方法

    editors

    pArray

    c(r)

    与此记录集绑定的数据控件列表,此属性仅在运行期可用。

    eof

    bool

    c(r)

    是否已前进到记录集的顶端

    fields

    object

    s(r)

    ASP中用于访问Server端临时记录集对象中的字段对象,使用的方法如下:

    通过此命令dataset1.fields.field1可以访问到dataset1中的field1字段对象。

    fields

    object

    c(r)

    对应的字段集对象

    filtered

    bool

    c(rw)

    表示记录集当前是否使用了过滤功能。

    当该属性的值为true时,系统会在判断每条记录的可见性时自动触发onFilterRecord事件。

    id

    string

    s(rw) c(r)

    记录集的ID

    keyFields

    string

    s(rw)c(rw)

    数据更新时使用的主键字段列表,多个字段名之间以”,”分隔。

    例如:dept_id=001,employee_id表示记录集有两个主键字段dept_idemployee_id,其中dept_id的值为001(即在更新时系统认为dept_id的值总是001,当您按此方法指定主键字段时,dept_id可以不是一个记录集中真实存在的字段)

    如果此属性值未指定,则系统将使用所有字段作为主键字段。

    length

    int

    c(r)

    记录集中的总记录数。

    注意:此记录数包括无效的记录。

    masterLinks

    array

    s(rw)

    c(r)

    与主表的连接方式,此属性仅在使用主从表功能时有效。

    该数组的每一个单元都是一个连接对象,此对象拥有下列属性

    -         master_field 主表中的连接字段名

    -         detail_field 从表中的连接字段名

    masterDataset

    object

    s(rw)

    c(r)

    主表对象,此属性仅在使用主从表功能时有效。

    如果需要建立主从关系或修改此属性的值,您可以使用setMasterDataset方法。

    当主从关系建立后,从表中将仅显示与主表当前记录对应的记录,具体的对应方式由links属性决定。

    在通常情况下,当主表的当前记录改变时,从表中的记录将自动刷新。但是当主表被禁止刷新时,从表中的记录将不会自动刷新,此时可以调用dataset_loadDetail方法来手工刷新从表的记录。

    注意:masterDatasetpageSize属性不要同时使用。

    modified

    bool

    c(r)

    记录集中是否存在未被确认的修改。可使用此属性来判断记录集的当前记录是否属于被修改状态,当记录被确认后改状态的值将被置为false

    pageSize

    int

    s(rw)

    c(r)

    记录集每页的记录数,即记录集每次下载的记录数

    readOnly

    bool

    s(rw)

    c(r)

    记录集是否只读

    如果要修改此属性的值建议使用setReadOnly方法

    record

    object

    c(r)

    记录集的当前记录

    recordset

    Adodb.recordset

    s(r)

    c(r)

    调用createAdoDataset后,系统自动生成的recordset对象将被保存在此属性中。

    sortFields

    string

    c(r)

    保存记录集当前的排序表达式。

    排序表达式的格式定义如下:[+/-]字段1, [+/-]字段2, [+/-]字段3, …;以 + - 表示正序排序和倒序排序,其中 + 可以省略。

    例如:

    Dept_id,-Age 表示先按Dept_id排序再按Age倒排。

    注意:

    -         当该属性的值为”#custom时表示自定义排序方式,此时系统将触发onCompareRecord事件来确定记录集的排序方式。

    -         该属性为只读属性。请不要直接为此属性赋值,应通过sort方法为记录集定义排序方式。

    sql

    string

    s(rw)

    c(r)

    server端使用的sql命令

    state

    enum

    c(r)

    记录集的当前状态。

    取值范围如下:

    -         none 无状态

    -         insert 插入状态

    -         modify 修改状态

    参阅onstatechanged事件

    tableName

    string

    s(rw)

    c(rw)

    缺省数据库表名,当记录集最终被提交时将会用到此表名

    totalPage

    int

    s(r)

    c(r)

    记录集的总页数

    updateFields

    string

    s(rw)

    c(rw)

    待更新的字段列表,多个字段名之间以”,”分隔。

    例如:dept_id=001,employee_name表示记录集有两个更新字段dept_idemployee_name,其中dept_id的值为001(即在更新时系统认为dept_id的值总是001,当您按此方法指定更新字段时,dept_id可以不是一个记录集中真实存在的字段)

    如果此属性值未指定,则系统将使用所有字段作为待更新字段。

    window

    object

    c(r)

    记录集隶属的window对象

    tag

    any

    s(rw)

    c(rw)

    用户自定义信息

    方法

    模式

    说明

    [field] addField(

    [string] fieldname

    )

    c

    向记录集中追加一个新字段

    参数说明:

    -         fieldName 要追加的字段名或字段序号

    -         返回值为新的字段对象

    注意此方法只能在记录集被初始化(initDataset)之前使用。可在onInitDataset事件中使用此方法在,此记录集中添加自定义的字段。

    [field] getField(

    [string] fieldname

    )

    c

    获取字段对象

    参数说明:

    -         fieldName 要取得的字段名或字段序号(注意:此次序号是从0开始的序号)

    -         返回值为字段对象

    [any] getFieldValue(

    [string] fieldname

    )

    c

    读取当前记录中的字段值

    参数说明:

    -         fieldName 要读取的字段名或字段序号(注意:此次序号是从0开始的序号)

    -         返回值为读取到的字段值

    [string] getFieldText(

    [string] fieldname

    )

    c

    读取当前记录中某字段的显示文本。即转换成文本的字段值

    参数说明:

    -         fieldName 要读取的字段名或字段序号(注意:此次序号是从0开始的序号)

    -         返回值为读取到的字段值

    [void] setFieldValue(

    [string] fieldName,

    [any] value

    )

    c

    设置当前记录中的字段值

    参数说明:

    -         fieldName 要设置的字段名或字段序号(注意:此次序号是从0开始的序号)

    -         value 要设置的值

    [record] getFirstRecord()

    c

    获得记录集的第一条有效记录

    [record] getLastRecord()

    c

    获得记录集的最后一条有效记录

    [void] setRecord(

    [record] record

    )

    c

    设置记录集的当前记录

    参数说明:

    -         record 要设置为当前记录的记录对象

    [void] move(

    [int] count

    )

    c

    以当前记录为参照滚动记录集

    参数说明:

    -         count 想对于当前记录的滚动行数。当count<0时表示前上滚动。

    [void] moveFirst()

    c

    将最顶端的记录设置为当前记录

    [void] movePrev()

    c

    将上一条的记录设置为当前记录

    [void] moveNext()

    c

    将下一条的记录设置为当前记录

    [void] moveLast()

    c

    将最末端的记录设置为当前记录

    [record] find(

    [array] fieldNames,

    [array] values,

    [record] startRecord

    )

    c

    精确搜索记录

    参数说明:

    -         fieldNames要进行比对的字段列表

    -         values要进行比对的值列表

    -         startRecord 指定从此记录开始搜索。如果不定义该参数,将从第一条记录开始搜索。

    -         如果查找到匹配的记录,该函数的返回值为该记录对象,否则返回null.

    调用方法如下:

    var record=dataset. Find([id, age], [“byl”, 24]);

    if (record) then dataset.setRecord(record);

    [record] locate(

    [string] fieldName,

    [string] value,

    [record] startRecord

    )

    c

    模糊搜索记录

    参数说明:

    -         fieldName要进行比对的字段

    -         value要进行比对的值

    -         startRecord 指定从此记录开始搜索。如果不定义该参数,将从第一条记录开始搜索。

    -         如果查找到匹配的记录,该函数的返回值为该记录对象,否则返回null.

    调用方法如下:

    var record=dataset. Locate(id, “byl”);

    if (record) then dataset.setRecord(record);

    [void] sort(

    [string] sortFields

    )

    c

    对记录集的记录进行排序

    参数说明:

    -         sortFields 排序表达式。参照属性sortFields的说明。当此参数的值为空时,表示不对记录集进行排序即按照记录集的原始顺序排序。

    [void] insertRecord(

    [enum] mode

    )

    c

    插入一条空记录

    参数说明:

    -         mode 插入方式,取值范围(”begin”, ”before”, “after”, “end”)分别表示在所有记录之前插入、在当前记录之前插入、在当前记录之后插入、在所有记录的最后追加。

    [void] deleteRecord()

    c

    删除当前记录

    [void] cancelRecord()

    c

    撤销对当前记录的修改

    [void] updateRecord()

    c

    确认对当前记录的修改

    [void] copyRecord(

    [record] record

    )

    c

    将指定记录的内容复制到记录集的当前记录中

    参数说明:

    -         record 要复制的记录

    [void] disableControl ()

    c

    禁止记录集向与之绑定的数据控件发送消息。

    执行该命令后,相关数据控件将不再动态体现记录集中记录的变化。

    该命令可被连续执行多次,同样也必须执行相同次数的enableControl ()命令后记录集才会被解锁。

    [void] enableControl ()

    c

    允许记录集向与之绑定的数据控件发送消息

    [void] disableEvent()

    c

    禁止记录集触发用户事件。

    该命令可被连续执行多次,同样也必须执行相同次数的enableEvent ()命令后记录集才能重新激活用户事件。

    [void] enableEvent()

    c

    允许记录集触发用户事件。

    [void] RefreshControls()

    c

    刷新所有与该记录集相关的数据控件。

    [void] SetReadOnly(

    [bool] readOnly

    )

    c

    设置记录集的只读属性

    参数说明:

    -         readOnly 逻辑值,表示是否只读

    [void] setFieldReadOnly(

    [string] fieldName,

    [bool] readOnly

    )

    c

    设置字段的只读属性

    参数说明:

    -         fieldName 要设置的字段的字段名

    -         readOnly 逻辑值,表示是否只读

    [void] loadpage(

    [int] pageIndex

    )

    c

    下载一页数据

    参数说明:

    -         pageIndex要下载的页号

    [void] loadDetail()

    c

    下在当前记录对应的从表数据。由于当主表处于disableControl ()状态时,系统不会自动下载从表中的数据。因此,当执行enableControl ()后,您可能需要手工调用此方法。

    [bool] isPageLoaded(

    [int] pageIndex

    )

    c

    判断指定页号的数据是否已下载

    注意:该页码从1开始计数。

    [void] moveToPage(

    [int] pageIndex

    )

    c

    将记录指针移动到指定的页

    注意:该页码从1开始计数。

    [void] setMasterDataset(

    [dataset] masterDataset,

    [string] linkString,

    [string] detailSql

    )

    c

    建立主从记录集关系

    参数说明:

    -         masterDataset 主表对象

    -         linkString 连接方式。其格式为:主表字段1=从表字段1;主表字段2=从表字段2。如果主表字段名与从表字段名相同,也可以写成:字段名1;字段名2…

    -         detailSql 系统用于下载表数据的SQL命令。

    [void] flushData(

    [string] SQL,

    [string] connection,

    [int] pageSize,

    [int] absolutePage

    )

    c

    重新读取记录集的数据,原有的记录将被全部清除。

    参数说明:

    -         SQL 要执行的SQL命令,如果不指定此参数系统将使用记录集原先的sql命令

    -         connection SQL命令使用的连接字符串的标识。该标识的实质是在Server_ini.js中定义相应连接字符串的变量名,如果不指定此参数系统将使用记录集原先的连接字符串

    -         pageSize 要返回的记录数,如果不指定此参数系统将使用记录集原先的pageSize

    -         absolutePage 指定返回ADODB.Recordset中的第几页数据。如果不指定此参数的值系统将使用记录集原先的absolutePage

    [void] passData (

    [dataset] to_dataset,

    [enum] mode,

    [record] record,

    [dataset] from_dataset

    )

    c

    将源记录集中的数据一次性的插入到目标记录集中,同时源记录集将被清空。

    参数说明:

    -         to_dataset 目标记录集

    -         mode 插入方式。取值范围(”begin”, ”before”, “after”, “end”)分别表示在在所有记录之前插入、在参照记录之前插入、在参照记录之后插入、在所有记录的最后追加。如果不指定此参数的值,系统将默认按”end”方式插入。

    -         record 参照记录。对于”begin””end”两种插入方式可以不指定此参数的值。

    -         from_dataset 源记录集

    注意:在使用此方法时应该保证源记录集和目标记录集的数据结构完全相同,否则目标记录集的数据将有可能出现混乱

    [void] clearData()

    c

    清空记录集中的数据

    [string] transferToDataString(

    [dataset] dataset

    )

    c

    将记录集中的数据转换成字符串,字符串的格式见集数据字符串的格式

    参数说明:

    -         dataset 将要被转换的记录集对象

    [void] appendFromDataString(

    [dataset] dataset,

    [string] recordStr

    )

    c

    使用数据字符串向记录集中批量的添加记录,字符串的格式见记录集数据字符串的格式说明

    参数说明:

    -         dataset 将要被转换的记录集对象

    -         recordStr 数据字符串

    事件

    模式

    说明

    [void] onInitDataset (

    [dataset] dataset

    )

    c

    当系统初始化记录集时触发

    参数说明:

    -         dataset 将要被初始化的记录集对象

    [void] onInitField (

    [dataset] dataset,

    [field] field

    )

    c

    Client端事件,当系统初始化字段属性时被触发。

    参数说明:

    -         dataset 触发事件的数据集

    -         field 将要被初始化的字段对象

    在此事件中对字段对象操作时,可直接对各种属性赋值。如field.readOnly=true而无须使用setFieldReadOnly方法

    [void] onStateChanged

    (

    [dataset] dataset

    )

    c

    当记录集的编辑状态发生变化时触发。

    参数说明:

    -         dataset 触发事件的数据集

    [string] beforeChange

    (

    [dataset] dataset,

    [field] field,

    [any] value

    )

    c

    当记录集的数据将要被修改时触发。

    参数说明:

    -         dataset 触发事件的数据集

    -         field 将要被修改的字段对象

    -         value 将要向该字段赋的新值

    -         如果您为此事件定义返回值,系统将终止当前的修改操作并将返回值作为错误信息抛出。如果返回值为”abort”错误信息将不被提示,否则系统将向用户提示该错误信息。

    [void] afterChange

    (

    [dataset] dataset,

    [field] field

    )

    c

    当记录集的数据被修改后触发。

    参数说明:

    -         dataset 触发事件的数据集

    -         field被修改的字段对象

    [string] beforeScroll(

    [dataset] dataset

    )

    c

    当记录集的将要滚动时、即当前记录将要被改变时触发。

    参数说明:

    -         dataset 触发事件的数据集

    -         如果您为此事件定义返回值,系统将终止当前的滚动操作并将返回值作为错误信息抛出。如果返回值为”abort”错误信息将不被提示,否则系统将向用户提示该错误信息。

    [void] afterScroll (

    [dataset] dataset

    )

    c

    当记录集滚动后、即当前记录改变后触发。

    参数说明:

    -         dataset 触发事件的数据集

    [string] beforeInsert(

    [dataset] dataset,

    [enum] mode

    )

    c

    当将要向记录集插入记录时触发。

    参数说明:

    -         dataset触发事件的数据集

    -         mode 插入方式,取值范围(”begin”, ”before”, “after”, “end”)分别表示在所有记录的之前、在当前记录之前插入、当前记录之后插入、在所有记录的最后追加。

    -         如果您为此事件定义返回值,系统将终止当前的插入操作并将返回值作为错误信息抛出。如果返回值为”abort”错误信息将不被提示,否则系统将向用户提示该错误信息。

    [void] afterInsert(

    [dataset] dataset,

    [enum] mode

    )

    c

    当向记录集插入记录后触发。

    参数说明:

    -          dataset 触发事件的数据集

    -          mode 插入方式

    [string] beforeDelete(

    [dataset] dataset

    )

    c

    当将要从记录集中删除记录时触发。

    参数说明:

    -         dataset 触发事件的数据集

    -         如果您为此事件定义返回值,系统将终止当前的删除操作并将返回值作为错误信息抛出。如果返回值为”abort”错误信息将不被提示,否则系统将向用户提示该错误信息。

    [void] afterDelete(

    [dataset] dataset

    )

    c

    当从记录集中删除记录后触发。

    参数说明:

    -         dataset 触发事件的数据集

    [string] beforeCancel(

    [dataset] dataset

    )

    c

    当将要取消对当前记录的修改时触发。

    参数说明:

    -         dataset 触发事件的数据集

    -         如果您为此事件定义返回值,系统将终止当前的取消操作并将返回值作为错误信息抛出。如果返回值为”abort”错误信息将不被提示,否则系统将向用户提示该错误信息。

    [void] afterCancel(

    [dataset] dataset

    )

    c

    当取消对当前记录的修改后触发。

    参数说明:

    -         dataset 触发事件的数据集

    [bool] beforeUpdate(

    [dataset] dataset

    )

    c

    当记录的修改将要被确认时触发。

    参数说明:

    -         dataset 触发事件的数据集

    -         如果您为此事件定义返回值,系统将终止当前的确认操作并将返回值作为错误信息抛出。如果返回值为”abort”错误信息将不被提示,否则系统将向用户提示该错误信息。

    [void] afterUpdate(

    [dataset] dataset

    )

    c

    当记录的修改被确认后触发。

    参数说明:

    -         dataset 触发事件的数据集

    [bool] onFilterRecord(

    [dataset] dataset,

    [record] record

    )

     

    c

    当系统过滤记录集时触发。

    参数说明:

    -         dataset 触发事件的数据集

    -         record 当前处理的记录

    -         如果您为该事件定义的返回值为true表示当前处理的记录可见,否则该记录将被视为不可见。

    [int] onCompareRecord(

    [dataset] dataset,

    [record]record1,

    [record]record2

    )

    c

    当记录集比较两条记录的大小以确定排序方式时触发。

    参数说明:

    -         dataset 触发事件的数据集

    -         record1, record2 将要比较的两条记录

    -         该事件以整数型的返回值表示record1record2的比较结果。当返回值>0时表示record1>record2;当返回值<0时表示record1<record2;返回值=0时表示record1=record2

    注意:此事件仅在sortFields的排序表达式为”#custom时被触发。

    [string] beforeLoadDetail(

    [dataset] dataset,

    [dataset] detailDataset

    )

    c

    当系统准备下载从表数据之前被触发。

    参数说明:

    -         dataset 触发事件的数据集

    -         detailDataset 从表对象

    -         如果您为此事件定义返回值,系统将终止当前的操作并将返回值作为错误信息抛出。如果返回值为”abort”错误信息将不被提示,否则系统将向用户提示该错误信息。

    [void] onGetUpdateString(

    [dataset] dataset,

    [record] record,

    [object] result

    )

    c

    当系统试图获得该记录的提交字符串时被触发

    参数说明:

    -         dataset 触发事件的数据集

    -         record触发事件的记录

    -         result 用于向系统返回处理结果的对象。该对象包含两个属性,分别是modeupdate_string。其中mode表示该记录的提交方式,其取值范围是(nonedeleteupdateinsert)。如果您只定义mode属性的值,则系统会自动按照mode定义的方式来生成update_string,如果您手工定义了update_string的值,则系统会直接使用您定义的值。

    相关函数

    模式

    说明

    [dataset] createDataset(

    [string] ID,

    [string] fieldStr,

    [string] recordStr

    )

    c

    创建空记录集

    参数说明:

    -         ID 对象的ID字符串

    -         fieldStr 字段描述字符串,即以“,”分隔字段名。如:“field1,field2,field3

    -         recordStr 记录描述字符串,其格式见记录集数据字符串的格式说明

    -         返回值为新创建的记录集对象

    一般情况下,此函数应与addFieldinitDataset函数合用,才能真正的完成创建记录集的操作。

    [dataset] getDatasetByID(

    [string] ID

    )

    c

    ID字符串获得记录集对象

    参数说明:

    -         ID 对象的ID字符串

    [dataset] execSQL(

    [string] SQL,

    [string] connection,

    [int] pageSize,

    [int] absolutePage

    )

    c

    Server端执行SQL命令,并将结果集利用XML技术返回到Client端,最后将结果集转换成记录集对象。

    参数说明:

    -         SQL 要执行的SQL命令

    -         connection SQL命令使用的连接字符串的标识。该标识的实质是在Server_ini.js中定义相应连接字符串的变量名

    -         pageSize 要返回的记录数。如果不指定此参数的值,将返回全部的记录。

    -         absolutePage 指定返回ADODB.Recordset中的第几页数据。如果不指定此参数的值,将返回第一页数据。

    [dataset] execStoredProcedure(

    [string] commandText,

    [string] connection,

    [parameters] parameters,

    [int] pageSize,

    [int] absolutePage

    )

    c

    Server端执行存储过程,并将存储过程返回的结果集和参数值返回到Client端。

    参数说明:

    -         commandText 要执行的存储过程名

    -         connection SQL命令使用的连接字符串的标识。该标识的实质是在Server_ini.js中定义相应连接字符串的变量名

    -         parameters 参数列表,使用方式见下例。

    -         pageSize 要返回的记录数。如果不指定此参数的值,将返回全部的记录。

    -         absolutePage 指定返回ADODB.Recordset中的第几页数据。如果不指定此参数的值,将返回第一页数据。

    -         如果调用存储过程有返回记录集,则可以通过该函数的返回值取的返回的记录集。

    该函数的使用方法如下:

    //创建参数集对象

    var params=createParameters();

    //设置传入参数值

    params.setValue("@unit_id1", unit1);

    params.setValue("@unit_id2", unit2);

    params.setValue("@qty1", qty);

    //执行存储过程

    var dataset=execStoredProcedure('Transfer_Unit', “Demo_connection”, params);

    //获得返回参数的值

    result= params.getValue("@qty2");

    [void] freeDataset(

    [string] dataset

    )

    c

    释放记录集对象

    [array] getKeyFieldArray(

    [string] dataset

    )

    c

    获得记录集的主键字段数组

    [array] getUpdatefieldArray(

    [string] dataset

    )

    c

    获得记录集的更新字段数组

    [string] getRecordUpdateCode(

    [record] record,

    [array] keyFieldArray,

    [array] updateFieldArray,

    [enum] mode

    )

    c

    获得记录的更新字符串

    参数说明:

    -         record 记录对象

    -         keyFieldArray 主键字段数组

    -         updateFieldArray 更新字段数组

    -         mode 提交方式。取值范围为(“delete”, “modify”, “insert”)。果不指定此参数的值,函数将按记录的状态来决定提交方式。

    [string] composeUpdateString(

    [string] tableName,

    [array] keyFieldArray,

    [array] updateFieldArray,

    [string] deletestring,

    [string] updatestring,

    [string] insertstring

    )

    c

    将给定的信息合成为提交字符串

    参数说明:

    -         tableName表名

    -         keyFieldArray 主键字段数组

    -         updateFieldArray 更新字段数组

    -         deletestring 要删除记录的更新字符串

    -         updatestring要更新记录的更新字符串

    -         insertstring要插入记录的更新字符串

    [string] composeUpdateSQL(

    [array] SqlArray

    )

    c

    合成的可提交SQL字符串

    参数说明:

    -         SqlAarray 命令数组

    [string] getUpdateString(

    [array] datasetArray

    )

    c

    获得一个或多个记录集的提交字符串

    参数说明:

    -         dataset 记录集对象

    [string] getRecordUpdateString(

    [record] record,

    [enum] mode

    )

    c

    获得记录的提交字符串

    参数说明:

    -         record 记录对象

    -         mode 指定希望该记录按何种方式提交。取值范围是(”none”,”insert”,”modify”,”delete”

    [bool] submitUpdateString(

    [string] connection,

    [string] updateString

    )

    c

    提交一段更新字符串

    参数说明:

    -         connection SQL命令使用的连接字符串的标识。该标识的实质是在Server_ini.js中定义相应连接字符串的变量名

    -         updateString要提交的字符串,其格式如下:

    各表的相关内容以&分隔。每个表内部各项以@分隔,并且各项首字母标示以下特殊信息。

    * T      表名 (T表示按表方式处理数据)

    * K      主键列表 (以,分隔各主键字段名)

    * F      更新字段列表 (以,分隔各字段名)

    * D      待删除数据 (以,分隔各字段内容、以;分隔各记录)

    * U      待更新数据 (以,分隔各字段内容、以;分隔各记录。每条记录的组成方式为:新数据+旧主键数据)

    * I       待插入数据 (以,分隔各字段内容、以;分隔各记录)

    * S    SQL语句 (S表示按SQL语句逐条处理。SQL语句用分号;分隔)

    -         此函数连同以下的submitUpdatesubmitRecord函数的返回值均是逻辑值,表示提交操作成功与否。如果保存操作失败,可使用last_error全局对象取得错误信息。

    注意:以上格式中的每一小段都是经Encode运算后产生的编码,以防止其内容与分隔符混淆。

    [bool] submitUpdate(

    [array] datasetArray

    )

    c

    按同一事物提交一个或多个记录集

    参数说明:

    -         datasetArray 要提交的记录集对象的数组。

    调用方法如下:

    submitUpdate([dataset1, dataset2, dataset3])

    [bool] submitRecord(

    [record] record,

    [bool] mode

    )

    c

    按同一条记录

    参数说明:

    -         record 要提交的记录对象

    -         mode 指定该记录按哪种方式提交,该参数的取值范围是(”none”, “insert”, “modify”, “delete”)。如果不指定此参数的值,系统将根据该记录的recordstate属性的值来决定提交方式。

    [void] resetRecordState(

    [record] record

    )

    c

    重置记录的状态标志。如果您使用submitUpdate方法来提交数据,系统会自动调用此函数来重置记录的状态标志,以避免记录在下次提交数据是被重复使用。

    [void] resetDatasetState(

    [dataset] dataset

    )

    c

    重置记录集中所有记录的状态标志,其内部调用resetRecordState函数

     

    5.3         记录

    事实上对于可编辑的记录集,每条记录的数据在初始化时都被复制成三份分别保存。其中最底层的一份用来保存记录从数据库中提取出来时的原始值,这样记录集在最终提交时将使用此值来定位数据库中的原记录。这些原始值可以通过在字段名前加_old_前缀的方式来访问(例如:dataset_employee.getFieldValue(“_old_Employee_id”));中间的一份用来保存记录集当前的有效值,在提交时系统将使用这些数据作为更新的数据。这些数据可以通过在字段名前加_cur_前缀的方式来访问;最上层的一份用来保存记录的当前值。例如在对某条记录作修改时,新输入的数据将暂时存放在最上层的当前值中,当最后确认记录的修改时系统将使用当前值覆盖中间层的有效值,如果修改被取消系统将使用中间层的有效值覆盖当前值。

    属性

    类型

    模式

    说明

    dataset

    object

    c(r)

    所属的数据集对象

    fields

    object

    c(r)

    对应的字段集对象

    recordState

    enum

    c(r)

    记录状态

    取值范围如下:

    -         none 无状态

    -         insert 已插入的记录

    -         modify 已被更新的记录

    -         delete 已被删除的记录

    -         new 新插入但尚未被确认的记录

    -         discard 被舍弃的记录(如:插入后又被删除的记录)

    visible

    bool

    c(rw)

    记录是否可见。此属性的值被修改之后,相应的表格不会自动刷新。

    方法

    模式

    说明

    [index]

    c

    按索引顺序读取记录中的字段值

    参数说明:

    -         index 要读取的字段索引

    [any] getFieldValue(

    [string] fieldname

    )

    c

    按字段名读取记录中的字段值

    参数说明:

    -         fieldName 要读取的字段名或字段的序号(注意:此次序号是从0开始的序号)

    [string] getFieldText(

    [string] fieldname

    )

    c

    读取当前记录中某字段的显示文本。即转换成文本的字段值

    参数说明:

    -         fieldName 要读取的字段名或字段的序号(注意:此次序号是从0开始的序号)

    -         返回值为读取到的字段值

    [void] setFieldValue(

    [string] fieldName,

    [any] value

    )

    c

    按字段名设置记录中的字段值

    参数说明:

    -         fieldName 要设置的字段名或字段的序号(注意:此次序号是从0开始的序号)

    -         value 要设置的值

    [void] getPrevRecord()

    c

    获得上一条记录对象

    [void] getNextRecord()

    c

    获得下一条记录对象

    [void] saveOldValue()

    c

    重新保存记录的原始数值(原始数值主要用于对记录进行提交时定位原记录)

     

    5.4         字段集

    属性

    类型

    模式

    说明

    dataset

    object

    c(r)

    所属的数据集对象

    fieldCount

    int

    c(r)

    字段集中的字段个数

    注意:使用length属性不能取到正确的字段个数。

    方法

    模式

    说明

    [index]

    c

    按索引顺序获得字段集中的字段对象

    参数说明:

    -         index 要读取的字段索引

    相关函数

    模式

    说明

    [field] getField (

    [fields] fields,

    [string] fieldname

    )

    c

    根据字段名返回字段对象

    参数说明:

    -         fields 字段集对象

    -         fieldName 字段名或字段的序号(注意:此次序号是从0开始的序号)

     

    5.5         字段

    属性

    类型

    模式

    说明

    dataType

    enum

    s(rw)

    c(rw)

    数据类型

    取值范围如下:

    -         text 普通文本

    -         memo 长文本或二进制

    -         int 整数

    -         float 浮点数

    -         number 数字型

    -         bool 逻辑型

    -         date 日期型文本

    -         datetime 日期时间型

    -         time 时间型

    defaultValue

    any

    s(rw)

    c(rw)

    缺省值。如果defaultValue的值是字符串并且以”[script]”开头,那么defaultValue的剩余部分将被作为脚本在系统为字段赋缺省值时被调用。例如:

    “[script]new Date()”表示字段的缺省值为当前日期

    fieldName

    string

    s(rw)

    c(rw)

    字段原属的数据库字段名。

    如果此属性值未指定,则系统将使用默认的字段名。

    label

    stirng

    s(rw)

    c(rw)

    字段标题

    name

    string

    s(rw)

    c(r)

    字段名

    notNull

    bool

    r/w

    是否非空

    readOnly

    bool

    s(rw)

    c(r)

    是否只读,如果要修改此属性的值建议使用datasetsetFieldReadOnly方法

    size

    int

    s(rw)

    c(rw)

    字段长度

    tableName

    string

    s(rw)

    c(rw)

    字段原属的数据库表名。

    如果此属性值未指定,则系统将使用字段集的默认的数据库表名。

    visible

    bool

    s(rw)

    c(rw)

    字段在表格中是否可见。此属性的值被修改之后,相应的表格不会自动刷新。

    tag

    any

    s(rw)

    c(rw)

    用户自定义信息

    6           页面元素

    6.1         弹出式菜单

    创建弹出式菜单:

    您可以在ASP中使用下面的函数创建弹出式菜单

    函数

    模式

    说明

    [object] createPopupMenu(

    [string] ID,

    [string] menuItems

    )

    s

    创建弹出式菜单

    参数说明:

    -         ID菜单的ID

    -         menuItems 菜单项描述字符串,多个菜单项之间以”,”分隔。

    例如:菜单项1=1, 菜单项2=2”表示多页控件有两个菜单项。其中菜单项1”菜单项2”为标签的显示值,1”2”为菜单项的内部编码

    ASP文件中利用createPopupMenu(ID, menuItems)函数弹出式菜单,然后调用init()函数。例如:

    <%

    set menu = createPopupMenu(“popup_tree”, “edit=编辑;cut=剪切;paste=粘贴”)

    menu.init

    %>

    弹出式菜单的属性

    属性

    类型

    模式

    说明

    id

    string

    s(rw)

    c(rw)

    菜单的ID

    items

    pArray

    c(r)

    菜单项链表

    popup

    bool

    c(r)

    表示当前菜单是否是通过单击鼠标右键获得的,该属性只在菜单可见时可用

    popupHolders

    string

    s(rw)

    c(rw)

    指定页面上的弹出式菜单的容器的ID。如果有多个容器可用”,”分隔

    tag

    any

    s(rw)

    c(rw)

    用户自定义信息

    函数

    模式

    说明

    [void] onItemClick(

    [menu] menu,

    [item] item

    )

    c

    当单击菜单项时被触发

    参数说明:

    -         menu 触发事件的菜单对象

    -         item 被单击的菜单项

    [void] onUpdateMenuItem(

    [menu] menu,

    [item] item

    )

    c

    但系统更新菜单项属性时被触发,一般情况下可通过此事件来控制菜单项的disabled属性。

    参数说明:

    -         items 触发事件的菜单项链表

    -         item 被更新的菜单项

    相关函数

    模式

    说明

    [void] showPopupMenu(

    [menu] menu,

    [object] button

    )

    c

    弹出菜单项

    参数说明:

    -         menu 菜单对象

    -         button 按钮对象。弹出式菜单将与按钮对象对齐,如果不指定该参数的值,菜单将从鼠标指针处弹出。

    [void] hidePopupMenu(

    [menu] menu

    )

    c

    关闭弹出菜单项

    参数说明:

    -         menu 菜单对象

    菜单项对象的属性:

    属性

    类型

    模式

    说明

    code

    string

    c(r)

    菜单项代码

    label

    string

    c(rw)

    菜单项标签

    disabled

    bool

    c(rw)

    菜单项是否无效

    visible

    bool

    c(rw)

    菜单项是否可见

     

    6.2         多页标签控件

    创建多页标签控件:

    您可以在ASP中使用下面的函数创建弹出式菜单

    函数

    模式

    说明

    [object] createTabpage (

    [string] ID,

    [string] tabs

    )

    s

    创建多页标签控件

    参数说明:

    -         ID菜单的ID

    -         tabs标签项的描述字符串。多个标签之间以”,”分隔。

    例如:标签1=1,标签2=2, 标签3”表示多页控件有三个标签。其中标签1”标签2”为标签的显示值,1”2”为标签的内部编码,标签3”的显示值和内部编码都是标签3”

    ASP文件中利用createTabpage (ID, tabs)函数创建多页控件,然后利用该函数返回的对象修改属性,最后调用init()函数。例如:

    <%

    set tabpage = createTabpage ("tab1", "标签1=1,标签2=2,标签3=3,标签4=4,标签5=5")

    tabpage.init

    %>

    多页控件

    属性

    类型

    模式

    说明

    tabs

    string

    c(r)

    标签项的描述字符串。如果要在运行期修改tabs属性,您不能直接赋值,应使用setTabs方法

    selectTab

    object

    c(r)

    当前被激活的标签对象

    selectCode

    string

    c(r)

    当前被激活的标签对象的内部编码

    selectIndex

    int

    c(r)

    当前被激活的标签对象的序号

    tag

    any

    s(rw)

    c(rw)

    用户自定义信息

    方法

    模式

    说明

    [void] setTabs(

    [object] tabpage,

    [string] tabs

    )

    c

    设置多页控件的显示标签

    参数说明:

    -         tabpage 多页控件对象

    -         tabs 要设置的tabs属性值

    [void] setActiveTab(

    [object] tabpage,

    [string] tabcode

    )

    c

    激活某标签

    参数说明:

    -         tabpage 多页控件对象

    -         tabcode 要激活的标签的代码

    [void] setActiveTabIndex(

    [object] tabpage,

    [int] index

    )

    c

    激活某标签

    参数说明:

    -         tabpage 多页控件对象

    -         index 要激活的标签的序号(此序号从0开始)

    事件

    模式

    说明

    [void] beforeTabChange(

    [object] tabpage,

    [string] oldCode,

    [string] newCode

    )

    c

    当当前标签被切换之前被触发

    参数说明:

    -         tabpage触发事件的多页控件对象

    -         oldCode 原标签的内部代码

    -         newCode 新标签的内部代码

    -         如果您为此事件定义返回值,系统将终止当前的切换操作并将返回值作为错误信息抛出。如果返回值为”abort”错误信息将不被提示,否则系统将向用户提示该错误信息。

    [void] afterTabChange(

    [object] tabpage,

    [string] oldCode,

    [string] newCode

    )

    c

    当当前标签被切换之后被触发

    参数说明:

    -         tabpage触发事件的多页控件对象

    -         oldCode 原标签的内部代码

    -         newCode 新标签的内部代码

     

    7          数据控件

    7.1         适用于所有数据控件特性

    注意:此处列出的属性将不再在后面的数据空间中累述。

    属性

    类型

    模式

    说明

    dataset

    string

    /object

    c(r)

    绑定的数据集,该属性在运行期的数据类型是object

    通过setElementDataset(element, dataset)为该属性赋值。

    tag

    any

    s(rw)

    c(rw)

    用户自定义信息

    事件

    模式

    说明

    [void] onSetValue(

    [object] element,

    [string] value

    )

    c

    当系统为控件赋值时触发。

    参数说明:

    -         Element 要操作的控件对象

    -         value 将要赋给该控件的值

    可以通过为此事件定义一个逻辑型的返回值来通知系统是否继续执行标准的赋值操作。

    [any] onGetValue(

    [object] element

    )

    c

    当系统从控件读取值时触发

    参数说明:

    -         Element 要操作的控件对象

    -         如果您定义了此事件,系统将不再继续执行标准的读值操作,并且将该事件的返回值作为从控件中读取到的值进行处理。

    相关函数

    模式

    说明

    [void] setElementDataset(

    [object] element,

    [dataset] dataset

    )

    c

    设置控件的绑定数据集。

    参数说明:

    -         Element 要操作的控件对象

    -         Dataset 为数据集对象或数据集ID

    [void] refreshElementValue(

    [object] element

    )

    c

    重新读取绑定记录集中的数据,并刷新该控件

    参数说明:

    -         Element 要操作的控件对象

    [dataset] getElementDataset(

    [object] element

    )

    c

    获得与Element绑定的记录集对象

    参数说明:

    -         Element 要操作的控件对象

    [field] getElementField(

    [object] element

    )

    c

    获得与Element绑定字段对象

    参数说明:

    -         Element 要操作的控件对象

     

    7.2         字段标题(attrib=fieldlabel

    属性

    类型

    模式

    说明

    datafield

    string

    c(rw)

    绑定的字段名。

     

    7.3         数据标签(attrib=datalabel

    属性

    类型

    模式

    说明

    datafield

    string

    c(rw)

    绑定的字段名。

     

    7.4         编辑器(attrib=editor

    属性

    类型

    模式

    说明

    autoDropdown

    bool

    c(rw)

    当编辑器获得焦点时自动显示下拉项

    datafield

    string

    c(rw)

    绑定的字段名。

    dataType

    enum

    c(rw)

    数据类型

    取值范围如下:

    -         text 普通文本

    -         memo 长文本或二进制

    -         int 整数

    -         float 浮点数

    -         number 数字型

    -         bool 逻辑型

    -         date 日期型文本

    -         datetime 日期时间型

    -         time 时间型

    dropDown_connection

    string

    c(rw)

    指定动态下拉列表(data)的下拉数据的使用的连接字符串。如果不定义此属性,则系统将使用该编辑器对应的记录集的连接字符串标识

    dropDown_dataField

    string

    c(rw)

    datafield属性对应,仅在下拉表中的字段名和主记录集中的相应字段名不一致时有效

    dropDown_dataset

    string/dataset

    c(rw)

    记录集下拉框(dataset)的下拉记录集。此处可指定记录集的id或直接指定记录集对象。

    dropDown_fields

    string

    c(rw)

    指定下拉列表中显示的字段,如果不定义此属性,系统将显示所有的字段。

    该属性对(staticlist, data, dataset)三种下拉框有效。

    dropDown_fixed

    bool

    c(rw)

    是否允许用户不通过下拉选择而直接输入

    dropDown_height

    int

    c(rw)

    下拉框的最大高度

    dropDown_items

    string

    c(r)

    静态下拉列表(staticlist)的下拉项。

    各项以;分隔,如果dropdown_mapvalue的值为true,系统将自动每一项中=以前的部分作为显示的下拉值、将=以后的部分作为内部赋值。

    例如:

    Item1=A;Item2=B;Item3=C

    dropdown_mapvalue<>true时,下拉值为:

    Item1=A

    Item2=B

    Item3=C

    dropdown_mapvalue=true时,下拉显示值为:

    Item1

    Item2

    Item3

    内部赋值为:

    A

    B

    C

    如果要在运行期设置该属性的值应使用setDropdown_item函数。

    dropDown_keyField

    string

    c(rw)

    keyField属性对应,仅在下拉表中的字段名和主记录集中的相应字段名不一致时有效

    dropDown_mapValue

    bool

    c(rw)

    是否将静态下拉列表(staticlist)的各项拆分为显示值和内部赋值

    dropDown_mode

    enum

    c(rw)

    下拉窗口类型

    取值范围如下:

    -         staticlist 静态下拉列表

    -         data 标准数据窗口

    -         dataset 下拉现有的记录集

    -         date 日期选择窗口

    -         xml 指定一个特定各式的xml文件

    -         custom 用户自定义页面。如果使用此类型的下拉窗口,系统会将dropdown_url指定的页面作为下拉窗口。

    dropDown_restrict

    bool

    c(rw)

    编辑器的下拉值是否必须存在于下拉列表中。

    此属性仅在下拉类型为staticlist时或下拉类型为datacustom并且定义了retrieve_sql时才有效

    dropDown_sql

    string

    c(rw)

    指定动态下拉列表(data)的下拉数据的SQL

    dropDown_tableName

    string

    c(rw)

    指定动态下拉列表(data)的下拉数据的SQL对应的缺省表名

    dropDown_url

    string

    c(rw)

    作为下拉页面的页面URL,此属性仅在使用自定义下拉窗口时有效

    dropDown_visible

    bool

    c(r)

    编辑器的下拉窗口当前是否可见。

    isUserInput

    bool

    c(r)

    编辑器中的当前值是否是由用户输入而非通过下拉选择获得的(仅在编辑器获得输入焦点时有效)

    keyField

    string

    c(rw)

    绑定的与datafield对应的关键字段名。

    keyValue

    any

    c(rw)

    在使用dropdown_mapValue时用于保存当前的内部赋值

    readOnly

    bool

    c(rw)

    是否只读

    retrieveSql

    string

    c(rw)

    根据用户输入值获取编辑器显示值的SQL,该SQL语句中以[value]表示用户的输入值。

    例如:

    select company_name from company

    where company_id=[value]

    方法

    模式

    说明

    [bool] getModified()

    c

    该函数返回编辑器的值是否已被修改的逻辑值

    [void] updateInput()

    c

    通知编辑器将修改更新到绑定的记录集中

    事件

    模式

    说明

    [string] beforeDropDown(

    [object] editor

    )

    c

    当将要打开下拉窗口之前触发

    参数说明:

    -         editor触发事件的编辑器

    -         如果您为此事件定义返回值,系统将终止当前的下拉操作并将返回值作为错误信息抛出。如果返回值为”abort”错误信息将不被提示,否则系统将向用户提示该错误信息。

    [bool] onDropDownSelect(

    [object] editor,

    [record] record,

    [bool] fireBySystem

    )

    c

    当选择了下拉数据或通过直接在编辑器中输入而触发系统自动提取显示值是触发。

    参数说明:

    -         editor触发事件的编辑器

    -         record 被选中的记录。如果下拉类型为静态下拉列表,则下拉值对应的字段名为name、内部赋值对应的字段名为value

    -         Firebysystem 该事件是否是由系统自动提取显示值而触发的。

    -         可以通过为此事件定义一个逻辑型的返回值来通知系统是否继续执行标准的操作。

    [string] onUpdate(

    [object] editor

    )

    c

    当编辑器中的输入将要被确认时触发

    参数说明:

    -         editor触发事件的编辑器

    -         如果您为此事件定义返回值,系统将终止当前的确认操作并将返回值作为错误信息抛出。如果返回值为”abort”错误信息将不被提示,否则系统将向用户提示该错误信息。

    相关函数

    模式

    说明

    [void] setDropDownItems(

    [object] editor,

    [string] items

    )

    c

    在运行期设置编辑器的静态下拉列表

    参数说明:

    -         editor要操作的编辑器

    items 要设置的值

     

    7.5         表格(attrib=datatable

    创建数据表格:

    您可以在ASP中使用下面的函数创建数据表格

    函数

    模式

    说明

    [object] createDataTable (

    [string] ID,

    [string] columns

    )

    s

    创建数据表格

    参数说明:

    -         ID菜单的ID

    -         columns 表格列的描述字符串。多个表格列之间以”,”分隔。如果某表格列的代码与绑定到该表格的记录集中的某个字段的字段名一致,则该列将被用来显示相应字段的内容,否则该列将显示为空。

    ASP文件中利用createDataTable (ID, columns)函数创建数据表格,然后利用该函数返回的对象修改属性,最后调用init()函数。例如:

    <%

    set table = createDataTable ("table1", "column1,column2, column3, column4")

    table.columns.column1.label=”字段1”

    table.columns.column2.canSort=true

    table.init

    %>

    表格的属性

    属性

    类型

    模式

    说明

    activeCell

    object

    c(r)

    当前单元

    activeCellIndex

    int

    c(r)

    当前单元的索引号

    activeRow

    object

    c(r)

    当前行

    activeRowIndex

    int

    c(r)

    当前行的索引号

    confirmCancel

    bool

    c(rw)

    是否提示用户确认取消操作

    confirmDelete

    bool

    c(rw)

    是否提示用户确认删除操作

    dataset

    object

    c(r)

    表格对应的记录集对象

    editable

    bool

    c(rw)

    表格是否可编辑

    editor

    object

    c(r)

    表格中的当前编辑器

    columns

    object

    s(r)

    ASP中用于访问Server端临时表格对象中的表格列对象,使用的方法如下:

    通过此命令table1. columns. column1可以访问到table1中的column1表格列对象。

    参见表格列

    columns

    string

    c(rw)

    表格列的描述字符串。参见表格列的描述字符串

    hasFooter

    bool

    c(rw)

    表格是否显示汇总栏。

    注意该属性必须在表格被初始化前设置。

    hasHeader

    bool

    c(rw)

    表格是否显示标题栏。

    注意该属性必须在表格被初始化前设置。

    pageSize

    int

    c(rw)

    表格显示的行数。设置此属性后表格中显示的记录的行数将不会超过pageSize指定的值。

    注意该属性必须在表格被初始化前设置。

    readOnly

    bool

    c(rw)

    表格是否只读

    selectedRecords

    pArray

    c(r)

    被多选选中的记录链表

    事件

    模式

    说明

    [void] onInitCell(

    [object] table,

    [object] cell,

    [field] field

    )

    c

    当系统初始化表格单元格时被触发。

    参数说明:

    -         table 触发事件的表格对象

    -         cell 将要被初始化的单元格

    -         field 与该单元格绑定的字段对象

    -         您对cell对象的定义的属性将对整个表格列有效。因此,如果您要定义表格列的属性,最好使用此事件来实现。

    [void] onHeaderClick (

    [object] table,

    [object] cell

    )

    c

    当用户点击表格的标题栏时触发。参见canClick属性

    参数说明:

    -         table 触发事件的表格对象

    [void] onFocus(

    [object] table

    )

    c

    当表格获得控制焦点时被触发。

    参数说明:

    -         table 触发事件的表格对象

    [void] onBlur(

    [object] table

    )

    c

    当表格失去控制焦点时被触发。

    参数说明:

    -         table 触发事件的表格对象

    相关函数

    模式

    说明

    [void] initDataTable(

    [object] table,

    [string] columns

    )

    c

    根据绑定的记录集初始化数据表格。

    参数说明:

    -         table要初始化的表格对象。

    -         columns表格列的描述字符串。参见表格列的描述字符串

    [void] resetDataTable(

    [object] table

    )

    c

    重新初始化并刷新表格数据

    参数说明:

    -         table要刷新的表格对象

    [void] refreshTableData(

    [object] table,

    [record] startRecord

    )

    c

    刷新表格数据

    参数说明:

    -         table要刷新的表格对象

    -         startRecord 刷新后表格第一行所对应的记录。如果不指定此参数的值,表格将记录集的第一条记录。

    [void] refreshTableRecord(

    [object] row

    )

    c

    刷新表格行数据

    参数说明:

    -         row要刷新的表格行

    [void] deleteTableRecord(

    [object] row

    )

    c

    删除表格行

    参数说明:

    -         row要删除的表格行

    [void] insertTableRecord(

    [enum] mode,

    [object] row,

    [record] record

    )

    c

    插入空表格行

    参数说明:

    -         mode 插入方式,取值范围(”begin”, ”before”, “after”, “end”)分别表示所有行的之前、在参照行之前插入、参照行之后插入、在所有行的最后追加。

    -         row参照用的表格行

    -         record 与新行绑定的记录对象

    [record] getTableFirstRecord(

    [object] table

    )

    c

    获得当前表格中的第一条记录

    [record] getTableLastRecord(

    [object] table

    )

    c

    获得当前表格中的最后一条记录

    [record] getRecordByCell (

    [object] cell

    )

    c

    通过表格的单元格获得与该单元格相关的记录对象

    [void] selectRecord(

    [object] table,

    [record] record

    )

    c

    选择记录(将指定记录添加到多选列表中)

    参数说明:

    -         table 对应的表格对象

    -         record 要选择的记录

    [void] unselectRecord(

    [object] table,

    [record] record

    )

    c

    反选择记录(将指定记录添加到多选列表中移除)

    参数说明:

    -         table 对应的表格对象

    -         record 要反选择的记录

    [void] clearSelectedRecords(

    [object] table

    )

    c

    清除多选列表

     

    7.6         表格列

    注意:此对象只在Server端可用,并且此对象拥有 数据编辑器 的全部server端属性,另外该对象还拥有下列属性

    属性

    类型

    模式

    说明

    align

    enum

    s(rw)

    表格列的水平对齐方式

    取值范围如下:

    -         left 左对齐

    -         center 居中对齐

    -         right 右对齐

    canClick

    bool

    c(rw)

    指定表格列是否支持鼠标单击操作。参见onHeaderClick事件

    canSort

    bool

    c(rw)

    指定表格列是否支持通过单击标题栏按钮对记录进行排序的功能

    editorType

    enum

    r/w

    默认编辑器类型

    取值范围如下:

    -         text 单行文本编辑框

    -         longtext多行文本编辑框

    -         checkbox 复选框

    vAlign

    enum

    s(rw)

    表格列的垂直对齐方式

    取值范围如下:

    -         top 上对齐

    -         center 居中对齐

    -         bottom 下对齐

    visible

    bool

    c(rw)

    指定表格列是否可见

    width

    int

    s(rw)

    表格列的宽度

    相关函数

    模式

    说明

    [void] initDataTableRow(

    [object] row,

    [fields] fields

    )

    c

    根据指定的字段集对象始化数据表格行。

     

    7.7         表格行

    属性

    类型

    模式

    说明

    record

    array

    c(r)

    表格行对应的记录对象

     

    7.8         表格单元(attrib=datacell

    表格单元拥有数据编辑器的全部附加属性,当表格单元获得控制焦点后会自动根据editorType属性加载相应的浮动编辑器,被加载的浮动编辑器将与该容器对象拥有完全相同的附加属性及事件。

    表格单元的命名规则为:表名+”_”+绑定的字段名

    例如:表格(Id=table1)中对应字段(employee_id)的单元的Idtable1_employee_id.

    属性

    类型

    模式

    说明

    editorType

    enum

    r/w

    默认编辑器类型

    取值范围如下:

    -         text 单行文本编辑框

    -         longtext多行文本编辑框

    -         checkbox 复选框

    事件

    模式

    说明

    [string] beforeLoadEditor(

    [object] holder

    )

    c

    当容器将要加载编辑器之前被触发。

    参数说明:

    -         holder 触发该事件的容器对象

    -         如果您为此事件定义返回值,系统将终止当前的加载操作并将返回值作为错误信息抛出。如果返回值为”abort”错误信息将不被提示,否则系统将向用户提示该错误信息。

     

    7.9         浮动编辑器(attrib=dockeditor

    浮动编辑器拥有数据编辑器的全部属性,但不能为浮动编辑器定义事件,而应将相应的事件定义在其容器(表格单元)中。

    属性

    类型

    模式

    说明

    editorHolder

    object

    c(r)

    容器对象

     

    7.10     数据滚动条(attrib=datascrollbar

    属性

    类型

    模式

    说明

    pageSize

    int

    c(rw)

    数据滚动条翻页时移动的记录数。

    该属性的缺省值为10

    width

    int

    c(rw)

    宽度

    height

    int

    c(rw)

    高度

     

    7.11     数据导航条(attrib= datapilot

    属性

    类型

    模式

    说明

    buttons

    string

    c(r)

    导航条上显示的按钮。各按钮在字符串中以”,”分割,表示方式如下:

    -         moveFirst 移动至第一条记录

    -         prevPage 向前翻页

    -         movePrev 移动至前一条记录

    -         moveNext 移动至下一条记录

    -         nextPage 向后翻页

    -         moveLast 移动至最后一条记录

    -         insertRecord 插入一条记录

    -         appendRecord 追加一条记录

    -         deleteRecord 删除一条记录

    -         cancelRecord 撤销对当前记录的修改

    -         updateRecord 确认对当前记录的修改

    -         editRecord 修改当前记录(相当于将当前记录设置为可编辑状态)

    如果您不指定buttons属性或buttons的值为”default”,系统内部将按以下的缺省值处理:

    moveFirst, prevPage, movePrev, moveNext, nextPage, moveLast, insertRecord, deleteRecord, cancelRecord, updateRecord

    如果buttons的值为”readOnly”,系统内部将按以下的缺省值处理:

    moveFirst, prevPage, movePrev, moveNext, nextPage, moveLast

    如果要在运行期修改buttons属性,您不能直接赋值,应使用datapilot_setButtons方法

    confirmDelete

    bool

    c(rw)

    是否提示用户确认删除操作

    confirmCancel

    bool

    c(rw)

    是否提示用户确认取消操作

    事件

    模式

    说明

    [bool] onButtonClick(

    [object] dataPilot,

    [object] button,

    [enum] buttonType,

    [dataset] dataset

    )

    c

    当单击数据导航条上的按钮时触发。

    参数说明:

    -         dataPilot 触发事件的数据导航条对象

    -         button 触发事件的按钮对象

    -         buttonType 要刷新的按钮的类型,参照buttons属性

    -         dataset 与数据导航条关联的记录集对象

    -         可以通过为此事件定义一个逻辑型的返回值来通知系统是否继续执行标准的按钮操作。

    [void] onRefreshButton(

    [object] dataPilot,

    [object] button,

    [enum] buttonType,

    [dataset] dataset

    )

    c

    当刷新数据导航条上的每一个按钮状态时触发。

    参数说明:

    -         dataPilot 触发事件的数据导航条对象

    -         button 触发事件的按钮对象

    -         buttonType 要刷新的按钮的类型,参照buttons属性

    -         dataset 与数据导航条关联的记录集对象

    相关函数

    模式

    说明

    [void] setDataPilotButtons (

    [object] dataPilot,

    [object] buttons

    )

    c

    设置数据导航条的显示按钮。

    参数说明:

    -         dataPilot 要刷新的数据导航条对象

    -         buttons 将要赋给buttons属性的值

    [void] refreshDataPilot(

    [object] datapilot

    )

    c

    刷新数据导航条上的按钮状态。

    参数说明:

    -         datapilot 要刷新的数据导航条对象

     

    7.12     树状列表(attrib=tree

    创建树状列表:

    您可以在ASP中使用下面的函数创建树状列表

    函数

    模式

    说明

    [object] createTree (

    [string] ID

    )

    s

    创建树状列表

    参数说明:

    -         ID树状列表ID

    ASP文件中利用createTree (ID)函数创建树状列表,然后利用该函数返回的对象修改属性,最后调用init()函数。例如:

    <%

    set table = createTree ("table1")

    table. dataset1=” dataset1”

    table. dataset2=” dataset2”

    table.init

    %>

    树状列表的属性

    属性

    类型

    模式

    说明

    dataset1

    object

    s(rw)c(r)

    第一级树节点对应的记录集

    dataset2

    object

    s(rw)c(r)

    第二级树节点对应的记录集。以此类推,每一级的树节点都可以按此方式定义。

    nodes

    pArray

    c(r)

    节点链表

    selectedNode

    object

    c(r)

    当前选中的节点

    rightSelectedNode

    object

    c(r)

    树状列表中最后一个被鼠标右键单击过的节点,用于处理鼠标右键。

    tag

    any

    s(rw)

    c(rw)

    用户自定义信息

    事件

    模式

    说明

    [void] onInitTreeNode(

    [object] tree,

    [node] node

    )

    c

    当系统初始化树节点时触发

    参数说明:

    -         tree 树状列表对象

    -         node 要初始化的节点对象

    [void] onNodeChanged(

    [object] tree,

    [node] node

    )

    c

    当树状列表的当前节点变化时触发

    参数说明:

    -         tree 树状列表对象

    -         node 被选中的节点

    [string] beforeExpandNode(

    [object] tree,

    [node] node

    )

    c

    当将要扩展一个树节点之前触发

    参数说明:

    -         tree 树状列表对象

    -         node 将被扩展的树节点

    -         如果您为此事件定义返回值,系统将终止当前的操作并将返回值作为错误信息抛出。如果返回值为”abort”错误信息将不被提示,否则系统将向用户提示该错误信息。

    [void] afterExpandNode(

    [object] tree,

    [node] node

    )

    c

    当扩展一个树节点之后触发

    参数说明:

    -         tree 树状列表对象

    -         node 被扩展的树节点

    [void] beforeCollapseNode(

    [object] tree,

    [node] node

    )

    c

    当将要收缩一个树节点之前触发

    参数说明:

    -         tree 树状列表对象

    -         node 将被收缩的树节点

    -         如果您为此事件定义返回值,系统将终止当前的操作并将返回值作为错误信息抛出。如果返回值为”abort”错误信息将不被提示,否则系统将向用户提示该错误信息。

    [void] afterCollapseNode(

    [object] tree,

    [node] node

    )

    c

    当收缩一个树节点之后触发

    参数说明:

    -         tree 树状列表对象

    -         node 被收缩的树节点

    相关函数

    模式

    说明

    [void] refreshTree(

    [object] tree

    )

    c

    刷新树。该函数将删除树中当前的所有节点并重新添加根节点。

    参数说明:

    -         tree 树状列表对象

    [void] refreshTreeNode(

    [node] node

    )

    c

    刷新指定的树节点。

    参数说明:

    -         node 节点对象

    [node] insertTreeNode(

    [object] tree,

    [node] parentNode,

    [string] caption,

    [any] tag,

    [record] record,

    [enum] mode,

    [node] node

    )

    c

    插入树节点

    参数说明:

    -         tree 树状列表对象

    -         parentNode 要插入的节点的父节点,如果该参数的值为空,新节点将被插入到顶层。

    -         caption 新插入节点的标签

    -         tag 与新节点关联的数据对象,此参数用于提供一种方式让用户在树节点上定义自己的数据

    -         record与该节点对应的记录对象

    -         mode 新节点的位置,取值范围(”begin”, ”before”, “after”, “end”)分别表示在所有子节点的之前、在参照节点之前插入、参照节点之后插入、在所有子节点的最后追加。如果不为此参数及参照节点赋值,则新节点将按”end”方式插入。

    -         node 参照节点

    -         返回值为新加入的节点

    [void] deleteTreeNode(

    [node] node

    )

    c

    删除指定的树节点

    参数说明:

    -         tree 树状列表对象

    -         node 节点对象

    [void] expandTreeNode(

    [object] tree,

    [node] node

    )

    c

    扩展树节点

    参数说明:

    -         tree 树状列表对象

    -         node 节点对象

    [void] collapseTreeNode(

    [object] tree,

    [node] node

    )

    c

    收缩树节点

    参数说明:

    -         tree 树状列表对象

    -         node 节点对象

    [void] setTreeActiveNode(

    [object] tree,

    [node] node

    )

    c

    设置当前树节点

    参数说明:

    -         tree 树状列表对象

    -         node 节点对象

    树节点对象:

    属性

    类型

    模式

    说明

    caption

    string

    c(rw)

    节点的标签

    imageUrl

    string

    c(rw)

    图标文件的URL

    expandImageUrl

    string

    c(rw)

    节点展开时图标文件的URL

    record

    record

    c(rw)

    与节点关联的记录对象。如果节点是由绑定的记录集自动添加的,那么该属性的值会由系统自动赋值。

    parentNode

    object

    c(r)

    父节点对象

    hasChild

    bool

    c(rw)

    是否拥有子节点

    childNodes

    pArray

    c(r)

    子节点链表

    expanded

    bool

    c(r)

    是否已展开

    level

    int

    c(r)

    节点的层数

    tree

    object

    c(r)

    树状列表对象,实为表格对象。

    row

    object

    c(r)

    节点对应的表格行

     

    7.13     按钮(attrib=button

    属性

    类型

    模式

    说明

    menu

    object

    c(rw)

    与该按钮绑定的菜单项。当设置该属性后,单击按钮系统将自动打开相应的菜单项。

    down

    bool

    c(r)

    按钮是否已被按下。这是一个只读属性,请使用setButtonDown函数改变按钮的down属性。

    tag

    any

    s(rw)

    c(rw)

    用户自定义信息

    相关函数

    模式

    说明

    [void] setButtonDown(

    [object] button,

    [bool] down

    )

    c

    设置按钮的down属性。

    参数说明:

    -         tree 树状列表对象

    -         down 是否将按钮设置为按下状态

     

    8          常用的通用函数

    8.1         Basic.js

    函数定义

    模式

    说明

    [void] processException(

    [error] e

    )

    c

    处理系统异常

    参数说明:

    -         e 系统异常对象

    调用方法如下:

    try{

      

      

    }

    catch(e){

      

       processException(e)

    }

    [string] trimStr(

    [string] str

    )

    c

    去除字符串末尾的空格

    [string] getValidStr(

    [string] str

    )

    c

    获得有效的空字符串。当str的值为nullundefined时函数将返回””

    [string] getEncodeStr(

    [string] str

    )

    c

    将字符串编码(经编码的字符串可以作为URLGet方法参数安全的提交)

    [string] getDecodeStr(

    [string] str

    )

    c

    将字符串解码

    [bool] compareText(

    [string] str1,

    [string] str2

    )

    c

    比较字符串是否相等,该函数将忽略字符串的大小写。

    [int] getInt(

    [any] value

    )

    c

    value转换成整数,如果value的值不是有效的整数,函数将返回0

    [float] getFloat(

    [any] value

    )

    c

    value转换成浮点数,如果value的值不是有效的浮点数,函数将返回0

    [string] formatDateTime(

    [datetime] value,

    [enum] mode

    )

    c

    格式化日期时间型数据的格式。

    参数说明:

    -         value 日期时间型数据

    -         mode 格式。取值范围是("date”,”datetime”,”time”

    [string] formatFloat(

    [float] value,

    [int] decimal_length

    )

    c

    格式化浮点型数据的格式。

    参数说明:

    -         value 浮点型数据

    -         decimal_length 小数点后的位数

    [void] setClientProperty(

    [string] name,

    [string] value

    )

    s

    该函数应在Server端的脚本中调用,用于向Client端传递变量值。

    参数说明:

    -         name 变量名

    -         value 要向Client端传递的变量值

    注意:由该函数要向Response中输出HTML标记,因此请将调用此函数的代码放置在<body></body>标记之间。

    [string] getClientProperty(

    [string] name

    )

    c

    该函数应在Client端的脚本中调用,用于读取在Server端使用SetClientProperty保存的变量值。

    参数说明:

    -         name 变量名

    -         返回值为读取到的变量值

    8.2         Control.js

    函数定义

    模式

    说明

    [string] getIEVersion()

    c

    获得Microsoft Internet Explorer的版本号。

    [object] getRowByCell(

    [object] cell

    )

    c

    由表格单元对象获得相应的表格行对象。

    [object] getTableByCell(

    [object] cell

    )

    c

    由表格单元对象获得相应的表格对象。

    [object] getTableByRow(

    [object] row

    )

    c

    由表格行对象获得相应的表格对象。

    [bool] isEventDefined(

    [string] function_name

    )

    c

    指定的用户事件是否已定义。

    [any] fireUserEvent(

    [string] function_name,

    [array] param

    )

    c

    触发指定的用户事件。

    参数说明:

    -         function_name 事件名

    -         param 传给该事件的参数数组。

    调用方式如下:

    fire_event(“dataset1_beforeInsert”, [dataset1, “end”])

    -         返回值为调用的事件的返回值。

    [array] getAbsPosition(

    [object] obj,

    [object] offsetObj

    )

    c

    获得页面元素在页面上的相对位置。

    参数说明:

    -         obj 要操作的页面元素对象。

    -         offsetObj 作为参照的父对象。如果不指定该参数的值,函数将返回元素相对于document的位置

    -         返回值为坐标数组,其结构为[x, y]

    [bool] isChild(

    [object] obj,

    [object] parentObj

    )

    c

    检查obj是否是parentObj的子对象

    [void] disableDocument()

    c

    使页面失效(即不响应用户的任何键盘或鼠标消息)

    [void] enableDocument()

    c

    使页面生效

    [void] initElement(

    [object] element

    )

    c

    初始化单个页面元素

    [void] initElements(

    [object] element

    )

    c

    初始化单个页面元素及其子元素

    [dataset] getElementDataset(

    [object] element

    )

    c

    获得与控件绑定的记录集对象

    [field] getElementField(

    [object] element

    )

    c

    获得与控件绑定的字段对象

    [void] showStatusLabel(

    [object] parent_window,

    [string] text,

    [bool] center

    )

    c

    打开状态提示标签

    参数说明:

    -         parent_window 状态提示标签对应的window对象。

    -         text 状态标签上的文本

    -         center 是否将状态条在浏览器的中心显示。如果不设置此属性,状态条将跟随鼠标光标的位置显示。

    [void] hideStatusLabel(

    [object] parent_window

    )

    c

    关闭状态提示标签

    参数说明:

    -         parent_window 状态提示标签对应的window对象。

     

  • 相关阅读:
    ajax设置header头部之后造成跨域的解决方案
    浏览器中实现JavaScript计时器的4种创新方式
    js 生成随机数
    关于JavaScript中的reduce()方法
    JavaScript防流量劫持
    关于Python中的错误与异常,你是否了解的够仔细?
    Python爬虫实战之爬取糗事百科段子
    【推荐】英国金融时报推荐的数据可视化图表分类图
    华为方舟编译器开源官网正式上线
    PyTorch官方教程中文版
  • 原文地址:https://www.cnblogs.com/winner/p/367659.html
Copyright © 2020-2023  润新知