非表示式とご相談

633 Views

September 14, 14

スライド概要

おなじみ式言語についてのセッションです。非表示の制御は、XPages でも可視という名で実装されており、どんな開発の場合にも何らか行われていると思います。非表示式の課題と要望、また非表示式スリム化の珍案も - お役に立つ保証はありません。

Session slide about Hide Formula on Notes/Domino.

profile-image

Notes/Domino worker - Formula language ♡er, #IBMChampion '15 & #HCLAmbassador '20 - '23, Nature Game (Sharing Nature) leader

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

テクてくLotus技術者夜会 2014年8月 非表示式とご相 談 ネオアクシス株式会社 阿部覚

2.

ごあいさつ 所属 ネオアクシス株式会社(neoaxis.co.jp) ※合併前は TISソリューションビジネス (TSB) これまでの夜会は(辛うじて)未欠席 会社の謀略で名刺には Notesエバンジェリスト とあります 式言語好きということになっている blog "abOut.nsf" http://blogs.yahoo.co.jp/jftfw228 facebook /abesat twitter @abesat mixi あう゛ 2

3.

非表示式って 私の認識: 処理(アクション、ボタン、エージェント)の 次に移行しづらい存在、なぜなら、きめ細かいから 改修の際も要注意 標準の「設計の分析」では出てこない存在 デザイナーのフォーム内で コピペするときに忘れてはならない存在 3

4.

そもそも論から・・ そもそも「非表示式」って こんがらがらない? (Status != “申請中”) | (@UserName != Approver) 4

5.

xxがxxでない、または、 xxがxxでないときは、 →非表示である (Status != “申請中”) | (@UserName != Approver) 正直、私はこういう式、 すっと理解できません 5

6.

「非表示」 って日本語が いけてないのでは? 英語は否定がない "Hide Formula"(隠し式?) 6

7.

とりあえず 「隠す」だったらわかり易いかも? Status != “申請中” @If(Status = “承認済”;@False; @True) 7

8.

とりあえず 「隠す」だったらわかり易いかも? Status != “申請中” ステータスが「申請中」でないとき 表示しない ステータスが「申請中」でないとき 隠す 8

9.

とりあえず 「隠す」だったらわかり易いかも @If(Status = “承認済”;@False; @True) ステータスが「承認済」なら非表示 でない 他は非表示 ステータスが「承認済」なら隠さな 9 い

10.

「申請中」でないとき隠す 「承認済」なら隠さない、 他なら隠す でも、否定はちょっと残っている 私たちの日常感覚でいけば… 10

11.

Status != “申請中” @If(Status = “承認済”;@False; @True) ○○のとき「表示する」 だったら、もっとわかり易くない? もっと 11

12.

Status = “申請中” @If(Status = “承認済”;@True; @False) IBMさん、 次のNotes/Dominoからは 「非表示式」をやめて 「表示式」に変更してよ?? 12

13.

もし 本当に 「非表示式」が「表示式」に 変更されたら 既存アプリはどうする、 全部の式を直さなきゃならない? 13

14.

新バージョンでは、既存の非表示式 が、 こんな風に 自動変換される仕組みにすればOKさ! ! ( いままで 書かれていた 非表示式 ) 14

15.

新バージョンでは、既存の非表示式 が、 こんな風に !(Status != “仮保存”) 自動変換される仕組みにすればOKさ? !(@If(Status = “承認済”;@False; @True)) 結局否定形が増えてしまう・・・ 複数行の式やコメント(Rem)付きは 自動変換困難かも 15

16.

非表示式→表示式に変更するなら、 ここも揃えなきゃおかしいよね! Before 16

17.

非表示式→表示式に変更するなら、 ここも揃えなきゃおかしいよね! 表示するところは もれなくチェック 常に表示するときは 式がなくても チェック必要に After 17

18.

既存アプリのことを考えると 更なる混乱を生むだけっぽいので IBMさん、妙案がない限り このままでいいです! 18

19.

とりあえず 式が表示式に見えるよう、 自分で工夫しよう @If の式なら こんなことができるかな 19

