Q22:関連ファイルのようにSQLサーバーの特定DB内にあるテーブルを参照し、MZPF内のテーブルにて在庫表を表示、印刷したいのですが、どのように手を付けるか、悩んでいます。アシストお願いします。2つの事例があります。
A22:
手順としましては、大きく分けて
@SQL文で必要なデータをSQLServerから取得する
AMZlatform上で表示用に並べ替える
ということになるかと存じます。
@事例1)でお知らせ頂いたようにSQLServer内に2つのテーブルがあるとしますと
「select case when 製造日is NULL Then convert(char(10), 出荷日, 111) else convert(char(10), 製造日, 111) end as 列名1, case when 製造.製品コード is NULL Then 出荷.製品コード else 製造.製品コード end as 列名2, ISNULL(製造数,0) as 列名3, ISNULL(出荷数,0) as 列名4, ISNULL(製造数,0)-ISNULL(出荷数,0) as 列名5 from 製造 full outer join 出荷 on 製造日=出荷日 and 製造.製品コード=出荷.製品コード order by 列名1, 列名2」
で添付のサンプルアプリケーションにあるようなデータが取得できます。
上記SQL文の中で関数等を使うと列名は空白になってしまうので、列名を定義していますが、必要なければ省略してください。
サンプルアプリケーション「データベースアクセス.mzax」などで接続してお試しください。
ASQLServerから取得したデータは[分類テーブル作成]コンポーネントを使って、「在庫表」のような形に並べ直すことができます。
[分類テーブル作成]の使い方については、「エクセル連携チュートリアル」のP24〜をご参照ください。また、本文末尾の関連ファイル「分類テーブル作成の考え方.doc」のワード文書にも簡単に説明を書いてあります。
関連ファイル「データ分類.mzax」のアプリケーションファイルは[分類テーブル作成]を使って並べ替えをした例です。「繰越在庫数」のデータがどこにあり、どのように取得できるのか不明でしたので、「在庫数」ではなく「増減数」のままになっています。
まずは関連ファイル「データ分類.mzax」をご覧頂き、MZPlatform上ではどのような動きになるかご確認頂ければ幸いです。
印刷して確認するためには、列数やデータを分割する等の処理が必要になるかと存じます。コンポーネントを使うと簡単に処理できる部分もありますので、ご要望があれば大変お手数ですが、再度ご連絡頂ければ幸いです。
また「繰越在庫数」の処理について差支えない範囲でお教え頂けると、簡略化できる部分もあるかと存じます。
以上どうぞよろしくお願い申し上げます。
関連ファイル:データ分類.mzax (※このファイルは、ZIP形式に圧縮してあります。)、分類テーブル作成の考え方.doc