sheet窗口。在窗口中设计一个tab控件,分2页。第1页是目录,在该页面上面设置查询条件:登记编号(Bh)、名称(cname)、出版社(publisher),设置按钮“查询”和“清除购齐”。在查询条件下设置数据窗口控件dw_ml,风格是grid,显示表ts_tszhd中的全部信息,只读。
第2页是登记表,设置数据窗口dw_detail,风格是freeform,显示表ts_tszhd中的全部信息。dw_ml和dw_detail共享数据窗口
在“清除购齐”按钮的clicked事件中把dw_ml(datawindow)中订购数量=已购数量的记录删除。
当窗口功能是“维护”时,可以查询,可以在dw_detail中修改和增加记录,可以在dw_ml中删除记录(一次可以删除多条),“清除购齐”按钮可见且有效。
怎么在datawindow里删除多条数据,怎么改datawindow里某个字段的值,他要数据共享,但是风格又不一样是不是调不同的datawindow风格啊
问题有点多 分数也比较少 应该刚刚接触这门语言 谢谢大家了
9 个解决方案
#1
1.删除多条记录用
dec ldc_1, ldc_2
for i = dw_ml.rowcount to 1 step -1
ldc_1 = dw_ml.getitemnumber(i, '订购数量')
ldc_2 = dw_ml.getitemnumber(i, '已购数量')
if ldc_1 = ldc_2 then
dw_ml.deleterow(i)
end if
next
2.改datawindow里某个字段的值
dw_ml.setitem(i, '字段', 值)
3.数据共享
dw_ml.sharedata(dw_detail)
风格不一样就建两个风格不一样的datawindow
dec ldc_1, ldc_2
for i = dw_ml.rowcount to 1 step -1
ldc_1 = dw_ml.getitemnumber(i, '订购数量')
ldc_2 = dw_ml.getitemnumber(i, '已购数量')
if ldc_1 = ldc_2 then
dw_ml.deleterow(i)
end if
next
2.改datawindow里某个字段的值
dw_ml.setitem(i, '字段', 值)
3.数据共享
dw_ml.sharedata(dw_detail)
风格不一样就建两个风格不一样的datawindow
#2
删除多条数据:
可在数据窗中加一列为checkbox,删除时做一个循环,判断checkbox列,选中的删除
修改datawindow里某个字段值
dw_ml.object.列名[当前行]=''
或
dw_ml.setitem(row,'列名',值)
可在数据窗中加一列为checkbox,删除时做一个循环,判断checkbox列,选中的删除
修改datawindow里某个字段值
dw_ml.object.列名[当前行]=''
或
dw_ml.setitem(row,'列名',值)
#3
删除多条记录是在datawindow的itemchanged里面做吗
怎么才能让他连续选中呢 按ctrl还是什么的
#4
你的删除不是放在按钮里的吗
#5
不是 是在datawindow里面右键菜单里有个删除
让用户连续选中 然后右键删除 对了 这个右键菜单也遇到困难了
那里放进来的
让用户连续选中 然后右键删除 对了 这个右键菜单也遇到困难了
那里放进来的
#6
多选在clicked里写,il_lastrow 是instance variable
Long ll_CurrentRow , ll_Circle
IF row <= 0 THEN RETURN
ll_CurrentRow = row
IF KeyDown(keyshift!) THEN
IF il_LastRow = 0 THEN
This.SelectRow(ll_CurrentRow , True)
il_LastRow = ll_CurrentRow
ELSE
This.SelectRow(0 , False)
IF ll_CurrentRow > il_LastRow THEN
FOR ll_Circle = il_LastRow To ll_CurrentRow
This.SelectRow(ll_Circle , True)
NEXT
ELSE
FOR ll_Circle = il_LastRow To ll_CurrentRow Step -1
This.SelectRow(ll_Circle , True)
NEXT
END IF
END IF
ELSE
il_LastRow = ll_CurrentRow
IF KeyDown(keycontrol!) THEN
This.SelectRow(ll_CurrentRow , Not This.IsSelected(ll_CurrentRow))
ELSE
IF This.IsSelected(ll_CurrentRow) = True THEN
il_LastRow = ll_CurrentRow
ELSE
This.SelectRow(0 , False)
This.SelectRow(ll_CurrentRow , True)
il_LastRow = ll_CurrentRow
END IF
END IF
END IF
删除选中行
FOR i = dw_ml.RowCount To 1 Step -1
IF dwcontrol.IsSelected ( i ) THEN
dw_ml.DeleteRow(i)
END IF
NEXT
右键菜单写在rbuttondown里,用popmenu显示菜单
Long ll_CurrentRow , ll_Circle
IF row <= 0 THEN RETURN
ll_CurrentRow = row
IF KeyDown(keyshift!) THEN
IF il_LastRow = 0 THEN
This.SelectRow(ll_CurrentRow , True)
il_LastRow = ll_CurrentRow
ELSE
This.SelectRow(0 , False)
IF ll_CurrentRow > il_LastRow THEN
FOR ll_Circle = il_LastRow To ll_CurrentRow
This.SelectRow(ll_Circle , True)
NEXT
ELSE
FOR ll_Circle = il_LastRow To ll_CurrentRow Step -1
This.SelectRow(ll_Circle , True)
NEXT
END IF
END IF
ELSE
il_LastRow = ll_CurrentRow
IF KeyDown(keycontrol!) THEN
This.SelectRow(ll_CurrentRow , Not This.IsSelected(ll_CurrentRow))
ELSE
IF This.IsSelected(ll_CurrentRow) = True THEN
il_LastRow = ll_CurrentRow
ELSE
This.SelectRow(0 , False)
This.SelectRow(ll_CurrentRow , True)
il_LastRow = ll_CurrentRow
END IF
END IF
END IF
删除选中行
FOR i = dw_ml.RowCount To 1 Step -1
IF dwcontrol.IsSelected ( i ) THEN
dw_ml.DeleteRow(i)
END IF
NEXT
右键菜单写在rbuttondown里,用popmenu显示菜单
#7
哇 厉害 好的 我试试哈
#8
选取多行的话应该还考虑shift ctrl
string ls_KeyDownType
If rrow <= 0 then Return 0
If Keydown(KeyShift!) then
integer li_Idx
al_aclickedrow=rrow
this.setredraw(false)
this.selectrow(0,false)
If il_lastclickedrow = 0 then
this.setredraw(true)
Return 1
end if
if il_lastclickedrow > al_aclickedrow then
For li_Idx = il_lastclickedrow to al_aclickedrow STEP -1
this.selectrow(li_Idx,TRUE)
end for
else
For li_Idx = il_lastclickedrow to al_aclickedrow
this.selectrow(li_Idx,TRUE)
next
end if
this.setredraw(true)
Return 1
////////////////
ElseIf this.IsSelected(rrow) Then
il_LastClickedRow = rrow
ib_action_on_buttonup = true
ElseIf Keydown(KeyControl!) then
il_LastClickedRow = rrow
this.SelectRow(rrow,TRUE)
Else
il_LastClickedRow = rrow
this.SelectRow(0,FALSE)
this.SelectRow(rrow,TRUE)
End If
///////////////////
If ib_action_on_buttonup Then
ib_action_on_buttonup = false
If Keydown(KeyControl!) then
this.selectrow(il_lastclickedrow,FALSE)
Else
this.SelectRow(0,FALSE)
this.SelectRow(il_lastclickedrow,TRUE)
End If
il_lastclickedrow = 0
End If
string ls_KeyDownType
If rrow <= 0 then Return 0
If Keydown(KeyShift!) then
integer li_Idx
al_aclickedrow=rrow
this.setredraw(false)
this.selectrow(0,false)
If il_lastclickedrow = 0 then
this.setredraw(true)
Return 1
end if
if il_lastclickedrow > al_aclickedrow then
For li_Idx = il_lastclickedrow to al_aclickedrow STEP -1
this.selectrow(li_Idx,TRUE)
end for
else
For li_Idx = il_lastclickedrow to al_aclickedrow
this.selectrow(li_Idx,TRUE)
next
end if
this.setredraw(true)
Return 1
////////////////
ElseIf this.IsSelected(rrow) Then
il_LastClickedRow = rrow
ib_action_on_buttonup = true
ElseIf Keydown(KeyControl!) then
il_LastClickedRow = rrow
this.SelectRow(rrow,TRUE)
Else
il_LastClickedRow = rrow
this.SelectRow(0,FALSE)
this.SelectRow(rrow,TRUE)
End If
///////////////////
If ib_action_on_buttonup Then
ib_action_on_buttonup = false
If Keydown(KeyControl!) then
this.selectrow(il_lastclickedrow,FALSE)
Else
this.SelectRow(0,FALSE)
this.SelectRow(il_lastclickedrow,TRUE)
End If
il_lastclickedrow = 0
End If
#9
终于做出来了 谢谢大家的帮助哈 感激不尽 虽然分数很少 总之非常感谢大家了 呵呵
#1
1.删除多条记录用
dec ldc_1, ldc_2
for i = dw_ml.rowcount to 1 step -1
ldc_1 = dw_ml.getitemnumber(i, '订购数量')
ldc_2 = dw_ml.getitemnumber(i, '已购数量')
if ldc_1 = ldc_2 then
dw_ml.deleterow(i)
end if
next
2.改datawindow里某个字段的值
dw_ml.setitem(i, '字段', 值)
3.数据共享
dw_ml.sharedata(dw_detail)
风格不一样就建两个风格不一样的datawindow
dec ldc_1, ldc_2
for i = dw_ml.rowcount to 1 step -1
ldc_1 = dw_ml.getitemnumber(i, '订购数量')
ldc_2 = dw_ml.getitemnumber(i, '已购数量')
if ldc_1 = ldc_2 then
dw_ml.deleterow(i)
end if
next
2.改datawindow里某个字段的值
dw_ml.setitem(i, '字段', 值)
3.数据共享
dw_ml.sharedata(dw_detail)
风格不一样就建两个风格不一样的datawindow
#2
删除多条数据:
可在数据窗中加一列为checkbox,删除时做一个循环,判断checkbox列,选中的删除
修改datawindow里某个字段值
dw_ml.object.列名[当前行]=''
或
dw_ml.setitem(row,'列名',值)
可在数据窗中加一列为checkbox,删除时做一个循环,判断checkbox列,选中的删除
修改datawindow里某个字段值
dw_ml.object.列名[当前行]=''
或
dw_ml.setitem(row,'列名',值)
#3
删除多条记录是在datawindow的itemchanged里面做吗
怎么才能让他连续选中呢 按ctrl还是什么的
#4
你的删除不是放在按钮里的吗
#5
不是 是在datawindow里面右键菜单里有个删除
让用户连续选中 然后右键删除 对了 这个右键菜单也遇到困难了
那里放进来的
让用户连续选中 然后右键删除 对了 这个右键菜单也遇到困难了
那里放进来的
#6
多选在clicked里写,il_lastrow 是instance variable
Long ll_CurrentRow , ll_Circle
IF row <= 0 THEN RETURN
ll_CurrentRow = row
IF KeyDown(keyshift!) THEN
IF il_LastRow = 0 THEN
This.SelectRow(ll_CurrentRow , True)
il_LastRow = ll_CurrentRow
ELSE
This.SelectRow(0 , False)
IF ll_CurrentRow > il_LastRow THEN
FOR ll_Circle = il_LastRow To ll_CurrentRow
This.SelectRow(ll_Circle , True)
NEXT
ELSE
FOR ll_Circle = il_LastRow To ll_CurrentRow Step -1
This.SelectRow(ll_Circle , True)
NEXT
END IF
END IF
ELSE
il_LastRow = ll_CurrentRow
IF KeyDown(keycontrol!) THEN
This.SelectRow(ll_CurrentRow , Not This.IsSelected(ll_CurrentRow))
ELSE
IF This.IsSelected(ll_CurrentRow) = True THEN
il_LastRow = ll_CurrentRow
ELSE
This.SelectRow(0 , False)
This.SelectRow(ll_CurrentRow , True)
il_LastRow = ll_CurrentRow
END IF
END IF
END IF
删除选中行
FOR i = dw_ml.RowCount To 1 Step -1
IF dwcontrol.IsSelected ( i ) THEN
dw_ml.DeleteRow(i)
END IF
NEXT
右键菜单写在rbuttondown里,用popmenu显示菜单
Long ll_CurrentRow , ll_Circle
IF row <= 0 THEN RETURN
ll_CurrentRow = row
IF KeyDown(keyshift!) THEN
IF il_LastRow = 0 THEN
This.SelectRow(ll_CurrentRow , True)
il_LastRow = ll_CurrentRow
ELSE
This.SelectRow(0 , False)
IF ll_CurrentRow > il_LastRow THEN
FOR ll_Circle = il_LastRow To ll_CurrentRow
This.SelectRow(ll_Circle , True)
NEXT
ELSE
FOR ll_Circle = il_LastRow To ll_CurrentRow Step -1
This.SelectRow(ll_Circle , True)
NEXT
END IF
END IF
ELSE
il_LastRow = ll_CurrentRow
IF KeyDown(keycontrol!) THEN
This.SelectRow(ll_CurrentRow , Not This.IsSelected(ll_CurrentRow))
ELSE
IF This.IsSelected(ll_CurrentRow) = True THEN
il_LastRow = ll_CurrentRow
ELSE
This.SelectRow(0 , False)
This.SelectRow(ll_CurrentRow , True)
il_LastRow = ll_CurrentRow
END IF
END IF
END IF
删除选中行
FOR i = dw_ml.RowCount To 1 Step -1
IF dwcontrol.IsSelected ( i ) THEN
dw_ml.DeleteRow(i)
END IF
NEXT
右键菜单写在rbuttondown里,用popmenu显示菜单
#7
哇 厉害 好的 我试试哈
#8
选取多行的话应该还考虑shift ctrl
string ls_KeyDownType
If rrow <= 0 then Return 0
If Keydown(KeyShift!) then
integer li_Idx
al_aclickedrow=rrow
this.setredraw(false)
this.selectrow(0,false)
If il_lastclickedrow = 0 then
this.setredraw(true)
Return 1
end if
if il_lastclickedrow > al_aclickedrow then
For li_Idx = il_lastclickedrow to al_aclickedrow STEP -1
this.selectrow(li_Idx,TRUE)
end for
else
For li_Idx = il_lastclickedrow to al_aclickedrow
this.selectrow(li_Idx,TRUE)
next
end if
this.setredraw(true)
Return 1
////////////////
ElseIf this.IsSelected(rrow) Then
il_LastClickedRow = rrow
ib_action_on_buttonup = true
ElseIf Keydown(KeyControl!) then
il_LastClickedRow = rrow
this.SelectRow(rrow,TRUE)
Else
il_LastClickedRow = rrow
this.SelectRow(0,FALSE)
this.SelectRow(rrow,TRUE)
End If
///////////////////
If ib_action_on_buttonup Then
ib_action_on_buttonup = false
If Keydown(KeyControl!) then
this.selectrow(il_lastclickedrow,FALSE)
Else
this.SelectRow(0,FALSE)
this.SelectRow(il_lastclickedrow,TRUE)
End If
il_lastclickedrow = 0
End If
string ls_KeyDownType
If rrow <= 0 then Return 0
If Keydown(KeyShift!) then
integer li_Idx
al_aclickedrow=rrow
this.setredraw(false)
this.selectrow(0,false)
If il_lastclickedrow = 0 then
this.setredraw(true)
Return 1
end if
if il_lastclickedrow > al_aclickedrow then
For li_Idx = il_lastclickedrow to al_aclickedrow STEP -1
this.selectrow(li_Idx,TRUE)
end for
else
For li_Idx = il_lastclickedrow to al_aclickedrow
this.selectrow(li_Idx,TRUE)
next
end if
this.setredraw(true)
Return 1
////////////////
ElseIf this.IsSelected(rrow) Then
il_LastClickedRow = rrow
ib_action_on_buttonup = true
ElseIf Keydown(KeyControl!) then
il_LastClickedRow = rrow
this.SelectRow(rrow,TRUE)
Else
il_LastClickedRow = rrow
this.SelectRow(0,FALSE)
this.SelectRow(rrow,TRUE)
End If
///////////////////
If ib_action_on_buttonup Then
ib_action_on_buttonup = false
If Keydown(KeyControl!) then
this.selectrow(il_lastclickedrow,FALSE)
Else
this.SelectRow(0,FALSE)
this.SelectRow(il_lastclickedrow,TRUE)
End If
il_lastclickedrow = 0
End If
#9
终于做出来了 谢谢大家的帮助哈 感激不尽 虽然分数很少 总之非常感谢大家了 呵呵