<% ' 履歴 :2012/10/17 小野 材料元帳モードを新設 Function HojyoboSyohinAridakatyo(EnshuCD, KaisyaCD, SakuseiKaisyaCD, BunsyoSyuruiCD, BunsyoNaiyoCD, AutoFlg, PrintFlg, Param1, Param2, Param3) Dim SyohinCD SyohinCD = BunsyoNaiyoCD Dim ShohinMenu ShohinMenu = 1 Dim RowBreakNum, RowCount Dim Page,Dummy RowCount = 0 If PrintFlg = 1 Then RowBreakNum = 40 Else RowBreakNum = MaxRowBreakNum MaxPage = 1 End If Dim DbKarikataKingakuTotal Dim DbKashikataKingakuTotal DbKarikataKingakuTotal = 0 DbKashikataKingakuTotal = 0 Dim KaikeiKaishibi, KaikeiSyuryobi Query = "exec SPM演習取得 '" & GB_SystemCD & "','" & EnshuCD & "'" Set Content = OpenQuery(Query) If Not(Content.BOF Or Content.EOF) Then KaikeiKaishibi = SetTimeYYYYMMDD(Content.Fields("会計開始日")) KaikeiSyuryobi = SetTimeYYYYMMDD(Content.Fields("会計終了日")) End If If Param1 <> "" Then KaikeiSyuryobi = Param1 End If '記帳の有無を確認するフラグ(照会集計画面用) Dim KichoFlg Set KichoFlg = Server.CreateObject("Scripting.Dictionary") Dim PageType Dim Label If AutoFlg = 1 Then Query = "exec SPR入出庫在庫明細 '" & GB_SystemCD & "','" & EnshuCD & "', '" & KaisyaCD & "','" & SyohinCD & "','" & KaikeiSyuryobi & "'" If Param2 = "Zairyo" Then PageType = "材料在庫" Label = "材料" ElseIf Param2 = "Seihin" Then PageType = "製品在庫" Label = "商品" ElseIf Param2 = "Shiwake" Then '記帳の有無を確認するフラグ(照会集計画面用) Query = "" Query = Query & " " Query = Query & " SELECT 商品CD, COUNT(商品CD) AS 記帳数 " Query = Query & " FROM TSK伝票仕入売上明細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 Query = "exec SPR入出庫在庫明細仕入売上伝票 '" & GB_SystemCD & "','" & EnshuCD & "', '" & KaisyaCD & "','" & SyohinCD & "','" & KaikeiSyuryobi & "'" PageType = "商品有高帳(自動)" Label = "商品" Else PageType = "商品在庫" Label = "商品" ShohinMenu = 0 End If Else If Param2 = "Zairyo" Then '記帳の有無を確認するフラグ(照会集計画面用) Query = "" Query = Query & " " Query = Query & " SELECT 材料CD, COUNT(材料元帳CD) AS 記帳数 " Query = Query & " FROM TSK補助簿_材料元帳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 Query = "exec SPK補助簿_材料元帳取得 '" & GB_SystemCD & "','" & EnshuCD & "', '" & KaisyaCD & "','" & SyohinCD & "'" PageType = "材料元帳" Label = "材料" Else'If Param2 = "Seihin" Then '記帳の有無を確認するフラグ(照会集計画面用) Query = "" Query = Query & " " Query = Query & " SELECT 商品CD, COUNT(商品有高帳CD) AS 記帳数 " Query = Query & " FROM TSK補助簿_商品有高帳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 Query = "exec SPK補助簿_商品有高帳取得 '" & GB_SystemCD & "','" & EnshuCD & "', '" & KaisyaCD & "','" & SyohinCD & "'" PageType = "商品有高帳" Label = "商品" End If End If 'Response.Write(Query) 'Exit Function Set Content = OpenQuery(Query) Dim KeisanHoho Dim Tani Dim Query, Content Dim Query1, Content1 If AutoFlg = 0 Then If Not(Content.BOF Or Content.EOF) Then KeisanHoho = Content.Fields("" & PageType & "計算区分") Tani = Content.Fields("単位") End If Else Query1 = "exec SPM" & Label & "取得 '" & GB_SystemCD & "','" & EnshuCD & "','" & SyohinCD & "'" Set Content1 = OpenQuery(Query1) If Not(Content1.BOF Or Content1.EOF) Then Tani = Content1.Fields("単位") End If If BunsyoSyuruiCD = "MJ" Then KeisanHoho = "IH" ElseIf BunsyoSyuruiCD = "MK" Then KeisanHoho = "SH" Else KeisanHoho = "SS" End If End If Dim MyTable() ReDim MyTable(15, 0) Dim ii, jj ,kk ii = 0 '総平均算出用 Dim SoNyukoSu, SoNyukoGaku SoNyukoSu = 0 SoNyukoGaku = 0 ' 総平均法を追加(140220) If BunsyoSyuruiCD = "MJ" Or BunsyoSyuruiCD = "MK" Or AutoFlg = 0 Then '06/06/28 Dim TmpHaraidashiTanka TmpHaraidashiTanka = 0 Do While Not(Content.BOF Or Content.EOF) Dim JogaiFlg JogaiFlg = False If AutoFlg = 1 Then JogaiFlg = True '区分ごとに取捨選択 If (Param2 = "Shikakari" And (Content.fields("文書種類CD") = "PS" Or Content.fields("文書種類CD") = "PU")) _ Or (Param2 = "Seihin" And (Content.fields("文書種類CD") = "MS" Or Content.fields("文書種類CD") = "MU")) _ Or (Param2 = "Zairyo" And (Content.fields("文書種類CD") = "ZS" Or Content.fields("文書種類CD") = "ZU")) _ Or (Param2 <> "Shikakari" And Param2 <> "Seihin" And Param2 <> "Zairyo" And Content.fields("文書種類CD") <> "PS" And Content.fields("文書種類CD") <> "PU" And Content.fields("文書種類CD") <> "MS" And Content.fields("文書種類CD") <> "MU" And Content.fields("文書種類CD") <> "YS" And Content.fields("文書種類CD") <> "YU" And Content.fields("文書種類CD") <> "ZS" And Content.fields("文書種類CD") <> "ZU") Then JogaiFlg = False End If End If If Not(JogaiFlg) Then ii = ii + 1 '移動平均法の場合の処理はここで行います。2006/06/27 By Hamada Dim SyohinAridakatyoCD, Torihikibi,TorihikisakiMeisyo Dim UkebaraiKubun, UkeireSuryo, UkeireTanka, UkeireKingaku Dim HaraidashiSuryo, HaraidashiTanka, HaraidashiKingaku Dim ZandakaSuryo, ZandakaTanka, ZandakaKingaku Dim bOriginal If AutoFlg = 0 Then 'Dummy = "あれ" Torihikibi = SetTimeYYYYMMDD(Content.Fields("取引日")) KeisanHoho = Content.Fields("" & PageType & "計算区分") UkebaraiKubun = Content.Fields("受払区分名称") UkeireSuryo = Content.Fields("受入数量") UkeireTanka = Content.Fields("受入単価") UkeireKingaku = Content.Fields("受入金額") HaraidashiSuryo = Content.Fields("払出数量") HaraidashiTanka = Content.Fields("払出単価") HaraidashiKingaku = Content.Fields("払出金額") ZandakaSuryo = Content.Fields("残高数量") ZandakaTanka = Content.Fields("残高単価") ZandakaKingaku = Content.Fields("残高金額") Else 'Dummy = "これ" Torihikibi = SetTimeMMDD(Content.Fields("処理日")) Select Case Content.fields("文書種類CD") Case "PS" '仕掛品入庫 If Content.fields("文書内容CD") = 0 Then UkebaraiKubun = "前期繰越" Else UkebaraiKubun = "入庫" End If UkeireSuryo = Content.fields("数量") UkeireTanka = Content.fields("単価") HaraidashiSuryo = 0 HaraidashiTanka = 0 '総平均算出用 SoNyukoSu = SoNyukoSu + UkeireSuryo SoNyukoGaku = SoNyukoGaku + (UkeireTanka * UkeireSuryo) Case "PU" '仕掛品出庫 UkebaraiKubun = "出庫" UkeireSuryo = 0 UkeireTanka = 0 HaraidashiSuryo = Content.fields("数量") HaraidashiTanka = Content.fields("単価") Case "MS" '製品入庫 If Content.fields("文書内容CD") = 0 Then UkebaraiKubun = "前期繰越" Else UkebaraiKubun = "入庫" End If UkeireSuryo = Content.fields("数量") UkeireTanka = Content.fields("単価") HaraidashiSuryo = 0 HaraidashiTanka = 0 '総平均算出用 SoNyukoSu = SoNyukoSu + UkeireSuryo SoNyukoGaku = SoNyukoGaku + (UkeireTanka * UkeireSuryo) Case "MU" '製品出庫 UkebaraiKubun = "出庫" UkeireSuryo = 0 UkeireTanka = 0 HaraidashiSuryo = Content.fields("数量") HaraidashiTanka = Content.fields("単価") Case "ZS" '材料入庫 If Content.fields("文書内容CD") = 0 Then UkebaraiKubun = "前期繰越" Else UkebaraiKubun = "入庫" End If UkeireSuryo = Content.fields("数量") UkeireTanka = Content.fields("単価") HaraidashiSuryo = 0 HaraidashiTanka = 0 '総平均算出用 SoNyukoSu = SoNyukoSu + UkeireSuryo SoNyukoGaku = SoNyukoGaku + (UkeireTanka * UkeireSuryo) Case "ZU" '材料出庫 UkebaraiKubun = "出庫" UkeireSuryo = 0 UkeireTanka = 0 HaraidashiSuryo = Content.fields("数量") HaraidashiTanka = Content.fields("単価") Case "SC" 'オ商入庫 UkebaraiKubun = "オ商入庫" UkeireSuryo = Content.fields("数量") UkeireTanka = Content.fields("単価") HaraidashiSuryo = 0 HaraidashiTanka = 0 bOriginal = 1 '総平均算出用 SoNyukoSu = SoNyukoSu + UkeireSuryo SoNyukoGaku = SoNyukoGaku + (UkeireTanka * UkeireSuryo) Case "SS" '仕入入庫 If Content.fields("文書内容CD") = 0 Then UkebaraiKubun = "前期繰越" Else UkebaraiKubun = "仕入" End If UkeireSuryo = Content.fields("数量") UkeireTanka = Content.fields("単価") HaraidashiSuryo = 0 HaraidashiTanka = 0 '総平均算出用 SoNyukoSu = SoNyukoSu + UkeireSuryo SoNyukoGaku = SoNyukoGaku + (UkeireTanka * UkeireSuryo) Case "SU" '売上出庫 UkebaraiKubun = "売上" UkeireSuryo = 0 UkeireTanka = 0 HaraidashiSuryo = Content.fields("数量") HaraidashiTanka = ZandakaTanka 'Content.fields("単価") If HaraidashiTanka = 0 Then HaraidashiTanka = TmpHaraidashiTanka End If TmpHaraidashiTanka = HaraidashiTanka Case "SX" '仕入返品 UkebaraiKubun = "仕入返品" UkeireSuryo = 0 UkeireTanka = 0 HaraidashiSuryo = Content.fields("数量") HaraidashiTanka = Content.fields("単価") TmpHaraidashiTanka = HaraidashiTanka Case "SY" '売上返品 UkebaraiKubun = "売上返品" UkeireSuryo = Content.fields("数量") UkeireTanka = ZandakaTanka 'Content.fields("単価") If UkeireTanka = 0 Then UkeireTanka = TmpHaraidashiTanka End If HaraidashiSuryo = 0 HaraidashiTanka = 0 '総平均算出用 SoNyukoSu = SoNyukoSu + UkeireSuryo SoNyukoGaku = SoNyukoGaku + (UkeireTanka * UkeireSuryo) Case Else UkebaraiKubun = "その他" UkeireSuryo = Content.fields("数量") UkeireTanka = Content.fields("単価") HaraidashiSuryo = Content.fields("数量") HaraidashiTanka = Content.fields("単価") '総平均算出用 If UkeireSuryo > 0 Then SoNyukoSu = SoNyukoSu + UkeireSuryo If UkeireTanka > 0 Then SoNyukoGaku = SoNyukoGaku + (UkeireTanka * UkeireSuryo) End If End If End Select If IsNull(UkeireSuryo) Or UkeireSuryo="" Then UkeireSuryo = 0 End If If IsNull(UkeireTanka) Or UkeireTanka="" Then UkeireTanka = 0 End If If IsNull(HaraidashiSuryo) Or HaraidashiSuryo="" Then HaraidashiSuryo = 0 End If If IsNull(HaraidashiTanka) Or HaraidashiTanka="" Then HaraidashiTanka = 0 End If UkeireKingaku = UkeireSuryo * UkeireTanka HaraidashiKingaku = HaraidashiSuryo * HaraidashiTanka ZandakaSuryo = ZandakaSuryo + UkeireSuryo - HaraidashiSuryo If ZandakaSuryo >= 0 Then ZandakaKingaku = ZandakaKingaku + UkeireKingaku - HaraidashiKingaku If ZandakaSuryo <> 0 Then ZandakaTanka = Clng(ZandakaKingaku / ZandakaSuryo) Else ZandakaTanka = 0 End If ZandakaKingaku = ZandakaTanka * ZandakaSuryo Else '在庫がマイナスになった場合は仕入単価が存在しないので便宜上払出単価を仕入単価とする ZandakaTanka = Content.Fields("単価") ZandakaKingaku = ZandakaTanka * ZandakaSuryo End If End If TorihikisakiMeisyo = Content.Fields("取引先名称") '小売販売 If UCase(Content.Fields("取引先CD")) = "SJ4KOURIHANBAI" Then TorihikisakiMeisyo = ConvKaisyaRyakuMeisyo(Content.Fields("取引先CD")) '製造部 ElseIf UCase(Content.Fields("取引先CD")) = "SJ4SEIZOZIES" Then TorihikisakiMeisyo = ConvKaisyaRyakuMeisyo(Content.Fields("取引先CD")) End If ReDim Preserve MyTable(15, ii) MyTable(1, ii) = Torihikibi MyTable(2, ii) = UkebaraiKubun MyTable(3, ii) = TorihikisakiMeisyo MyTable(4, ii) = UkeireSuryo MyTable(5, ii) = UkeireTanka MyTable(6, ii) = UkeireKingaku MyTable(7, ii) = HaraidashiSuryo MyTable(8, ii) = HaraidashiTanka MyTable(9, ii) = HaraidashiKingaku MyTable(10, ii) = ZandakaSuryo If ZandakaSuryo = 0 Then '表示のバグ修正 BY HAMADA 06/06/27 MyTable(11, ii) = HaraidashiTanka Else MyTable(11, ii) = ZandakaTanka End If MyTable(12, ii) = ZandakaKingaku '複数行時括弧付加処理 If ii > 1 Then If MyTable(1, ii) = "" And MyTable(1, ii - 1) <> "" Then '取引日がNULLかつ直前行がNULLでなければ直前行をtopにする MyTable(15, ii - 1) = "top" '自行をmidにする MyTable(15, ii) = "mid" End If If MyTable(1, ii) = "" And MyTable(15, ii - 1) = "mid" Then '取引日がNULLかつ直前行がmidなら同じくmidにする MyTable(15, ii - 1) = "mid" '自行をmidにする MyTable(15, ii) = "mid" End If If MyTable(1, ii) <> "" And MyTable(15, ii - 1) = "mid" Then '取引日が存在していて直前行がmidなら直前行をbotに変更する MyTable(15, ii - 1) = "bot" End If End If 'Exit Function End If Content.MoveNext Loop '複数行時括弧付加処理(最終行のみ) If ii > 1 Then If MyTable(15, ii - 1) = "top" Or MyTable(15, ii - 1) = "mid" Then '直前行がtopかmidなら最終行をbotに変更する MyTable(15, ii) = "bot" End If End If '総平均法の場合は払出単価・金額及び最終行以外の残高単価・金額をNULLにする If AutoFlg = 1 And BunsyoSyuruiCD = "MK" Then For ii = 1 To Ubound(MyTable, 2) MyTable(8, ii) = null MyTable(9, ii) = null MyTable(11, ii) = null MyTable(12, ii) = null If ii = Ubound(MyTable, 2) Then '最終行の残高は総平均計算(単価・残高個別端数処理) If SoNyukoSu > 0 And SoNyukoGaku > 0 Then '総入庫金額を総入庫数で割ったのが平均単価 MyTable(11, ii) = Fix(SoNyukoGaku / SoNyukoSu) 'MyTable(12, ii) = MyTable(10, ii) * MyTable(11, ii) '平均単価で端数処理をしてから乗算すると誤差が大きくなるのでダメ MyTable(12, ii) = Fix(MyTable(10, ii) * (SoNyukoGaku / SoNyukoSu)) End If End If Next End If Else '仕入単位の在庫配列 Dim ShiireTanka() '仕入単価 Dim ZaikoSuryo() '入出庫によって増減する数量 Dim MotoSuryo() '仕入時の数量(売上返品を受けられる上限数量として必要) Dim iii iii = 0 Dim jjj Dim zzz Dim MinusSuryo Dim PlusSuryo Dim KaigyoFlg KaigyoFlg = 0 Dim StyleStr Dim Zaikos() ReDim Zaikos(9, 0) Dim mm mm = 0 Dim Gyosu Dim TmpGyosu Dim TmpMyTable ReDim TmpMyTable(3,0) Dim nn Dim Tmpmm Dim UkeireGyosu Dim HaraidashiGyosu Dim ZandakaGyosu Dim SentoFlg Do While Not(Content.BOF Or Content.EOF) '区分ごとに取捨選択 If (Param2 = "Shikakari" And (Content.fields("文書種類CD") = "PS" Or Content.fields("文書種類CD") = "PU")) _ Or (Param2 = "Seihin" And (Content.fields("文書種類CD") = "MS" Or Content.fields("文書種類CD") = "MU")) _ Or (Param2 = "Zairyo" And (Content.fields("文書種類CD") = "ZS" Or Content.fields("文書種類CD") = "ZU")) _ Or (Param2 <> "Shikakari" And Param2 <> "Seihin" And Param2 <> "Zairyo" And Content.fields("文書種類CD") <> "PS" And Content.fields("文書種類CD") <> "PU" And Content.fields("文書種類CD") <> "MS" And Content.fields("文書種類CD") <> "MU" And Content.fields("文書種類CD") <> "YS" And Content.fields("文書種類CD") <> "YU" And Content.fields("文書種類CD") <> "ZS" And Content.fields("文書種類CD") <> "ZU") Then Gyosu = 0 TmpGyosu = 0 Dim TankaA, SuryoA Dim PlusMinus, TargetSell RowCount = RowCount + 1 TankaA = Content.fields("単価") SuryoA = Content.fields("数量") Select Case Content.fields("文書種類CD") Case "YS" '材料仕掛品入庫 If Content.fields("文書内容CD") = 0 Then UkebaraiKubun = "前期繰越" Else UkebaraiKubun = "入庫" End If PlusMinus = 1 TargetSell = 4 Case "YU" '材料仕掛品出庫 UkebaraiKubun = "出庫" PlusMinus = -1 TargetSell = 5 Case "PS" '仕掛品入庫 If Content.fields("文書内容CD") = 0 Then UkebaraiKubun = "前期繰越" Else UkebaraiKubun = "入庫" End If PlusMinus = 1 TargetSell = 4 Case "PU" '仕掛品出庫 UkebaraiKubun = "出庫" PlusMinus = -1 TargetSell = 5 Case "MS" '製品入庫 If Content.fields("文書内容CD") = 0 Then UkebaraiKubun = "前期繰越" Else UkebaraiKubun = "入庫" End If PlusMinus = 1 TargetSell = 4 Case "MU" '製品出庫 UkebaraiKubun = "出庫" PlusMinus = -1 TargetSell = 5 Case "ZS" '材料入庫 If Content.fields("文書内容CD") = 0 Then UkebaraiKubun = "前期繰越" Else UkebaraiKubun = "入庫" End If PlusMinus = 1 TargetSell = 4 Case "ZU" '材料出庫 UkebaraiKubun = "出庫" PlusMinus = -1 TargetSell = 5 Case "SC" 'オ商入庫 UkebaraiKubun = "オ商入庫" PlusMinus = 1 TargetSell = 4 bOriginal = 1 Case "SS" '仕入入庫 If Content.fields("文書内容CD") = 0 Then UkebaraiKubun = "前期繰越" Else UkebaraiKubun = "仕入" End If PlusMinus = 1 TargetSell = 4 Case "SU" '売上出庫 UkebaraiKubun = "売上" PlusMinus = -1 TargetSell = 5 Case "SX" '仕入返品 UkebaraiKubun = "仕入返品" PlusMinus = -1 TargetSell = 5 Case "SY" '売上返品 UkebaraiKubun = "売上返品" PlusMinus = 1 TargetSell = 4 Case Else UkebaraiKubun = "その他" PlusMinus = 1 TargetSell = 4 End Select StyleStr = "style=""border-style: solid solid none solid;""" 'ヘッダ出力処理 mm = mm + 1 ReDim Preserve MyTable(15, mm) MyTable(1, mm) = SetTimeYYYYMMDD(Content.fields("処理日")) MyTable(2, mm) = UkebaraiKubun MyTable(3, mm) = Content.fields("取引先名称") '小売販売・製造部 If UCase(Content.Fields("取引先CD")) = "SJ4KOURIHANBAI" Then MyTable(3, mm) = ConvKaisyaRyakuMeisyo(Content.Fields("取引先CD")) '製品入庫 ElseIf Content.fields("文書種類CD") = "MS" Then MyTable(3, mm) = "製造部門" '製品出庫 ElseIf Content.fields("文書種類CD") = "MU" Then MyTable(3, mm) = "商社部門" ElseIf UCase(Content.Fields("取引先CD")) = "SJ4SEIZOZIES" Then MyTable(3, mm) = ConvKaisyaRyakuMeisyo(Content.Fields("取引先CD")) End If '内訳出力処理 '仕入・オ商仕入・材料入庫・仕掛品入庫・製品入庫 If Content.fields("文書種類CD") = "SS" Or Content.fields("文書種類CD") = "SC" Or Content.fields("文書種類CD") = "ZS" Or Content.fields("文書種類CD") = "PS" Or Content.fields("文書種類CD") = "MS" Then '先入在庫配列作成 UkeireGyosu = 1 If iii > 0 Then '仕入単価が直前配列と同じなら新規配列を作らず直前配列に加算する If ShiireTanka(iii) = Content.fields("単価") Then ZaikoSuryo(iii) = ZaikoSuryo(iii) + Content.fields("数量") MotoSuryo(iii) = MotoSuryo(iii) + Content.fields("数量") Else iii = iii + 1 ReDim Preserve ShiireTanka(iii) ReDim Preserve ZaikoSuryo(iii) ReDim Preserve MotoSuryo(iii) ShiireTanka(iii) = Content.fields("単価") ZaikoSuryo(iii) = Content.fields("数量") MotoSuryo(iii) = Content.fields("数量") End If Else iii = iii + 1 ReDim Preserve ShiireTanka(iii) ReDim Preserve ZaikoSuryo(iii) ReDim Preserve MotoSuryo(iii) ShiireTanka(iii) = Content.fields("単価") ZaikoSuryo(iii) = Content.fields("数量") MotoSuryo(iii) = Content.fields("数量") End If '出力処理 MyTable(4, mm) = Content.fields("数量") MyTable(5, mm) = Content.fields("単価") MyTable(6, mm) = Content.fields("数量") * Content.fields("単価") '残高行出力処理 KaigyoFlg = 0 For zzz = 1 To iii If ZaikoSuryo(zzz) <> 0 Then If KaigyoFlg > 0 Then mm = mm + 1 ReDim Preserve MyTable(15, mm) End If MyTable(10, mm) = ZaikoSuryo(zzz) MyTable(11, mm) = ShiireTanka(zzz) MyTable(12, mm) = ZaikoSuryo(zzz) * ShiireTanka(zzz) KaigyoFlg = 1 ZandakaGyosu = ZandakaGyosu + 1 End If Next '売上・仕入返品・材料出庫・仕掛品出庫・製品出庫 ElseIf Content.fields("文書種類CD") = "SU" Or Content.fields("文書種類CD") = "SX" Or Content.fields("文書種類CD") = "ZU" Or Content.fields("文書種類CD") = "PU" Or Content.fields("文書種類CD") = "MU" Then MinusSuryo = Content.fields("数量") KaigyoFlg = 0 '先入在庫配列から先出処理 jjj = 1 Dim LoopCnt LoopCnt = 1 Do While MinusSuryo > 0 And LoopCnt <= iii '在庫配列の最大番号 jjj = LoopCnt If Content.fields("文書種類CD") = "SX" Then '仕入返品は後入れ在庫から払い出すため逆順ループ jjj = iii + 1 - LoopCnt End If If ZaikoSuryo(jjj) <= 0 Then '0以下の在庫配列は無視 ElseIf ZaikoSuryo(jjj) < MinusSuryo Then '在庫配列の方が少ない場合 '出力処理 If KaigyoFlg > 0 Then mm = mm + 1 ReDim Preserve MyTable(15, mm) End If MyTable(7, mm) = ZaikoSuryo(jjj) MyTable(8, mm) = ShiireTanka(jjj) MyTable(9, mm) = ZaikoSuryo(jjj) * ShiireTanka(jjj) '差し引いた数×仕入単価 KaigyoFlg = 1 Gyosu = Gyosu + 1 HaraidashiGyosu = HaraidashiGyosu + 1 MinusSuryo = MinusSuryo - ZaikoSuryo(jjj) ZaikoSuryo(jjj) = 0 Else '出力処理 If KaigyoFlg > 0 Then mm = mm + 1 ReDim Preserve MyTable(15, mm) End If MyTable(7, mm) = MinusSuryo MyTable(8, mm) = ShiireTanka(jjj) MyTable(9, mm) = MinusSuryo * ShiireTanka(jjj) KaigyoFlg = 1 Gyosu = Gyosu + 1 HaraidashiGyosu = HaraidashiGyosu + 1 ZaikoSuryo(jjj) = ZaikoSuryo(jjj) - MinusSuryo MinusSuryo = 0 End If LoopCnt = LoopCnt + 1 '出力処理 Loop '在庫が足らなかったらマイナスの仕入在庫配列を作成する If MinusSuryo > 0 Then iii = iii + 1 ReDim Preserve ShiireTanka(iii) ReDim Preserve ZaikoSuryo(iii) ReDim Preserve MotoSuryo(iii) '仕入返品の払出単価を仕入単価とする ShiireTanka(iii) = Content.fields("単価") ZaikoSuryo(iii) = MinusSuryo * -1 MotoSuryo(iii) = 0 '上限数量はゼロとする '出力処理 If KaigyoFlg > 0 Then mm = mm + 1 ReDim Preserve MyTable(15, mm) End If MyTable(7, mm) = ZaikoSuryo(iii) * -1 '払出数量はプラス表記 MyTable(8, mm) = ShiireTanka(iii) MyTable(9, mm) = ZaikoSuryo(iii) * ShiireTanka(iii) * -1 KaigyoFlg = 1 Gyosu = Gyosu + 1 HaraidashiGyosu = HaraidashiGyosu + 1 End If '残高行予備出力処理 KaigyoFlg = 0 nn = 0 For zzz = 1 To iii If ZaikoSuryo(zzz) <> 0 Then nn = nn + 1 ReDim Preserve TmpMyTable(3, nn) TmpMyTable(1, nn) = ZaikoSuryo(zzz) TmpMyTable(2, nn) = ShiireTanka(zzz) TmpMyTable(3, nn) = ZaikoSuryo(zzz) * ShiireTanka(zzz) End If Next '残高行出力処理 If nn > 0 Then Do While nn > Gyosu '行数より残高行数が多ければ行を進める mm = mm + 1 ReDim Preserve MyTable(15, mm) Gyosu = Gyosu + 1 Loop Tmpmm = mm For ii = nn To 1 Step -1 '降順で残高行挿入 MyTable(10, Tmpmm) = TmpMyTable(1, ii) MyTable(11, Tmpmm) = TmpMyTable(2, ii) MyTable(12, Tmpmm) = TmpMyTable(3, ii) Tmpmm = Tmpmm - 1 ZandakaGyosu = ZandakaGyosu + 1 Next End If ' KaigyoFlg = 0 ' For zzz = 1 To iii ' If ZaikoSuryo(zzz) <> 0 Then ' If KaigyoFlg > 0 Then ' mm = mm + 1 ' ReDim Preserve MyTable(15, mm) ' End If ' KaigyoFlg = 1 ' MyTable(10, mm) = ZaikoSuryo(zzz) ' MyTable(11, mm) = ShiireTanka(zzz) ' MyTable(12, mm) = ZaikoSuryo(zzz) * ShiireTanka(zzz) ' End If ' Next '売上返品 Else PlusSuryo = Content.fields("数量") KaigyoFlg = 0 '先入在庫配列に後戻し処理 jjj = iii Dim TmpZaikoSuryo Dim TmpPlusSuryo ReDim TmpMyTable(3,0) nn = 1 ReDim Preserve TmpMyTable(3, nn) Dim TmpKaigyoFlg TmpKaigyoFlg = 0 Do While PlusSuryo > 0 And jjj > 0 If ZaikoSuryo(jjj) < 0 Then 'マイナス在庫に戻す場合 TmpZaikoSuryo = ZaikoSuryo(jjj) ZaikoSuryo(jjj) = ZaikoSuryo(jjj) + PlusSuryo If ZaikoSuryo(jjj) > 0 Then '予備出力処理 If TmpKaigyoFlg > 0 Then nn = nn + 1 ReDim Preserve TmpMyTable(3, nn) End If TmpMyTable(1, nn) = TmpZaikoSuryo * -1 TmpMyTable(2, nn) = ShiireTanka(jjj) TmpMyTable(3, nn) = TmpZaikoSuryo * ShiireTanka(jjj) * -1 TmpKaigyoFlg = 1 Gyosu = Gyosu + 1 UkeireGyosu = UkeireGyosu + 1 PlusSuryo = ZaikoSuryo(jjj) ZaikoSuryo(jjj) = 0 Else '予備出力処理 If TmpKaigyoFlg > 0 Then nn = nn + 1 ReDim Preserve TmpMyTable(3, nn) End If TmpMyTable(1, nn) = PlusSuryo TmpMyTable(2, nn) = ShiireTanka(jjj) TmpMyTable(3, nn) = PlusSuryo * ShiireTanka(jjj) TmpKaigyoFlg = 1 Gyosu = Gyosu + 1 UkeireGyosu = UkeireGyosu + 1 PlusSuryo = 0 End If Else TmpPlusSuryo = PlusSuryo TmpZaikoSuryo = ZaikoSuryo(jjj) ZaikoSuryo(jjj) = ZaikoSuryo(jjj) + PlusSuryo If ZaikoSuryo(jjj) > MotoSuryo(jjj) Then PlusSuryo = ZaikoSuryo(jjj) - MotoSuryo(jjj) ZaikoSuryo(jjj) = MotoSuryo(jjj) If PlusSuryo <> TmpPlusSuryo Then '予備出力処理 If TmpKaigyoFlg > 0 Then nn = nn + 1 ReDim Preserve TmpMyTable(3, nn) End If TmpMyTable(1, nn) = MotoSuryo(jjj) - TmpZaikoSuryo TmpMyTable(2, nn) = ShiireTanka(jjj) TmpMyTable(3, nn) = (MotoSuryo(jjj) - TmpZaikoSuryo) * ShiireTanka(jjj) TmpKaigyoFlg = 1 Gyosu = Gyosu + 1 UkeireGyosu = UkeireGyosu + 1 End If Else '予備出力処理 If TmpKaigyoFlg > 0 Then nn = nn + 1 ReDim Preserve TmpMyTable(3, nn) End If TmpMyTable(1, nn) = PlusSuryo TmpMyTable(2, nn) = ShiireTanka(jjj) TmpMyTable(3, nn) = PlusSuryo * ShiireTanka(jjj) TmpKaigyoFlg = 1 Gyosu = Gyosu + 1 UkeireGyosu = UkeireGyosu + 1 PlusSuryo = 0 End If End If jjj = jjj - 1 Loop '出力処理(昇順に入れ替え) For ii = nn To 1 Step -1 ' For ii = UBound(TmpMyTable, 2)-1 To 1 Step -1 If KaigyoFlg > 0 Then mm = mm + 1 ReDim Preserve MyTable(15, mm) End If MyTable(4, mm) = TmpMyTable(1, ii) MyTable(5, mm) = TmpMyTable(2, ii) MyTable(6, mm) = TmpMyTable(3, ii) KaigyoFlg = 1 Next '在庫配列が足らなかったら余剰分の仕入在庫配列を作成する KaigyoFlg = 0 '← 070711追加(小野) If PlusSuryo > 0 Then iii = iii + 1 ReDim Preserve ShiireTanka(iii) ReDim Preserve ZaikoSuryo(iii) ReDim Preserve MotoSuryo(iii) '売上返品の払出単価を仕入単価とする ShiireTanka(iii) = Content.fields("単価") ZaikoSuryo(iii) = PlusSuryo MotoSuryo(iii) = ZaikoSuryo(iii) '出力処理 If KaigyoFlg > 0 Then mm = mm + 1 ReDim Preserve MyTable(15, mm) End If MyTable(4, mm) = ZaikoSuryo(iii) MyTable(5, mm) = ShiireTanka(iii) MyTable(6, mm) = ZaikoSuryo(iii) * ShiireTanka(iii) KaigyoFlg = 1 Gyosu = Gyosu + 1 UkeireGyosu = UkeireGyosu + 1 End If '残高行予備出力処理 KaigyoFlg = 0 nn = 0 For zzz = 1 To iii If ZaikoSuryo(zzz) <> 0 Then nn = nn + 1 ReDim Preserve TmpMyTable(3, nn) TmpMyTable(1, nn) = ZaikoSuryo(zzz) TmpMyTable(2, nn) = ShiireTanka(zzz) TmpMyTable(3, nn) = ZaikoSuryo(zzz) * ShiireTanka(zzz) End If Next '残高行出力処理 If nn > 0 Then Do While nn > Gyosu '行数より残高行数が多ければ行を進める mm = mm + 1 ReDim Preserve MyTable(15, mm) Gyosu = Gyosu + 1 Loop Tmpmm = mm For ii = nn To 1 Step -1 '降順で残高行挿入 MyTable(10, Tmpmm) = TmpMyTable(1, ii) MyTable(11, Tmpmm) = TmpMyTable(2, ii) MyTable(12, Tmpmm) = TmpMyTable(3, ii) Tmpmm = Tmpmm - 1 ZandakaGyosu = ZandakaGyosu + 1 Next End If ' KaigyoFlg = 0 ' For zzz = 1 To iii ' If ZaikoSuryo(zzz) <> 0 Then ' If KaigyoFlg > 0 Then ' mm = mm + 1 ' ReDim Preserve MyTable(15, mm) ' End If ' KaigyoFlg = 1 ' MyTable(10, mm) = ZaikoSuryo(zzz) ' MyTable(11, mm) = ShiireTanka(zzz) ' MyTable(12, mm) = ZaikoSuryo(zzz) * ShiireTanka(zzz) ' End If ' Next End If '複数行時括弧付加処理 If UkeireGyosu > 1 Then SentoFlg = 1 Tmpmm = mm ii = ZandakaGyosu Do While ii > UkeireGyosu '受入行数より残高行数が多ければ最下行を上シフト Tmpmm = Tmpmm - 1 ii = ii - 1 Loop For ii = UkeireGyosu To 1 Step -1 If SentoFlg > 0 Then MyTable(13, Tmpmm) = "bot" SentoFlg = 0 ElseIf ii = 1 Then MyTable(13, Tmpmm) = "top" Else MyTable(13, Tmpmm) = "mid" End If Tmpmm = Tmpmm - 1 Next End If If HaraidashiGyosu > 1 Then SentoFlg = 1 Tmpmm = mm ii = ZandakaGyosu Do While ii > HaraidashiGyosu '払出行数より残高行数が多ければ最下行を上シフト Tmpmm = Tmpmm - 1 ii = ii - 1 Loop For ii = HaraidashiGyosu To 1 Step -1 If SentoFlg > 0 Then MyTable(14, Tmpmm) = "bot" SentoFlg = 0 ElseIf ii = 1 Then MyTable(14, Tmpmm) = "top" Else MyTable(14, Tmpmm) = "mid" End If Tmpmm = Tmpmm - 1 Next End If If ZandakaGyosu > 1 Then SentoFlg = 1 Tmpmm = mm For ii = ZandakaGyosu To 1 Step -1 If SentoFlg > 0 Then MyTable(15, Tmpmm) = "bot" SentoFlg = 0 ElseIf ii = 1 Then MyTable(15, Tmpmm) = "top" Else MyTable(15, Tmpmm) = "mid" End If Tmpmm = Tmpmm - 1 Next End If UkeireGyosu = 0 HaraidashiGyosu = 0 ZandakaGyosu = 0 KaigyoFlg = 0 End If Content.MoveNext Loop '次期繰越残高表示 ' SentoFlg = 1 ' KaigyoFlg = 0 ' For zzz = 1 To iii ' If ZaikoSuryo(zzz) <> 0 Then ' If SentoFlg > 0 Then ' mm = mm + 1 ' ReDim Preserve MyTable(15, mm) ' MyTable(1, mm) = GB_KaikeiSyuryobi ' MyTable(2, mm) = "次期繰越" ' SentoFlg = 0 ' ElseIf KaigyoFlg > 0 Then ' mm = mm + 1 ' ReDim Preserve MyTable(15, mm) ' End If ' KaigyoFlg = 1 ' MyTable(10, mm) = ZaikoSuryo(zzz) ' MyTable(11, mm) = ShiireTanka(zzz) ' MyTable(12, mm) = ZaikoSuryo(zzz) * ShiireTanka(zzz) ' End If ' Next End If If PrintFlg = 0 Then %>
<% End If Dim HeightCell Dim WidthCell1, WidthCell2, WidthCell3, WidthCell4, WidthParent, WidthParent2 Dim BaseText1214 Dim BaseText1416 If PrintFlg = 0 Then HeightCell = 20 WidthCell1 = 60 WidthCell2 = 75 WidthCell3 = 55 WidthCell4 = 96 WidthParent = 954 WidthParent2 = 933 BaseText1214 = "tx1416" BaseText1416 = "tx1618" Else HeightCell = 18 WidthCell1 = 49 WidthCell2 = 60 WidthCell3 = 43 WidthCell4 = 71 WidthParent = 709 WidthParent2 = WidthParent BaseText1214 = "tx1214" BaseText1416 = "tx1416" End If ii = 0 RowCount = 0 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(PageType) %> <% If AutoFlg <> -1 And PrintFlg = 1 Then %><% = Page %>ページ<% End If %>
<% Else %> 商品名:<% = ConvSyohinMeisyo(SyohinCD) %> <% End If %>
計算方法:<%= Dummy %><% = ConvKubunMeisyo("商品有高帳計算区分", KeisanHoho) %> <% If Param2 = "Zairyo" Then %> 材料名 :<% = ConvZairyoMeisyo(SyohinCD) %> <% ' 自動転記 手入力の照会集計 印刷モードは除外 商品在庫は除外 %> <% ElseIf (Param2 = "Shiwake" Or Param3 = "ViewOnly") And PrintFlg <> 1 And ShohinMenu = 1 Then %> 商品名 : 単位:<% = Tani %>
<% If PrintFlg <> 1 Then %>
取引
摘 要 受 入 払 出 残 高
受払区分 取引先 数量 単価 金額 数量 単価 金額 数量 単価 金額
<% End If %> <% If SyohinCD <> "" Then For jj = 1 To RowBreakNum If ii + 1 > Ubound(MyTable, 2) Then Exit For End If RowCount = RowCount + 1 Response.Write("" & vbCrLf) Response.Write("" & vbCrLf) Response.Write("" & vbCrLf) Response.Write("" & vbCrLf) If MyTable(13, ii + 1) <> "" Then Response.Write("" & vbCrLf) Else Response.Write("" & vbCrLf) End If Response.Write("" & vbCrLf) Response.Write("" & vbCrLf) If MyTable(14, ii + 1) <> "" Then Response.Write("" & vbCrLf) Else Response.Write("" & vbCrLf) End If Response.Write("" & vbCrLf) Response.Write("" & vbCrLf) '表示のバグ修正 BY HAMADA 06/06/27 If MyTable(10, ii + 1) = "0" Then 'Response.Write("" & vbCrLf) If MyTable(15, ii + 1) <> "" Then Response.Write("" & vbCrLf) Else Response.Write("" & vbCrLf) End If Else 'Response.Write("" & vbCrLf) If MyTable(15, ii + 1) <> "" Then Response.Write("" & vbCrLf) Else Response.Write("" & vbCrLf) End If End If Response.Write("" & vbCrLf) If MyTable(12, ii + 1) = "0" Then Response.Write("" & vbCrLf) Else Response.Write("" & vbCrLf) End If Response.Write("" & vbCrLf) ii = ii + 1 If (RowCount Mod RowBreakNum = 0) Then Exit For End If Next End If For jj = RowCount + 1 To Max(20, 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("" & vbCrLf) Response.Write("" & vbCrLf) Response.Write("" & vbCrLf) Response.Write("" & vbCrLf) Response.Write("" & vbCrLf) Response.Write("" & vbCrLf) Response.Write("" & vbCrLf) Response.Write("") Next %>
" & SetDateStr(MyTable(1, ii + 1), "MM/DD") & "" & MyTable(2, ii + 1) & "" & MyTable(3, ii + 1) & "" & vbCrLf) Response.Write("
" & vbCrLf) Response.Write("
" & vbCrLf) Response.Write(" " & vbCrLf) Response.Write("
" & vbCrLf) Response.Write("
" & vbCrLf) Response.Write( ConvIntToMoney(MyTable(4, ii + 1), false, true) & vbCrLf) Response.Write("
" & vbCrLf) Response.Write("
" & vbCrLf) Response.Write("
" & ConvIntToMoney(MyTable(4, ii + 1), false, true) & "" & ConvIntToMoney(MyTable(5, ii + 1), false, true) & "" & ConvIntToMoney(MyTable(6, ii + 1), false, true) & "" & vbCrLf) Response.Write("
" & vbCrLf) Response.Write("
" & vbCrLf) Response.Write(" " & vbCrLf) Response.Write("
" & vbCrLf) Response.Write("
" & vbCrLf) Response.Write( ConvIntToMoney(MyTable(7, ii + 1), false, true) & vbCrLf) Response.Write("
" & vbCrLf) Response.Write("
" & vbCrLf) Response.Write("
" & ConvIntToMoney(MyTable(7, ii + 1), false, true) & "" & ConvIntToMoney(MyTable(8, ii + 1), false, true) & "" & ConvIntToMoney(MyTable(9, ii + 1), false, true) & "" & MyTable(10, ii + 1) & "" & vbCrLf) Response.Write("
" & vbCrLf) Response.Write("
" & vbCrLf) Response.Write(" " & vbCrLf) Response.Write("
" & vbCrLf) Response.Write("
" & vbCrLf) Response.Write( MyTable(10, ii + 1) & vbCrLf) Response.Write("
" & vbCrLf) Response.Write("
" & vbCrLf) Response.Write("
" & ConvIntToMoney(MyTable(10, ii + 1), false, true) & "" & ConvIntToMoney(MyTable(10, ii + 1), false, true) & "" & vbCrLf) Response.Write("
" & vbCrLf) Response.Write("
" & vbCrLf) Response.Write(" " & vbCrLf) Response.Write("
" & vbCrLf) Response.Write("
" & vbCrLf) Response.Write( ConvIntToMoney(MyTable(10, ii + 1), false, true) & vbCrLf) Response.Write("
" & vbCrLf) Response.Write("
" & vbCrLf) Response.Write("
" & ConvIntToMoney(MyTable(10, ii + 1), false, true) & "" & ConvIntToMoney(MyTable(11, ii + 1), false, true) & "" & MyTable(12, ii + 1) & "" & ConvIntToMoney(MyTable(12, ii + 1), false, true) & "
 
<% If PrintFlg <> 1 Then %>
<% End If %>
<% If PrintFlg = 1 Then Response.Write(PrintFooter()) End If %>
<% If ii + 1 > Ubound(MyTable, 2) Then Exit For End If Next If PrintFlg = 0 Then %>
<% End if End Function %>