SlideShare a Scribd company logo
テクてくLotus技術者夜会 2014年8月 
非表示式とご相談 
ネオアクシス株式会社 
阿部覚
2 
ごあいさつ
所属 ネオアクシス株式会社(neoaxis.co.jp) 
     ※合併前は TISソリューションビジネス (TSB) 
これまでの夜会は(辛うじて)未欠席 
会社の謀略で名刺には Notesエバンジェリスト とあります 
式言語好きということになっている 
blog "abOut.nsf" http://blogs.yahoo.co.jp/jftfw228 
facebook /abesat 
twitter @abesat 
mixi あう゛
3 
非表示式って
私の認識: 
処理(アクション、ボタン、エージェント)の 
次に移行しづらい存在、なぜなら、きめ細かいから 
改修の際も要注意 
 標準の「設計の分析」では出てこない存在 
 デザイナーのフォーム内で 
 コピペするときに忘れてはならない存在
4 
そもそも論から・・
そもそも「非表示式」って 
こんがらがらない? 
(Status != “申請中”) | 
(@UserName != Approver)
5 
xxがxxでない、または、 
xxがxxでないときは、 
→非表示である 
(Status != “申請中”) | 
(@UserName != Approver) 
正直、私はこういう式、 
すっと理解できません
6 
「非表示」 って日本語が 
いけてないのでは? 
英語は否定がない 
"Hide Formula"(隠し式?)
7 
とりあえず 
「隠す」だったらわかり易いかも? 
Status != “申請中” 
@If(Status = “承認済”;@False; 
@True)
8 
とりあえず 
「隠す」だったらわかり易いかも? 
Status != “申請中” 
ステータスが「申請中」でないとき 
表示しない 
ステータスが「申請中」でないとき
隠す
とりあえず 
「隠す」だったらわかり易いかも 
@If(Status = “承認済”;@False; 
ステータスが「承認済」なら非表示でない 
9 
他は非表示 
@True) 
ステータスが「承認済」なら隠さない 
他なら隠す
10 
「申請中」でないとき隠す 
「承認済」なら隠さない、 
他なら隠す 
でも、否定はちょっと残っている 
私たちの日常感覚でいけば…
11 
Status != “申請中” 
@If(Status = “承認済”;@False; 
@True) 
○○のとき「表示する」
だったら、もっとわかり易くない?
12 
Status = “申請中” 
@If(Status = “承認済”;@True; 
@False) 
IBMさん、 
次のNotes/Dominoからは 
「非表示式」をやめて 
「表示式」に変更してよ??
13 
もし 本当に 
「非表示式」が「表示式」に 
変更されたら 
既存アプリはどうする、 
全部の式を直さなきゃならない?
新バージョンでは、既存の式が 
こんな風に 
自動変換される仕組みにすればOKさ! 
14 
! ( いままで 
書かれていた 
非表示式)
新バージョンでは、既存の式が 
こんな風に 
自動変換される仕組みにすればOKさ? 
!(Status != “仮保存”) 
!(@If(Status = “承認済”;@False; 
15 
@True)) 
結局否定形が増えてしまう・・・ 
複数行の式やコメント(Rem)付きは 
自動変換困難かも
16 
非表示式→表示式に変更するなら、 
ここも揃えなきゃおかしいよね! 
Before
17 
非表示式→表示式に変更するなら、 
ここも揃えなきゃおかしいよね! 
常に表示するときは 
式がなくても 
チェック必要に 
表示するところは 
もれなくチェック 
After
18 
既存アプリのことを考えると 
更なる混乱を生むだけっぽいので 
IBMさん、妙案がない限り 
このままでいいです!
19 
とりあえず 
式が表示式に見えるよう、 
自分で工夫しよう 
@If の式なら 
こんなことができるかな
20 
式の先頭に 
hide := @True ; 
show := @False ; 
とつけた上で、 
@If(Status = “仮保存”; 
show; 
hide)
21 
hide := @True ; 
show := @False ; 
いちいち1個1個の非表示式に 
これ書くのは非効率では? 
 →  じゃぁ、こうしちゃえ
