📄 frmdlstageissuegoods.frm
字号:
'响应完全取消菜单
Private Sub chklist2_Click()
BalenceAll (1)
End Sub
Private Sub BalenceAll(Index As Integer)
Dim intCount As Integer, k As Integer, i As Integer
Dim xx As Double, zql As Double
i = intfixl
k = intfixl
'本循环找出本次收款及本次折扣所在的列
While (msgGrid.TextMatrix(0, i) <> "结算金额")
i = i + 1
Wend
While (msgGrid.TextMatrix(0, k) <> "结算数量")
k = k + 1
Wend
ytextRow = 1
If Index = 0 Then
'响应完全结算菜单
While ytextRow < msgGrid.Rows
'打√情况
msgGrid.TextMatrix(ytextRow, 1) = "√"
xx = getnumber(ytextRow, 11) - getnumber(ytextRow, i)
msgGrid.TextMatrix(ytextRow, i) = CStr(getnumber(ytextRow, i) + xx)
hLb(i).Caption = CStr(CDbl(IIf(Len(hLb(i).Caption) = 0, "0", hLb(i).Caption)) + xx)
msgGrid.TextMatrix(ytextRow, k) = msgGrid.TextMatrix(ytextRow, 12)
ytextRow = ytextRow + 1
Wend
Else
'响应完全取消菜单
While ytextRow < msgGrid.Rows
' If getnumber(ytextRow, 8) = 0 Then
msgGrid.TextMatrix(ytextRow, 1) = "" '取消打√(核销)情况
' Else
' msgGrid.TextMatrix(ytextRow, 1) = "√"
' End If
'+ getnumber(ytextRow, 8)
hLb(i).Caption = CStr(CDbl(hLb(i).Caption) - getnumber(ytextRow, i))
msgGrid.TextMatrix(ytextRow, k) = ""
'msgGrid.TextMatrix(ytextRow, 10)
msgGrid.TextMatrix(ytextRow, i) = ""
'msgGrid.TextMatrix(ytextRow, 8)
ytextRow = ytextRow + 1
Wend
End If
End Sub
'不存盘返回
Private Sub CancelGrid()
Unload Me
End Sub
'从对应视图取SQL语句并打开、初始化之
Private Sub GetList()
Dim sqlselect As String, strSql As String, strSelect As String, str As String
Dim strWhere As String, pbsql As String, strFrom As String
Dim recRecordset As rdoResultset, intCount As Integer
Dim q2 As QueryDef
' On Error GoTo Err
mclsGrid.ListSet.ViewId = intViewID
'//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
'// 取本次结算金额、本次结算数量算法(连接对照表的方法): //
'// '首先:因为本次结算金额、本次结算数量是针对本次单据业务ID的;所以,可通过ItemActivity表的lngItemActivityID字段 //
'// '和ItemActivityDetail表的lngItemActivityID字段将此二表连接起来;再通过ItemActivityDetail表的lngItemActivityDetailID字段 //
'// '和StageToSale表的lngSaleActivityDetailID字段将此二表连接起来;这样一来表ItemActivity、ItemActivityDetail和StageToSale就被有机连接起来了。 //
'// '再用ItemActivity中的lngItemActivityID作为取本次结算金额、本次结算数量记录的条件。把单据中取过来的单据业务ID作为参数传给lngItemActivityID //
'// '就得到了所有取本次结算金额、本次结算数量的记录(取StageToSale表的全部字段)。 //
'// '然后:将上面生成的查询作为一个查询表(取别名StageToSale)再同表ItemActivityDetail连接回去就得到了我们需要的结果。连接方法是 //
'// '通过ItemActivityDetail表的lngItemActivityDetailID字段和StageToSale表的lngStageActivityDetailID字段将二表连接起来。 //
'// '结束 //
'//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
With msgGrid
.Redraw = False
.FixedCols = 0
End With
strWhere = ""
str = ""
strSql = ""
strFrom = ""
pbsql = ""
With mclsGrid.ListSet
strFrom = .FromOfSql
pbsql = .SelectOfSql
strWhere = .WhereOfSql
End With
str = " Where (((ItemActivity.lngCustomerID)=[CustomerID]) AND ((ItemActivity.lngCurrencyID)=[CurrencyID]) AND ((ItemActivity.lngActivityTypeID) In (16)) AND ([ItemActivityDetail ].[dblCurrAmount]+[dblCurrTaxAmount]-[ItemActivityDetail ].[dblCurrSettlementAmount]+Iif(IsNull([ItemActivityDetail].[dblCurrAmount]),0,[ItemActivityDetail].[dblCurrAmount]))<>0)"
If Len(Trim(strWhere)) >= 1 Then str = str & "AND" & " ( " & strWhere & ")"
If Len(Trim(strWorkID)) > 4 Then
str = str & " OR ( ItemActivityDetail.lngOrderDetailID IN " & strWorkID & ")"
End If
strSql = strFrom & str
' sqlselect = " Select ItemActivityDetail.lngActivityDetailID As 业务ID, iif((IIf(IsNull([StageToSale].[dblCurrAmount]),0,[StageToSale].[dblCurrAmount]))<>0,'√','') As 结算," _
& " '' AS 行号,0 AS 优惠日2,0 AS 优惠日3,0 AS 折扣率1,0 AS 折扣率2,0 AS 折扣率3,(IIf(IsNull(StageToSale.dblCurrAmount),0,StageToSale.dblCurrAmount)) AS 原结算金额," _
& " 0 AS 原结算折扣,iif(isnull([StageToSale].[dblQuantity]),' ',Trim(Str([StageToSale].[dblQuantity]\[ItemUnit].[dblFactor]))+'.'+String(Len(Trim(Str([ItemUnit].[dblFactor])))-Len(Trim(Str([StageToSale].[dblQuantity] Mod " _
& " [ItemUnit].[dblFactor]))),'0')+Trim(Str([StageToSale].[dblQuantity] Mod [ItemUnit].[dblFactor]))) AS 原结算数量,([ItemActivityDetail ].[dblCurrAmount]+[dblCurrTaxAmount]-" _
& " [ItemActivityDetail ].[dblCurrSettlementAmount]+Iif(IsNull([StageToSale].[dblCurrAmount]),0,[StageToSale].[dblCurrAmount])) AS 原未结金额,Trim(Str(([ItemActivityDetail].[dblQuantity]-" _
& " [ItemActivityDetail].[dblSettlementQuantity]+Iif(IsNull([StageToSale].[dblQuantity]),0,[StageToSale].[dblQuantity]))\[ItemUnit].[dblFactor]))+'.'+String(Len(Trim(Str([ItemUnit].[dblFactor])))-" _
& " Len(Trim(Str(([ItemActivityDetail].[dblQuantity]-[ItemActivityDetail].[dblSettlementQuantity]+Iif(IsNull([StageToSale].[dblQuantity]),0,[StageToSale].[dblQuantity])) Mod [ItemUnit].[dblFactor]))),'0')+ "
' str = " Trim(Str(([ItemActivityDetail].[dblQuantity]-[ItemActivityDetail].[dblSettlementQuantity]+Iif(IsNull([StageToSale].[dblQuantity]),0,[StageToSale].[dblQuantity])) Mod [ItemUnit].[dblFactor])) AS 原未结数量," _
& " ItemActivity.lngActivityTypeID AS 类型ID, ItemActivityDetail.strProduceDate As 15,ItemActivityDetail.strValidDate As 16,ItemActivityDetail.lngItemID As 17,ItemActivityDetail.lngUnitID As 18,100.00 As 19,dblCurrPrice*dblFactor As 20," _
& " ItemActivityDetail.lngTaxID As 21,ItemActivityDetail.lngJobID As 22,ItemActivityDetail.lngCustomID0 As 23,ItemActivityDetail.lngCustomID1 As 24,ItemActivityDetail.lngCustomID2 As 25,ItemActivityDetail.lngCustomID3 As 26," _
& " ItemActivityDetail.lngCustomID4 As 27,ItemActivityDetail.lngCustomID5 As 28,dblFactor As 29,(strItemCode & ' ' & strItemName & ' ' & strItemStyle) As 30,strUnitName As 31,strTaxName As 32,Item.lngPositionID As 33," _
& " strPositionName As 34,strJobName As 35,Custom0.strCustomName As 36,Custom1.strCustomName As 37,Custom2.strCustomName As 38,Custom3.strCustomName As 39,Custom4.strCustomName As 40,Custom5.strCustomName As 41," _
& " [ItemActivityDetail].[strProduceNum] As 42,ItemActivityDetail.intValidDay As 43,ItemActivityDetail.dblQuantity As 44,([ItemActivityDetail ].[dblCurrAmount]+[ItemActivityDetail].[dblCurrTaxAmount]) As 45," & pbsql
sqlselect = " Select ItemActivityDetail.lngActivityDetailID As 业务ID, iif((IIf(IsNull([ItemActivityDetail].[dblCurrAmount]),0,[ItemActivityDetail].[dblCurrAmount]))<>0,'√','') As 结算," _
& " '' AS 行号,0 AS 优惠日2,0 AS 优惠日3,0 AS 折扣率1,0 AS 折扣率2,0 AS 折扣率3,(IIf(IsNull(ItemActivityDetail.dblCurrAmount),0,ItemActivityDetail.dblCurrAmount)) AS 原结算金额," _
& " 0 AS 原结算折扣,iif(isnull([ItemActivityDetail].[dblQuantity]),' ',Trim(Str([ItemActivityDetail].[dblQuantity]\[ItemUnit].[dblFactor]))+'.'+String(Len(Trim(Str([ItemUnit].[dblFactor])))-Len(Trim(Str([ItemActivityDetail].[dblQuantity] Mod " _
& " [ItemUnit].[dblFactor]))),'0')+Trim(Str([ItemActivityDetail].[dblQuantity] Mod [ItemUnit].[dblFactor]))) AS 原结算数量,([ItemActivityDetail ].[dblCurrAmount]+[dblCurrTaxAmount]-" _
& " [ItemActivityDetail ].[dblCurrSettlementAmount]+Iif(IsNull([ItemActivityDetail].[dblCurrAmount]),0,[ItemActivityDetail].[dblCurrAmount])) AS 原未结金额,Trim(Str(([ItemActivityDetail].[dblQuantity]-" _
& " [ItemActivityDetail].[dblSettlementQuantity]+Iif(IsNull([ItemActivityDetail].[dblQuantity]),0,[ItemActivityDetail].[dblQuantity]))\[ItemUnit].[dblFactor]))+'.'+String(Len(Trim(Str([ItemUnit].[dblFactor])))-" _
& " Len(Trim(Str(([ItemActivityDetail].[dblQuantity]-[ItemActivityDetail].[dblSettlementQuantity]+Iif(IsNull([ItemActivityDetail].[dblQuantity]),0,[ItemActivityDetail].[dblQuantity])) Mod [ItemUnit].[dblFactor]))),'0')+ "
str = " Trim(Str(([ItemActivityDetail].[dblQuantity]-[ItemActivityDetail].[dblSettlementQuantity]+Iif(IsNull([ItemActivityDetail].[dblQuantity]),0,[ItemActivityDetail].[dblQuantity])) Mod [ItemUnit].[dblFactor])) AS 原未结数量," _
& " ItemActivity.lngActivityTypeID AS 类型ID, ItemActivityDetail.strProduceDate As 15,ItemActivityDetail.strValidDate As 16,ItemActivityDetail.lngItemID As 17,ItemActivityDetail.lngUnitID As 18,100.00 As 19,dblCurrPrice*dblFactor As 20," _
& " ItemActivityDetail.lngTaxID As 21,ItemActivityDetail.lngJobID As 22,ItemActivityDetail.lngCustomID0 As 23,ItemActivityDetail.lngCustomID1 As 24,ItemActivityDetail.lngCustomID2 As 25,ItemActivityDetail.lngCustomID3 As 26," _
& " ItemActivityDetail.lngCustomID4 As 27,ItemActivityDetail.lngCustomID5 As 28,dblFactor As 29,(strItemCode & ' ' & strItemName & ' ' & strItemStyle) As 30,strUnitName As 31,strTaxName As 32,Item.lngPositionID As 33," _
& " strPositionName As 34,strJobName As 35,Custom0.strCustomName As 36,Custom1.strCustomName As 37,Custom2.strCustomName As 38,Custom3.strCustomName As 39,Custom4.strCustomName As 40,Custom5.strCustomName As 41," _
& " [ItemActivityDetail].[strProduceNum] As 42,ItemActivityDetail.intValidDay As 43,ItemActivityDetail.dblQuantity As 44,([ItemActivityDetail ].[dblCurrAmount]+[ItemActivityDetail].[dblCurrTaxAmount]) As 45," & pbsql
sqlselect = sqlselect & str
strSql = sqlselect & strSql
Set q2 = gclsBase.BaseDB.CreateQueryDef("", strSql)
q2.Parameters("DetailID") = DetailID
q2.Parameters("CustomerID") = CustomerID
q2.Parameters("CurrencyID") = CurrencyID
Set recRecordset = q2.OpenRecordset(dbOpenSnapshot)
'Set Datahl.Recordset = recRecordset
'列表是否为空
If recRecordset.RowCount = 0 Then
msgGrid.HighLight = flexHighlightNever
' ShowMsg me.hwnd, "该分期发出商品资料结算单无对应分期发出商品资料资料", MB_SYSTEMMODAL + MB_ICONEXCLAMATION, msgcaption
isinit = False
Else
recRecordset.MoveLast
recRecordset.MoveFirst
End If
Set Datahl.Recordset = recRecordset
msgGrid.HighLight = flexHighlightAlways
If isinit = True Then
Set mlhls = recRecordset
inittext
isinit = False
End If
recRecordset.Close
With msgGrid
.SelectionMode = flexSelectionFree
.FocusRect = flexFocusNone
.ColWidth(0) = 0
.ColWidth(1) = 488
' .FixedCols = intfixl
intCount = 2
While intCount <= 44
.ColWidth(intCount) = 0
intCount = intCount + 1
Wend
.Redraw = True
End With
Exit Sub
Err:
ShowMsg Me.hwnd, "分期发出商品资料初始化失败", MB_SYSTEMMODAL + MB_ICONEXCLAMATION, "分期发出商品"
End Sub
'初始化各text框中数据
Private Sub inittext()
Dim intCount As Integer, dx As Double, dz As Double
Dim wjje As Double, yjje As Double, l As Integer, n As Integer
Dim recRecordset As rdoResultset
dx = 0
dz = 0
Set Datahl.Recordset = mlhls
mlhls.MoveFirst
For intCount = 1 To mlhls.RowCount
wjje = C2Dbl(mlhls.rdoColumns("未结金额"))
yjje = C2Dbl(IIf(IsNull(mlhls.rdoColumns("结算金额")), 0, mlhls.rdoColumns("结算金额")))
dx = dx + wjje
dz = dz + yjje
mlhls.MoveNext
Next intCount
l = intfixl
n = l
While (msgGrid.TextMatrix(0, l) <> "结算金额")
l = l + 1
Wend
While (msgGrid.TextMatrix(0, n) <> "未结金额")
n = n + 1
Wend
hLb(n).Caption = CStr(dx)
hLb(l).Caption = CStr(dz)
hLb(l).Refresh
hLb(n).Refresh
End Sub
'结算内容筛选
Private Sub FilterData()
Dim i As Integer
'If msgGrid.Rows > 1 Then
i = 1
strWorkID = ""
Do While i < msgGrid.Rows
If msgGrid.TextMatrix(i, 1) = "√" Then
If Len(strWorkID) > 0 Then
strWorkID = strWorkID & "," & CStr(getnumber(i, 0))
Else
strWorkID = CStr(getnumber(i, 0))
End If
End If
i = i + 1
Loop
strWorkID = "( " & strWorkID & " )"
If mclsGrid.ListSet.ListID < 1 Then
mclsGrid.ListSet.SaveList
End If
Filter.ShowFilter mclsGrid.ListSet.ListID, 1
If msgGrid.Rows > 1 Then
If ShowMsg(Me.hwnd, "筛选操作后,你刚刚做的结算将被取消,需要先存盘吗", MB_YESNO + MB_ICONQUESTION + MB_DEFBUTTON2 + MB_SYSTEMMODAL, "分期发出商品") = IDYES Then
SaveData (0)
End If
End If
mclsGrid.ListSet.SaveList
mclsGrid.ColOfs = intfixl
isinit = True
GetList
mclsGrid.SetupStyle
'End If
End Sub
'存盘
Private Sub SaveData(kkk As Integer) '存盘
Dim i As Integer, j As Integer, temp As Double, strSql As String, GoodsID As Long, dblsl As Double
Dim l As Integer, n As Integer, slh As String, intCount As Integer, k As Integer, dblje As Double
Dim blnColse As Boolean, ActID As Long, dblhl As Double
'On Error GoTo Err
i = 1
'MousePointer = vbHourglass
l = intfixl
n = intfixl
GoodsID = 0
If msgGrid.Rows > 1 Then
msgGrid.col = 16
msgGrid.ColSel = 16
msgGrid.Row = 1
msgGrid.RowSel = 1
msgGrid.Sort = 3
End If
While (msgGrid.TextMatrix(0, l) <> "结算金额")
l = l + 1
Wend
While (msgGrid.TextMatrix(0, n) <> "结算数量")
n = n + 1
Wend
intCount = mfrmToFormname.grdCol.Rows
If mfrmToFormname.grdCol.Rows < 2 Then
mfrmToFormname.InsertARow
'False
intCount = intCount + 1
End If
j = 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -