⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 copy of accrpt.asp

📁 进销存软件源代码
💻 ASP
字号:
<!-- #include virtual="/eB3KTransaction.asp" --><!-- #include file="../Common.asp" --><!-- #include file="../stdlib.asp" --><%
dim gInit
dim gDateFrom, gDateTo
dim gTableName
dim gIncludeChild
gTableName="bdVoucher"
gIncludeChild=0
gInit=0

Function NullToZero(v)
	if IsNull(v) then
		NullToZero=0
	else
		NullToZero=v
	end if
End Function

'初始化
Function RptInit(DateFrom, DateTo)
	gDateFrom=DateFrom
	gDateTo=DateTo
	gInit=1
End Function

'取得科目余额方向
Function RptSubjectBalanceDirect(SubjectID)
'返回:0/1 debit/credit
	dim szSQl
	dim rsCheck
	
	RptSubjectBalanceDirect = 0
	szSQL="SELECT Count(*) as rc FROM [biSubject] WHERE [InfoType]=10 AND (AccountID=(SELECT RootID FROM [biCorperation] WHERE ID=" & AccountID & ") OR AccountID=" & AccountID & ") AND [ID]=" & SubjectID
	rsCheck=Conn.Execute(szSQL)
	if rsCheck("rc")>0 then
		szSQL="SELECT [int1] FROM [biSubject] WHERE [InfoType]=10 AND (AccountID=(SELECT RootID FROM [biCorperation] WHERE ID=" & AccountID & ") OR AccountID=" & AccountID & ") AND [ID]=" & SubjectID
		rsCheck=Conn.Execute(szSQL)
		RptSubjectBalanceDirect = rsCheck("int1")
	end if
	set rsCheck=nothing
End Function

'取得科目余额
Function RptSubjectBalance(SubjectID)
	dim szSQl, szCode, iCodeLen, DebitOrCredit, FirstBalance
	dim rsCheck

	szSQL="SELECT Count(*) as rc FROM [biSubject] WHERE [InfoType]=10 AND (AccountID=(SELECT RootID FROM [biCorperation] WHERE ID=" & AccountID & ") OR AccountID=" & AccountID & ") AND [ID]=" & SubjectID
	rsCheck=Conn.Execute(szSQL)
	if rsCheck("rc")>0 then
		szSQL="SELECT [int1], [Code] FROM [biSubject] WHERE [InfoType]=10 AND (AccountID=(SELECT RootID FROM [biCorperation] WHERE ID=" & AccountID & ") OR AccountID=" & AccountID & ") AND [ID]=" & SubjectID
		rsCheck=Conn.Execute(szSQL)
		szCode = rsCheck("Code")
		DebitOrCredit = rsCheck("int1")
		iCodeLen = Len(szCode)
	end if
	set rsCheck=nothing
	
	'计算期初余额
	szSQL="SELECT SUM(POWER(-1,[vl].[int2])*[vl].[Quantity]) AS [Amount] FROM [bdFirstBalance] AS [vt],[bdFirstBalanceList] AS [vl],[biSubject] WHERE [vt].[BillType]=17 AND [vt].[ID]=[vl].[ID] AND [biSubject].[ID]=[vl].[ProductID] AND [vt].[AccountID]=" & AccountID & " AND SUBSTRING([biSubject].[Code],1,"&iCodeLen&")='" & szCode & "'"
	rsCheck=Conn.Execute(szSQL)
	FirstBalance=NullToZero(rsCheck("Amount"))
	'End
	
	szSQL="SELECT SUM([vl].[Currency1]-[vl].[Currency2]) AS [Amount] FROM ["&gTableName&"] AS [vt],["&gTableName&"List] AS [vl],[biSubject] WHERE [vt].[BillType]=8 AND [vt].[ID]=[vl].[ID] AND [biSubject].[ID]=[vl].[ProductID] AND [vt].[AccountID]=" & AccountID & " AND [vt].[BillDate]<='" & GetDateString(gDateTo) &"' AND SUBSTRING([biSubject].[Code],1,"&iCodeLen&")='" & szCode & "'"
	rsCheck=Conn.Execute(szSQL)
	if DebitOrCredit=0 then
		RptSubjectBalance=NullToZero(rsCheck("Amount"))+FirstBalance
	else
		RptSubjectBalance=0-NullToZero(rsCheck("Amount"))-FirstBalance
	end if
End Function

