DJFocus系列之三dataview.doc_第1页
DJFocus系列之三dataview.doc_第2页
DJFocus系列之三dataview.doc_第3页
DJFocus系列之三dataview.doc_第4页
DJFocus系列之三dataview.doc_第5页
免费预览已结束,剩余69页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DJFocus系列之三: DJFocus DataViewDataView 属性:DataObject 描述业务对象xml文件的url,指定DataView装载的DataObject对象。 针对对象DataView 语法dataview.DataObject 脚本示例示例1:dv_1.DataObject=/DemoGrid;示例2:dv_2.DataObject=/rsgl/rsjbxx_grid;style 描述DataView的风格,详情参见CSS语法。 针对对象DataView 语法dataview.style 示例示例1:通过style设置DataView的宽度、高度、边框和背景 DataView 方法:DeleteRow() 功能删除DataView中的指定行。 语法dataview.DeleteRow(row) 参数dataview:DataView名。row:number,要删除数据行的行号。当该参数的值为0时,删除当前行。 返回值number。成功删除指定行时返回1,出现错误返回-1。 用法DeleteRow()方法从DataView主缓冲区中删除指定的行,被删行从DataView的主缓冲区移动到删除缓冲区。DataView将根据删除缓冲区的内容构造删除数据库表中数据的SQL DELETE 语句。删除DataView中的行之后,数据库中的数据并没有变动,只有在脚本程序执行DataView的Update()方法之后,数据库中的相应数据才会被删除。 脚本示例示例1:下面的语句删除DataView的当前行。dv_1.DeleteRow(0);示例2:下面的语句删除DataView的第5行,之后更新数据库,删除数据库中的相应行。dv_1.DeleteRow(5);dv_1.Update();Filter() 功能在DataView中显示满足当前过滤条件的行,不满足过滤条件的行将从主缓冲区移动到过滤缓冲区。 语法dataview.Filter() 参数dataview:DataView名。 返回值number。方法执行成功时返回1,出现错误时返回-1。 用法Filter()方法使用DataView当前的过滤条件过滤DataView中的数据,方法执行之后,DataView中只显示满足过滤条件的数据。使用SetFilter()方法可以改变当前的过滤条件。SetFilter()方法的功能等价于在DJFocus设计画板中打开设置Filter对话框中定义过滤条件。如果脚本程序在调用Filter()方法之前未调用SetFilter()方法,那么Filter()方法使用DataObject对象中指定的过滤条件。在使用Retrieve()方法为DataView加载数据时,DataView就已经使用了DataObject对象中定义的过滤条件,只有满足过滤条件的记录才装入主缓冲区中,不满足过滤条件但满足SQL SELECT语句检索条件的数据被装入过滤缓冲区中。当脚本程序使用SetFilter()方法改变了过滤条件或由于脚本程序数据处理或用户输入改变了数据时,就需要执行Filter()方法重新过滤数据。当脚本程序使用Filter()方法过滤带有分组DataObject对象的DataView后,DataView自动保持分组特性。 脚本示例示例1:下面的脚本在dv_1中根据当前的过滤条件显示数据。dv_1.Filter();Find() 功能在DataView中查找符合条件的下一行。 语法dataview.Find(expression,start,end) 参数dataview:DataView名。expression:string,用于指定要查找的条件,其值是逻辑表达式,表达式中可以使用列名或计算域名。start:number,可选项,默认1,用于指明从哪一行开始查找。该参数可以大于数据的总行数。end:number,可选项,默认最大行,用于指明查找到哪一行结束。该参数可以大于数据的总行数。如果想从后向前查找,那么让end参数的值小于start参数即可。 返回值number。返回指定范围内满足查找条件的第一个数据行的行号;如果未找到满足查找条件的行,则方法返回0,出错时返回-1。 用法Find()方法在进行查找时区分大小写,因此,当脚本程序在某列中查找某个值时,大小写匹配的行才是找到的行。当脚本程序使用循环方式查找满足条件的所有行时,要注意不要形成死循环。下面是循环查找满足指定条件行的一个示例。 var findRow=1;var searchStr=;/定义查找表达式findRow=dv_1.Find(searchStr,findRow);while(findRow0) /处理找到的行 findRow+; if(findRowdv_1.GetRowCount() break;/防止死循环 findRow=dv_1.Find(searchStr,findRow); 脚本示例示例1:下面的脚本在dv_1中查找salary列的值大于10000的第一个数据行的位置,查找从第3行开始,到最后一行结束。 var find = dv_1.Find(salary 10000,3,dv_1.GetRowCount(); 示例2:下面的脚本查找姓张且工资超过10000的雇员。 var myFind;myFind=dv_1.Find(first_name=张 and salary10000,1,dv_1.GetRowCount(); 示例中可以看到,当要按照比较复杂的条件进行查询时,可以使用逻辑运算符把条件组合起来。示例3:下面的脚本得到emp_id列的第一个空值(null)所在行的行号。如果不存在空值,修改数据库中的数据,否则显示一段提示。 if(dv_1.Find(emp_id=null,1,dv_1.GetRowCount()0) alert(emp_id列存在空值,不能更新数据库);else dv_1.update();FindGroupChange() 功能从指定行开始,在DataView中查找指定分组的数据行行号。 语法dataview.FindGroupChange(row,level) 参数dataview:DataView名。row:number,指明从哪一行开始查找。level:number,要查找的分组的分组号。在DataObject对象中定义分组时,按分组的定义顺序编制分组号。 返回值number。方法执行成功时返回新的一组数据中的第一行数据所在的行的行号,出现错误返回-1。当方法执行成功时,根据参数row的取值,返回值的意义如下:(1)当起始行row为分组的第一行时,方法返回该分组起始行的行号;(2)当起始行row为分组中间的某行(不是分组的第一行,可以是分组的最后一行),且该分组不是最后一个分组时,方法返回下一个分组第一行的行号;(3)当起始行row为最后一个分组中的某行但不是该分组的第一行时,方法返回0。 用法如果FindGroupChange()方法中指定的起始行参数row恰好是某个分组的第1行,那么FindGroupChange()方法返回该行的行号。为了继续查找后续分组的第一行,代码中需要增加起始行的行号。 脚本示例示例1:下面的脚本在2号分组中查找第一个分组行,查找从第5行开始。 dv_1.FindGroupChange(5, 2);GetBlobFileName() 功能获取DataView中Blob对象的文件名。 语法dataview.GetBlobFileName(row,blobName) 参数dataview:DataView名。row:number,要删除数据行的行号。当该参数的值为0时,删除当前行。blobName:string,要获取文件名的blob对象名称。 返回值string。获取成功返回文件名,失败则返回空字符串。 用法GetBlobFileName()方法从DataView的Blob对象中获取文件名。一般情况下,Blob对象并没有跟其文件名相关联。在通过Retrieve获取数据的时候,blob对象并没有对应的文件名。在以下两种情况下,Blob对象有一个关联的文件名:1. 刚上传了文件,且DataView对象尚未刷新。2. 通过SetBlobFileName方法设置了文件名,且DataView对象尚未刷新。开发人员需要自己存储这个文件名,以便下载的时候能使用。 脚本示例示例1:获取第一行的blob_1对象的文件名。var blobFileName=dv_1.GetBlobFileName(1,blob_1); GetColumn() 功能返回DataView当前列的列号。 语法dataview.GetColumn() 参数dataview:DataView名。 返回值number。方法执行成功时返回DataView当前列的列号;如果没有当前列,则方法返回0;出现错误返回-1。 用法需要得到当前列的列名时,使用GetColumnName()方法,使用SetColumn()方法可以改变当前列。在下述情况下,某个列将成为当前列:(1)输入焦点移动到的列;(2)用户单击了某列(不管该列是否被保护);(3)代码中调用了SetColumn()方法设置某列为当前列。除非DataObject完全由非Column对象构成或所有DataObject中Column都不可见,否则只要DataView有数据(不管DataView本身是否可见),就必然有当前列。 脚本示例示例1:下面的脚本得到当前列的列号。 var colNum=dv_1.GetColumn();GetColumnName() 功能返回DataView中当前列的列名。 语法dataview.GetColumnName() 参数dataview:DataView名。 返回值string。方法执行成功时返回DataView当前列的列名;如果没有当前列或发生错误时则方法返回空字符串()。 用法需要得到当前列的列号时,使用GetColumn()方法,使用SetColumn()方法可以改变当前列。在下述情况下,某个列将成为当前列:(1)输入焦点移动到的列;(2)用户单击了某列(不管该列是否被保护);(3)代码中调用了SetColumn()方法设置某列为当前列。除非DataObject完全由非Column对象构成或所有DataObject中Column都不可见,否则只要DataView有数据(不管DataView本身是否可见),就必然有当前列。 脚本示例示例1:下面的脚本得到当前列的列名。 var colName=dv_1.GetColumnName();GetCurrentPage() 功能得到DataView中当前页的页号。 语法dataview.GetCurrentPage() 参数dataview:DataView名。 返回值number。方法执行成功时返回DataView当前页的页号;如果没有当前页返回0,发生错误时则方法返回-1。 脚本示例示例1:下面的语句得到DataView当前页的页号。 var pageNo;pageNo=dv_1.GetCurrentPage();GetCurrentRow() 功能得到DataView中当前行的行号。 语法dataview.GetCurrentRow() 参数dataview:DataView名。 返回值number:方法执行成功时返回DataView的当前行行号;如果没有当前行,返回0;发生错误时方法返回-1。 用法注意:DataView的当前行并非总显示在DataView的可视区域中,比如用户通过拖拽滚动条把可视区域移开,但当前行并不会发生变化。在下述情况下,某行将成为当前行:(1)输入焦点移动到的行;(2)用户单击了某行;(3)代码中调用了SetCurrentRow()方法或Scroll()相关方法设置为当前行的行。只要DataView中有数据,就必然有当前行。 脚本示例示例1:下面的语句得到DataView的当前行行号。 var curRow=dv_1.GetCurrentRow();GetDBProfile() 功能得到DataView当前使用的数据库配置名称。 语法dataview.GetDBProfile() 参数dataview:DataView名。 返回值string。方法执行成功时返回DataView当前使用的数据库配置名称。 脚本示例示例1:下面的示例获取DataView当前使用的数据库配置名称。 var dbProfile=dv_1.GetDBProfile();GetDeletedCount() 功能得到DataView中已经被删除但尚未做数据库更新的行的数量。 语法dataview.GetDeletedCount() 参数dataview:DataView名。 返回值number。方法执行成功时返回DataView中已经被删除但尚未做数据库更新的行的数量,如果没有被删除的行或被删除行已经完成了数据库修改,则方法返回0,出现错误时返回-1。 用法DJFocus DataView有3个缓冲区,其中,主缓冲区存储当前显示的所有行,删除缓冲区存储脚本程序使用DeleteRow()方法或其它方法删除的数据行。在修改数据库之前,被删除行一直保存在删除缓冲区中。使用GetDeleteCount()方法可以得到删除缓冲区中总行数(即当前被删除行的总数)。DataView的3个缓冲区为主缓冲区(DJConstant.PRIMARY)删除缓冲区(DJConstant.DELETE)过滤缓冲区(DJConstant.FILTER) 脚本示例示例1:下面的脚本测试DataView缓冲区中是否有被删除行,如果有,那么修改数据库以反映数据被删情况。 var delRow= dv_1.GetDeletedCount();if(delRow0) dv_1.Update();GetFilteredCount() 功能得到DataView中过滤缓冲区数据行数。 语法dataview.GetFilteredCount() 参数dataview:DataView名。 返回值number。方法执行成功时返回被当前过滤条件过滤掉的数据行数,如果所有的行都没有被过滤掉,那么方法返回0,出现错误时返回-1。 脚本示例示例1:下面的脚本在dv_1中检索数据,然后设置Filter条件,将名称为“李长兰”的用户过滤出来,其它名称的用户则被过滤到过滤缓冲区中。 dv_1.Retrieve();dv_1.SetFilter(username=李长兰);dv_1.Filter();if(dv_1.GetFilteredCount()0) /相关处理 示例2:下面的脚本在dv_1中检索数据,然后设置Filter条件,将姓“李”的用户过滤出来,其它用户则被过滤到过滤缓冲区中。 dv_1.Retrieve();dv_1.SetFilter(username.substr(0,1)=李);dv_1.Filter();if(dv_1.GetFilteredCount()0) alert(非李姓用户共 +dv_1.GetFilteredCount()+ 户);GetFirstRowOfPage() 功能得到DataView中指定页的首行行号。 语法dataview.GetFirstRowOfPage(page) 参数dataview:DataView名。page:number,指定的页号。 返回值number。方法执行成功时返回DataView中指定页的首行行号。以下情况方法返回-1:(1)DataView中无可见数据(2)page越界(3)发生其它错误。 脚本示例示例1:下面的脚本获取第10页的首行行号和末行行号。 var firstNum=dv_1.GetFirstRowOfPage(10);var lastNum=dv_1.GetLastRowOfPage(10);GetFormat() 功能得到DataView中指定列的显示格式。 语法dataview.GetFormat(column) 参数dataview:DataView名。column:要得到显示格式的列,column参数可以是列名(string型),也可以是列号(number型)。 返回值string。方法执行成功时返回指定列的格式字符串,若无格式则返回空字符串。 脚本示例示例1:下面的脚本获取DataView中列名为price的列的格式字符串。 var myColName=price;var myFormat=dv_1.GetFormat(myColName);GetFormatType() 功能得到DataView中指定列的显示格式类型。 语法dataview.GetFormatType(column) 参数dataview:DataView名。column:要得到显示格式的列,column参数可以是列名(string型),也可以是列号(number型)。 返回值string。方法执行成功时返回DataView中指定列的显示格式。有效的显示格式为:nonenumberpercentexpmoneydate 脚本示例示例1:下面的脚本获取DataView中列名为price的列的显示格式。 var myColName=price;var myFormat=dv_1.GetFormatType(myColName);GetItemStatus() 功能得到DataView中指定缓冲区、指定数据项的更新状态。 语法dataview.GetItemStatus(row,column,buffer) 参数dataview:DataView名。row:number,要得到其状态的单元所在行的行号。column:要得到其状态的单元所在列,column参数可以是列名(string型),也可以是列号(number型),如果想要得到整个行的状态,那么将该参数设置为0。buffer:缓冲区类别常量,指示所在的缓冲区。有效值如下:DJConstant.PRIMARY(主缓冲区,默认值);DJConstant.DELETE(删除缓冲区);DJConstant.FILTER(过滤缓冲区)。 返回值有效返回值为:DJConstant.DATA_MODIFIED:自数据检索后,指定列或指定行中包含的某些列的数据已经被修改。DJConstant.NEW:指定行是新插入的行,但还没有为其任意一列设置值。DJConstant.NEW_MODIFIED:指定行是新插入的行,并且其中的某一列已经被设置了新值。除了用户输入和程序中使用SetItemValue()方法修改数据后得到该状态外,当行中某列有默认值时,新插入的行将得到DJConstant.NEW_MODIFIED状态。DJConstant.NOT_MODIFIED:指定数据项或行的数据自被检索到DataView中以来没有被修改。方法执行成功时返回DataView的buffer缓冲区中的row行、column列单元的修改状态。如果column参数指定为0,那么GetItemStatus()方法返回整个row行的状态。 用法脚本程序中,在更新数据库时,可以使用GetItemStatus()方法来了解DataView将产生什么样的SQL语句。对主缓冲区或过滤缓冲区中的行来说,状态为NEW_MODIFIED的行Update()方法将生成INSERT语句;状态为DATA_MODIFIED的行Update()方法将生成UPDATE语句,只有状态为DATA_MODIFIED的列才会出现在UPDATE语句的SET子句中。对于删除缓冲区中的行来说,状态为NEW或NEW_MODIFIED的行Update()方法不生成DELETE语句。 脚本示例示例1:下面的脚本得到dv_1过滤缓冲区中第5行、名称为emp_status的列的修改状态,并把该状态保存到变量status中。 var status = dv_1.GetItemStatus(5,emp_status,DJConstant.FILTER); 示例2:下面的脚本得到dv_1主缓冲区中当前行、名称为Salary的列的修改状态,并把该状态保存到变量status中。 var status = dv_1.GetItemStatus(dv_1.GetCurrentRow(),Salary); 示例3:下面的脚本得到dv_1主缓冲区中当前行的修改状态,并把该状态保存到变量status中。 var status = dv_1.GetItemStatus(dv_1.GetCurrentRow(),0)GetItemText() 功能得到DataView中指定缓冲区、指定行、指定列的显示文本。 语法dataview.GetItemText(row,column,buffer,oriFlag) 参数dataview:DataView名。row:number,要得到其显示文本的单元所在的行。column:要得到其显示文本的单元所在的列,column参数可以是列名(string型),也可以是列号(number型)。要获取计算域单元的显示文本,该参数设置为相关计算域的名称。buffer:缓冲区类别常量,指示指定行所在的缓冲区。有效值如下:DJConstant.PRIMARY(主缓冲区,默认值);DJConstant.DELETE(删除缓冲区);DJConstant.FILTER(过滤缓冲区)。oriFlag:boolean,是否取原始值(即从数据库中检索出的值)的显示文本。有效值如下:false(默认,取当前值);true(取原始值)。 返回值String。方法执行成功时,返回指定单元的显示文本。若指定单元为空,则方法返回空字符串。 用法当脚本程序需要得到DataView缓冲区中的数据值时候,使用GetItemValue()方法来完成这个任务。当脚本程序需要得到DataView缓冲区中的数据显示值时候,使用GetItemText()方法来完成这个任务。 脚本示例示例1:下面的脚本得到dv_1删除缓冲区中第1行列名为price的单元的数据值和显示值并将它们alert出来。 var myRow=1;var myColName=price;alert(dv_1.GetItemText(myRow,myColName,DJConstant.DELETE);alert(dv_1.GetItemValue(myRow,myColName,DJConstant.DELETE); 示例2:下面的脚本得到dv_1过滤缓冲区中第1行列名为price的单元的数据值和显示值并将它们alert出来。 var myRow=1;var myColName=price;alert(dv_1.GetItemText(myRow,myColName,DJConstant.FILTER);alert(dv_1.GetItemValue(myRow,myColName,DJConstant.FILTER); 示例3:下面的脚本判断myRow是否大于0,如果myRow0则得到dv_1主缓冲区中第myRow行列名为“mystatus”的单元的数据值和显示值并将它们alert出来。 var myRow=;var myColName=mystatus;if(myRow0) alert(dv_1.GetItemText(myRow,myColName); alert(dv_1.GetItemValue(myRow,myColName); GetItemValue() 功能得到DataView中指定缓冲区、指定行、指定列的数据值。 语法dataview.GetItemValue(row,column,buffer,oriFlag) 参数dataview:DataView名。row:number,要得到其数据值的单元所在的行。column:要得到其数据值的单元所在的列,column参数可以是列名(string型),也可以是列号(number型)。要获取计算域单元的数据值,该参数设置为相关计算域的名称。buffer:缓冲区类别常量,指示指定行所在的缓冲区。有效值如下:DJConstant.PRIMARY(主缓冲区,默认值);DJConstant.DELETE(删除缓冲区);DJConstant.FILTER(过滤缓冲区)。oriFlag:boolean,是否取原始值(即从数据库中检索出的值) 。有效值如下:false(默认,取当前值);true(取原始值)。 返回值any,返回值的数据类型与column的数据类型一致。方法执行成功时,返回指定单元的数据值,若指定单元为空,则方法返回null。 用法当脚本程序需要得到DataView缓冲区中的数据值时候,使用GetItemValue()方法来完成这个任务。当脚本程序需要得到DataView缓冲区中的数据显示值时候,使用GetItemText()方法来完成这个任务。 脚本示例见GetItemText()方法。GetLastRowOfPage() 功能得到DataView中指定页的末行行号。 语法dataview.GetLastRowOfPage(page) 参数dataview:DataView名。page:number,指定的页号。 返回值number。方法执行成功时返回DataView中指定页的末行行号。以下情况方法返回-1:(1)DataView中无可见数据(2)page越界(3)发生其它错误。 脚本示例示例1:下面的脚本获取第10页的首行行号和末行行号。 var firstNum=dv_1.GetFirstRowOfPage(10);var lastNum=dv_1.GetLastRowOfPage(10);GetModifiedCount() 功能得到DataView中已经被修改但尚未做数据库更新的行的数量。 语法dataview.GetModifiedCount() 参数dataview:DataView名。 返回值number。方法执行成功时返回DataView的主缓冲区和过滤缓冲区中已经被修改的行的行数;如果没有行被修改,或者所有修改过的行都已经做了数据库相应表的更新操作,那么方法返回0;发生错误返回-1。 用法GetModifiedCount()返回DataView的主缓冲区和过滤缓冲区中已经被修改的行的行数,这些行的修改尚未保存到数据库中。在新插入的行(状态为DJConstant.NEW的行)输入数据之前,该行不计算在修改行的行数之中。输入数据后,新插入的行的状态将变成DJConstant.NEW_MODIFIED。要得到删除缓冲区中的数据行数(即被删数据行数)时,使用DataView的GetDeletedCount()方法。要得到主缓冲区中数据的总行数(即显示在DataView中数据的行数),使用DataView的GetRowCount()方法。 脚本示例示例1:下面的脚本检查DataView中是否有修改,但尚未保存到数据库中去的数据行,如果有这样的行时,更新数据库。 if(dv_1.GetModifiedCount()+dv_1.GetDeletedCount()0) dv_1.Update();GetNextModified() 功能返回DataView指定缓冲区中位于指定行之后的第一个被修改过的行的行号。 语法dataview.GetNextModified(row,buffer) 参数dataview:DataView名。row:number,指定从哪一行开始查找第一个被修改过的行号。如果需要从头开始查找,那么该参数设置为0。buffer:缓冲区类别常量,指示想从DataView的哪个缓冲区中进行查找。有效取值如下:DJConstant.PRIMARY:默认值,从主缓冲区中查找;DJConstant.DELETE:从删除缓冲区中查找;DJConstant.FILTER:从过滤缓冲区中查找。 返回值number:方法执行成功时返回DataView的buffer缓冲区中row行后第一个被修改过的行的行号;如果指定行后面没有被修改过的行,那么方法返回0;出现错误返回-1。 用法DJFocus保存DataView中各行/列的修改状态,并通过这些状态来反映某行或某列是否是新插入的行、是否被修改过。GetNextModified()方法查找状态为NEW_MODIFIED或DATA_MODIFIED的行。当脚本程序使GetNextModified()方法在删除缓冲区中查找指定行之后第一个被修改过的行时,得到的行是那些已经被修改过且删除的行的行号。使用GetDeletedCount()方法可以得到删除缓冲区中被删除行的总行数。GetNextModified()方法从row参数指定行之后的行开始查找(即查找过程不包括行号为row的行),这点与其它查找类方法(如Find)不同,这些方法的查找过程包括了方法参数指定的行。 脚本示例示例1:下面的脚本计算dv_status的主缓冲区中被修改行的行数。 var rowCount,row,count=0;rowCount=dv_1.GetRowCount();row=dv_1.GetNextModified(0,DJConstant.PRIMARY);while(row0) count+; row=dv_1.GetNextModified(row,DJConstant.PRIMARY);alert(主缓冲区中修改过的总行数=+count); 上面的示例只是为了演示GetNextModified()方法的用法,实际上,如果脚本程序真的需要得到主缓冲区或过滤缓冲区中被修改过的行数,那么使用GetModifiedCount()方法更简单有效。GetPageCount() 功能得到DataView中总页数。 语法dataview.GetPageCount() 参数dataview:DataView名。 返回值number。方法执行成功时返回DataView中的总页数,发生错误时则方法返回-1。 脚本示例下面的脚本得到DataView中总页数。 var pageCount;pageCount=dv_1.GetPageCount();GetRowCount() 功能得到DataView中当前可用行数(主缓冲区中的数据行数)。 语法dataview.GetRowCount() 参数dataview:DataView名。 返回值number。方法执行成功时返回主缓冲区中数据行数,发生错误时返回-1。 用法DataView主缓冲区中的数据行显示在DataView中,用户能够操作它们。这部分数据的数据行数可以使用GetRowCount()方法得到。 脚本示例示例1:下面的脚本得到DataView中当前可用行的行数。 var nbrRows;nbrRows = dv_1.GetRowCount();GetSQLSelect() 功能得到DataView中当前或原始的SELECT语句。 语法dataview.GetSQLSelect(oriFlag) 参数dataview:DataView名。oriFlag:boolean,指定得到当前的SQL SELECT语句还是原始SQL SELECT语句。默认false(得到当前SQL SELECT语句) 。 返回值string。方法执行成功时返回DataView当前使用的(或原始的)SQL SELECT语句;如果不能返回SQL SELECT语句,则方法返回空字符串。 用法脚本程序通过SetWhereClause()方法可以动态的改变DataView的SQL SELECT语句的WHERE子句,同时可通过GetWhereClause()方法得到DataView当前或原始的 (同样通过oriFlag参数)WHERE子句。通过GetSQLSelect()方法可以得到当前整个SQL SELECT语句,若要获得原始的SQL SELECT语句,需要设置oriFlag参数。 脚本示例示例1:下面的脚本得到DataView的当前SQL SELECT语句和原始SQL SELECT语句。 var oriSQLString=dv_1.GetSQLSelect(true);var currentSQLString= dv_1.GetSQLSelect();GetSelectedRow() 功能得到DataView中指定行之后的第一个被选行的行号。 语法dataview.GetSelectedRow(row) 参数dataview:DataView名。row:number,指定从哪一行开始查找第一个被选行的行号。如果需要从头开始查找,那么该参数的值设置为0。 返回值number。方法执行成功时返回DataView中row行之后第一个选中行的行号;如果指定行之后没有选中行,方法返回0。 用法当DataView中的行成为当前行时,它们不会自动被选中,如果需要选中某些行,可以通过SelectRow()方法实现。如果Grid风格的DataObject有rowcheckbox,某行被选中的同时checkbox被选中。注意:GetSelectedRow()方法从row参数指定的行之后开始查找,而不考虑row行本身是否选中。 脚本示例示例1:下面的脚本查找dv_Demo中第一个选中行的行号。 var selectedRow;selectedRow=dv_Demo.GetSelectedRow(0); 示例2:下面的脚本查找dv_Demo中第20行之后第一个选中行的行号。 var selectedRow;selectedRow=dv_Demo.GetSelectedRow(20);GetWhereClause() 功能得到DataView中当前或原始的WHERE子句。 语法dataview.GetWhereClause(oriFlag) 参数dataview:DataView名。oriFlag:boolean,指定得到当前的SQL SELECT语句中的WHERE子句还是原始SQL SELECT语句中的WHERE子句。默认false(得到当前SQL SELECT语句中的WHERE子句) 。 返回值string。方法执行成功时根据oriFlag参数返回DataView当前使用的(或原始的)SQL SELECT语句中的WHERE子句;如果不能返回SQL SELECT语句中的WHERE子句,则方法返回空字符串。 用法当脚本程序需要在运行期间改变DataView中DataObject对象使用的WHERE子句时,可以首先使用GetWhereClause()方法得到原来的WHERE子句,之后进行适当修改后用SetWhereClause()方法重新设置,这样就带来了更大的灵活性。 脚本示例示例1:下面的脚本先得到DataView当前使用的WHERE子句,然后进行修改再重新设置。 var oriWhereClause,oldWhereClause,newWhereClause;oriWhereClause=dv_1.GetWhereClause(true); /得到原始的WHERE子句oldWhereClause=dv_1.GetWhereClause();/得到当前的WHERE子句newWhereClause= /指定新的WHERE子句dv_1.SetWhereClause(newWhereClause); /重新设置HidePageControler() 功能隐藏分页控制栏。 语法dataview.HidePageControler() 参数dataview:DataView名。 返回值number。方法执行成功时返回1;发生错误返回-1。 脚本示例示例1:下面的脚本隐藏分页控制栏。 dv_1.HidePageControler();InsertRow() 功能在DataView中指定行前面插入一行。 语法dataview.InsertRow(row) 参数dataview:DataView名。row:number,指定在哪一行前面插入新行。要在DataView的最后一行后面追加一行,那么将row参数设置为0。 返回值number。方法执行成功时返回新插入的行号;出错时返回-1。 用法执行InsertRow()方法后,它只是简单的插入一行,既不改变DataView中数据的显示位置,也不改变DataView的当前行。如果想让DataView滚动到新插入的行并使其成为当前行(此时用户可以在屏幕上看到新插入的行),可以调用方法ScrolltoRow()。 脚本示例示例1:下面的脚本在DataView的第7行之前插入一行。 dv_1.InsertRow(7); 示例2:下面的代码在DataView的最后一行后面追加一行,并将新插入的行滚动到窗口视野中,同时使该行成为当前行。 var newRow;newRow=dv_1.InsertRow(0);dv_1.ScrollToRow(newRow); 示例3:下面的代码在DataView的当前行插入一行,并将新插入的行滚动到窗口视野中。 dv_1.ScrollToRow(dv_1.InsertRow(dv_1.GetCurrentRow();IsSelected() 功能检测DataView中指定行是否被选中,当DataView中指定行被选中时返回true,当指定行未被选中或指定的行号超出范围时返回false。 语法dataview.IsSelected(row) 参数dataview:DataView名。row:number,指定要检测哪一行。 返回值boolean。如果DataView中row行被选中,方法返回true;如果未被选中,方法返回False。如果row指定的行大于DataView中最大行号,或row的值不大于0,则方法返回false。 用法在DataView的Clicked事件处理中可以调用方法IsSelected()来检测用户单击的行是否被选中。 脚本示例示例1:下面的脚本测试DataView的当前行是否被选中。如果当前行被选中,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论