Takenoff Labs

Lotus Notes/Domino に関する Tips や、クラシックの名曲などを紹介します

[Notes/Domino] 非表示式を共通化する方法

しばらく設計解析講座ばかり続いていたので、ちょっと別の話題でも。

表の行などに非表示式を書かなければいけない場合、基本的には同じ式なのに、行番号だけを変える必要があるため、行ごとに非表示式を延々設定するハメになった、なんてことはよくあると思います。1回だけならまだしも、非表示式の条件が変わると、また同じ作業を……。とっても面倒なので、これを解消する小ワザをご紹介しましょう。


1. 表示用の計算結果フィールド(たとえば D_HideFormula という名前にしておきます)を非表示で配置し、値の式を以下のようにします。

REM {(例)Test_# (# は行番号) というフィールドが "1" の場合に表示する、という場合};

{!(Test_%1 = "1")}

2. 各行に以下のような非表示式をセットします。

n := "1"; REM {←行ごとに番号を変える};
@Eval(@ReplaceSubstring(D_HideFormula; "%1"; n))

以上で完了です。


@ReplaceSubstring で、その行用の非表示式にしたうえで、@Eval で評価する、というわけですね。@Eval なのでパフォーマンスは悪いとは思いますが、数十行程度なら気にならないレベルです。

このようにしておくと、非表示式側はまず変更する必要がなく、表示用の計算結果フィールドの式だけ変更すればよいので、とってもラクです。興味を持たれた方は、ぜひ試してみてください。

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
読み込み中...

トラックバック

トラックバックはありません

コメント

こんばんは。
いつも読ませてもらっています。

非表示式の共通化は私もよく使ってます。
私がこの方法(表示用の計算結果)で非表示
式を使うのは複雑な非表示式のときが多い
いですね。
複雑だと非表示式を書くところでは見づらく
てこの方法を使うようになりました。

これからも面白い記事楽しみにしています。

じぞうさん、コメントありがとうございます! 😀

この方法、わりとポピュラーな方法だったんでしょうか(^^ゞ
みんな知ってることだったら、ちょっと恥ずかしかったかも(滝汗

>この方法、わりとポピュラーな方法だったんでしょうか(^^ゞ
そんなことないと思いますよ。
私もNotes開発を12年超やってますけど、行く
現場でそこのNotesのDB設計見ますがこの方法
を使っているのはみたことないですね。
かなりニッチな技法かと...。
それだけNotesを知ってるってことだと思い
ます。

> かなりニッチな技法かと...。

そうですか。安心しました(^^)

わたしも経験12年くらいですが、こういうコードは見たことはなかったです。
「終了時刻 - 開始時刻」の単純計算に、100行くらい費やしている
トンデモコードは見たことがありますが(^^;;;

これからも思いついた(思い出した)ことはどんどんログるつもりです
ので、よろしくお願いいたします! 😀

※コメントは承認制となっております。管理者が承認するまで表示されません。申し訳ありませんが、投稿が表示されるまでしばらくお待ちください。





(以下のタグが使えます)
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

For spam filtering purposes, please copy the number 2238 to the field below:

^
×