PB dw dddw技巧收集

xiaoxiao2025-11-03  4

一、如何在DDDW中敲入字母时DDDW始终下拉状态?

解决方案: 1、声明实例变量:

boolean ib_show

2、声明外部函数:

Subroutine keybd_event(int bVk,int bScan,ulong dwFlags,ulong dwExtraInfo) LIBRARY "user32.dll"

3、新建自定义事件:pbm_dwnkey代码如下:

if getcolumn() = 2 then //这里假设你的DDDW是第2列,如果是其他列,则自行修改

if not ib_show then

keybd_event(18,0,0,0)

keybd_event(40,0,0,0)

keybd_event(40,0,2,0)

keybd_event(18,0,2,0)

ib_show = true

end if

else

ib_show = false

end if

4、在DW的clicked和doubleclicked事件中分别写入:

ib_show = false

5、测试一下吧,这样即可弹出下拉DDDW,但是DDDW自动滚动的代码我没有写,你自己完成吧! ---------------------  作者:balloonman2002  来源:  原文:https://blog.csdn.net/balloonman2002/article/details/266470  版权声明:本文为博主原创文章,转载请附上博文链接!

二、【PB】动态添加数据窗口列中下拉列表的内容

1.设置数据窗口某个列(dept_id)的style type为DropDownListBox:

dw_1.Modify("dept_id.ddlb.case='any'")    2.为下拉列表框添加数据:

boolean lb_flag = false string ls_facno, ls_facname, ls_value   declare cur_munit dynamic cursor for sqlsa ; prepare sqlsa from "select distinct facno from secmemb where userno = ? order by facno" ; open dynamic cur_munit using :userid ;   ls_value = colname + ".values=' ~t '" fetch cur_munit into :ls_facno ;   do while sqlca.sqlcode = 0     ls_facno = Trim(ls_facno)     select facname into :ls_facname from misunit where facno = :ls_facno ;     if not lb_flag then         ls_value = colname + ".values='"         lb_flag = true     else         ls_value += "/"     end if     ls_value += Trim(ls_facname) + "~t" + Trim(ls_facno)      fetch cur_munit into :ls_facno ; loop   close cur_munit ;   ls_value += "'"   if dwobj.Modify(ls_value) <> "" then return -1 ---------------------  作者:灰色轨迹  来源:  原文:https://blog.csdn.net/lijianhe043/article/details/7909752  版权声明:本文为博主原创文章,转载请附上博文链接!

三、【PB】如何给datawindow某一列动态设置成dddw或者ddlb,并且赋值

(1)切换成DDDW:      dw_1.Modify("#1.dddw.Name='dddw_jg'")      dw_1.Modify("#1.dddw.DisplayColumn='name_jg'")      dw_1.Modify("#1.dddw.DataColumn='id_jg'")      (2)切换成DDLB:      dw_1.Modify("#1.ddlb.case='any'")        dw_1.Object.#1.Values   ="red~t1/white~t2"      (3)切换成EDIT:      dw_1.Modify("#1.edit.case='any'")      dw_1.Modify("#1.edit.AutoSelect='Yes'")      (4)获取当前风格:      dw_1.Describe("#1.Edit.Style")      (5)如果还不行,可能得要如下操作:      dw_1.Modify("#1.dddw.Name=''")一下;

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

方法:动态建立变换dddw和edit风格

//d_province为下拉数据窗囗对象  If is_flag = 'A ' Then //变为dddw  dw_1.Modify( "province.dddw.Name = 'd_province ' ")  dw_1.Modify( "province.dddw.DataColumn = 'id ' ")  dw_1.Modify( "province.dddw.DisplayColumn = 'province ' ")  dw_1.Modify( "province.dddw.AllowEdit = 'True ' ")  dw_1.Modify( "province.dddw.AutoRetrieve = 'True ' ")  is_flag = 'B '  Else //变回edit  dw_1.Modify( "province.dddw.Name = ' ' ")  dw_1.Modify( "province.dddw.DataColumn = ' ' ")  dw_1.Modify( "province.dddw.DisplayColumn = ' ' ")  dw_1.Modify( "province.dddw.AllowEdit = ' ' ")  dw_1.Modify( "province.dddw.AutoRetrieve = ' ' ")  is_flag = 'A '  End If

转自:https://blog.csdn.net/tlammon/article/details/43735715?utm_source=blogxgwz1

四、pb里怎么动态改变dw内text的字体大小

dw_1.modify("text1.font.face='宋体' ") dw_1.modify("text1.font.height='-9' ") or: dw_1.Object.text1.Font.Face='宋体' dw_1.Object.text1.Font.height='-9'

要修改font的相关属性 例dw_1.Object.emp_name_t.Font.Face = "Arial" //改字体 dw_1.Object.emp_name_t.Font.height = -10  //改字号 相关属性说明 Font.CharSet 指定该对象中文字使用的字符集 有效值为 0—ANSI 1—指定字体的缺省字符集 2—Symbol 128—Shift JIS 255—OEM Font.Escapement 指定字符显示的倾斜角度 0为水平 45为旋转45度Font.Face  指定字体名称 比如Arial Courier 宋体 楷体等 Font.Family 指定字体系列 Windows 根据字体系列和字体名称决定使用的字体 有效值为 0—任何字体 1—Roman 2—Swiss 3—Modern 4—Script 5—Decorative Font.Height  指定字体的高度 按数据窗口对象中定义的单位计量 如果想按点数指定高度 那么请用负值表示 Font.Italic  指定文字是否以斜体显示 缺省值为no Font.Pitch  指定字体特性 有效取值为 0—使用系统缺省特性 1—定宽字体 2—变宽字体 Font.Strikethrough 指定文字上是否加删除线 缺省值为no Font.Underline  指定文字上是否加下划线 缺省值为no Font.Weight  指定文字的磅数 400为正常字体 700为粗体 Font.Width  指定字体的宽度 按数据窗口对象中定义的单位计量 该属性通常不需指定 它将根据其它属性的值得到缺省设置

 

转载请注明原文地址: https://www.6miu.com/read-5038972.html

最新回复(0)