<% ' ' ' %> <% Dim WK_Zandaka_KanjyoCD() Dim WK_Zandaka_KanjyoName() Dim WK_Zandaka_KariKingaku() Dim WK_Zandaka_KashiKingaku() Dim WK_Zandaka_KanjyoKubun() Dim WK_Zandaka_TaisyakuKubun() Dim WK_Zandaka_SyukeiCD() Dim ShowCount Dim MaxCount main() Sub main() Dim tmp Dim Kaishibi Dim Syuryobi Dim TanaorosiFlg, Nikubun, NikubunFlg Dim TanaorosiKubun Dim Query Dim Content ' Dim i Dim RowCount, RowBreakNum Dim TyohyoHeader, TableHeader, TableFooter RowBreakNum = 10 RowCount = 0 Kaishibi = Request("Kaishibi") Syuryobi = Request("Syuryobi") TanaorosiKubun = Request("TanaorosiKubun") Nikubun = Request("Nikubun") If Kaishibi = "" Then Kaishibi = GB_KaikeiKaishibi End If IF Syuryobi = "" Then Syuryobi = GB_KaikeiSyuryobi End If If Nikubun = "1" Then 'チェックあり NikubunFlg = "checked" Else NikubunFlg = "" End If Dim bExistSyuseiKinyu bExistSyuseiKinyu = 0 Query = "exec SPK伝票集計取得 '" & GB_SystemCD & "','" & EnshuCD & "', '" & KaisyaCD & "', '', -1, -1, 9" Set Content = OpenQuery(Query) If Not(Content.BOF Or Content.EOF) Then bExistSyuseiKinyu = 1 End If TyohyoHeader = TyohyoHeader & " " & vbCrLf TyohyoHeader = TyohyoHeader & " " & vbCrLf TyohyoHeader = TyohyoHeader & " " & vbCrLf TyohyoHeader = TyohyoHeader & " " & vbCrLf If bExistSyuseiKinyu = 0 Then If TanaorosiKubun = "1" Then TyohyoHeader = TyohyoHeader & " " & vbCrLf Else TyohyoHeader = TyohyoHeader & " " & vbCrLf End If Else If Nikubun = "1" Then TyohyoHeader = TyohyoHeader & " " & vbCrLf Else TyohyoHeader = TyohyoHeader & " " & vbCrLf End If End If TyohyoHeader = TyohyoHeader & " " & vbCrLf TyohyoHeader = TyohyoHeader & "
 " TyohyoHeader = TyohyoHeader & "自:" & SetDate(Kaishibi, 2) & "
