budgetcard.frm
来自「金算盘软件代码」· FRM 代码 · 共 1,590 行 · 第 1/5 页
FRM
1,590 行
strFrom = ""
strWhere = ""
'是否余额数
blnBalance(0) = False
blnBalance(1) = False
blnBalance(2) = False
'数据来源(1=业务单据,2=发生额表,3=采购订单,4=销售订单)
bytSource(0) = 1
bytSource(1) = 1
bytSource(2) = 1
If recBudget!bytType = 0 Then
strFrom = " AccountDaily DataDaily"
Else
'strFrom = "(ItemActivity DataDaily INNER JOIN ItemActivityDetail ON DataDaily.lngActivityID=ItemActivityDetail.lngActivityID)"
strFrom = " ItemActivity DataDaily,ItemActivityDetail"
strWhere = "(DataDaily.lngActivityID=ItemActivityDetail.lngActivityID)"
'strFromCM = "(ItemActivity DataDaily INNER JOIN ItemActivityDetail ON DataDaily.lngActivityID=ItemActivityDetail.lngActivityID)"
strFromCM = " ItemActivity DataDaily,ItemActivityDetail"
strWhereCM = "(DataDaily.lngActivityID=ItemActivityDetail.lngActivityID)"
'strFromPO = "(PurchaseOrder DataDaily INNER JOIN PurchaseOrderDetail ON DataDaily.lngPurchaseOrderID=PurchaseOrderDetail.lngPurchaseOrderID)"
strFromPO = " PurchaseOrder DataDaily,PurchaseOrderDetail"
strWherePO = "(DataDaily.lngPurchaseOrderID=PurchaseOrderDetail.lngPurchaseOrderID)"
'strFromSO = "(SaleOrder DataDaily INNER JOIN SaleOrderDetail ON DataDaily.lngSaleOrderID=SaleOrderDetail.lngSaleOrderID)"
strFromSO = " SaleOrder DataDaily,SaleOrderDetail"
strWhereSO = "(DataDaily.lngSaleOrderID=SaleOrderDetail.lngSaleOrderID)"
End If
'科目
If lstBudget(0).ID > 0 Then
strSql = "SELECT strAccountCode,intDirection,blnIsDetail FROM Account WHERE lngAccountID=" & lstBudget(0).ID
Set recCode = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
If Not recCode.EOF Then
intDirection = recCode!intDirection
'If recCode!blnIsDetail Then
If recCode!blnIsDetail = 1 Then
strCode = recCode!strAccountCode
If strWhere = "" Then
'strWhere = "Account.blnIsDetail AND Account.strAccountCode='" & strCode & "'"
strWhere = "Account.blnIsDetail=1 AND Account.strAccountCode='" & strCode & "'"
Else
'strWhere = strWhere & " AND Account.blnIsDetail AND Account.strAccountCode='" & strCode & "'"
strWhere = strWhere & " AND Account.blnIsDetail=1 AND Account.strAccountCode='" & strCode & "'"
End If
Else
strCode = recCode!strAccountCode & "-%"
If strWhere = "" Then
strWhere = "Account.blnIsDetail=1 AND Account.strAccountCode Like '" & strCode & "'"
Else
strWhere = strWhere & " AND Account.blnIsDetail=1 AND Account.strAccountCode Like '" & strCode & "'"
End If
End If
'strFrom = "(" & strFrom & " INNER JOIN Account ON DataDaily.lngAccountID=Account.lngAccountID" & ")"
strFrom = strFrom & ",Account "
strWhere = strWhere & " AND (DataDaily.lngAccountID=Account.lngAccountID) "
End If
recCode.Close
End If
'商品
If lstBudget(1).ID > 0 Then
If strWhere = "" Then
strWhere = "ItemActivityDetail.lngItemID=" & lstBudget(1).ID
Else
strWhere = strWhere & " AND ItemActivityDetail.lngItemID=" & lstBudget(1).ID
End If
End If
'商品类型
If lstBudget(10).ID > 0 Then
strSql = "SELECT strItemTypeCode,blnIsDetail FROM ItemType WHERE lngItemTypeID=" & lstBudget(10).ID
Set recCode = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
If Not recCode.EOF Then
If recCode!blnIsDetail = 1 Then
strCode = recCode!strItemTypeCode
If strWhere = "" Then
strWhere = "ItemType.blnIsDetail=1 AND ItemType.strItemTypeCode='" & strCode & "'"
Else
strWhere = strWhere & " AND ItemType.blnIsDetail=1 AND ItemType.strItemTypeCode='" & strCode & "'"
End If
Else
strCode = recCode!strItemTypeCode & "-%"
If strWhere = "" Then
strWhere = "ItemType.blnIsDetail=1 AND ItemType.strItemTypeCode Like '" & strCode & "'"
Else
strWhere = strWhere & " AND ItemType.blnIsDetail=1 AND ItemType.strItemTypeCode Like '" & strCode & "'"
End If
End If
End If
recCode.Close
strFrom = strFrom & " ,Item,ItemType"
End If
'单位
If lstBudget(2).ID > 0 Then
If strWhere = "" Then
strWhere = "DataDaily.lngCustomerID=" & lstBudget(2).ID
Else
strWhere = strWhere & " AND DataDaily.lngCustomerID=" & lstBudget(2).ID
End If
End If
'单位类型
If lstBudget(11).ID > 0 Then
'strFrom = "(" & strFrom & " INNER JOIN (Customer INNER JOIN CustomerType ON Customer.lngCustomerTypeID=CustomerType.lngCustomerTypeID) ON DataDaily.lngCustomerID=Customer.lngCustomerID" & ")"
strFrom = strFrom & ",Customer,CustomerType"
If strWhere = "" Then
strWhere = "Customer.lngCustomerTypeID=" & lstBudget(11).ID
Else
strWhere = strWhere & " AND Customer.lngCustomerTypeID=" & lstBudget(11).ID
End If
strWhere = strWhere & " AND Customer.lngCustomerTypeID=CustomerType.lngCustomerTypeID AND DataDaily.lngCustomerID=Customer.lngCustomerID"
End If
'部门
If lstBudget(3).ID > 0 Then
strSql = "SELECT strDepartmentCode,blnIsDetail FROM Department WHERE lngDepartmentID=" & lstBudget(3).ID
Set recCode = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
If Not recCode.EOF Then
If recCode!blnIsDetail = 1 Then
strCode = recCode!strDepartmentCode
If strWhere = "" Then
strWhere = "Department.strDepartmentCode='" & strCode & "'"
Else
strWhere = strWhere & " AND Department.strDepartmentCode='" & strCode & "'"
End If
Else
strCode = recCode!strDepartmentCode & "-%"
If strWhere = "" Then
strWhere = "Department.strDepartmentCode Like '" & strCode & "'"
Else
strWhere = strWhere & " AND Department.strDepartmentCode Like '" & strCode & "'"
End If
End If
End If
'strFrom = "(" & strFrom & " INNER JOIN Department ON DataDaily.lngDepartmentID=Department.lngDepartmentID" & ")"
strFrom = strFrom & ",Department"
strWhere = strWhere & " AND DataDaily.lngDepartmentID=Department.lngDepartmentID"
End If
'职员
If lstBudget(4).ID > 0 Then
If strWhere = "" Then
strWhere = "DataDaily.lngEmployeeID=" & lstBudget(4).ID
Else
strWhere = strWhere & " AND DataDaily.lngEmployeeID=" & lstBudget(4).ID
End If
End If
'工程
If lstBudget(5).ID > 0 Then
If strWhere = "" Then
strWhere = "ItemActivityDetail.lngJobID=" & lstBudget(5).ID
Else
strWhere = strWhere & " AND ItemActivityDetail.lngJobID=" & lstBudget(5).ID
End If
'strFrom = "(" & strFrom & " INNER JOIN Job ON ItemActivityDetail.lngJobID=Job.lngJobID" & ")"
strFrom = strFrom & ",Job "
strWhere = strWhere & " AND ItemActivityDetail.lngJobID=Job.lngJobID"
End If
'统计
If lstBudget(6).ID > 0 Then
strSql = "SELECT strClassCode,blnIsDetail FROM Class1 WHERE lngClassID=" & lstBudget(6).ID
Set recCode = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
If Not recCode.EOF Then
'If recCode!blnIsDetail Then
If recCode!blnIsDetail = 1 Then
strCode = recCode!strClassCode
If strWhere = "" Then
strWhere = "Class1.strClassCode='" & strCode & "'"
Else
strWhere = strWhere & " AND Class1.strClassCode='" & strCode & "'"
End If
Else
strCode = recCode!strClassCode & "-%"
If strWhere = "" Then
strWhere = "Class1.strClassCode Like '" & strCode & "'"
Else
strWhere = strWhere & " AND Class1.strClassCode Like '" & strCode & "'"
End If
End If
End If
'strFrom = "(" & strFrom & " INNER JOIN Class1 ON DataDaily.lngClassID1=Class1.lngClassID" & ")"
strFrom = strFrom & ",Class1"
strWhere = strWhere & " AND DataDaily.lngClassID1=Class1.lngClassID"
End If
'项目
If lstBudget(7).ID > 0 Then
strSql = "SELECT strClassCode,blnIsDetail FROM Class2 WHERE lngClassID=" & lstBudget(7).ID
Set recCode = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
If Not recCode.EOF Then
'If recCode!blnIsDetail Then
If recCode!blnIsDetail = 1 Then
If strWhere = "" Then
strWhere = "Class2.strClassCode='" & strCode & "'"
Else
strWhere = strWhere & " AND Class2.strClassCode='" & strCode & "'"
End If
Else
strCode = recCode!strClassCode & "-%"
If strWhere = "" Then
strWhere = "Class2.strClassCode Like '" & strCode & "'"
Else
strWhere = strWhere & " AND Class2.strClassCode Like '" & strCode & "'"
End If
End If
End If
'strFrom = "(" & strFrom & " INNER JOIN Class2 ON DataDaily.lngClassID2=Class2.lngClassID" & ")"
strFrom = strFrom & ",Class2"
strWhere = strWhere & " AND DataDaily.lngClassID2=Class2.lngClassID"
End If
'币种
If lstBudget(8).ID > 0 Then
If strWhere = "" Then
strWhere = "DataDaily.lngCurrencyID=" & lstBudget(8).ID
Else
strWhere = strWhere & " AND DataDaily.lngCurrencyID=" & lstBudget(8).ID
End If
End If
'地区
If lstBudget(12).ID > 0 Then
If InStr(UCase(strFrom), UCase("Customer")) > 0 Then
strFrom = strFrom & ",Area"
Else
strFrom = strFrom & ",Customer,Area"
End If
If strWhere = "" Then
strWhere = "Customer.lngAreaID=" & lstBudget(12).ID
Else
strWhere = strWhere & " AND Customer.lngAreaID=" & lstBudget(12).ID
End If
strWhere = strWhere & " AND Customer.lngAreaID=Area.lngAreaID AND DataDaily.lngCustomerID=Customer.lngCustomerID"
End If
If strWhere = "" Then
Exit Sub
End If
If mintFlag = 1 Then
strSelect = "AccountPeriod.bytPeriod"
strSelectPO = "AccountPeriod.bytPeriod"
strSelectSO = "AccountPeriod.bytPeriod"
'strWhere = strWhere & " AND (isNull(AccountPeriod.bytPeriod) OR AccountPeriod.intYear=" & cboYear.Text & ")"
strWhere = strWhere & " AND (NVL(AccountPeriod.bytPeriod,-1)=-1 OR AccountPeriod.intYear=" & cboYear.Text & ")"
'经营预算
For intCount = 0 To 2
Select Case mstrObjectName(intCount)
Case "采购数量"
bytSource(intCount) = 1
'strSelect = strSelect & ",SUM(IIF(lngActivityTypeID In (1,2),ItemActivityDetail.dblQuantity,0)) As " & mstrObjectName(intCount)
strSelect = strSelect & ",SUM(DECODE(lngActivityTypeID,1,ItemActivityDetail.dblQuantity,2,ItemActivityDetail.dblQuantity,0)) As " & mstrObjectName(intCount)
Case "销售数量"
bytSource(intCount) = 1
'strSelect = strSelect & ",SUM(IIF(lngActivityTypeID IN (11,12,14,17),ItemActivityDetail.dblQuantity,0)) As " & mstrObjectName(intCount)
strSelect = strSelect & ",SUM(DECODE(lngActivityTypeID,11,ItemActivityDetail.dblQuantity,12,ItemActivityDetail.dblQuantity,14,ItemActivityDetail.dblQuantity,17,ItemActivityDetail.dblQuantity,0)) As " & mstrObjectName(intCount)
Case "销售成本"
bytSource(intCount) = 1
'strSelect = strSelect & ",SUM(IIF(lngActivityTypeID IN (11,12,14,17),dblCostAmount,0)) As " & mstrObjectName(intCount)
strSelect = strSelect & ",SUM(DECODE(lngActivityTypeID,11,dblCostAmount,12,dblCostAmount,14,dblCostAmount,17,dblCostAmount,0)) As " & mstrObjectName(intCount)
Case "库存数量"
bytSource(intCount) = 1
blnBalance(intCount) = True
'strSelect = strSelect & ",SUM(IIF(lngActivityTypeID IN (1,3,5,8,9,10,30,32,41),ItemActivityDetail.dblQuantity,0)-IIF(lngActivityTypeID IN (11,14,15,16,19,21,22,31,33),ItemActivityDetail.dblQuantity,0)) As " & mstrObjectName(intCount)
strSelect = strSelect & ",SUM(DECODE(lngActivityTypeID,1,ItemActivityDetail.dblQuantity,3,ItemActivityDetail.dblQuantity,5,ItemActivityDetail.dblQuantity,8,ItemActivityDetail.dblQuantity,9,ItemActivityDetail.dblQuantity,10,ItemActivityDetail.dblQuantity,30,ItemActivityDetail.dblQuantity,32,ItemActivityDetail.dblQuantity,41,ItemActivityDetail.dblQuantity,0)- " _
& " DECODE(lngActivityTypeID,11,ItemActivityDetail.dblQuantity,14,ItemActivityDetail.dblQuantity,15,ItemActivityDetail.dblQuantity,16,ItemActivityDetail.dblQuantity,19,ItemActivityDetail.dblQuantity,21,ItemActivityDetail.dblQuantity,22,ItemActivityDetail.dblQuantity,31,ItemActivityDetail.dblQuantity,33,ItemActivityDetail.dblQuantity,0)) As " & mstrObjectName(intCount)
Case "受托数量"
bytSource(intCount) = 1
blnBalance(intCount) = True
'strSelect = strSelect & ",SUM(IIF(lngActivityTypeID IN (3,42),ItemActivityDetail.dblQuantity,0)-IIF(lngActivityTypeID=4,ItemActivityDetail.dblQuantity,0)) As " & mstrObjectName(intCount)
strSelect = strSelect & ",SUM(DECODE(lngActivityTypeID,3,ItemActivityDetail.dblQuantity,42,ItemActivityDetail.dblQuantity,0)-DECODE(lngActivityTypeID,4,ItemActivityDetail.dblQuantity,0)) As " & mstrObjectName(intCount)
Case "委托数量"
bytSource(intCount) = 1
blnBalance(intCount) = True
'strSelect = strSelect & ",SUM(IIF(lngActivitytypeID IN (13,43),ItemActivityDetail.dblQuantity,0)-IIF(lngActivitytypeID=14,ItemActivityDetail.dblQuantity,0)) As " & mstrObjectName(intCount)
strSelect = strSelect & ",SUM(DECODE(lngActivitytypeID,13,ItemActivityDetail.dblQuantity,43,ItemActivityDetail.dblQuantity,0)-DECODE(lngActivitytypeID,14,ItemActivityDetail.dblQuantity,0)) As " & mstrObjectName(intCount)
Case "分期数量"
bytSource(intCount) = 1
blnBalance(intCount) = True
'strSelect = strSelect & ",SUM(IIF(lngActivitytypeID IN (16,44),ItemActivityDetail.dblQuantity,0)-IIF(lngActivitytypeID=17,ItemActivityDetail.dblQuantity,0)) As " & mstrObjectName(intCount)
strSelect = strSelect & ",SUM(DECODE(lngActivitytypeID,16,ItemActivityDetail.dblQuantity,44,ItemActivityDetail.dblQuantity,0)-DECODE(lngActivitytypeID,17,ItemActivityDetail.dblQuantity,0)) As " & mstrObjectName(intCount)
Case "加工数量"
bytSource(intCount) = 1
blnBalance(intCount) = True
'strSelect = strSelect & ",SUM(IIF(lngActivitytypeID IN (15,46),ItemActivityDetail.dblQuantity,0)-IIF(IsNull(EntrustInToOut.dblQuantity),0,EntrustInToOut.dblQuantity)) As " & mstrObjectName(intCount)
strSelect = strSelect & ",SUM(DECODE(lngActivitytypeID,15,ItemActivityDetail.dblQuantity,46,ItemActivityDetail.dblQuantity,0)-NVL(EntrustInToOut.dblQuantity,0)) As " & mstrObjectName(intCount)
'If InStr(strFrom, "LEFT JOIN EntrustInToOut") = 0 Then
If InStr(UCase(strFrom), UCase("EntrustInToOut")) = 0 Then
'strFrom = "(" & strFrom & " LEFT JOIN EntrustInToOut ON ItemActivityDetail.lngActivityDetailID=EntrustInToOut.lngOutActivityDetailID" & ")"
strFrom = strFrom & ",EntrustInToOut"
strWhere = strWhere & " AND ItemActivityDetail.lngActivityDetailID=EntrustInToOut.lngOutActivityDetailID(+)"
End If
Case "领用数量"
bytSource(intCount) = 1
'strSelect = strSelect & ",SUM(IIF(lngActivityTypeID=19,ItemActivityDetail.dblQuantity,0)) As " & mstrObjectName(intCount)
strSelect = strSelect & ",SUM(DECODE(lngActivityTypeID,19,ItemActivityDetail.dblQuantity,0)) As " & mstrObjectName(intCount)
Case "采购金额"
bytSource(intCount) = 1
'If recBudget!blnIsTax Then
If recBudget!blnIsTax = 1 Then
'strSelect = strSelect & ",SUM(IIF(lngActivityTypeID IN (1,2),ItemActivityDetail.dblAmount+dblTaxAmount,0)) As " & mstrObjectName(intCount)
strSelect = strSelect & ",SUM(DECODE(lngActivityTypeID,1,ItemActivityDetail.dblAmount+dblTaxAmount,2,ItemActivityDetail.dblAmount+dblTaxAmount,0)) As " & mstrObjectName(intCount)
Else
'strSelect = strSelect & ",SUM(IIF(lngActivityTypeID IN (1,2),ItemActivityDetail.dblAmount,0)) As " & mstrObjectName(intCount)
strSelect = strSelect & ",SUM(DECODE(lngActivityTypeID,1,ItemActivityDetail.dblAmount,2,ItemActivityDetail.dblAmount,0)) As " & mstrObjectName(intCount)
End If
Case "销售收入"
bytSource(intCount) = 1
'If recBudget!blnIsTax Then
If recBudget!blnIsTax = 1 Then
'strSelect = strSelect & ",SUM(IIF(lngActivityTypeID IN (11,12,14,17),ItemActivityDetail.dblAmount+dblTaxAmount,0)) As " & mstrObjectName(intCount)
strSelect = strSelect & ",SUM(DECODE(lngActivityTypeID,11,ItemActivityDetail.dblAmount+dblTaxAmount,12,ItemActivityDetail.dblAmount+dblTaxAmount,14,ItemActivityDetail.dblAmount+dblTaxAmount,17,ItemActivityDetail.dblAmount+dblTaxAmount,0)) As " & mstrObjectName(intCount)
Else
'strSelect = strSelect & ",SUM(IIF(lngActivityTypeID IN (11,12,14,17),ItemActivityDetail.dblAmount,0)) As " & mstrObjectName(intCount)
strSele
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?