Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
第57回FM関西
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Kumiko Kuwata
December 01, 2018
Programming
290
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
第57回FM関西
FileMakerでのCSV出力について色々やってみた事
Kumiko Kuwata
December 01, 2018
More Decks by Kumiko Kuwata
See All by Kumiko Kuwata
FM-Tokyo-20210417
kmco9356
0
150
FMkansai2018.pdf
kmco9356
0
330
Other Decks in Programming
See All in Programming
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
380
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1.1k
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.9k
これからAgentCoreを触る方へトレンドはGatewayです
har1101
6
460
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
230
スマートグラスで並列バイブコーディング
hyshu
0
270
The Bowling Game- From Imperative to Functional Programming - Part 1
philipschwarz
PRO
0
230
AIキャラアプリkaiwaの低遅延音声通話基盤をどう作ったか - AWS Gravitonで支える低遅延・低コストAI Agent基盤
mogamit
0
150
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
21
7.2k
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
240
OS アップデート対応の取り組み方がもっと共有されてほしい
andpad
0
110
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
410
How to Ace a Technical Interview
jacobian
281
24k
Marketing to machines
jonoalderson
1
5.5k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
300
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
500
Designing for Performance
lara
611
70k
Tell your own story through comics
letsgokoyo
1
980
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
270
Design in an AI World
tapps
1
260
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.6k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
Transcript
CSV 出力の小話 CSV 出力の小話 2018.12.01 FMKANSAI 2018.12.01 FMKANSAI ZOOTIE KUWATA
ZOOTIE KUWATA
CSV 出力する場面がとにかく多いんです・・・ CSV 出力する場面がとにかく多いんです・・・ 1 行目のヘッダは好きな文字列入れて出したい 改行コードはCRLF にして出したい(LF はイヤ) ダブルクォーテーションつけたり消したり
不要な¶ は消したい
とにかく好きなよう とにかく好きなよう にエクスポートした にエクスポートした いんじゃい! いんじゃい!
CSV 出力の歴史 CSV 出力の歴史 ヘッダ用のレコード作成して1 番上にくるようソ ートして出力 フィールド名をヘッダの名称に合わせてmer 形式 で出力
ヘッダ行をXML ファイル化して出力 ヘッダ行とボディ部をまるごとグローバルフィ ールドに全部ぶち込んで出力しFM の外でコネコ ネ変換
ちょっと懐かし話 ちょっと懐かし話 変数名を計算式で指定できる関数 変数名を計算式で指定できる関数 2016 年、 2 年前の 12 月
FM 関西にて 2016 年、 2 年前の 12 月 FM 関西にて 竹内さんの発表で知りました 竹内さんの発表で知りました
来てみてよかった 来てみてよかった FM 関西! FM 関西! (やっててよかった公文式の感じで) (やっててよかった公文式の感じで)
関数で CSV 出力 関数で CSV 出力 ヘッダ行を変数で設定 CSV 出力するフィールドのリストを変数で設定 (レイアウトから取得)
フィールド内容をGetField で取得 変数名は 名 の形式で変数を定義 (SetVariable 関数) 変数をカンマでつないで1 行完成、次の行を¶ で 繋いでLoop ヘッダ行と内容をまとめてグローバルにセット してエクスポート
None
でも結局 FM の外でコネコネしてる でも結局 FM の外でコネコネしてる 主に、改行コードの変換のためだけに・・・ 主に、改行コードの変換のためだけに・・・ なんだかなぁ~ なんだかなぁ~
関数 (V16 から ) 関数 (V16 から ) 1 バージョン前の話ですが・・・
1 バージョン前の話ですが・・・ どうせなら DRY に どうせなら DRY に CSV エクスポート処理作りたい CSV エクスポート処理作りたい \誰かー!/ \誰かー!/
\こんなんありますけど~/ \こんなんありますけど~/ 「 CUSTOM FORMAT EXPORT 」 「 CUSTOM FORMAT
EXPORT 」 ジェネコム様のサンプル集を参考に ジェネコム様のサンプル集を参考に https://github.com/Genecom/FileMakerSampleSolution
DRY な CSV 出力 DRY な CSV 出力 ヘッダ行を変数で任意に指定 or
フィールドコメ ントの値を取得 出力するフィールド名リストから、レコード内 容を取得するための計算式を作成 レコード毎にEvaluate して、CSV データの内容を 変数にセット グローバルオブジェクトフィールドに格納 TextEncode してエクスポート
DRY を目指すほど、スクリプト引数が増えてきちゃ DRY を目指すほど、スクリプト引数が増えてきちゃ って大変なことになってきた って大変なことになってきた
スクリプト引数で KEY 渡しとオプション引数 スクリプト引数で KEY 渡しとオプション引数 詳しくは以下で・・・ 詳しくは以下で・・・ ◎◎ ▲▲
◎◎ ▲▲ ◎◎ ▲▲ ◎◎ ▲▲ こんな感じでスクリプト引数を渡して こんな感じでスクリプト引数を渡して 受け側で変数に分解してく 受け側で変数に分解してく https://qiita.com/manabuuuuun/items/21f9382386b8f95
まとめ まとめ 他ファイルに展開が簡単に(カスタム関数、ス クリプトのコピー、グローバルフィールドの定 義) 好きなヘッダ行を作れる、出力項目の順番変 更、入れ替えもラク スクリプト引数の渡し方も分かりやすく(副産 物) とはいえ、件数多いときは標準のんで(臨機応
変に)