22 
フォームの先頭に非表示の 
表示用の計算結果フィールドを置く 
●Showフィールド式の値 @False 
●Hideフィールド式の値 @True
23 
これで各式の先頭部分は不要に。 
hide := @True ; 
show := @False ; 
@If(Status = “仮保存”; 
Show; 
Hide)
24 
ここまでやってきて、 
XPagesやってる方は 
気づかれてますよね?
25 
XPageでは 可視 
つまり表示式です。 
式がなくても 
チェックは入る
26 
話はかわって
非表示式って、 
「段階分け」できない? 
こんな表があったとして
この部分の表示は承認者のみ 
27 
表全体は 
ステータスが承認中のときだけ表示 
この部分の表示は担当者のみ
28 
Status != "承認中" 
(Status != "申請中") | 
(@UserName != Approver) 
(Status != "申請中") | 
(!@Contains(@UserRoles; [Tanto]))
29 
全体の非表示条件は同じだけど 
Status != "承認中" 
表内の特定部分だけ 
式を変えなきゃならない 
(Status != "承認中") | 
(@UserName != Approver) 
こういうのがいっぱいあると 
表全体の非表示条件が変わるとき 
改修が面倒
30 
こんな風にできない? 
全体は統一された式 
Status != "承認中" 
追加条件が必要な部分に 
単独の式を加えるだけ 
@UserName != Approver 
!@Contains(@UserRoles;"[Tanto]")
31 
さて、XPagesやってる方は 
気づかれましたよね? 
XPageでは 
「パネル」を使って 
内部で独立した可視を指定できる 
表とセルで可視を分けられるってのもある
IBMさん、フォームやサブフォームにも 
32 
似たようなこと 
クライアントでもできないかな 
「パネル」追加希望します! 
とりあえず・・・ 
現状で可能な、 
非表示式を軽量化できる工夫は?
非表示式を軽量化する工夫・・
33 
●サブフォームを使う 
●レイヤーを使う 
●プログラム可能な表を使う 
●計算結果テキストを使う
34 
サブフォームを使う 
△ 編集中にダイナミックに切り替わらない 
△ 非表示エリアの数分だけ、 
  都度サブフォームを増やすのは・・・
35 
レイヤーを使う 
段落ごとに個別の非表示式を 
追加できるけど 
△収まるところに収まって 
 くれないので 
 用途は限定的・・
36 
プログラム可能な表を使う
37 
プログラム可能な表を使う
38 
プログラム可能な表を使う 
△いちいち「$表名」フィールドが必要など、 
 やや手間 
○式は、「表示式」的に記述できる 
ここではわざと 
表示してますが 
「$表名」フィールド 
と 
表タブは非表示に
39 
限定的だけどちょっとした工夫、 
計算結果テキスト 
条件にあうときだけ 
改行+表示したい内容
あと、繰り返し使う複雑な条件は、 
表示用の計算結果にまとめましょう! 
以上、あくまで あべ案 でした。 
ほかに、こんな工夫があるよ、 
という方いますか? 
40
41 
おまけの戯言
さて、今では 
新しくつくるフォームよりも 
既存アプリ式のメンテが多いと思います 
メンテナンスを楽にするために 
デザイナーに「非表示式確認モード」が 
欲しいです!
IBMさん、こんなのできませんか? 
カーソルを置いた個所と、同じ非表示 
式の範囲が明示される 
42 
Status!="申請中"
IBMさん、こんなのできませんか? 
カーソルを置いた個所と、同じ非表示 
式の範囲が明示される 
43 
(Status != "申請中") | 
(@UserName != Approver)
44 
おまけの戯言22 
常に非表示なら、どれがスタンダード? 
別に正解は持ち合わせてませんが…
45 
おまけの戯言33 
IBMさん、 
こういうのを 
全部クリアしてくれる機能も 
欲しいです!
46 
ありがとうございました。 
以上で 
終了いたします!

More Related Content

More from Satoru Abe

202104 functiontalkinnotesknowsworkshop28th
202104 functiontalkinnotesknowsworkshop28th202104 functiontalkinnotesknowsworkshop28th
202104 functiontalkinnotesknowsworkshop28th
Satoru Abe
 
202101 のの会@関数Talk 27th functiontalkinnotesknowsworkshop27th
202101 のの会@関数Talk 27th functiontalkinnotesknowsworkshop27th202101 のの会@関数Talk 27th functiontalkinnotesknowsworkshop27th
202101 のの会@関数Talk 27th functiontalkinnotesknowsworkshop27th
Satoru Abe
 
202012 Volt開発をiPhoneで_tektech volt_develop_iphone
202012 Volt開発をiPhoneで_tektech volt_develop_iphone202012 Volt開発をiPhoneで_tektech volt_develop_iphone
202012 Volt開発をiPhoneで_tektech volt_develop_iphone
Satoru Abe
 
202011 のの会@関数Talk 26th functiontalkinnotesknowsworkshop26th
202011 のの会@関数Talk 26th functiontalkinnotesknowsworkshop26th202011 のの会@関数Talk 26th functiontalkinnotesknowsworkshop26th
202011 のの会@関数Talk 26th functiontalkinnotesknowsworkshop26th
Satoru Abe
 
202010 のの会@関数Talk 25th functiontalkinnotesknowsworkshop25th
202010 のの会@関数Talk 25th functiontalkinnotesknowsworkshop25th202010 のの会@関数Talk 25th functiontalkinnotesknowsworkshop25th
202010 のの会@関数Talk 25th functiontalkinnotesknowsworkshop25th
Satoru Abe
 
202009 のの会@関数Talk 24th @function-talk-in-notesknows-workshop
202009 のの会@関数Talk 24th @function-talk-in-notesknows-workshop202009 のの会@関数Talk 24th @function-talk-in-notesknows-workshop
202009 のの会@関数Talk 24th @function-talk-in-notesknows-workshop
Satoru Abe
 
202008 のの会@関数Talk 23rd @function-talk-in-notesknows-workshop
202008 のの会@関数Talk 23rd @function-talk-in-notesknows-workshop202008 のの会@関数Talk 23rd @function-talk-in-notesknows-workshop
202008 のの会@関数Talk 23rd @function-talk-in-notesknows-workshop
Satoru Abe
 
202007 のの会@関数Talk 22nd functiontalkinnotesknowsworkshop22nd
202007 のの会@関数Talk 22nd  functiontalkinnotesknowsworkshop22nd202007 のの会@関数Talk 22nd  functiontalkinnotesknowsworkshop22nd
202007 のの会@関数Talk 22nd functiontalkinnotesknowsworkshop22nd
Satoru Abe
 
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
Satoru Abe
 
202003 functiontalkinnotesknowsworkshop20th
202003 functiontalkinnotesknowsworkshop20th202003 functiontalkinnotesknowsworkshop20th
202003 functiontalkinnotesknowsworkshop20th
Satoru Abe
 
202002 のの会@関数Talk 19th @function-talk-in-notesknows-workshop
202002 のの会@関数Talk 19th @function-talk-in-notesknows-workshop202002 のの会@関数Talk 19th @function-talk-in-notesknows-workshop
202002 のの会@関数Talk 19th @function-talk-in-notesknows-workshop
Satoru Abe
 
Tektek202002 NotesのローカルアプリをBoxに置くはなし - How to browse Notes databases in Box
Tektek202002 NotesのローカルアプリをBoxに置くはなし - How to browse Notes databases in Box Tektek202002 NotesのローカルアプリをBoxに置くはなし - How to browse Notes databases in Box
Tektek202002 NotesのローカルアプリをBoxに置くはなし - How to browse Notes databases in Box
Satoru Abe
 
