📄 frmadjustcost2.frm
字号:
recDetail.Close
End If
Me.MousePointer = vbDefault
Exit Function
ErrorHandle:
gclsBase.BaseWorkSpace.RollBack
Dim edtBill As ErrDealType
clsBill.lngNowID = 0
For i = 1 To grdCol.Rows - 1
grdCol.TextMatrix(i, 0) = 0
Next i
edtBill = Errors.ErrorsDeal
ShowMsg Me.hwnd, "单据保存失败! ", MB_ICONEXCLAMATION + MB_SYSTEMMODAL, "保存单据"
If edtBill = edtResume Then
Resume EndProc
End If
If edtBill = edtCanNotKnown Then
Resume EndProc
End If
If edtBill = edtCanNotResume Then
Resume EndProc
End If
If edtBill = edtResumeNext Then
Resume EndProc
End If
Resume EndProc
End Function
Private Function SaveModifyBill(ByVal lngOldActivityID As Long) As Boolean
Dim recActivity As Recordset
Dim recDetail As Recordset
Dim dtmDate1 As Date
Dim strAlpha As String
Dim lngDigit As Long
Dim i As Integer
Dim blnDelete As Boolean
' On Error GoTo ErrorHandle
Dim recTemp As Recordset
'制单日合法性校验
If gclsBase.PeriodClosed(lblField(2).Caption) Then
ShowMsg Me.hwnd, "制单日不能在已结帐期间内!", MB_ICONEXCLAMATION + MB_OK + MB_SYSTEMMODAL, "保存单据"
lblField(2).Caption = Format(gclsBase.BaseDate, "yyyy-mm-dd")
SaveModifyBill = False
Exit Function
End If
If clsBill.blnIsChanged = False Then
SaveModifyBill = True
Exit Function
Else
SaveModifyBill = False
End If
' If clsBill.DataValid() = False Then
' Exit Function
' End If
Me.MousePointer = vbHourglass
gclsBase.BaseWorkSpace.BeginTrans
'修改商品业务表
Set recActivity = gclsBase.BaseDB.OpenRecordset( _
"SELECT * FROM itemActivity " & _
"where lngActivityID=" & lngOldActivityID, _
dbOpenDynaset)
If recActivity.RecordCount = 0 Then
gclsBase.BaseWorkSpace.RollBack
GoTo EndProc
End If
With recActivity
.MoveFirst
.Edit
SaveActivity recActivity
'取出重用信息
dtmDate1 = !strDate
strAlpha = !strReceiptNo
lngDigit = !lngReceiptNo
.Update
End With
clsBill.intAccountYear = gclsBase.FYearOfDate(dtmDate1) '会计年度
clsBill.bytAccountPeriod = gclsBase.PeriodOfDate(dtmDate1) '会计期间
'修改最大编号表
If blnModifyMaxNO(clsBill.intAccountYear, clsBill.bytAccountPeriod, _
C2Lng(lblHead(3 - 1).Tag), strAlpha, CStr(lngDigit)) = False Then
gclsBase.BaseWorkSpace.RollBack
GoTo EndProc
End If
'修改商品业务明细表
Set recDetail = gclsBase.BaseDB.OpenRecordset( _
"SELECT * FROM ItemActivityDetail " & _
" WHERE lngActivityID=" & lngOldActivityID, _
dbOpenDynaset)
With recDetail
.MoveFirst
Do While .RecordCount > 0 And (Not .EOF)
blnDelete = True
For i = 1 To grdCol.Rows - 1
If grdCol.TextMatrix(i, 0) = !lngActivityDetailID Then
blnDelete = False
Exit For
End If
Next i
If blnDelete Then
' If clsBill.DeletePositionInfo(!lngActivityDetailID) = False Then
' gclsBase.BaseWorkSpace.Rollback
' GoTo Endproc
' End If
.Delete
.MovePrevious
Else
.MoveNext
End If
Loop
For i = 1 To grdCol.Rows - 1
If clsBill.blnNotNullRow(i) Then
If grdCol.TextMatrix(i, 0) = "" Or grdCol.TextMatrix(i, 0) = "0" Then
.AddNew
!lngActivityID = lngOldActivityID
grdCol.TextMatrix(i, 0) = !lngActivityDetailID
Else
.FindFirst "lngActivityDetailID = " & C2Lng(grdCol.TextMatrix(i, 0))
If .NoMatch Then
gclsBase.BaseWorkSpace.RollBack
ShowMsg Me.hwnd, "保存单据失败! ", MB_ICONEXCLAMATION + MB_SYSTEMMODAL, "保存单据"
GoTo EndProc
Else
.Edit
End If
End If
SaveActivityDetailBody recDetail, i
.Update
End If
Next i
End With
gclsBase.BaseWorkSpace.CommitTrans
clsBill.blnIsChanged = False
gclsSys.SendMessage Me.hwnd, 30 + C2Lng(lblHead(2).Tag)
SaveModifyBill = True
EndProc:
If Not recActivity Is Nothing Then
recActivity.Close
End If
If Not recDetail Is Nothing Then
recDetail.Close
End If
Me.MousePointer = vbDefault
Exit Function
ErrorHandle:
gclsBase.BaseWorkSpace.RollBack
Dim edtBill As ErrDealType
edtBill = Errors.ErrorsDeal
ShowMsg Me.hwnd, "单据保存失败! ", MB_ICONEXCLAMATION + MB_SYSTEMMODAL, "保存单据"
If edtBill = edtResume Then
Resume EndProc
End If
If edtBill = edtCanNotKnown Then
Resume EndProc
End If
If edtBill = edtCanNotResume Then
Resume EndProc
End If
If edtBill = edtResumeNext Then
Resume EndProc
End If
Resume EndProc
End Function
Private Sub LoadBill(ByVal lngOldActivityID As Long)
Dim recActivity As Recordset
Dim recDetail As Recordset
Dim i As Integer
Dim strSql As String
Dim recTemp As Recordset
' On Error GoTo ErrorHandle
Me.MousePointer = vbHourglass
strSql = "SELECT * FROM ItemActivity WHERE lngActivityID=" & lngOldActivityID
Set recActivity = gclsBase.BaseDB.OpenRecordset(strSql, dbOpenSnapshot)
If recActivity Is Nothing Then
GoTo EndProc
End If
If recActivity.RecordCount = 0 Then
GoTo EndProc
End If
With recActivity
.MoveFirst
lblHead(0).Tag = !lngCustomerID
lblHead_Change 1
Dim lngTmp As Long
Dim strTmp As String
lngTmp = IIf(IsNull(!lngTemplateID), 0, !lngTemplateID)
blnTemplateIsUsed C2Lng(lblHead(2).Tag), lngTmp, strTmp
lblHead(4).Tag = lngTmp
clsBill.blnChangeEvent = False
chkPrint(0).Value = IIf(!blnIsPrint, 1, 0)
chkPrint(1).Value = IIf(!blnIsVoid, 1, 0)
clsBill.blnChangeEvent = True
If !blnIsVoid Then
chkPrint(1).Enabled = False
Else
chkPrint(1).Enabled = True
End If
lblmemo(3).Tag = !lngOperatorID
lblmemo(1).Caption = !strNote
clsBill.setFieldID 0, !lngCustomerID
lblField(1).Caption = !strReceiptNo & " " & Format(!lngReceiptNo, "0000")
lblField(2).Caption = !strDate
clsBill.setFieldID 3, !lngEmployeeID
clsBill.setFieldID 4, !lngDepartmentID
clsBill.setFieldID 7, !lngClassID2
clsBill.setFieldID 8, !lngClassID1
Dim intCurDec As Integer
Dim intRateDec As Integer
CurRateDec !lngCurrencyID, intCurDec, intRateDec
clsBill.strCurDec = FormatString(intCurDec)
clsBill.intCurDecS = intCurDec
clsBill.strRateDec = FormatString(intRateDec)
clsBill.intRateDecS = intRateDec
lblField(5).Caption = Format(!dblRate, FormatString(intRateDec))
clsBill.setFieldID 6, !lngCurrencyID
clsBill.intAccountYear = gclsBase.FYearOfDate(!strDate) '会计年度
clsBill.bytAccountPeriod = gclsBase.PeriodOfDate(!strDate) '会计期间
End With
' strSQL = "" & lngOldActivityID
'strSql = "SELECT ItemActivityDetail.lngActivityID AS 业务明细ID, " _
'& "Item.strItemCode+' '+Item.strItemName+' '+Item.strItemStyle AS 商品编码名称及规格," _
'& "ItemUnit.strUnitName AS 计量单位,ItemActivityDetail.dblQuantity AS 调价数量, " _
'& "ItemActivityDetail.dblCurrPrice AS 原币原价, ' ' AS 本币原价, ' ' AS 原币现价, ' ' AS 本币现价, " _
'& "ItemActivityDetail.dblCurrAmount AS 原币调价金额, ItemActivityDetail.dblAmount AS 本币调价金额, " _
'& "Tax.strTaxName AS 税率, ItemActivityDetail.dblCurrTaxAmount AS 原币调价税额, ItemActivityDetail.dblTaxAmount " _
'& "AS 本币调价税额, JOb.strJobCode+' '+JOb.strJobName AS 工程, Custom0.strCustomCode+' '+Custom0.strCustomName " _
'& "AS 自定义项目1, Custom1.strCustomCode+' '+Custom1.strCustomName AS 自定义项目2, " _
'& "Custom2.strCustomCode+' '+Custom2.strCustomName AS 自定义项目3, Custom3.strCustomCode+' '+" _
'& "Custom3.strCustomName AS 自定义项目4, Custom4.strCustomCode+' '+Custom4.strCustomName AS 自定义项目5,"
strSql = "SELECT ItemActivityDetail.lngActivityDetailID AS 业务明细ID, " _
& "Item.strItemCode+' '+Item.strItemName+' '+Item.strItemStyle AS 商品编码名称及规格," _
& "IIF(ISNULL(ItemUnit.strUnitName),'',ItemUnit.strUnitName) AS 计量单位,ItemActivityDetail.dblQuantity AS 调价数量, " _
& "ItemActivityDetail.dblCurrPrice AS 原币原价, ' ' AS 本币原价, ' ' AS 原币含税原价, ' ' AS 本币含税原价,ItemActivityDetail.dblCurrNewPrice AS 原币现价," _
& "' ' AS 本币现价, ' ' AS 原币含税现价, ' ' AS 本币含税现价, ItemActivityDetail.dblCurrAmount AS 原币调价金额, " _
& "ItemActivityDetail.dblAmount AS 本币调价金额, ' ' AS 原币含税调价金额, ' ' AS 本币含税调价金额," _
& "Tax.strTaxName AS 税率, ItemActivityDetail.dblCurrTaxAmount AS 原币调价税额, " _
& "ItemActivityDetail.dblTaxAmount AS 本币调价税额, IIF(ISNULL(JOb.strJobCode+' '+JOb.strJobName),'',JOb.strJobCode+' '+JOb.strJobName) AS 工程, " _
& "IIF(ISNULL(Custom0.strCustomCode+' '+Custom0.strCustomName),'',Custom0.strCustomCode+' '+Custom0.strCustomName) AS 自定义项目1, IIF(ISNULL(Custom1.strCustomCode+' '+Custom1.strCustomName),'',Custom1.strCustomCode+' '+Custom1.strCustomName) " _
& "AS 自定义项目2, IIF(ISNULL(Custom2.strCustomCode+' '+Custom2.strCustomName),'',Custom2.strCustomCode+' '+Custom2.strCustomName) AS 自定义项目3, " _
& "IIF(ISNULL(Custom3.strCustomCode+' '+Custom3.strCustomName),'',Custom3.strCustomCode+' '+Custom3.strCustomName) AS 自定义项目4, IIF(ISNULL(Custom4.strCustomCode+' '+Custom4.strCustomName),'',Custom4.strCustomCode+' '+Custom4.strCustomName) AS 自定义项目5, "
strSql = strSql & "IIF(ISNULL(Custom5.strCustomCode+' '+Custom5.strCustomName),'',Custom5.strCustomCode+' '+Custom5.strCustomName) AS 自定义项目6, ItemActivityDetail.lngItemID AS 商品ID, " _
& "ItemActivityDetail.lngUnitID AS 计量单位ID, ItemActivityDetail.lngTaxID AS 税率ID, ItemActivityDetail.lngJobID " _
& "AS 工程ID,ItemActivityDetail.lngCustomID0 AS 自定义项目1ID, ItemActivityDetail.lngCustomID1 " _
& "AS 自定义项目2ID,ItemActivityDetail.lngCustomID2 AS 自定义项目3ID,ItemActivityDetail.lngCustomID3 " _
& "AS 自定义项目4ID, ItemActivityDetail.lngCustomID4 AS 自定义项目5ID,ItemActivityDetail.lngCustomID5 AS 自定义项目6ID "
strSql = strSql & "FROM (((((((((ItemActivityDetail LEFT JOIN Item ON ItemActivityDetail.lngItemID = Item.lngItemID) " _
& "LEFT JOIN Tax ON ItemActivityDetail.lngTaxID = Tax.lngTaxID) LEFT JOIN JOb ON ItemActivityDetail.lngJobID = JOb.lngJobID) " _
& "LEFT JOIN Custom0 ON ItemActivityDetail.lngCustomID0 = Custom0.lngCustomID) LEFT JOIN Custom1 ON " _
& "ItemActivityDetail.lngCustomID1 = Custom1.lngCustomID) LEFT JOIN Custom2 ON " _
& "ItemActivityDetail.lngCustomID2 = Custom2.lngCustomID) LEFT JOIN Custom3 ON " _
& "ItemActivityDetail.lngCustomID3 = Custom3.lngCustomID) LEFT JOIN Custom4 ON " _
& "ItemActivityDetail.lngCustomID4 = Custom4.lngCustomID) LEFT JOIN Custom5 ON " _
& "ItemActivityDetail.lngCustomID5 = Custom5.lngCustomID) LEFT JOIN ItemUnit ON " _
& "ItemActivityDetail.lngUnitID = ItemUnit.lngUnitID "
strSql = strSql & "WHERE ItemActivityDetail.lngActivityID=" & lngOldActivityID & " ORDER BY ItemActivityDetail.lngrowid"
Set recDetail = gclsBase.BaseDB.OpenRecordset(strSql, dbOpenSnapshot)
If recDetail Is Nothing Then
grdCol.Rows = 1
' grdCol.Rows = 2
GoTo EndProc
End If
clsBill.setGrdAlign
If recDetail.RecordCount > 0 Then
recDetail.MoveLast
recDetail.MoveFirst
grdCol.Rows = recDetail.RecordCount + 1
Dim j As Long
For i = 1 To grdCol.Rows - 1
For j = 0 To grdCol.Cols - 2
grdCol.TextMatrix(i, j) = IIf(IsNull(recDetail.Fields(j)), "", recDetail.Fields(j))
Next
recDetail.MoveNext
Next
End If
recDetail.Close
clsBill.setAllItemproperty
'Grid数据调整
For i = 1 To grdCol.Rows - 1
Dim dblOldFactor As Double
Dim dblQuantity As Double
Dim dblCurPrice As Double
Dim dblCurOldPrice As Double
Dim dblCurAmount As Double
Dim dblRate As Double
Dim dblTax As Double
dblOldFactor = ConvertFactor(C2Lng(grdCol.TextMatrix(i, xlngColItemUnitID)), C2Lng(grdCol.TextMatrix(i, xlngColItemID)))
dblQuantity = C2Dbl(grdCol.TextMatrix(i, xlngColNumber))
'取汇率
If blnCurrencyInDirect(clsBill.getFieldID(6)) Then
dblRate = 1 / C2Dbl(lblField(5).Caption)
Else
dblRate = C2Dbl(lblField(5).Caption)
End If
dblTax = C2Dbl(grdCol.TextMatrix(i, xlngColTaxAmount)) / C2Dbl(grdCol.TextMatrix(i, xlngColAmount))
grdCol.TextMatrix(i, xlngColNumber) = DisplayData(Me.hwnd, NumberConvert(dblQuantity, dblOldFactor, False), dblOldFactor)
dblCurPrice = C2Dbl(grdCol.TextMatrix(i, xlngColCurPrice)) * dblOldFactor
dblCurOldPrice = C2Dbl(grdCol.TextMatrix(i, xlngColCurOldPrice)) * dblOldFactor
dblCurAmount = C2Dbl(grdCol.TextMatrix(i, xlngColCurAmount))
grdCol.TextMatrix(i, xlngColCurOldPrice) = dblCurOldPrice
grdCol.TextMatrix(i, xlngColOldPrice) = dblCurOldPrice * dblRate
grdCol.TextMatrix(i, xlngColCurOldPriceTax) = dblCurOldPrice * (1 + dblTax)
grdCol.TextMatrix(i, xlngColOldPriceTax) = dblCurOldPrice * (1 + dblTax) * dblRate
grdCol.TextMatrix(i, xlngColCurPrice) = dblCurPrice
grdCol.TextMatrix(i, xlngColPrice) = dblCurPrice * dblRate
grdCol.TextMatrix(i, xlngColCurPriceTax) = dblCurPrice * (1 + dblTax)
grdCol.TextMatrix(i, xlngColPriceTax) = dblCurPrice * (1 + dblTax) * dblRate
grdCol.TextMatrix(i, xlngColCurAmountTax) = dblCurAmount * (1 + dblTax)
grdCol.TextMatrix(i, xlngColAmountTax) = dblCurAmount * (1 + dblTax) * dblRate
Next
'写红字
For i = 1 To grdCol.Rows - 1
clsBill.WriteGrd grdCol.TextMatrix(i, xlngColNumber), i, xlngColNumber
clsBill.WriteGrd grdCol.TextMatrix(i, xlngColCurOldPrice), i, xlngColCurOldPrice
clsBill.WriteGrd grdCol.TextMatrix(i, xlngColOldPrice), i, xlngColOldPrice
clsBill.WriteGrd grdCol.TextMatrix(i, xlngColCurOldPriceTax), i, xlngColCurOldPriceTax
clsBill.WriteGrd grdCol.TextMatrix(i, xlngColOldPriceTax), i, xlngColOldPriceTax
clsBill.WriteGrd grdCol.TextMatrix(i, xlngColCurPrice), i, xlngColCurPrice
clsBill.WriteGrd grdCol.TextMatrix(i, xlngColPrice), i, xlngColPrice
clsBill.WriteGrd grdCol.TextMatrix(i,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -