📄 zl.txt
字号:
怎样在程序中为datawindow加计算域或line?
答:给个例子:
//以下程序加一计算域sum(dept_id for all)
string ls_modrow
dw_1.Modify("DataWindow.summary.Height=64")
ls_modrow = 'Create compute(band=summary font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" background.mode="1" background.color="536870912" color="0" x="9" y="4" height="52" width="297" format="[general]" expression="sum(dept_id for all)" alignment="1" border="0" crosstab.repeat=no )~r~n'
dw_1.modify( ls_modrow )
//以下程序加一条线
string ls_line
dw_1.Modify("DataWindow.detail.Height=332")
ls_line = 'Create line(band=detail background.mode="2" background.color="16777215" pen.style="0" pen.width="5" pen.color="0" x1="37" y1="320" x2="1458" y2="316" )~r~n'
dw_1.modify( ls_line )
dw_1.settransobject(sqlca)
dw_1.retrieve()
怎样在程序中构造 DropListBox 列表项
答:如要将数据表Brance中记录name字段插入DDLB:
1.建立一个数据窗口对象,如:DW_Brance
2.在窗口的OPEN中:
long i
datastore lds_0 //说明一个数据存储变量
lds_0=create datastore //创建数据存储实例
lds_0.dataobject="dw_Brance " //将部门编码数据对象赋给数据存储实例
lds_0.settransobject(SQLCA) //设置数据存储使用的事务对象
lds_0.retrieve() //读取数据
row0=lds_0.rowcount()//记录个数
for i=1 to row0
//插入ddlb新记录
ddlb_bm.insertitem(lds_0.object.name[i],i)
next
ddlb_bm.SELECTITEM(1)
//数组循环
li_arraybound = UpperBound(is_visiblecolumns)
For li_index = 1 to li_arraybound
If is_visiblecolumns[li_index] <> "" then
ls_dwselectstmt = ls_dwselectstmt + is_visiblecolumns[li_index]
If li_index <> li_arraybound then
ls_dwselectstmt = ls_dwselectstmt + ", "
End If
End If
next
string sql_select,ls_item
int i=1
dw_1.settransobject(sqlca)
// 将当前文件所有字段加到Dw_1第一列中
sql_select="select col_cname from jkcolumn where db_id="+string(db_id)+" and is_view=1 order by col_id asc"
prepare sqlsa from :sql_select;
DECLARE dyn_cursor DYNAMIC CURSOR FOR sqlsa;
OPEN DYNAMIC dyn_cursor;
do while sqlca.sqlcode=0
fetch dyn_cursor into :ls_item;
if sqlca.sqlcode=0 then
dw_1.setvalue("column_name",i,ls_item)
if i=1 then initial_item=ls_item
i++
end if
loop
close dyn_cursor;
return 1
id_userdw=message.powerobjectparm
if isvalid(id_userdw) then
li_colcount = integer(ID_USERDW.Object.DataWindow.Column.Count)
DataWindowChild ldw_child
dw_1.GetChild('s_field',ldw_child)
for i=1 to li_colcount
ls_column_english=trim(ID_USERDW.describe("#"+string(i)+'.name'))
ls_column_chinese=trim(ID_USERDW.describe(ls_column_english+'_t.text'))
if isnull(ls_column_chinese) or ls_column_chinese='!' then
ls_column_chinese=trim(ID_USERDW.describe(ls_column_english+'.tag'))
end if
ls_column_visible=ID_USERDW.describe(ls_column_english+'.visible')
ldw_child.insertrow(0)
ldw_child.setitem(ldw_child.rowcount(),1,ls_column_chinese)
ldw_child.setitem(ldw_child.rowcount(),2,ls_column_english)
end if
next
ls_dwobject=id_userdw.dataobject+id_userdw.title
dw_1.settransobject(sqlca)
for i=1 to 6
dw_1.insertrow(0)
next
end if
Choose Case dwo.Name
Case "filter_logic"
//修改:2002-06-10 21:32 增加"and data<>'' ---防止连续多次过滤时自动激活cb_add
If li_currow =This.RowCount() and data<>'' Then //最后一行,自动增加新条件
cb_add.Event clicked()
End If
String ls_colname,ls_logic
If dw_filter.GetRow()>0 Then
dw_filter.AcceptText()
ls_colname=dw_filter.GetItemString(dw_filter.GetRow(),'filter_colname')
ls_logic=dw_filter.GetItemString(dw_filter.GetRow(),'filter_logic')
If Len(ls_colname)=0 Or IsNull(ls_colname) Or Len(ls_logic)=0 Or IsNull(ls_logic) Then
MessageBox('系统提示','请完全输入当前查询条件的值')
dw_filter.SetFocus()
Return
End If
End If
dw_filter.InsertRow(0)
dw_filter.ScrollToRow(dw_filter.RowCount())
dw_filter.SetColumn("filter_colname")
dw_filter.SetFocus()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -