577 Views
June 19, 23
スライド概要
Notes/Dominoの@関数を取り上げながら、調べたこと、経験したことを雑談してゆこうと思います。
第34回は @UpdateFormulaContext と @Word について
@ -notes knows community- 2022/04/07 @関数Talk 第34回 公開版 @ Talks around @Functions in Notes and Domino ✔ @UpdateFormulaContext 阿部 覚 34th ✔ @Word (tw:) @abesat
@ もともと、"@Randomに" 関数を拾ってトークする趣旨では あるのですが 前回のトーク時に偶々触れたり調べたりした関数から2つ @
@ @UpdateFormulaContext で放談 @
前回のTalkで調査しているときにたまたま目にし @ 「そんな関数があるの?」 実は私は知らなかったので確認することにしました きっかけとなった記事(Q&A): https://stackoverflow.com/questions/44016933/how-to-use-getdocfield-in-ibm-lotusdomino-for-a-database-different-than-the-cu 前回 @GetDocField でちらっと触れたと思うのですが @GetDocField では自分のDBからしかデータを取れない @ このQ&Aには 他のDB内の文書IDからデータを取るために @UpdateFormulaContextを使用するというAnswerが 寄せられています(やや無理やりですが)
要するにこんな関数だと思います(たとえばなし) @ @UpdateFormulaContextが無いとき とある画面 とある画面内の式 : あんなことして こんなことして ついでにこうして 次の画面開いて そしたらこれもして あれも忘れずに あとこんな風にして : 次の画面 @
(たとえばなし) @ @UpdateFormulaContextがあるとき とある画面 とある画面内の式 : あんなことして こんなことして ついでにこうして 次の画面開いて そっちに引っ越そう そしたらこれもして あれも忘れずに あとこんな風にして : 次の画面 @
@UpdateFormulaContextがあるときの式を @ サンプル化すると、こんな感じでしょうか Document A 『1』 B 『2』 : FIELD A := "1"; FIELD B := "2"; @Command([Compose];"NewDoc"); @UpdateFormulaContext; FIELD C := "3"; FIELD D := "4"; FIELD E := "5"; : NewDoc @ C 『3』 D 『4』 E 『5』
@Commandで、別画面を開いたとき @ 元の画面側から別画面の操作ができたのを 初めて認識しました おそらく20年以上 知らずにいたのはかなりもったいなかったなと 次に… @
@ @Word で放談 @
前回のTalkでちらっと触れたら「そんな関数があるの?」 @ 意外と知らないベテランさんが多かったので 前回のスライド @ さっそくですが「またの機会」を用意しました
「Word」といわれると、 @ 文書作成のオフィスソフトを連想してしまいがちですが 「単語」ってことですね 文字列から●番目の単語を取り出すのに使えます @Word("Notes Knows Community"; " "; 3) ➡ 3番目の単語 "Community" が戻ります @ @Word("OnTime Group Calendar"; " "; 2) ➡ 2番目の単語 "Group" が戻ります
@ 英語など西洋語をベースに考えると 「単語」の区切りはふつう 「スペース」なんだけど、 そこは2つ目の引数で自由に指定できます @Word("Notes-Knows-Community"; "-"; 3) ➡ 3番目の「単語」 "Community" が戻ります @ @Word("OnTime/Group/Calendar"; "/"; 2) ➡ 2番目の「単語」 "Group" が戻ります
ただし、自由すぎますけど😏 @ スペースとか、区切りっぽい記号文字でなきゃ ならないってわけでもありません @Word("すもももももももものうち"; "も"; ●) 問題:"" 以外の値を返したい場合 ●に入る数値は何と何? @
さらには、区切りは別に1文字でなくともよいので…😮 @ @Word("うらにわにわにわにわにわにわにわとりがいる"; "にわ"; ●) 問題:"" 以外の値を返したい場合 ●に入る数値は何と何? @ ともかく、単語の区切り文字は、 実際の言語で区切りに使用されうる文字列かどうかは 関係なく、 変な話、いくらでもその場の用途でこじつけられます
これは今回ヘルプを見るまで知らなかったのだけど @ マイナスもいけます @Word("もも すもも いちじく 柿 なし"; " "; -2) ➡ 後ろから2番目の単語 "柿" が戻ります @
これも今回ヘルプを見るまで知らなかったのだけど @ 複数の文字列を対象にした取り出しもいけます tmp:= "もも すもも いちじく 柿 なし" : "さとう 塩 酢 しょうゆ ソース"; @Word(tmp; " "; 3) ➡ 3番目の単語 "いちじく" と "酢" が戻ります @
単語の数を超えるような指定をした場合には @ 当然ながら @Word("もも すもも いちじく 柿 なし"; " "; 9) ➡ 単語が9個もないので "" が戻ります @
その一方で、 @ @Word("もも すもも いちじく 柿 なし"; " "; 0) ➡ "もも" が戻ります ヘルプ(English)には Returns an empty string if number is out of range, except that 0 is equivalent to 1. @ 範囲外の数字は空の文字列("")を返すけど、 ただし0は1と一緒だよ とのこと (日本語のヘルプでは「0 が 1 に相当する場合を除き」 ちょっと通じにくいので😓)
@ ということで、本日の関数は ・前回、自分が初めて知った @UpdateFormulaContext ・前回、意外に知られてなかった @Word @ で、ございました どちらも知られてない割には使える関数かと
@ 今回もお付き合い ありがとうございました 😀 @