一、如何在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
来源:CSDN
原文: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
---------------------
作者:灰色轨迹
来源:CSDN
原文: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 指定字体的宽度 按数据窗口对象中定义的单位计量 该属性通常不需指定 它将根据其它属性的值得到缺省设置