单击另一个DataWindow中的记录打开一个窗口

时间:2013-09-09 14:06:23

标签: powerbuilder datawindow

我有一个DataWindow,它使用select获取记录。

我想要做的是能够点击任何记录并打开一个新的Window / DataWindow来显示有关所选/点击记录的更多信息。

我对PB8很新,并且此刻正在苦苦挣扎。

请你指导我正确的方向,真的很感激。

干杯。

2 个答案:

答案 0 :(得分:1)

您想查看OpenWithParm()OpenSheetWithParm(),并在DataWindow控件的Clicked事件(我推荐DoubleClicked,但这是您的设计)中调用其中一个(在窗口上) 。

您可能还想查看磁盘上的Getting Started Manual,也可以在线获取。

祝你好运,

特里。

答案 1 :(得分:1)

听起来你对PB很新,所以我会给你一个真的简单的样本来帮助你入门。可能会考虑像特里建议的那样双击,但点击也会起作用。

<强>假设:

  • 您的数据窗口控件名称为 dw_customer_list
  • 您的列值(键)名为customer_id且为数字
  • 您要打开的窗口名称为 w_customer_detail
  • 传递的值是数字,否则使用StringParm或PowerObjectParm
  • 如果您使用的是mdi“sheet”,请考虑使用opensheetwithparm而不是openwithparm

dw_customer_list 点击事件中添加代码,以获取要在您打开的窗口上显示的内容的键值。如果使用字符串,则使用getitemstring而不是getitemnumber

double ld_custid

if IsNull(row) then return 0

if row > 0 and row <= RowCount() then
   ld_custid= this.GetItemNumber(row, 'customer_id')
   OpenWithParm(w_customer, ld_custid)
end if

在您要显示客户的 w_customer_detail 中,在打开事件中输入类似内容,以获取传递的参数并对其执行操作。 有一天,当你感到无聊时,请阅读有关开放后事件以及为何使用它的好处。 此外,如果您传递的是字符串而不是数字,那么只需使用Message.StringParm而不是DoubleParm。

double ld_custid

// grab the passed number parameter
if not IsNull(message.DoubleParm) then
   ld_custid= message.DoubleParm
   messagebox('Customer ID parameter:', string(ld_custid))
else
   // no parmameter!
   messagebox('Customer ID parameter:', 'was not passed to window')
end if