【Magic UniPaaS】 CSVの出力方法

2014/08/21カテゴリー:Magic

Magic UniPaaSでCSV出力を作成する場合どうやって作っていますか?

一般的な作り方は、タスク前処理でヘッダフォームを出力して、レコード後処理で明細を出力して・・・って作ってる方が多いのでは???

一般的なCSV

↑こんな感じで。

そこで今回は「DataViewToText」関数を利用してCSV出力を作成してみました。

驚くほど簡単にCSV出力が作れました!!

メインテーブルを指定して、タスク前処理で関数を実行するだけです。

DataViewToText1

たった1行の記述だけでCSV出力が可能!!画期的です!!劇的に作成工数が軽減されます!!!

DataViewToText2

↑式の記述はこんな感じ。

DataViewToTextで出力したい項目名の定義と、タイトル名を定義するだけ!

フォームの作成も不要です。

 

ちなみにMagicのヘプルは↓

データビューからテキストファイルを作成

[データビュー]エディタに定義された項目を基にテキストファイルを作成します。

データソースをCSV形式でテキスト出力する際、文字列の前後をダブルクォーテーションで囲む形式で出力する場合は、この関数を使用すると便利です。

構文:

DataViewToText (世代番号, タスクの項目名, 出力項目名, テキストファイル名, 区切り文字, エンクォート文字,文字セット )

パラメータ:

世代番号 … タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

タスクの項目名(文字) …出力する項目の名前をカンマ区切りでリストアップした文字列

出力項目名(文字) … 出力される項目の名前をカンマ区切りでリストアップした文字列。空白の場合、ヘッダが出力されません。Excelファイルとして出力した場合、Excelシートのヘッダとして扱われます。「@」が指定された場合、タスクに定義された項目名でヘッダが出力されます。名前にカンマが含まれている場合、その前に「\」を設定してください。

テキストファイル名(文字) … 作成されるファイルの名前.

区切り文字(文字) …出力されるテキストの区切り文字として使用されるする文字列.

エンクォート文字(文字)…文字列の識別(エンクォート)に使用される文字。文字型とUnicode型の文字列の前後に設定されます。

文字セット(数値) …出力データの文字セットを指定します。以下の数値が指定できます。

  • 0 …ANSI

  • 1 … Unicode

  • 2 … UTF-8

戻り値:

論理 … 成功した場合、「True」が返ります。

注意事項:

  • テキストファイルが作成できなかった場合、「False」が返ります。

  • 区切り文字や文字IDが指定されない場合、出力ファイルには、何も付加されません。

  • タスク項目のリストが空白の場合、「False」が返ります。

  • 出力項目のリストがタスク項目で指定された項目数より少ない場合、ヘッダが出力されません。

  • 出力項目のリストがタスク項目で指定された項目数より多い場合、余分な項目名はヘッダに出力されません。

  • タスク項目名に誤りがある場合、「False」が返ります。

  • タスク項目名にOLEやBLOB、ActiveX、ベクトル型の項目がある場合は、「False」が返ります。

  • 文字セットの指定値が正しくない場合、「0」(ANSI)として動作します。

  • データ内にエンクォート文字と同じ文字が存在する場合、その文字は2回繰り返されます。例えば、エンクォート文字が「”」、データが「A”B」の場合、「”A””B”」と出力されます

 

【注意事項】

文字列の前後にはダブルクォーテーションが自動で付与されますのでご注意ください!

 

皆さんも是非活用して頂き、開発工数を少なくしましょう♪