注册 登录
编程论坛 PowerBuilder

咨询

qlq 发布于 2008-10-03 16:53, 4519 次点击
我用PB做论文,程序流程是先做一个启动封面,启动完成后,自动进入主窗口,现在把主窗口设计和代码编写完成后,没有达到我的目的,请版主帮忙
10 回复
#2
freele_china2008-10-04 08:41
主要你问的问题太笼统了。也没有说清楚你的目的。
如果你需要 启动封面 延迟的话 可以如下操作
1.W_启动封面中, OPEN事件里   time(5)    //5 是可以变的秒
2.W_启动封面中, timer事件里  open(W_主窗口)
3.W_启动封面中, timer事件里  close(this)
#3
qlq2008-10-05 01:31
版主好!上次提的问题已解决,原因在于我是新手,演示方法没选对。今天我在编写确认命令按钮的代码时,系统提示出错,请指教,代码如下:
string qy
qy = "(" + "用户名" + "=" + "'" + sle_1.text  + "'" + ")" + "and"+
    "(" + "用户口令" + "=" + "'" + sle_2.text + "'" + ")"
dw_1.setfilter(qy)
filter(dw_1)
dw_1.retrieve(1)
sle_1.text = string(dw_1.rowcount())
if dw_1.rowcount() =0 then
    messagebox ("警告","你是合法的用户吗?请重新输入!",stopsign!)
else
    open(w_pwindow)
    close(w_password)
end if
系统提示错误如下:
error  c0031:syntax err
error  c0031:syntax err
warning c0014:undefined variable:w_pwindow
error  c0116:reference argument type doesn't match function definition:open
#4
qlq2008-10-05 08:50
#5
freele_china2008-10-05 15:11
//////////////////////////////////////////////////
//  密码确认登录窗口  
//  两个sle,一个Button
//如下写在 Button clicked 中
//////////////////////////////////////////////////

String ls_usid ,ls_pwd
Long    ll_count

ls_usid    =    sle1.text
ls_pwd        =    sle2.text

SELECT    COUNT(*)
INTO    :ll_count
FROM    <密码确认表>
WHERE    <用户代码>    =    :ls_usid
AND    <密码>        =    :ls_pwd
;

IF ll_count    > 0 THEN
    open(w_pwindow)            //w_pwindow 为主窗口,不要写错
    close(w_password)            //也可以写成 close(parent)
ELSE
    messagebox ("警告","你是合法的用户吗?请重新输入!",stopsign!)
END IF
#6
qlq2008-10-06 22:30
非常感谢版主在百忙工作中给予的解答!辛苦了!请问版主在这方面发展有没有推荐的好书?请注明书号,出版社,作者,日期。多谢!向乐于奉献的版主们致敬!
#7
qlq2008-10-06 22:50
请问版主怎样在帖子里粘贴图片
我在运行程序时,出现一个提示小窗口:标题是“不能连接上数据库!”接着是一行英文提示:“transaction already connected”,最后是一个“确定”按钮,点击“确定”按钮后,才能进行下一步运行,请版主解答
#8
qlq2008-10-07 00:12
编写“删除记录”命令按钮控件的代码如下:
         Long  num
         Integer  yess
         Yess =messagebox(“注意!”,”删除的记录不可恢复!确认要删除吗?”,question!,yessno!)
         If  yess=1 then
            Num=dw_2.getrow()
            Deleterow(dw_2.num)
         Else
            Messagebox(“说明”,”记录没有被删除,仍然可以使用!”)
         End if
提示如下:
error c0060:illegal enumerated constant:yessno
error c0019:incompatible property num for type dw_2
#9
qlq2008-10-07 00:17
编写“确认”命令按钮控件的代码如下:
“确认”命令按钮的作用在于对增加记录或删除记录的操作进行确认,如果不执行该操作,则数据库中的记录将不会被保存,即不会真正地增加或删除记录。
         If update(de_2,true,false)=1 then
            Dw_2.resetupdate()
            Commit;
            Dw_2.retrieve(0)
         Else
            Rollback;
            Messagebox(“注意!”,”数据保存失败!”)
         End if
提示如下:
warning c0014:undefined variable:de_2
error  c0051:unknown function name:update
#10
qlq2008-10-07 00:22
编写“执行查询”命令按钮控件的代码如下:
         String s1,s2
         Integer num
         S1=ddlb_1.text +”=”+”’”+sle_1.text +”’”
         Dw_1.setfilter(s1)
         Filter(dw_1)
         Dw_1.retrieve()
         Num =dw_1.getrow()
         S2=”(”+”物品编号=”+”’”+dw_1.object.data[num,1]+”’”+”)”+”or”+”(”+”物品名=”+”’”+dw_1.object.data[num,2]+”’”+”)”
Dw_2.setfilter(s2)
setfilter(Dw_2)
Dw_2.retrieve(0)
S2=”物品编号<>’’”
Dw_1.setfilter(s2)
filter(Dw_1)
提示如下:
error c0084:bad number of arguments for function:setfilter
#11
freele_china2008-10-07 08:36
8# 大中 小发表于 2008-10-7 00:12 只看该作者
编写“删除记录”命令按钮控件的代码如下:
         Long  num
         Integer  yess
         Yess =messagebox(“注意!”,”删除的记录不可恢复!确认要删除吗?”,question!,yessno!)
         If  yess=1 then
            Num=dw_2.getrow()
            //Deleterow(dw_2.num)  //错误
        deleterow(num)
         Else
            Messagebox(“说明”,”记录没有被删除,仍然可以使用!”)
         End if
提示如下:
error c0060:illegal enumerated constant:yessno
error c0019:incompatible property num for type dw_2
1