Chinaunix首页 | 论坛 | 博客
  • 博客访问: 497133
  • 博文数量: 105
  • 博客积分: 2922
  • 博客等级: 少校
  • 技术积分: 1113
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-02 16:30
文章分类

全部博文(105)

文章存档

2018年(1)

2016年(2)

2015年(3)

2014年(6)

2013年(21)

2012年(10)

2011年(8)

2010年(7)

2009年(31)

2008年(16)

我的朋友

分类:

2009-11-20 15:08:41

1、如果dddw子数据窗口中含有检索参数,窗口打开时候如果retrieve了主窗口,会弹出子窗口检索参数输入框。解决方法:
○取消主数据窗口dddw列的 autoretrieve属性,然后适当时机用脚本过滤。
○在窗口open时候retrieve 主数据窗口前,需要用getchild给dddw传递参数,此时autoretrieve属性可以不关。
 
2、取dddw/ddlb column datawindow的显示值的时候,一般有两种方法:
○用脚本取
string ls_rownumber, ls_displayvalue
ls_rownumber = string(dw_1.getrow())
ls_displayvalue = dw_1.describe("Evaluate( 'lookupdisplay(city) ', "+ls_rownumber+" )")
其中city是主数据窗口dddw column edit style 的 列名。
○在主数据窗口中添加计算列,表达式为
Lookupdisplay(city)
一般写一个自定义事件 比如 ue_displayvalue 脚本如下
string displayvalue
displayvalue = dw_1.getitemstring(dw_1.getrow(),"display")
然后在取显示值的时候调用该 自定义事件。
parent.event post ue_lookup()
关于取显示值的说明。无论用第一种还是第二种方法,都不要在主数据窗口的 itemchanged event中直接用lookupdisplay调用显示值,用一个自定义事件过度一下,否则取的是原显示值。
 
3、动态为一列增加Edit Style设置为 Dropdowndatawindow的方法:
String ls_modify
DataWindowChild ldcw_child

String ls_column_name = "dept_id_1"

ls_modify = ls_column_name + ".DDDW.DataColumn='dept_id' " + &
ls_column_name + ".DDDW.DisplayColumn='dept_name' " + &
ls_column_name + ".DDDW.UseAsBorder=Yes " + &
ls_column_name + ".DDDW.AllowEdit=Yes " + &
ls_column_name + ".DDDW.VScrollBar=Yes " + &
ls_column_name + ".DDDW.AutoHScroll=Yes " + &
ls_column_name + ".DDDW.Name='d_dddw_dept'" // DDDW

// attach the DDDW to the parent DataWindow
if (dw_1.Modify (ls_modify) <> "") then return -1

dw_1.GetChild (ls_column_name, ldcw_child)
ldcw_child.SetTransObject (SQLCA)
ldcw_child.Retrieve
()
 
注意 编译的时候应该把 dept_id_1 写入到PBR中。格式为
xxxxxx.pbl(dept_id_1)
阅读(2278) | 评论(0) | 转发(0) |
0

上一篇:PB常用API调用示例指南

下一篇:win32 api list

给主人留下些什么吧!~~