至:" & SetDate(Syuryobi, 2) TyohyoHeader = TyohyoHeader & "
[帳簿棚卸後を表示][2区分損益計算書形式で表示][精算表整理記入適用済]
" & vbCrLf TableHeader = "" TableHeader = TableHeader & " " & vbCrLf TableHeader = TableHeader & " " & vbCrLf TableHeader = TableHeader & " " & vbCrLf TableHeader = TableHeader & " " & vbCrLf TableHeader = TableHeader & " " & vbCrLf TableHeader = TableHeader & " " & vbCrLf TableFooter = TableFooter & " " & vbCrLf TableFooter = TableFooter & "
" & vbCrLf TableHeader = TableHeader & " " & vbCrLf TableHeader = TableHeader & " " & vbCrLf TableHeader = TableHeader & " " & vbCrLf TableHeader = TableHeader & " " & vbCrLf TableHeader = TableHeader & " " & vbCrLf TableHeader = TableHeader & " " & vbCrLf TableHeader = TableHeader & "
区分金額構成比
" & vbCrLf TableHeader = TableHeader & "
" & vbCrLf TableHeader = TableHeader & " " & vbCrLf TableHeader = TableHeader & " " & vbCrLf TableHeader = TableHeader & " " & vbCrLf TableFooter = TableFooter & " " & vbCrLf TableFooter = TableFooter & "
" & vbCrLf TableFooter = "" TableFooter = TableFooter & "
" & vbCrLf TableFooter = TableFooter & "
" & vbCrLf Dim KanjyoCDShiire, KanjyoCDKurikoshiSyohin Dim KanjyoCDKisyuSyohinTanaoroshidaka, KanjyoCDKimatsuSyohinTanaoroshidaka Dim KanjyoCDKurikoshiSoneki Query = "exec SPM勘定科目取得特別勘定 '" & GB_SystemCD & "','" & EnshuCD & "', ''" Set Content = OpenQuery(Query) Do While Not(Content.BOF OR Content.EOF) If Content.Fields("特別勘定区分") = "DL" Then KanjyoCDShiire = Content.Fields("勘定CD") ElseIf Content.Fields("特別勘定区分") = "DG" Then KanjyoCDKisyuSyohinTanaoroshidaka = Content.Fields("勘定CD") ElseIf Content.Fields("特別勘定区分") = "DH" Then KanjyoCDKimatsuSyohinTanaoroshidaka = Content.Fields("勘定CD") ElseIf Content.Fields("特別勘定区分") = "DJ" Then KanjyoCDKurikoshiSyohin = Content.Fields("勘定CD") ElseIf Content.Fields("特別勘定区分") = "DY" Then KanjyoCDKurikoshiSoneki = Content.Fields("勘定CD") End If Content.MoveNext Loop %> <% = AppTitle %> <% Dim DC,ww Dim TBLAC(2, 100) Dim TBLKIN(2, 100) Dim TBLNAME(2, 100) Dim TBLSUMCD(2, 100) Dim TBLSUMPM(2, 100) Dim TBLDCKubun(2, 100) Dim TBLKOSEI(2, 100) Dim TBLDSPLR(2, 100) Dim TBLDSPUL(2, 100) Dim TBLTKIN(2) Dim ii, jj, kk '###########################################1.書式データ取得 Query = "exec SPM報告書書式一覧 '" & GB_SystemCD & "','" & EnshuCD & "','P'" Set Content = OpenQuery(Query) Do While Not(Content.BOF Or Content.EOF) Dim SyukeiCD SyukeiCD = Content.Fields("集計CD") If bExistSyuseiKinyu = 0 Or (bExistSyuseiKinyu = 1 And (Nikubun = "1" Or (SyukeiCD <> "P201" And SyukeiCD <> "P203" And SyukeiCD <> "P204" And SyukeiCD <> "P205"))) Then If IsNumeric(Content.Fields("ラインコントロール")) Then ii = ii + Int(Content.Fields("ラインコントロール")) Else ii = ii + 1 End If ww = ii DC = 1 TBLAC(DC, ww) = Content.Fields("集計CD") TBLNAME(DC, ww) = Content.Fields("集計名称") TBLSUMCD(DC, ww) = Content.Fields("集計先") TBLSUMPM(DC, ww) = Content.Fields("加減区分") TBLDCKubun(DC, ww) = Content.Fields("貸借") TBLKOSEI(DC, ww) = Content.Fields("構成表示") TBLDSPLR(DC, ww) = Content.Fields("右方表示") TBLDSPUL(DC, ww) = Content.Fields("アンダーライン") If bExistSyuseiKinyu = 1 And Nikubun <> "1" Then If SyukeiCD = "P202" Then TBLNAME(DC, ww) = Replace(TBLNAME(DC, ww), "2.", "") TBLSUMCD(DC, ww) = "P295" TBLSUMPM(DC, ww) = "-" End If If SyukeiCD = "P200" Then TBLDSPUL(DC, ww) = "" End If End If If InStr(TBLNAME(DC, ww), "小計") > 0 Then TBLNAME(DC, ww) = Replace(TBLNAME(DC, ww), "  ", " ") End If End If Content.MoveNext Loop Dim HokokusyoLines,yy HokokusyoLines = ii yy = jj ii = 0 jj = 0 RowCount = 0 '###########################################2.金額データ取得 Query = "exec SPK自動転記帳簿_財務諸表 '" & GB_SystemCD & "','" & EnshuCD & "', '" & KaisyaCD & "','" & Kaishibi & "','" & Syuryobi & "','P', 1, 9" Set Content = OpenQuery(Query) Dim RecordCount RecordCount = 0 Do While Not(Content.BOF Or Content.EOF) RecordCount = RecordCount + 1 Content.MoveNext Loop ShowCount = RecordCount MaxCount = RecordCount + 2 RowBreakNum = MaxCount ReDim WK_Zandaka_KanjyoCD(MaxCount) ReDim WK_Zandaka_KanjyoName(MaxCount) ReDim WK_Zandaka_KariKingaku(MaxCount) ReDim WK_Zandaka_KashiKingaku(MaxCount) ReDim WK_Zandaka_KanjyoKubun(MaxCount) ReDim WK_Zandaka_TaisyakuKubun(MaxCount) ReDim WK_Zandaka_SyukeiCD(MaxCount) Set Content = OpenQuery(Query) '//////////////////////////////// ワーク「残高F」を作成 Do While Not(Content.BOF Or Content.EOF) ii = ii + 1 WK_Zandaka_KanjyoCD(ii) = Content.Fields("勘定CD") WK_Zandaka_KanjyoName(ii) = Content.Fields("勘定名称") WK_Zandaka_KariKingaku(ii) = Content.Fields("借方金額") WK_Zandaka_KashiKingaku(ii) = Content.Fields("貸方金額") WK_Zandaka_KanjyoKubun(ii) = Content.Fields("勘定区分") WK_Zandaka_TaisyakuKubun(ii) = Content.Fields("貸借区分") WK_Zandaka_SyukeiCD(ii) = Content.Fields("諸表集計CD") If Content.Fields("勘定CD") = "7330" Then WK_Zandaka_SyukeiCD(ii) = "P910" End If Content.MoveNext Loop '棚卸の調整ここから If (bExistSyuseiKinyu = 0 And TanaorosiKubun = "1") Or (bExistSyuseiKinyu = 1 And Nikubun = "1") Then '在庫数をチェックする。 Dim KimatsuSyohinTanaoroshidaka, KisyuSyohinTanaoroshidaka KisyuSyohinTanaoroshidaka = KisyuTanaoroshiKingaku(Syuryobi) KimatsuSyohinTanaoroshidaka = KimatsuTanaoroshiKingaku(Syuryobi) Dim KurikosiFLG, InsertNo Dim i ,j '繰越商品を削除ここから For jj = 1 To RecordCount If WK_Zandaka_KanjyoCD(jj) = KanjyoCDKurikoshiSyohin Then For ii = jj To RecordCount - 1 WK_Zandaka_KanjyoCD(ii) = WK_Zandaka_KanjyoCD(ii + 1) WK_Zandaka_KanjyoName(ii) = WK_Zandaka_KanjyoName(ii + 1) WK_Zandaka_KariKingaku(ii) = WK_Zandaka_KariKingaku(ii + 1) WK_Zandaka_KashiKingaku(ii) = WK_Zandaka_KashiKingaku(ii + 1) WK_Zandaka_TaisyakuKubun(ii) = WK_Zandaka_TaisyakuKubun(ii + 1) WK_Zandaka_SyukeiCD(ii) = WK_Zandaka_SyukeiCD(ii + 1) Next WK_Zandaka_KanjyoCD(ii) = "" WK_Zandaka_KanjyoName(ii) = "" WK_Zandaka_KariKingaku(ii) = null WK_Zandaka_KashiKingaku(ii) = null WK_Zandaka_TaisyakuKubun(ii) = "" WK_Zandaka_SyukeiCD(ii) = "" ShowCount = ShowCount - 1 Exit For End If Next '繰越商品を削除ここまで '期首商品棚卸高ここから tmp = ReplaceKanjyo(KanjyoCDKisyuSyohinTanaoroshidaka, KisyuSyohinTanaoroshidaka, 0) Query = "exec SPK伝票集計取得 '" & GB_SystemCD & "','" & EnshuCD & "', '" & KaisyaCD & "', '" & KanjyoCDKisyuSyohinTanaoroshidaka & "', 0, 1, 9" Set Content = OpenQuery(Query) If Not(Content.BOF Or Content.EOF) Then tmp = ReplaceKanjyo(KanjyoCDKisyuSyohinTanaoroshidaka, Content.Fields("借方金額"), Content.Fields("貸方金額")) End If '期首商品棚卸高ここまで '期末商品棚卸高ここから tmp = ReplaceKanjyo(KanjyoCDKimatsuSyohinTanaoroshidaka, 0, KimatsuSyohinTanaoroshidaka) Query = "exec SPK伝票集計取得 '" & GB_SystemCD & "','" & EnshuCD & "', '" & KaisyaCD & "', '" & KanjyoCDKimatsuSyohinTanaoroshidaka & "', 0, 1, 9" Set Content = OpenQuery(Query) If Not(Content.BOF Or Content.EOF) Then tmp = ReplaceKanjyo(KanjyoCDKimatsuSyohinTanaoroshidaka, Content.Fields("借方金額"), Content.Fields("貸方金額")) End If '期末商品棚卸高ここまで If bExistSyuseiKinyu = 1 Then tmp = ReplaceKanjyo(KanjyoCDShiire, KityuShiireKingaku(Syuryobi), 0) End If ' チェック用 ' For jj = 1 To RecordCount + 2 ' Response.Write(WK_Zandaka_KanjyoCD(jj) & "-") ' Response.Write(WK_Zandaka_KanjyoName(jj) & "-") ' Response.Write(WK_Zandaka_KariKingaku(jj) & "-") ' Response.Write(WK_Zandaka_KashiKingaku(jj) & "-") ' Response.Write(WK_Zandaka_TaisyakuKubun(jj) & "-") ' Response.Write(WK_Zandaka_SyukeiCD(jj) & "-") ' Response.Write("
") ' Next End If ReDim DSP_KarikataKingakuTotal(RecordCount),DSP_KashikataKingakuTotal(RecordCount) Dim DSP_SisanFusaiKingakuTotal,DSP_SisanKingakuTotal '/////////////////////////////////ワーク「残高F」から書式の科目毎に振り分ける ii = 0 Dim WK_KIN,WK_AC,WK_DC,WK_PM,W_NOTF,Sww,Sxx_SET,Sxx For ii = 1 To MaxCount DC = 1 If WK_Zandaka_TaisyakuKubun(ii) = "D" Then WK_KIN = WK_Zandaka_KariKingaku(ii) - WK_Zandaka_KashiKingaku(ii) Else WK_KIN = WK_Zandaka_KashiKingaku(ii) - WK_Zandaka_KariKingaku(ii) End If WK_PM = "+" W_NOTF = True If WK_KIN <> 0 Then WK_AC = WK_Zandaka_SyukeiCD(ii) WK_DC = WK_Zandaka_TaisyakuKubun(ii) If TBLTKIN(DC)<>0 Then TBLTKIN(DC) = ConvMoneyToInt(TBLTKIN(DC)) + ConvMoneyToInt(WK_KIN) Else TBLTKIN(DC) = ConvMoneyToInt(WK_KIN) End If For jj = 1 To HokokusyoLines If (TBLAC(DC, jj) = WK_AC) Then If (WK_DC <> TBLDCKubun(DC, jj)) Then WK_KIN = WK_KIN * -1 End If If (WK_PM <> "+") Then WK_KIN = WK_KIN * -1 End If TBLKIN(DC, jj) = TBLKIN(DC, jj) + WK_KIN WK_AC = TBLSUMCD(DC, jj) WK_PM = TBLSUMPM(DC, jj) W_NOTF = False ww = jj Exit For End If Next End If Next For jj = 1 To HokokusyoLines If TBLKIN(DC, jj) <> "" Then For kk = jj + 1 To HokokusyoLines If TBLAC(DC, kk) = TBLSUMCD(DC, jj) Then If TBLSUMPM(DC, jj) <> "-" Then TBLKIN(DC, kk) = TBLKIN(DC, kk) + TBLKIN(DC, jj) Else TBLKIN(DC, kk) = TBLKIN(DC, kk) - TBLKIN(DC, jj) End If End If Next End If Next '###########################################3.当期利益の算出 '###########################################4.画面出力 Response.Write(PrintHeader(0, "損益計算書")) Response.Write(TyohyoHeader) Response.Write(TableHeader) ii = 0 '/////////////////////// 資産の列(左) Response.Write("") For ii = 1 To HokokusyoLines -13 Response.Write("" & vbCrLf) '名称 Response.Write("" & vbCrLf) '金額 If TBLDSPLR(1,ii) = "R" Then Response.Write("" & vbCrLf) Response.Write("" & vbCrLf) Else Response.Write("" & vbCrLf) Response.Write("" & vbCrLf) End If '構成比 Response.Write("" & vbCrLf) Response.Write("" & vbCrLf) Next Response.Write("
" & TBLNAME(1,ii)) Response.Write("
") Response.Write("
" & ConvIntToMoney(TBLKIN(1,ii), false, true)) Response.Write("
" & ConvIntToMoney(TBLKIN(1,ii), false, true)) Response.Write("
" ) Response.Write("
") If TBLKOSEI(1,ii) = "1" and TBLKIN(1,ii) <> 0 and TBLKIN(1,ii) <> "" and TBLKIN(1,1) <> "" Then Response.Write(" " & Int(TBLKIN(1,ii) * 1000 / TBLKIN(1, 1)) / 10 & "%") End If Response.Write("
" & vbCrLf) Response.Write(TableFooter) Response.Write(PrintFooter()) %> <% End Sub Function ReplaceKanjyo(F_KanjyoCD, F_KarikataKingaku, F_KashikataKingaku) If IsNull(F_KarikataKingaku) Then F_KarikataKingaku = 0 End If If IsNull(F_KashikataKingaku) Then F_KashikataKingaku = 0 End If Dim InsertNo, KurikosiFLG Dim ii, jj Dim Query, Content InsertNo = -1 KurikosiFLG = 0 If F_KarikataKingaku <> 0 OR F_KashikataKingaku <> 0 Then For jj = 1 To MaxCount If WK_Zandaka_KanjyoCD(jj) = "" Then Exit For End If If WK_Zandaka_KanjyoCD(jj) > F_KanjyoCD Then If KurikosiFLG = 0 Then For ii = MaxCount - 1 To jj Step -1 WK_Zandaka_KanjyoCD(ii + 1) = WK_Zandaka_KanjyoCD(ii) WK_Zandaka_KanjyoName(ii + 1) = WK_Zandaka_KanjyoName(ii) WK_Zandaka_KariKingaku(ii + 1) = WK_Zandaka_KariKingaku(ii) WK_Zandaka_KashiKingaku(ii + 1) = WK_Zandaka_KashiKingaku(ii) WK_Zandaka_TaisyakuKubun(ii + 1) = WK_Zandaka_TaisyakuKubun(ii) WK_Zandaka_SyukeiCD(ii + 1) = WK_Zandaka_SyukeiCD(ii) Next InsertNo = jj KurikosiFLG = 1 ShowCount = ShowCount + 1 Exit For End If ElseIf WK_Zandaka_KanjyoCD(jj) = F_KanjyoCD Then 'すでに残高に「期末商品棚卸高」がある場合 KurikosiFLG = 1 InsertNo = jj End If Next If KurikosiFLG = 0 Then InsertNo = jj ShowCount = ShowCount + 1 End If End If If InsertNo <> -1 Then Query = "exec SPM勘定科目取得 '" & GB_SystemCD & "','" & EnshuCD & "', '" & F_KanjyoCD & "'" Set Content = OpenQuery(Query) If Not(Content.BOF Or Content.EOF) Then WK_Zandaka_TaisyakuKubun(InsertNo) = Content.Fields("貸借区分") WK_Zandaka_KanjyoName(InsertNo) = Content.Fields("勘定名称") WK_Zandaka_SyukeiCD(InsertNo) = Content.Fields("諸表集計CD") End If WK_Zandaka_KanjyoCD(InsertNo) = F_KanjyoCD If WK_Zandaka_TaisyakuKubun(InsertNo) = "C" Then WK_Zandaka_KariKingaku(InsertNo) = 0 WK_Zandaka_KashiKingaku(InsertNo) = F_KashikataKingaku - F_KarikataKingaku Else WK_Zandaka_KariKingaku(InsertNo) = F_KarikataKingaku - F_KashikataKingaku WK_Zandaka_KashiKingaku(InsertNo) = 0 End If End If End Function %>