Dynamics 365 Business Central

技術ブログ

タックシールへのラベル印刷

Dynamics 365 Business Centralの得意先情報からDM発送のためのラベル印刷をしたいと思います。

【前提条件としてここでは下記アプリケーションを使用します】
(1) Visual Studio Code
(2) レポートデザイナー
Visual Studio Codeのインストールについてはこちらの記事をご覧下さい。

Visual Studio Codeでプロジェクトを作成

[Ctrl]+[Shift]+[P]キーでユーザーウィンドウを開き、[Alt]+[A]と[Alt]+[L]キーでAL Go!コマンドをトリガーし、プロジェクトフォルダーのパスとバージョンを選択します。

「createLabelLayoutReport.al」ファイルを生成します。

pageextension 50123 LabelReportExtension extends “Customer List”
{
    actions
    {
        addlast(“General”)
        {
            action(“Label Print”)
            {
                ApplicationArea = All;
                Caption = ‘Label Print Report’;
                trigger OnAction();
                begin
                    report.Run(Report::LabelReport);
                end;
            }
        }
    }
}
report 50123 LabelReport
{
    DefaultLayout = RDLC;
    RDLCLayout = ‘LabelReport.rdl’;
    dataset
    {
        dataitem(Customer; Customer)
        {
            column(Name; Name)
            {
            }
            column(Post_Code; “Post Code”)
            {
            }
            column(City; City)
            {
            }
            column(Address; Address)
            {
            }
            column(Address_2; “Address 2”)
            {
            }
        }
    }
}

[Ctrl]+[Shift]+[B]でビルドして、LabelReport.rdlファイルを生成します。

レポートビルダーでレイアウトを作成

生成されたレポートレイアウトファイルをレポートビルダーで開きます。

[挿入]タブ > [テーブル] > [テーブルの挿入]をクリックして、1行1列のテーブルを作成します。

列の上部を右クリックして[列グループ]>[グループプロパティ]をクリックします。

[グループ式]の[追加]ボタンをクリックして、[グループ化の条件]の[fx]ボタンをクリックします。

[式の設定]枠に以下を入力します。
=Ceiling(RowNumber(Nothing) Mod 2)

列の上部を右クリックして[行グループ]>[グループプロパティ]をクリックします。

[グループ式]の[追加]ボタンをクリックして、[グループ化の条件]の[fx]ボタンをクリックします。

[式の設定]枠に以下を入力します。
=Ceiling(RowNumber(Nothing)/2)

テーブルの枠内を右クリックして[プレースホルダーの作成]をクリックします。

[値]のプルダウンから、追加したい項目を選択します。

表示したい項目の数だけプレースホルダーの作成を繰り返します。

取引先名の後に「様」を表示するようにします。
取引先名の後にプレースホルダーを作成し、[値]の[fx]から以下の式を入力します。
=IIf(Fields!Name.Value<>””,”様”,””)

印刷位置配置

今回は「A-one 28916 A4サイズ12面付」のラベルシールに合わせます。

https://www.a-one.co.jp/img_fmt/F28916_O.jpg

レポート本文の外側を右クリックし、[レポートのプロパティ]をクリックします。

[ページの単位]に「センチメートル」、[用紙サイズ]に「A4」、[余白]の[上]に「2.15cm」と設定します。

テーブル全体を選択します。
[Location]の[Left]に「19.3mm」、[Top]に「0mm」
[Size]の[Width]に「87.6mm」、[Height]に「42.3mm」
と入力します。
ラベル間のマージン(今回でいうラベル間の3.8mm)は設定できないので、横幅を83.8mm+3.8mm=87.6mmに設定しています。この後のPadding設定でマージン部分に印刷しないように設定しています。

テーブルの内側をクリックします。
[配置]の[Padding]の[Left]と[Right]と[Top]を「5mm」、[Bottom]を[0mm]と入力します。

デフォルトでは[テキストボックスのプロパティ]で[サイズ変更のオプション]の[高さの増加を許可する]にチェックが入っているため、住所や取引先名が長い場合にラベルの高さが伸びてずれてしまいます。
[高さの増加を許可する]のチェックは外して[OK]ボタンをクリックします。

その他、必要に応じて体裁を調整して下さい。

完了したらレポートのレイアウトを保存して閉じます。

Visual Studio Codeで拡張機能のコンパイル

Visual Studio Codeに戻り、[Ctrl]+[F5]キーを押してレポートをコンパイルし、実行します。

[プレビュー&閉じる]ボタンをクリックします。

生成されたレポートがプレビューモードで表示されます。

取引先からフィルターを使って、必要な取引先のみを抽出してラベル印刷することもできます。