您的位置:首页 > 编程语言

PB数据窗口中代码列动态选择两法

2010-11-16 19:57 190 查看
PB数据窗口中代码列动态选择两法

--------------------------------------------------------------------------------

  用PowerBuilder中的数据窗口设计数据录入界面时常碰到这样的问题:录入数据中的某一项要素(列)为"代码",其真正的含义存放于经常变动、以此"代码"为主键的对照表( 库)中。而用户希望利用下拉菜单动态选择时看到的是一个个"代码"所对应的"含义"。下面给出这一问题的两种解决方法。

  方法一:为该对照表设计一数据窗口(暂称变动选择窗口),该窗口包括"代码"列和"含义"列;在录入数据窗口"代码"列的"Edit Style" 选项中,直接选择下拉数据窗口风格(Dr opDownDataWindow),在风格窗口中选择上述变动选择窗口,再从"Display Column"和"Da ta Colu mn"下拉列表框中,为上述下拉数据窗口选择要显示的列和数值列,并设置"Alway sShow Arrow"选项,将下拉特征设置为"V Scroll Bar", 如下图:图1

  方法二:将这个"代码"列变为下拉列表框的形式,在下拉列表框(D ropDownList Box) 窗口中,除选中"Always Show Arrow"外,其他选项不做任何变动。利用当前光标操作,编写下面一段程序来完成对上述" 含义"的动态选择。

  string code //"代码"变量
  string codemeaning //"含义"变量
  int i=1
  declare cl cursor for //定义光标,光标名为C1
  select codemeaning-col,code-col from code_meaning_table using SQLCA;
  open cl; //打开光标,此时执行此光标对应的SQL SELECT语句
  aa:
  fetch cl into:codemeaning,:code;
  //取记录,光标下移一条记录
  if sqlca.sqlcode=0 then
  //取记录成功
  //将codemeaing值写入列code-col中
  setvalue(dw_1,"code_col",+i,codemeaning+"~t"+code)
  i=i+1 //行数加1
  goto aa
  //取下一条记录,直至最后一条
  end if
  close cl; //关闭光标,SQL SELECT语句结束

  将以上程序放在数据录入界面窗口的"open"事件脚本中执行,即可将数据库表"code _meaning_table"中的"含义"(codemeaning_col) 选项循环写入"代码"下拉列表框中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: