libarayexport(librayname,objectname,objecttype)
//功能:从指定应用库中以对象对象的语法定义格式卸出对象。 librayname:string 类型,指定要移出对象的应用库的名称。
objectname:string 类型,指定要移出对象的名称。 objecttype:枚举型。有:exportapplication!,exportdatawindow!,exportfunction!,exportmenu!,exportpipeline!,exportquery!,exportstructure!,exportuserobject!,exportwindow!
返回值:string,发生错误返回\如: string ls_dwsyn,ls_errors
ls_dwsyn=libraryexport(\ dw_1.create(ls_dwsn,ls_errors) //移出d_emp数据窗口的定义,然后在数据窗口控件中创建数据窗口对象。 ***********************
libraryimport(libraryname,objectname,objecttype,syntax,errors{,comments})
//功能:将以语法格式表示的数据数据窗口对象装入到指定的应用库。 librayname:string 类型,指定要移出对象的应用库的名称。objectname:string类型,指定要移入的数据窗口的名称。
objecttype:Importdatawindow!。syntax:string类型,指定要移入数据窗口对象的语法。
errors:string类型,用于在发生错误时保存出错信息。comments:string类型,用于指定移入库的注解。
返回值:int, 成功 为1,错误时为-1。
(*当应用程序在运行过程中动态创建数据窗口对象后,可能使用
liabrayimport()把动态数据窗口的定义保存到应用库中。以后可直接使用该对象了。
如:string dwsysntax,errorbuffer integer rtncode
dwsyntax=dw_1.describe(\
rtncode=librayimport(\wsyntax,errorbuffer)
*************************************************************************
*8888888888888888888888888888888888888888888888888888888888888888888888888
动态创建数据窗口
dw1.create(syntax,{errorbuffer})
//功能:用于动态地创建一个数据窗口。
dw1:表示要放入的数据窗口控件的名字。syntax:是一个字符串类型的变量,表示用来创建数据窗口对象源代码语法。errobuffer:string类型,用来表示错误信息存储的字符串变量名。 返回值:1 成功, -1 失败。
transaction.syntaxfromsql(sqlselect,presentation,err)
//功能:从一个sql select语句和指定数据窗口表现风格来生成数据窗口语法
transaction表示当前连接使用的事务对象名,一般为:SQLCA; sqlselect:string类型,用来生成数据窗口语法的sql select语句;presentation:string类型,用来指定数据窗口的表现风格。err:string类型,用来指定当前出错时错误信息的存放处。
如:string ls_sql,ls_syntax,ls_error_syntaxfromsql,ls_error_create ls_sql=\address.salary>4500\
ls_syntax=sqlca.syntaxfromsql(ls_sql,\_syntaxfromsql)
if len(ls_error_syntaxfromsql)>0 then
messagebox(\ else
dw_1.create(ls_syntax,ls_error_create) if len(ls_error_create)>0 then
messagebox(\ end if end if
dw_1.settransobject(sqlca) dw_1.retrieve()
*********************************************************************
******************************************* dw1.setvalidate(column,text)
///修改数据窗口控件指定列的有效性规则。
column:可为列名,也可用列号。 rule:string类型,其值是评价数据是否有效的有效性规则。
返回值:1 成功,-1 错误。(*当用户输入的值不满足该列的有效性规则时,将触发itemerror事件。如果有效规则中包含了数值,那么数据窗口要求这些数值使用美国格式。
如果要得到当前列的使用的有效规则,可使用:getvalidate(),如得到用户刚刚输入的值,可用gettext().
如:dw1.setvalidate(dw1.getcolumn(),\//把数据窗口的当前列的值限制到必须>0
如:dw1.setvalidate(dw1.getcolumn(),\把保障了用户输入的值<同一行上full_price列的值。 如:string
rule1,rule2=\w1.setvalidate(6,rule2) ************************* dw1.getvalue(column,index)
//功能:得到数据窗口指定列的值表或代码表中指定项的值。
column:得到所需值的列。 index:值表或代码表中数据项的索引号。
返回值:string,成功时返回dw1中column列的值表或代码中索引号为index的数据项的值。如果指定的数据项有个不是实际值的显示值,那么将返回由~t分隔的字符串,~t的左边是
显示值,右边是实际的数据值。(*使用此函数得到下述数据窗口对象列编辑风格的值或代码表指定项的值:
checkbox,radiobutton,dropdownlistbox,editmask,edit。如果
列编辑风格的代码包含了显示值和数据值,那么用此函数可以同时得到这两个值。
如:string status status=dw1.getvalue(7,3) //得到dw1第7列中第三个数据项的值。
****************************
dw1.setvalue(column,index,value)
//功能:设置数据窗口控件指定列的值列表或代码表中指定项的值。
column:指定包含值列表或代码表的列。该列的编辑风格应该是下拉列表框风格(dropdownlistbox),编辑(edit)风格或单选钮(radiobutton)风格。对于editmask和dddw的列的风格,此函数不起作用。
value:string类型,其值是指定列表项的新值。对于代码表来说,使用(~t)来分隔显示和数据值如:\北京~tBJ\
如:dw1.setvalue(\北京市~tBJ\把dw1中emp_state列的第三个数据项的显示值设为'北京市',其数据值高为“BJ”
如: ////// 把数据窗口dw1的列product_col填充数据,此列为dropdownlistbox
integer prod_code,i=1 string pro_name declare prodcur cursor for
select product.name,product.code from product using sqlca; connect using sqlca; if sqlca.sqlcode<>0 then
messagebox(\状态信息\连接失败,出错原因:\ return end if
open procur;
if sqlca.sqlcode<>0 then
messagebox(\状态信息\不能打开游标,出错原因:\ return end if
fetch prodcur into :pro_code,:pro_code; do while sqlca.sqlcode=0
dw1.setvalue(\ i=i+1
fetch prodcur into :prod_name,:prod_code; loop
close prodcur;
disconnect using sqlca;
(graphicobject是所有控件的祖先对象)
**************************** dw1.settext(text)
//功能:将“漂浮”在数据窗口控件当前行、当前列上的编辑框上的内容替换为指定文本。
text:string类型,希望放到编辑框中的文本,其值必须与当前列的数据类型兼容。
(*在执行此函数后,数据窗口将执行itemchanged或者itemerror事件。 如:dw1.settext(\北京\********************************** relativedate(date,n)
//功能:得到指定日期前多少天或后多少天的日期。 data:date类型,指定基准日期,n:integer类型,指定天数返回值date。当n>0时,指定日期后的第N天的日期;当n<0时,返回前第n天的日期。 ****************************** dw1.replacetext(string)
//功能:用指定字符串代替“漂浮”在当前行/列上的编辑框中所选内容。 string:string类型,要取代所选文本的字符串。
返回值:integer类型,成功时,返回string参数的字符个数。错误时为:-1 如果没有文本被选中,replacetext将string参数的内容插入到插入点所在位置。要插入剪贴板的内容,可以用past(). ******************************* dw1.reselectrow(row)
//功能:对指定的行访问数据库,重新提取所有可更新列的值,并刷新新数据窗口控件中所有时间戳列。
row:指定要重新检索数据的行。 如: if dw_1.update()<0 then
dw_1.reselectrow(dw_1.getclickedrow())
end if //在更新数据库失败时,重新选择用户单击行的数据。
***********************************************
function ulong setcapture(ulong a) library \function boolean releasecapture() library\boolean rtn
ulong l_loop,u_test,u_long u_test=handle(parent)
u_long=setcapture(u_test) setpointer(sizenwse!) for l_loop=1 to 150000 next
rtn=releasecapture()
******************************** setcurrentdirectorya() //设置当前目录
function boolean setcurrentdirectorya(ref string cdir)library\boolean rtn string l_dir
l_dir=\
rtn=setcurrentdirectorya(l_dir)
messagebox(\************************************ 在run语句之后判断该程序是否执行完毕 蔡毅答:
在run语句之后判断该程序是否执行完毕。
定义外部函数:
Function long FindWindowA (String lpClassName , String lpWindowName ) Library \
Function boolean IsWindow (Long hwnd ) Library \
脚本:
run(\c:gzhz.prg\
ll_handle = 0 //循环至窗口打开
Do While ll_handle = 0
ll_handle = FindWindowA(\应用的窗口名\yield() // loop
//等待窗口关闭
Do While isWindow(ll_handle) Yield() Loop
(继续下面的语句)
))))))))))))))))))))))))))000000))))))))000 如何关闭打开的dos窗口?
问:如何关闭打开的dos窗口?如:调用run(*.bat)函数,该函数运行完毕后有一个打开的dos窗口,如何关闭???