【LANSA Tips】リストデータのファイル出力
質問
リストデータをCSV、EXCEL、PDF等のファイルに出力する方法はありますか?
回答
1. メソッド Export
Webページ等のブラウザ画面のプログラムでは、#PRIM_LISTコントロールのExportメソッドを使い、画面に表示しているリストデータをCSV、XLSX、PDFファイルに出力することができます。
Exportメソッドは、Filenameパラメーターに出力するファイル名、TypeパラメーターにCsv、Pdf、Xlsxのファイルタイプを指定してください。ブラウザのダウンロードファイルとして出力されます。
メソッド Export コーディング例
#List1.Export Filename(List1.csv) Type(Csv)
メソッド Export マニュアル
https://docs.lansa.com/15/ja/lansa016/PRIM_LIST_EXPORT.htm
2. 組み込み関数 TRANSFORM_LIST、STM_FILE_WRITE
組み込み関数 TRANSFORM_LIST、STM_FILE_WRITEを使い、フォーム、ファンクション等のプログラムから、リストデータをテキストファイルに出力することができます。
組み込み関数 TRANSFORM_LIST マニュアル
https://docs.lansa.com/15/ja/lansa015/index.htm#lansa/transform_list.htm
組み込み関数 STM_FILE_WRITE マニュアル
https://docs.lansa.com/15/ja/lansa015/index.htm#lansa/stm_file_write.htm
以下のようなサーバールーチンを実行し、出力したテキストファイルをブラウザにダウンロードさせることも可能です。
サーバールーチン コーディング例
Begin_Com Role(*EXTENDS #PRIM_SRVM)
Def_List Name(#EmployeesCSV) Fields(#EMPNO#SURNAME #GIVENAME #ADDRESS1 #ADDRESS2 #ADDRESS3 #POSTCODE #PHONEHME #PHONEBUS #STARTDTER #TERMDATER #DEPTMENT #SECTION #SALARY) Type(*Working)
Srvroutine Name(DownloadCSV) Response(#Response)
Define_Com Class(#Prim_alph) Name(#FileName)
#FileName := *PART_DIR_OBJECT + Employees.csv
Select Fields(#EmployeesCSV) From_File(PSLMST)
Add_Entry To_List(#EmployeesCSV)
Endselect
* CSVファイルの作成
Use Builtin(TRANSFORM_LIST) With_Args(#EmployeesCSV #FileName O B) To_Get(#IO$STS)
* ダウンロードするファイル
#Response.ContentFile := #FileName
* ダウンロードダイアログのファイル名
#Response.AttachmentFileName := Employees.csv
* ダウンロード後のファイル削除
#Response.RemoveFile := True
Endroutine
End_Com
有償の「LANSAテクニカル・ホットライン・サービス」をご契約いただければ、過去データベースの検索から今回ご紹介した以外の技術情報を探すことも出来ます。 「LANSAテクニカル・ホットライン・サービス」のご契約についてはお問い合わせフォーム(https://www.lansa.jp/inquiryform/)よりお問い合わせください。