%
Function HojyoboUrikaikakekintyo(EnshuCD, KaisyaCD, SakuseiKaisyaCD, BunsyoSyuruiCD, BunsyoNaiyoCD, RouteType, AutoFlg, PrintFlg)
Dim TorihikisakiCD
TorihikisakiCD = BunsyoNaiyoCD
Dim Label
Dim Mode
Dim PageType
If BunsyoSyuruiCD = "ME" Then
Label = "売掛金元帳"
Mode = "AC"
PageType = "Urikake"
Else
Label = "買掛金元帳"
Mode = "AD"
PageType = "Kaikake"
End If
Dim RowBreakNum, RowCount
Dim Page
RowCount = 0
If PrintFlg = 1 Then
RowBreakNum = 33
Else
RowBreakNum = MaxRowBreakNum
MaxPage = 1
End If
Dim DbKarikataKingakuTotal
Dim DbKashikataKingakuTotal
DbKarikataKingakuTotal = 0
DbKashikataKingakuTotal = 0
Dim KarikataKingakuTotal
Dim KashikataKingakuTotal
KarikataKingakuTotal = 0
KashikataKingakuTotal = 0
'記帳の有無を確認するフラグ(照会集計画面用)
Dim KichoFlg
Set KichoFlg = Server.CreateObject("Scripting.Dictionary")
'記帳の有無を確認するフラグ(照会集計画面用)
Query = ""
Query = Query & " "
Query = Query & " SELECT 取引先CD, COUNT(" & Label & "CD) AS 記帳数 "
Query = Query & " FROM TSK補助簿_" & Label & "F "
Query = Query & " WHERE システムCD = '" & GB_SystemCD & "' AND 演習CD = '" & EnshuCD & "' AND 会社CD = '" & GB_KaisyaCD & "' "
Query = Query & " GROUP BY 取引先CD "
Query = Query & " "
Set Content = OpenQuery(Query)
Do While Not(Content.BOF Or Content.EOF)
' 引数は確実に文字列指定しないとダメ
KichoFlg("" & Content.Fields("取引先CD")) = "" & Content.Fields("記帳数")
Content.MoveNext
Loop
If Label = "売掛金元帳" Then
If AutoFlg = "2" Then
If InStr(Request.ServerVariables("URL"), "fm_tyohyo_") > 0 And TorihikisakiCD = "" Then
Query = "exec SPK自動転記補助簿照会 '" & GB_SystemCD & "', '" & EnshuCD & "', '" & KaisyaCD & "', '" & Mode & "', 'ALLALLALLALLALLALL', '', ''"
Else
'記帳の有無を確認するフラグ(照会集計画面用)
Query = "exec SPK自動転記補助簿照会 '" & GB_SystemCD & "', '" & EnshuCD & "', '" & KaisyaCD & "', '" & Mode & "', 'ALLALLALLALLALLALL', '', ''"
Set Content = OpenQuery(Query)
Do While Not(Content.BOF Or Content.EOF)
If "" & Content.Fields("取引先名称") = "" Then
' 引数は確実に文字列指定しないとダメ
KichoFlg("SJ4KOURIHANBAI") = "1" '小売販売は名称NULLで取得されるので「SJ4KOURIHANBAI」名称にしておく
Else
' 引数は確実に文字列指定しないとダメ
KichoFlg("" & Content.Fields("取引先名称")) = "1" '名称しか取得できないので名称基準
End If
Content.MoveNext
Loop
Query = "exec SPK自動転記補助簿照会 '" & GB_SystemCD & "', '" & EnshuCD & "', '" & KaisyaCD & "', '" & Mode & "', '" & TorihikisakiCD & "', '', ''"
End If
Label = Label & "(自動)"
ElseIf TorihikisakiCD <> "" Then
Query = "exec SPK補助簿_売掛金元帳取得 '" & GB_SystemCD & "','" & EnshuCD & "', '" & KaisyaCD & "','" & TorihikisakiCD & "'"
Else
Query = "exec SPK補助簿_売掛金元帳取得_取引先別残高一覧 '" & GB_SystemCD & "','" & EnshuCD & "', '" & KaisyaCD & "'"
End If
Else
If AutoFlg = "2" Then
If InStr(Request.ServerVariables("URL"), "fm_tyohyo_") > 0 And TorihikisakiCD = "" Then
Query = "exec SPK自動転記補助簿照会 '" & GB_SystemCD & "', '" & EnshuCD & "', '" & KaisyaCD & "', '" & Mode & "', 'ALLALLALLALLALLALL', '', ''"
Else
'記帳の有無を確認するフラグ(照会集計画面用)
Query = "exec SPK自動転記補助簿照会 '" & GB_SystemCD & "', '" & EnshuCD & "', '" & KaisyaCD & "', '" & Mode & "', 'ALLALLALLALLALLALL', '', ''"
Set Content = OpenQuery(Query)
Do While Not(Content.BOF Or Content.EOF)
' 引数は確実に文字列指定しないとダメ
KichoFlg("" & Content.Fields("取引先名称")) = "1" '名称しか取得できないので名称基準
Content.MoveNext
Loop
Query = "exec SPK自動転記補助簿照会 '" & GB_SystemCD & "', '" & EnshuCD & "', '" & KaisyaCD & "', '" & Mode & "', '" & TorihikisakiCD & "', '', ''"
End If
Label = Label & "(自動)"
ElseIf TorihikisakiCD <> "" Then
Query = "exec SPK補助簿_買掛金元帳取得 '" & GB_SystemCD & "','" & EnshuCD & "', '" & KaisyaCD & "','" & TorihikisakiCD & "'"
Else
Query = "exec SPK補助簿_買掛金元帳取得_取引先別残高一覧 '" & GB_SystemCD & "','" & EnshuCD & "', '" & KaisyaCD & "'"
End If
End If
Set Content = OpenQuery(Query)
If PrintFlg = 0 Then
%>
<%
End If
For Page = 1 To MaxPage
If Page <> 1 Then
Response.Write(PageBreakBefore)
End If
%>
<%
If PrintFlg = 1 Then
Response.Write(PrintHeader1(AutoFlg))
End if
%>
<% = SetStringInsertSpace(Label) %>
<% If AutoFlg <> -1 And PrintFlg = 1 Then %><% = Page %>ページ<% End If %>
<% If PrintFlg = "1" And AutoFlg <> "2" And TorihikisakiCD = "" Then %>
取引先別残高一覧
<% ElseIf AutoFlg = "2" Or RouteType = "ViewOnly" Then %>
取引先:<%
If (AutoFlg = 2 Or RouteType = "ViewOnly") And PrintFlg <> 1 And InStr(Request.ServerVariables("URL"), "fm_tyohyo_main.asp") < 1 Then
If AutoFlg = 2 Then
Response.Write("
<% If AutoFlg = "2" And InStr(Request.ServerVariables("URL"), "fm_tyohyo_") > 0 And TorihikisakiCD = "" Then %>
取引先
<% ElseIf AutoFlg = "2" Or TorihikisakiCD <> "" Then %>
取引日
摘要
<% Else %>
取引先
<% End If %>
借方金額
貸方金額
貸借
残高
<% If PrintFlg <> 1 Then %>
<% End If %>
<%
Dim ii,jj
ii = 0
Dim Query
Dim Content
If AutoFlg = "2" And TorihikisakiCD = "" And InStr(Request.ServerVariables("URL"), "fm_tyohyo_") > 1 Then
'書類一覧で取引先未指定の場合は取引先別集計
Dim KaishaAry
Dim KarikataAry
Dim KashikataAry
Redim KaishaAry(0)
Redim KarikataAry(0)
Redim KashikataAry(0)
Query = "exec SPM会社全部一覧 '" & GB_SystemCD & "','" & EnshuCD & "','" & GakuseiNo & "'"
Set ContentTorisaki = OpenQuery(Query)
Do While Not(ContentTorisaki.BOF Or ContentTorisaki.EOF)
If ContentTorisaki.Fields("会社CD") <> "" And ContentTorisaki.Fields("会社CD") <> KaisyaCD And ContentTorisaki.Fields("業種CD") <> "B" Then '銀行を除外
Redim Preserve KaishaAry(UBound(KaishaAry) + 1)
Redim Preserve KarikataAry(UBound(KaishaAry))
Redim Preserve KashikataAry(UBound(KaishaAry))
KaishaAry(UBound(KaishaAry)) = ContentTorisaki.Fields("会社CD")
KarikataAry(UBound(KaishaAry)) = 0
KashikataAry(UBound(KaishaAry)) = 0
End If
ContentTorisaki.MoveNext
Loop
Dim KCnt
Do While Not(Content.BOF Or Content.EOF)
For KCnt = 1 To UBound(KaishaAry)
If Content.Fields("取引先CD") <> "" And KaishaAry(KCnt) = Content.Fields("摘要CD") Then
KarikataAry(KCnt) = KarikataAry(KCnt) + Content.Fields("借方金額")
KashikataAry(KCnt) = KashikataAry(KCnt) + Content.Fields("貸方金額")
Exit For
End If
Next
Content.MoveNext
Loop
For KCnt = 1 To UBound(KaishaAry)
If KarikataAry(KCnt) < KashikataAry(KCnt) Then
TaisyakuName = "貸"
Zandaka = KashikataAry(KCnt) - KarikataAry(KCnt)
ElseIf KarikataAry(KCnt) > KashikataAry(KCnt) Then
TaisyakuName = "借"
Zandaka = KarikataAry(KCnt) - KashikataAry(KCnt)
Else
TaisyakuName = ""
Zandaka = 0
End If
Response.Write("
" & vbCrLf)
Next
For jj = RowCount + 1 To Max(18, Max(RowBreakNum, (Int((RowCount - 1) / RowBreakNum) + 1) * RowBreakNum) * PrintFlg)
Response.Write("
" & vbCrLf)
Response.Write("
" & vbCrLf)
Response.Write("
" & vbCrLf)
Response.Write("
" & vbCrLf)
Response.Write("
" & vbCrLf)
Response.Write("
" & vbCrLf)
Response.Write("
")
Next
Else
'自動では仕入売上伝票の商品点数分だけ明細が取得されてしまうため
'伝票番号単位で動作させるフラグで制御する
Dim TmpDenpyoNo
TmpDenpyoNo = ""
Dim TmpOutputFlg
Do While Not(Content.BOF Or Content.EOF)
TmpOutputFlg = 0
If AutoFlg = "2" Then
' 仕入売上伝票以外は全明細を取得する
If (Content.Fields("伝票区分") <> "D3" And Content.Fields("伝票区分") <> "D4") Or TmpDenpyoNo <> "" & Content.Fields("伝票番号") Then
TmpDenpyoNo = "" & Content.Fields("伝票番号")
TmpOutputFlg = 1
End If
Else
TmpOutputFlg = 1
End If
If TmpOutputFlg = 1 Then
RowCount = RowCount + 1
Dim UrikaikakekintyoCD, Torihikibi, Tekiyo, KarikataKingaku, KashikataKingaku,Taisyaku,Zandaka,TaisyakuName
If AutoFlg = "2" Then
TmpDenpyoNo = "" & Content.Fields("伝票番号")
DbKarikataKingakuTotal = DbKarikataKingakuTotal + Content.Fields("借方金額")
DbKashikataKingakuTotal = DbKashikataKingakuTotal + Content.Fields("貸方金額")
If DbKarikataKingakuTotal < DbKashikataKingakuTotal Then
TaisyakuName = "貸"
Zandaka = DbKashikataKingakuTotal - DbKarikataKingakuTotal
ElseIf DbKarikataKingakuTotal > DbKashikataKingakuTotal Then
TaisyakuName = "借"
Zandaka = DbKarikataKingakuTotal - DbKashikataKingakuTotal
Else
TaisyakuName = ""
Zandaka = 0
End If
Torihikibi = SetTimeYYYYMMDD(Content.Fields("取引日"))
Tekiyo = "" & Content.Fields("伝票摘要")
If Tekiyo = "" Then
Tekiyo = "" & Content.Fields("摘要")
End If
ElseIf TorihikisakiCD <> "" Then
If Label = "売掛金元帳" Then
UrikaikakekintyoCD = Content.Fields("売掛金元帳CD")
Else
UrikaikakekintyoCD = Content.Fields("買掛金元帳CD")
End If
Torihikibi = SetTimeYYYYMMDD(Content.Fields("取引日"))
Tekiyo = Content.Fields("摘要")
TaisyakuName = Content.Fields("貸借略区分名称")
Zandaka = Content.Fields("残高")
Else
If Content.Fields("残高") < 0 Then
TaisyakuName = "貸"
Zandaka = Content.Fields("残高") * -1
Else
TaisyakuName = "借"
Zandaka = Content.Fields("残高")
End If
End If
KarikataKingaku = Content.Fields("借方金額")
KashikataKingaku = Content.Fields("貸方金額")
If AutoFlg = "2" Or TorihikisakiCD <> "" Then
If "" & KarikataKingaku <> "" Then
KarikataKingakuTotal = KarikataKingakuTotal + KarikataKingaku
End If
If "" & KashikataKingaku <> "" Then
KashikataKingakuTotal = KashikataKingakuTotal + KashikataKingaku
End If
'ElseIf "" & Content.Fields("取引先CD") <> "" Then
ElseIf "" & ConvKaisyaMeisyoDx(EnshuCD, Content.Fields("取引先CD")) <> "" Then
If "" & KarikataKingaku <> "" Then
KarikataKingakuTotal = KarikataKingakuTotal + KarikataKingaku
End If
If "" & KashikataKingaku <> "" Then
KashikataKingakuTotal = KashikataKingakuTotal + KashikataKingaku
End If
End If
If AutoFlg = "2" Or TorihikisakiCD <> "" Then
Response.Write("
")
End If
Content.MoveNext
If (RowCount Mod RowBreakNum = 0) Then
Exit Do
End If
Loop
For jj = RowCount + 1 To Max(18, Max(RowBreakNum, (Int((RowCount - 1) / RowBreakNum) + 1) * RowBreakNum) * PrintFlg)
Response.Write("
" & vbCrLf)
If AutoFlg = "2" Or TorihikisakiCD <> "" Then
Response.Write("