201912 テクてくLT | Simple Bar Chart on Notes Client 公開版
201912 テクてくLT | Simple Bar Chart on Notes Client 公開版201912 テクてくLT | Simple Bar Chart on Notes Client 公開版
201912 テクてくLT | Simple Bar Chart on Notes Client 公開版
Satoru Abe
 
201912 のの会@関数Talk 18th
201912 のの会@関数Talk 18th201912 のの会@関数Talk 18th
201912 のの会@関数Talk 18th
Satoru Abe
 
201911 のの会@関数Talk 17th @function-talk-in-notesknows-workshop
201911 のの会@関数Talk 17th @function-talk-in-notesknows-workshop201911 のの会@関数Talk 17th @function-talk-in-notesknows-workshop
201911 のの会@関数Talk 17th @function-talk-in-notesknows-workshop
Satoru Abe
 
201910 テクてく☕カフェ| HCLだけに任せられるか! 我々の夢見る コラボ環境再創造Can we leave it to HCL only? Re...
201910 テクてく☕カフェ| HCLだけに任せられるか! 我々の夢見る コラボ環境再創造Can we leave it to HCL only? Re...201910 テクてく☕カフェ| HCLだけに任せられるか! 我々の夢見る コラボ環境再創造Can we leave it to HCL only? Re...
201910 テクてく☕カフェ| HCLだけに任せられるか! 我々の夢見る コラボ環境再創造Can we leave it to HCL only? Re...
Satoru Abe
 
201910 のの会@関数Talk 16th
201910 のの会@関数Talk 16th201910 のの会@関数Talk 16th
201910 のの会@関数Talk 16th
Satoru Abe
 
201908 のの会@関数Talk 15th
201908  のの会@関数Talk 15th201908  のの会@関数Talk 15th
201908 のの会@関数Talk 15th
Satoru Abe
 
201907 のの会@関数Talk 14th
201907  のの会@関数Talk 14th201907  のの会@関数Talk 14th
201907 のの会@関数Talk 14th
Satoru Abe
 
201906 のの会@関数Talk 13th
201906  のの会@関数Talk 13th201906  のの会@関数Talk 13th
201906 のの会@関数Talk 13th
Satoru Abe
 

More from Satoru Abe (20)

202104 functiontalkinnotesknowsworkshop28th
202104 functiontalkinnotesknowsworkshop28th202104 functiontalkinnotesknowsworkshop28th
202104 functiontalkinnotesknowsworkshop28th
 
202101 のの会@関数Talk 27th functiontalkinnotesknowsworkshop27th
202101 のの会@関数Talk 27th functiontalkinnotesknowsworkshop27th202101 のの会@関数Talk 27th functiontalkinnotesknowsworkshop27th
202101 のの会@関数Talk 27th functiontalkinnotesknowsworkshop27th
 
202012 Volt開発をiPhoneで_tektech volt_develop_iphone
202012 Volt開発をiPhoneで_tektech volt_develop_iphone202012 Volt開発をiPhoneで_tektech volt_develop_iphone
202012 Volt開発をiPhoneで_tektech volt_develop_iphone
 
202011 のの会@関数Talk 26th functiontalkinnotesknowsworkshop26th
202011 のの会@関数Talk 26th functiontalkinnotesknowsworkshop26th202011 のの会@関数Talk 26th functiontalkinnotesknowsworkshop26th
202011 のの会@関数Talk 26th functiontalkinnotesknowsworkshop26th
 
202010 のの会@関数Talk 25th functiontalkinnotesknowsworkshop25th
202010 のの会@関数Talk 25th functiontalkinnotesknowsworkshop25th202010 のの会@関数Talk 25th functiontalkinnotesknowsworkshop25th
202010 のの会@関数Talk 25th functiontalkinnotesknowsworkshop25th
 
