4章 カスタマイズ4-4レポート

個口数単位に印刷する


明細部の商品の個口数ごとに荷札を印刷することができます。
Soraサンプルシステムの[荷札送り状発行]業務を参照してください。


<設定手順>
  1. フォームの設定(1)
    品名ごとの[数量x]テイストボックスと合計を計算する[個口計]、[個口]テキストボックスを作成します。
    Soraサンプルシステムの[明細部荷札サブ]フォームを参照してください。
    1. [数量1]、[数量2]、[数量3]、[数量4]、[数量5]
    2. [個口]
    3. [個口計]:(非連結)
      コントロールコード
      =[数量1]+IIf(IsNull([数量2]),0,[数量2])+IIf(IsNull([数量3]),0,[数量3])+IIf(IsNull([数量4]),0,[数量4])+IIf(IsNull([数量5]),0,[数量5])
  2. フォームの設定(2)
    計算した個口をテーブルに設定するために[数量x]プロパティの[更新後処理]イベントに下記のコードを追加します。
    Private Sub 数量1_AfterUpdate()
        Me![個口] = Me![個口計]
    End Sub
    Private Sub 数量2_AfterUpdate()
        Me![個口] = Me![個口計]
    End Sub
    Private Sub 数量3_AfterUpdate()
        Me![個口] = Me![個口計]
    End Sub
    Private Sub 数量4_AfterUpdate()
        Me![個口] = Me![個口計]
    End Sub
    Private Sub 数量5_AfterUpdate()
        Me![個口] = Me![個口計]
    End Sub
    
  3. レポートの設定(1)
    レポートに計算用のテキストボックスを作成します。
    下記フィールドを印刷しない(非表示)場合は、テキストボックスのプロパティの[可視]を”いいえ”にします。
    Soraサンプルシステムの[荷札商品個口単位]レポートを参照してください。
    1. [数量1]、[数量2]、[数量3]、[数量4]、[数量5]
    2. [品名1][品名2]、[品名3]、[品名4]、[品名5]
  4. レポートの設定(2)
    レポートに表示用の非連結のテキストボックスを作成します。
    Soraサンプルシステムの[荷札商品個口単位]レポートを参照してください。
    1. [テキスト商品]:(非連結)
    2. [テキスト個口連番]:(非連結)
    3. [テキスト個口]:(非連結)
  5. レポートの設定(3)
    [詳細]プロパティの[印刷時]イベントに下記のコードを追加します。
    [TextPCount]はSoraシステムが付加するページ数の作業用テキストボックスです。
    Soraサンプルシステムの[荷札商品個口単位]レポートを参照してください。
    Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer)
        Select Case Me![TextPCount]
        Case Is <= Me![数量1]
            '商品1印刷
            Me![テキスト商品] = Me![品名1]
            Me![テキスト個口] = Me![数量1]
            Me![テキスト個口連番] = Me![TextPCount]
        Case Is <= Me![数量1] + Me![数量2]
            '商品2印刷
            Me![テキスト商品] = Me![品名2]
            Me![テキスト個口] = Me![数量2]
            Me![テキスト個口連番] = Me![TextPCount] - Me![数量1]
        Case Is <= Me![数量1] + Me![数量2] + Me![数量3]
            '商品3印刷
            Me![テキスト商品] = Me![品名3]
            Me![テキスト個口] = Me![数量3]
            Me![テキスト個口連番] = Me![TextPCount] - Me![数量1] - Me![数量2]
        Case Is <= Me![数量1] + Me![数量2] + Me![数量3] + Me![数量4]
            '商品4印刷
            Me![テキスト商品] = Me![品名4]
            Me![テキスト個口] = Me![数量4]
            Me![テキスト個口連番] = Me![TextPCount] - Me![数量1] - Me![数量2] - Me![数量3]
        Case Is <= Me![数量1] + Me![数量2] + Me![数量3] + Me![数量4] + Me![数量5]
            '商品3印刷
            Me![テキスト商品] = Me![品名5]
            Me![テキスト個口] = Me![数量5]
            Me![テキスト個口連番] = Me![TextPCount] - Me![数量1] - Me![数量2] - Me![数量3] - Me![数量4]
        End Select
        apRptPrint Me
    End Sub
    
  6. Soraレポートを登録
    上記で作成したレポートを「Soraレポート処理」で処理選択テーブルに追加します。
    同時に、[属性]で下記項目を設定します。「印刷枚数指定のフィールドを変更」する処理で[個数]フィールドを印刷枚数に指定する処理です。
    Soraサンプルシステムの[(USysSel)荷札サブ処理]を参照してください。
    1. [印刷枚数フィールド]
      フォームの内容で印刷枚数を指定したい場合、フィールド名を設定します。
      ”個口”を設定します。
    2. [共通処理区分1]
      [4.枚数指定済み印刷レポート]をチェックします。
  7. 業務の設定
    上記Soraレポートを追加した業務を「枚数指定済み印刷」可能な業務にします。
    [Soraシステム管理]の[Soraメニュー処理]の[属性]で下記の設定をします。
    1. [共通処理区分2]
      [3.枚数指定済み印刷可能]をチェックします。