20.

式の先頭に hide := @True ; show := @False ; とつけた上で、 @If(Status = “仮保存”; show; hide) 20

21.

hide := @True ; show := @False ; いちいち1個1個の非表示式に これ書くのは非効率では? → じゃぁ、こうしちゃえ 21

22.

フォームの先頭に非表示の 表示用の計算結果フィールドを置く Showフィールド ● Hideフィールド ● 式の値 @False 式の値 @True 22

23.

これで各式の先頭部分は不要に。 hide := @True ; show := @False ; @If(Status = “仮保存”; Show; Hide) 23

24.

ここまでやってきて、 XPagesやってる方は 気づかれてますよね? 24

25.

XPageでは 可視 つまり表示式です。 式がなくても チェックは入る 25

26.

話はかわって 非表示式って、 「段階分け」できない? こんな表があったとし て 26

27.

表全体は ステータスが承認中のときだけ表示 この部分の表示は承認者のみ この部分の表示は担当者のみ 27

28.

Status != "承認中" (Status != "申請中") | (@UserName != Approver) (Status != "申請中") | (!@Contains(@UserRoles; [Tanto]))28

29.

全体の非表示条件は同じだけど Status != "承認中" 表内の特定部分だけ 式を変えなきゃならない (Status != "承認中") | (@UserName != Approver) こういうのがいっぱいあると 表全体の非表示条件が変わるとき 改修が面倒 29

30.

こんな風にできない? 全体は統一された式 Status != "承認中" 追加条件が必要な部分に 単独の式を加えるだけ @UserName != Approver !@Contains(@UserRoles;"[Tanto]") 30

31.

さて、XPagesやってる方は 気づかれましたよね? XPageでは 「パネル」を使って 内部で独立した可視を指定できる 表とセルで可視を分けられるってのもある 31

32.

似たようなこと クライアントでもできないかな IBMさん、フォームやサブフォームにも 「パネル」追加希望します! とりあえず・・・ 現状で可能な、 非表示式を軽量化できる工夫は? 32

33.

非表示式を軽量化する工夫・・ サブフォームを使う ● レイヤーを使う ● プログラム可能な表を使う ● 計算結果テキストを使う ● 33

34.

サブフォームを使う △ 編集中にダイナミックに切り替わらない △ 非表示エリアの数分だけ、 都度サブフォームを増やすのは・・・ 34

35.

レイヤーを使う 段落ごとに個別の非表示式を 追加できるけど △収まるところに収まって くれないので用途は限定 的・・ 35

36.

プログラム可能な表を使う 36

37.

プログラム可能な表を使う 37

38.

プログラム可能な表を使う △いちいち「$表名」フィールドが必要など、 やや手間 ○式は、「表示式」的に記述できる ここではわざと 表示してますが 「$表名」フィールド と 表タブは非表示に 38

39.

限定的だけどちょっとした工夫、 計算結果テキスト 条件にあうときだけ 改行+表示したい内容 39

40.

あと、繰り返し使う複雑な条件は、 表示用の計算結果にまとめましょう! 以上、あくまで あべ案 でした。 ほかに、こんな工夫があるよ、 という方いますか? 40

41.

おまけの戯言 さて、今では 新しくつくるフォームよりも 既存アプリ式のメンテが多いと思いま す メンテナンスを楽にするために デザイナーに「非表示式確認モード」 が 欲しいです! 41

42.

IBMさん、こんなのできませんか? カーソルを置いた個所と、同じ非表示 式の範囲が明示される Status!="申請中" 42

43.

IBMさん、こんなのできませんか? カーソルを置いた個所と、同じ非表示 式の範囲が明示される (Status != "申請中") | (@UserName != Approver) 43

44.

おまけの戯言2 常に非表示なら、どれがスタンダード? 別に正解は持ち合わせてませんが… 44

45.

おまけの戯言3 IBMさん、 こういうのを全部クリアしてくれる機 能も 欲しいです! 45

46.

ありがとうございました。 以上で 終了いたします! 46