202009 のの会@関数Talk 24th @function-talk-in-notesknows-workshop
202009 のの会@関数Talk 24th @function-talk-in-notesknows-workshop202009 のの会@関数Talk 24th @function-talk-in-notesknows-workshop
202009 のの会@関数Talk 24th @function-talk-in-notesknows-workshop
 
202008 のの会@関数Talk 23rd @function-talk-in-notesknows-workshop
202008 のの会@関数Talk 23rd @function-talk-in-notesknows-workshop202008 のの会@関数Talk 23rd @function-talk-in-notesknows-workshop
202008 のの会@関数Talk 23rd @function-talk-in-notesknows-workshop
 
202007 のの会@関数Talk 22nd functiontalkinnotesknowsworkshop22nd
202007 のの会@関数Talk 22nd  functiontalkinnotesknowsworkshop22nd202007 のの会@関数Talk 22nd  functiontalkinnotesknowsworkshop22nd
202007 のの会@関数Talk 22nd functiontalkinnotesknowsworkshop22nd
 
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
 
202003 functiontalkinnotesknowsworkshop20th
202003 functiontalkinnotesknowsworkshop20th202003 functiontalkinnotesknowsworkshop20th
202003 functiontalkinnotesknowsworkshop20th
 
202002 のの会@関数Talk 19th @function-talk-in-notesknows-workshop
202002 のの会@関数Talk 19th @function-talk-in-notesknows-workshop202002 のの会@関数Talk 19th @function-talk-in-notesknows-workshop
202002 のの会@関数Talk 19th @function-talk-in-notesknows-workshop
 
Tektek202002 NotesのローカルアプリをBoxに置くはなし - How to browse Notes databases in Box
Tektek202002 NotesのローカルアプリをBoxに置くはなし - How to browse Notes databases in Box Tektek202002 NotesのローカルアプリをBoxに置くはなし - How to browse Notes databases in Box
Tektek202002 NotesのローカルアプリをBoxに置くはなし - How to browse Notes databases in Box
 
201912 テクてくLT | Simple Bar Chart on Notes Client 公開版
201912 テクてくLT | Simple Bar Chart on Notes Client 公開版201912 テクてくLT | Simple Bar Chart on Notes Client 公開版
201912 テクてくLT | Simple Bar Chart on Notes Client 公開版
 
201912 のの会@関数Talk 18th
201912 のの会@関数Talk 18th201912 のの会@関数Talk 18th
201912 のの会@関数Talk 18th
 
201911 のの会@関数Talk 17th @function-talk-in-notesknows-workshop
201911 のの会@関数Talk 17th @function-talk-in-notesknows-workshop201911 のの会@関数Talk 17th @function-talk-in-notesknows-workshop
201911 のの会@関数Talk 17th @function-talk-in-notesknows-workshop
 
201910 テクてく☕カフェ| HCLだけに任せられるか! 我々の夢見る コラボ環境再創造Can we leave it to HCL only? Re...
201910 テクてく☕カフェ| HCLだけに任せられるか! 我々の夢見る コラボ環境再創造Can we leave it to HCL only? Re...201910 テクてく☕カフェ| HCLだけに任せられるか! 我々の夢見る コラボ環境再創造Can we leave it to HCL only? Re...
201910 テクてく☕カフェ| HCLだけに任せられるか! 我々の夢見る コラボ環境再創造Can we leave it to HCL only? Re...
 
201910 のの会@関数Talk 16th
201910 のの会@関数Talk 16th201910 のの会@関数Talk 16th
201910 のの会@関数Talk 16th
 
201908 のの会@関数Talk 15th
201908  のの会@関数Talk 15th201908  のの会@関数Talk 15th
201908 のの会@関数Talk 15th
 
201907 のの会@関数Talk 14th
201907  のの会@関数Talk 14th201907  のの会@関数Talk 14th
201907 のの会@関数Talk 14th
 
201906 のの会@関数Talk 13th
201906  のの会@関数Talk 13th201906  のの会@関数Talk 13th
201906 のの会@関数Talk 13th
 

非表示式とご相談