201901 のの会@関数Talk 9th | Talks around @Functions in Notes and Domino

126 Views

February 07, 19

スライド概要

Notes/Dominoの@関数を取り上げながら、調べたこと、経験したことを雑談してゆきます。
第9回は @Right、@RightBack、@Left、@LeftBack、そして@ThisName について。

また、こちらに「のの会」で発表した後の補足を書いておりますので、あわせてご参照ください。
https://blogs.yahoo.co.jp/jftfw228/15334834.html

profile-image

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

シェア

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

関連スライド

各ページのテキスト
1.

-notes knows community- 2019/02/06 @関数Talk 第9回 公開版 ネオアクシス株式会社 阿部覚 (tw:) @abesat

2.

今回は いつかやろうと思っていて でもなんとなくキープしてきたネタ この4つの関数って、 どれを使うか こんがらがったり…しませんか?

3.

@Right @Left @RightBack @LeftBackの 雑談

4.

右と左の違いくらいは区別がついても @Right @Left @RightBack @LeftBack 4つの正確な使い分けかた、わかりますか?

5.

まずはヘルプのリファレンスを見ましょう IBMさんのヘルプ 書かれぶりに、少々統一感がないような…

6.

個々のヘルプの記載にも ややばらつきがありますが IBMさんのヘルプ 2種類の構文があるのはいずれも同じです

7.

わかりやすく書くと @Right("Notes_Knows"; 5) 2つ目の引数が数値になるタイプと @Right("Notes_Knows"; "_") 2つ目の引数が文字列になるタイプ ※上記例の戻り値はいずれも"Knows"

8.

以降、このスライドでは @Right("Notes_Knows"; 5) こちらを「数値タイプ」 @Right("Notes_Knows"; "_") こちらを「文字タイプ」と 呼ぶことにします

9.

数値タイプから確認しましょう こんなフォームを用意しました 同じ引数で各@関数を実行します 1つ目の引数 2つ目の引数 左の見出しの式を持つ計算結果フィールド

10.

カウントダウン形式で行きたいと思います! 1つ目の引数はこの11文字 2つ目の引数を 11から 減らしてゆきます 都度、更新ボタンを押してるとお考え下さい

11.

スタート!

22.

でもって、0! でもって

23.

ついでに、-1!

24.

数値タイプをまとめると こんなとらえ方になるでしょうか @Right AAAAABBBBB @RightBack AAAAABBBBB @Left AAAAABBBBB @LeftBack AAAAABBBBB

25.

マイナス指定は、ヘルプに載っており @Left、@LeftBackのヘルプに 「負の数値を指定すると、 文字列全体が返されます。」とあります …ん? ヘルプ、間違ってますよ!

26.

今度は文字タイプです やはりこんなフォームを用意しました 1つ目の引数 2つ目の引数 左の見出しの式を持つ計算結果フィールド

27.

サンプルに使うメインの文字列は、 やはりこれ こちらでは、2つ目の引数を 「o」にしています

28.

やってみると…

29.

文字タイプをまとめると こんなとらえ方になりそうです @Right aaaaaXaaaaa @RightBack aaaaaXaaaaa @Left aaaaaXaaaaa @LeftBack aaaaaXaaaaa

30.

両タイプを並べてみます このとらえ方だと@Right、@RightBackは タイプにより探索方向が逆… 数値タイプ 文字タイプ @Right AAAAABBBBB aaaaaXaaaaa @RightBack AAAAABBBBB aaaaaXaaaaa @Left AAAAABBBBB aaaaaXaaaaa @LeftBack AAAAABBBBB aaaaaXaaaaa

31.

文字タイプに関して補足をひとつ 目的としている文字が1つ目の引数にないとき 各関数は値を返さない、 ヌルになってしまいます

32.

その対策として tmp := @Right(Target; "X"); @If(tmp=""; Target; tmp) こんな式を書いている方がいたら @Right(Target+"X"; "X"); こんな風に簡略化できます プログラミングの世界で 「番兵」と呼んでいる方法になると思います

33.

@ThisNameの 補足

34.

前回、 @ThisValueといっしょに取り上げたけど IBMさんのヘルプ 実例は挙げずに…

35.

こんなこと書いておしまいにしていました もうひとつ、 @ThisName のほうは いまいち利用しづらい というのもありますが これはまた機会があれば 会場では異論もあったので、 なんとなく補足しますと

36.

ヘルプにはこんなことが書かれており IBMさんのヘルプ 私が知っていたのはこういう使い方

37.

ただフィールド名を取り出すだけのために わざわざ@ThisNameとほかの関数を 組み合わせるのって大げさでない? というのが、 私の感じていた使いづらさです あきらめて フィールド名を直接書いちゃった方が 式、短くて済むし 後から見る人がわかりやすいよね? Quantity_1 * Cost_1

38.

と…私の話は、いったんここで 区切りたいと思います! 今回もありがとうございました!