@UserNameで取った名前を見やすく表示する。
これもよく使う割にはなかなか覚えないのでメモ。
■やりたいこと
- @UserNameでそのまま取ったときの「CN=User Test/O=Notes」みたいな形式で記録されている情報を、見やすく表示したい。
以下は「From」というフィールドに「CN=User Test/O=Notes」という形式で名前が記録されてるものとします。
■内容
- 「User Test」にする。
→@Name関数の[CN] オプションを使って、基本名部分だけ表示するようにする。
---
@Name([CN];From)
---
- 「Test User」にする。(「名 姓」の表記を「姓 名」にする。)
→@Name関数を使って基本名部分だけ抜いて、さらにその基本名を@Explodeを使ってスペースで分割して、@Subsetを使って苗字部分と名前部分をそれぞれ取り出して並べる。
ミドルネームがある人のことは考えてないです。
---
@Subset(@Explode(@Name([CN];From));-1)+" "+@Subset(@Explode(@Name([CN];From));1)
---
- 「User Test/Notes」にする。
→@Name関数の[Abbreviate] オプションを使って、CN=とかO=とかを省略する。
---
@Name([Abbreviate];From)
---
■補足
- 作成者名フィールドとか読者名フィールドとか用に使う場合には素直に@UserNameで取った情報をそのまま入れておいて、表示用の部分でこれらの制御を入れて見た目を変えるのがお勧めかと思います。
- 別名を使っている環境で、日本語で名前を出したいときには、@UserName(1)で取った情報をどっかのフィールドに保存しておいて、そのフィールドを元に上記の式を入れたフィールドを表示用に別に作るのがいいです。
- 「日本語環境設定ガイド」(DJXのヘルプ)によると日本語名は作成者名フィールドや読者名フィールドに使っちゃダメみたいなので、画面に表示するのは日本語名だけって場合でも、日本語名を記録するフィールドと基本名を記録するフィールドの2個を作っておくのがいいかも。
目次に戻る