2012/07/04

CSVファイルをビューで呼び出す - Lotus Notes

会社のPCがWindows7+Office2010に更新されることになりました。ご他聞にもれず、今までは XP+2003でした。

で、気付いたのですが、Excel2007以後、1-2-3形式のファイルの読み書きができなくなってたんですね。

今さら、1-2-3形式なんて...という人が多いでしょう。

でも、Lotus Notesを使っている場合は、結構、マズイ状況に陥ります。

ビューでの呼び出しでは、1-2-3形式ファイル(以下、1-2-3ファイル)だと簡単に処理できるので、未だに現役のファイル形式だったりします。

なぜか?

この手のデータ交換時に最もよく使うCSV形式ファイル(以下、CSVファイル)は、呼び出し時のファイル形式選択画面で選べるどの形式を選んでも、まともな文書が作成できないからです。

ビューから書き出すときはCSV形式を選べるのだから、何か方法はありそうですが...

実は、CSVファイルをビューで呼び出せるんです。

但、1-2-3ファイルより、若干、操作と画面遷移が増えますが...

■用意するもの
用意するファイルは、1-2-3ファイルの呼び出しの場合、呼び出すデータファイルだけです。

しかし、CSVファイルの呼び出しの場合、呼び出すデータファイルの他に、 「形式ファイル」をあらかじめ用意する必要があります。

形式ファイルとは、拡張子が.colのテキスト形式ファイルです。(以下、.colファイル)

例えば、以下のようなCSVファイルがあり、

111111,Ito,Hirobumi,部長
222222,Koizumi,Junichiro,社長
333333,Hata,Tsutomu,課長

このレコードを、

1番目の区切りデータを社番フィールド(Eno)、
2番目の区切りデータを姓フィールド(FamName)、
3番目の区切りデータを名フィールド(FirName)、
4番目の区切りデータを役職フィールド(JobTitle) 、

に、それぞれ文字列で割り当てるよう呼び出すとします。この場合、.colファイルを以下のように記述して保管します。

Eno:TYPE TEXT UNTIL ",";
FamName:TYPE TEXT UNTIL ",";
FirName:TYPE TEXT UNTIL ","; 
JobTitle:TYPE TEXT UNTIL "";

■呼び出し操作
呼び出したいCSVファイルと.colファイルが用意できたら、Notesクライアントで以下のように操作します。
  1. 呼び出しで使うビューを開く。
  2. 「ファイル」-「呼び出し」を開く。
  3. 呼び出ししたいCSVファイルを選択する。
  4. ファイルの形式で「Tabler Text」を選択する。
  5. 「呼び出し」 をクリックする。
  6. 呼び出しで使う「呼び出し方法」と「フォーム」を選択する。
  7. 「形式ファイルの使用」にチェックマークを入れ、「形式ファイルの選択」で、用意した.colファイルを選択する。
  8. 必要に応じて、「文中の呼び出し中にフォームのフィールドを計算する」にチェックマークを入れる。
  9. 「OK」をクリックして、呼び出しを開始する。

■その他
  • この情報は、Lotus Domino Designer ヘルプを「形式ファイル」で検索するとヒットします。.colファイルの構文やその他のステートメントも説明がありますので、一見の価値はあります。
  • CSVファイルのフィールドがダブルクォーテーションで囲われていると、ダブルクォーテーションもデータとしてフィールドに割り当てられてしまいます。一方、ビューから書き出すCSVファイルでは、フィールドによって、ダブルクォーテーションが付加されたりされなかったりします。1-2-3ファイルのように、書き出したファイルをそのまま呼び出す場合、ダブルクォーテーションの付加状況を、事前によく検証することをおススメします。
  • CSVファイル内のダブルクォーテーションを取り除くには、ExcelでCSV形式で出力する、メモ帳でダブルクォーテーションを空白に置換して保管する、などの方法が使えます。

■おまけ
ノーツカレンダーで六曜を表示している方、いますか?信用できないので、使わないことをおススメします!

Notesでは、ある特定日において、間違った六曜がカレンダーに表示されちゃうんです。
例えば、今年の七夕(2012/07/07)は「仏滅」が正解ですが、ノーツカレンダーでは「大安」と表示されちゃいます。

ノーツカレンダーで結婚式の日取りを決める人はいないとは思いますが、ヒドいバグですよね。

この例に限らず、最近のLotus製品、特に日本語ローカライズ版、は品質が落ちているなぁ、と感じる場面が多いです。

日本語版のみ、メールテンプレートの送信ビューにバグがあるとか、
アーカイブ実行先の選択でサーバーを選んだ後に「ローカル」 を選び直すとサーバーとして扱われてしまうので手打ちで「Local」と入力しないとダメとか。

テスト手法やプロジェクト管理など、IT関連の各種技法を確立してるハズのIBMで、こんなチェック漏れの類のバグがつぶれずに製品として公開されるのでは、技法の信頼性も疑わしいですよね。

「Lotus 小ワザ集: 第24回 今日は大安? 六曜を表示させる」
http://www.ibm.com/developerworks/jp/lotus/ldd_tips/vol24.html

「第二カレンダーの六曜が正しく表示されない期間がある」
http://www-01.ibm.com/support/docview.wss?uid=swg21599098