📄 用于datawindow多表更新的通用函数.txt
字号:
用于Datawindow多表更新的通用函数(网友 mikor)
作者:mikor Email: mikor2001@263.net
平时大家在开发MIS系统是经常会遇到多表更新的问题。最近作者写了一个函数来解决这个问题。
函数声明:
wf_updatetable(string a_sztablename,string a_szkeyfields) returns boolean
其中参数a_sztablename是要更新的表名。
a_szkeyfields是要更新表的索引。多个索引之间用逗号隔开。
函数内容:
Integer nColumns, nCount
String szDBName, szTableName, szColumnName, szModify
nColumns = Integer( dw_1.Object.DataWindow.Column.Count)
a_szTableName = Lower( a_szTableName)
a_szKeyFields = Lower( a_szKeyFields)
For nCount = 1 To nColumns
szDBName = dw_1.Describe( "#" + String( nCount) + ".DBName")
szColumnName = dw_1.Describe( "#" + String( nCount) + ".Name")
szTableName = Lower( Left( szDBName, Pos( szDBName, ".") - 1))
If szTableName = a_szTableName Then
szModify = szColumnName + ".Update = Yes"
If Pos( a_szKeyFields, szColumnName) > 0 Then
szModify = szModify + " " + szColumnName + ".Key = Yes"
Else
szModify = szModify + " " + szColumnName + ".Key = No"
End If
Else
szModify = szColumnName + ".Update = No " + szColumnName + ".Key = No"
End If
If dw_1.Modify( szModify) <> "" Then
Return FALSE
End If
Next
dw_1.Object.DataWindow.Table.UpdateTable = a_szTableName
If dw_1.Update( TRUE, FALSE) > 0 Then
Return TRUE
Else
Return FALSE
End If
如我要更新sales_order_items表,这个表的索引是id和line_id.
wf_UpdateTable( "sales_order_items", "id,line_id")
这个函数还有待完善。我的水平有限,请大家原谅。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -