求解,为什么我的window窗体没有openevent()

StillMiss 2011-01-05 03:50:03
我下了个源码,照它里面的写。
就是到一个检索窗体w_manage,上面 4个按钮,检索,删,改,退出

实现的效果是:点击检索按钮,弹出对话框窗体w_2, 设置搜索的条件,起始日期,还有人员编号,跟姓名,性别。
点击确定,就传值到父窗体,就是w_manage。然后这个窗体取得,回传的值,检索数据、

我有两个问题,第一 在源码里, 他这个w_2窗体里,有一个postevent事件,返回值是none

我在自己的窗体可以就是没有看见这个事件

w_2窗体里postevent事件代码如下。

em_begin.text = "1900-01-01"
em_end.text = string(today(),"yyyy-mm-dd")

string temp

declare cur_bm cursor for
select 部门名称 from 部门表;

ddlb_bm.additem("")
open cur_bm;
do while sqlca.sqlcode = 0
fetch cur_bm into :temp;
if sqlca.sqlcode = 0 then
ddlb_bm.additem(temp)
end if
loop
close cur_bm;


然后在open()事件里写的是post event postevent()

我不太懂 为什么要这么写。

我就直接在open事件里将他那段代码copy了下。

点击确定后 ,关闭这个窗体,传值给父窗体,然后w_manage显示。
确定按钮click事件代码如下

string ls_reselect
string ls_begin,ls_end
string ls_bh
string ls_xm
string ls_bm
string ls_xb

ls_begin = trim(em_begin.text) + " 00:00:00"
ls_end = trim(em_end.text) + " 23:59:59"
ls_bh = trim(sle_bh.text) //人员编号
ls_xm = trim(sle_xm.text) //姓名
ls_bm = trim(ddlb_bm.text) //部门
ls_xb = trim(ddlb_xb.text) //性别
/////////////
select 部门编号
into :ls_bm
from 部门表
where 部门名称 = :ls_bm;
//////////////////////////
ls_reselect = " 出生日期 >= ('" + ls_begin + "')" + " and 出生日期 <= ('" + ls_end + "')"

if ls_bh <> "" then
ls_reselect = ls_reselect + " and 职工编号 LIKE '%" + ls_bh + "%'"
end if
//
if ls_xm <> "" then
ls_reselect = ls_reselect + " and 职工姓名 LIKE '%" + ls_xm + "%'"
end if
//
if ls_bm <> "" then
ls_reselect = ls_reselect + " and 部门代码 LIKE '%" + ls_bm + "%'"
end if
//
if ls_xb <> "" then
ls_reselect = ls_reselect + " and 职工性别 LIKE '%" + ls_xb + "%'"
end if
closewithreturn(parent,ls_reselect)



但是我的问题又出来了, 点击确定检索后,出现 database transcation infromation not available、

我使用的是quick select 数据源、 我不知道这里动态改变检索条件,如何设置数据源。。我不知道是不是要用sql那个数据源,如何设置动态变更查询。

求解。。。

...全文
137 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
StillMiss 2011-01-05
  • 打赏
  • 举报
回复
自己 大意了,变量少了一个 ,instance类型变量。 用来获取原来数据源句法的,(select * from 表)

本来是在父窗体open事件里 就绑定,只是没有检索出数据,这里我什么都没写,以至于我后来设定查询条件后,整个查询语句不对头。只有where 条件了、没有前面,(select * from 表)

所以出现了database transcation infromation not available错误、

如何定义自定义事件,我回头看看书去。~~~

先谢谢上面两位热心的帮助。
cryspigger 2011-01-05
  • 打赏
  • 举报
回复
两层程序,需要连接数据库,没连上自然就是database transcation infromation not available。

能不能说下你的最新进展?
看看有无其他具体的问题需要解决。
pcwe2002 2011-01-05
  • 打赏
  • 举报
回复
postevent是自己定义的事件,用post的原因是先让窗口打开再去执行postevent里面的代码,这样用户可以先看到界面。

出现 database transcation infromation not available
你看你的数据窗口有没有settransobject
打开链接下载源码: https://pan.quark.cn/s/331a85e1b463 在数字化时代背景下,软件授权与保护显得极为关键,微狗(MicroDog)作为一款硬件加密狗,其主要功能是保障软件的合法使用,避免盗版和未经授权的访问。为了达成这一目的,微狗驱动发挥着不可或缺的作用。驱动程序充当硬件与操作系统之间的沟通纽带,确保两者能够和谐协作。现阶段,64位微狗驱动(UMI64位)已经兼容Windows 11、Windows 10以及Windows 7操作系统,为不同的系统环境提供坚实可靠的支持。 随着Windows操作系统的持续升级,对驱动程序的兼容性需求也在逐步提高。微狗驱动UMI64位版本正是为了应对兼容性问题而研发的。它不仅适配最新版的Windows 11,同时也与过去几年中普遍应用的Windows 10和Windows 7保持兼容。如此全面的系统支持,使得微狗加密狗能够在多种环境中稳定运作,确保软件授权管理不受操作系统版本的限制。 在这个驱动中,特别强调了支持UMI V4.1版本。UMI可能代表Unique Machine Identifier,即用于标识特定硬件设备的唯一序列号。提及UMI V4.1表明该驱动能够精准识别并支援微狗加密狗的此特定型号。同时,这也暗示驱动可能与其他版本的微狗硬件兼容,这意味着用户可以在不同版本的微狗加密狗之间切换而不必频繁更换驱动程序。 UMI64位标签凸显了驱动程序的核心特征,即它专为64位系统进行优化。相较于32位系统,64位系统在处理海量数据、运行大型应用时展现出显著优势,例如能够支持更大的内存地址空间。随着软件复杂性的提升,对硬件资源的需求持续增长,因此64位系统能够提供更优越的性能和稳定性。UMI系列硬件与...

1,111

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