nsfl10n

Lotus Notes/Domino のブログ。nsf:Notes Storage Facility。l10n:Localization。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告|
  3. トラックバック(-)|
  4. コメント(-)

数値フィールドチェック(l10)

数値フィールドチェック(l10)

 何週間か前にちょっと面白い場面に遭遇した。数値フィールドをチェックしたかったんだけど、そのフィールドはブランクになることもあるのだ。こういう時、ちょっといつもとは違うやり方をする必要がある。

 数値フィールドをチェックすると「テキストを数値に変換できません」という Notes のエラーが出るという問題が発生する(それは問題にならないかもしれないが)。でも、もう少しフレンドリーなエラーメッセージにすることができればそれに越したことはない。でも、その時の値は数値ではないため、簡単に数字をチェックする方法はあまり十分とは言えない。私たちが思いつくチェック式はこんなもんだろう:

@If(@IsError(MyNumberField); @Failure("数値を入力して下さい"); @IsNumber(MyNumberField); @Success; MyNumberField= ""; @Success; @Failure("数値を入力して下さい"))

 最初の部分は、「テキストを数値に変換できません」というエラーをチェックするためのものだ。ユーザーが数字の代わりに文字列を入力したときは、最初の @if にひっかかって、エラーメッセージに感謝するだろう(上記のエラーメッセージは「テキストを数値に変換できません」という Notes のエラーメッセージよりも凄くフレンドリーというほどではない。私が作るアプリのエラーメッセージはユーザーに項目名を通知するのが普通だ)。

 次の部分は、数字かどうかをチェックする部分だ。この場合、ブランクはスルーされる。ブランクチェックをしたい場合は、@success を @Failure に変えるか、!@IsNumber というチェックの仕方に変えればいい。

 最後の部分は、デフォルトの部分だ。普通は起こらないだろうが、この3つのチェックをどの場面においても、最初にやるべきだ。でも @if 構文は最後の実行ステートメントが必要になる。

 数値の範囲をチェックしたい場合はどうすればいいだろうか。いつも通り、エラーの場合のチェックから始めればいい。しかし、次の部分では数値チェックと範囲チェックをやらないといけない。すると、エラーにならないような新しい数値チェックの方法が必要になるだろう。数値の場合で、且つ、範囲内の数の場合には抜けるようにする必要がある。たとえばこうだ:

@If(@IsError(MyNumberField); @Failure("数値を入力して下さい"); @IsNumber(MyNumberField) & MyNumberField >= 1 & MyNumberField <= 100; @Success; @IsNumber(MyNumberField); @Failure("数値は1~100の範囲で入力して下さい"); MyNumberField= ""; @Success; @Failure("数値を入力して下さい"))

 この例は、1~100までが有効範囲としている。入力された値がその範囲内の数字なら、success が返ってくる。返ってこない場合、値が数値かチェックするのだ。もし数値だったら、それ以前のところからは何も返ってこないので、値は想定外の値に違いない。残りのチェックロジックは上のと一緒だ。

====引用ここまで====


 っつーか、ブランク(数値フィールド)と数値(数値フィールド)を足したら Notes エラーになるという仕様なんとかしてくれ! エクセル見習え!!(苦すぎの苦笑)

スポンサーサイト
  1. 2005/08/10(水) 00:03:08|
  2. Designer|
  3. トラックバック:0|
  4. コメント:0
<<LDDMonkey アップデート(Forumの新デザイン対応) | ホーム | Notes vs Sharepoint(l10n)>>

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://nsfl10n.blog9.fc2.com/tb.php/51-6457b757
06 | 2017/07 | 08
Sun Mon Tue Wed Thu Fri Sat
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -

Search

Featured Entries

Recent Entries

Recent Comments

Recent Trackbacks

Archives

Category

Links

Ads

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。