'取得科目明细帐户的借方或贷方余额的合计
Function RptSubjectDetailBalance(SubjectID, DebitOrCredit)	'0/1 debit/credit
	dim szSQl, szCode, iCodeLen
	dim rsCheck

	szSQL="SELECT Count(*) as rc FROM [biSubject] WHERE [InfoType]=10 AND (AccountID=(SELECT RootID FROM [biCorperation] WHERE ID=" & AccountID & ") OR AccountID=" & AccountID & ") AND [ID]=" & SubjectID
	rsCheck=Conn.Execute(szSQL)
	if rsCheck("rc")>0 then
		szSQL="SELECT [Code] FROM [biSubject] WHERE [InfoType]=10 AND (AccountID=(SELECT RootID FROM [biCorperation] WHERE ID=" & AccountID & ") OR AccountID=" & AccountID & ") AND [ID]=" & SubjectID
		rsCheck=Conn.Execute(szSQL)
		szCode = rsCheck("Code")
		iCodeLen = Len(szCode)
	end if
	set rsCheck=nothing
	
	'Set3
	'Set2
	'Set1
	szSQL="SELECT DISTINCT [vt].[AccountID] AS [AccountID], [biSubject].[Code] AS [Code], SUM([vl].[Currency1]-[vl].[Currency2]) AS [Amount] FROM ["&gTableName&"] AS [vt],["&gTableName&"List] AS [vl],[biSubject] WHERE [vt].[BillType]=8 AND [vt].[ID]=[vl].[ID] AND [biSubject].[ID]=[vl].[ProductID] AND [vt].[AccountID]=" & AccountID & " AND [vt].[BillDate]<='" & GetDateString(gDateTo) &"' AND SUBSTRING([biSubject].[Code],1,"&iCodeLen&")='" & szCode & "' GROUP BY [vt].[AccountID], [biSubject].[Code]"
	szSQL=szSQL&"UNION SELECT DISTINCT [vt].[AccountID] AS [AccountID], [biSubject].[Code] AS [Code], SUM(POWER(-1,[vl].[int2])*[vl].[Quantity]) AS [Amount] FROM [bdFirstBalance] AS [vt],[bdFirstBalanceList] AS [vl],[biSubject] WHERE [vt].[BillType]=17 AND [vt].[ID]=[vl].[ID] AND [biSubject].[ID]=[vl].[ProductID] AND [vt].[AccountID]=" & AccountID & " AND SUBSTRING([biSubject].[Code],1,"&iCodeLen&")='" & szCode & "' GROUP BY [vt].[AccountID], [biSubject].[Code]"
	'Set1 End
	szSQL="SELECT DISTINCT [Code], SUM([Amount]) AS [Amount] FROM (" & szSQL & ") AS [nv] GROUP BY [Code]"
	'Set2 End
	szSQL="SELECT DISTINCT SUM([Amount]) AS [Amount] FROM (" & szSQL & ") AS [nnv] "
	if DebitOrCredit=0 then
		szSQL=szSQL & "WHERE [Amount]>0"
	else
		szSQL=szSQL & "WHERE [Amount]<0"
	end if
	'Set3 End
	rsCheck=Conn.Execute(szSQL)
	if DebitOrCredit=0 then
		RptSubjectDetailBalance=NullToZero(rsCheck("Amount"))
	else
		RptSubjectDetailBalance=0-NullToZero(rsCheck("Amount"))
	end if
End Function

'取得科目发生额
Function RptSubjectHappen(SubjectID, DebitOrCredit)	'0/1 debit/credit
	dim szSQl, szCode, iCodeLen, szSumName
	dim rsCheck

	szSQL="SELECT Count(*) as rc FROM [biSubject] WHERE [InfoType]=10 AND (AccountID=(SELECT RootID FROM [biCorperation] WHERE ID=" & AccountID & ") OR AccountID=" & AccountID & ") AND [ID]=" & SubjectID
	rsCheck=Conn.Execute(szSQL)
	if rsCheck("rc")>0 then
		szSQL="SELECT [Code] FROM [biSubject] WHERE [InfoType]=10 AND (AccountID=(SELECT RootID FROM [biCorperation] WHERE ID=" & AccountID & ") OR AccountID=" & AccountID & ") AND [ID]=" & SubjectID
		rsCheck=Conn.Execute(szSQL)
		szCode = rsCheck("Code")
		iCodeLen = Len(szCode)
	end if
	set rsCheck=nothing
	if DebitOrCredit=0 then
		szSumName="Currency1"
	else
		szSumName="Currency2"
	end if
	szSQL="SELECT SUM([vl].["&szSumName&"]) AS [Amount] FROM ["&gTableName&"] AS [vt],["&gTableName&"List] AS [vl],[biSubject] WHERE [vt].[BillType]=8 AND [vt].[ID]=[vl].[ID] AND [biSubject].[ID]=[vl].[ProductID] AND [vt].[AccountID]=" & AccountID & " AND [vt].[BillDate]>='" & GetDateString(gDateFrom) &"' AND [vt].[BillDate]<='" & GetDateString(gDateTo) &"' AND SUBSTRING([biSubject].[Code],1,"&iCodeLen&")='" & szCode & "'"
	rsCheck=Conn.Execute(szSQL)
	RptSubjectHappen=NullToZero(rsCheck("Amount"))
End Function
%>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -