ページビューの合計

ラベル Designer の投稿を表示しています。 すべての投稿を表示
ラベル Designer の投稿を表示しています。 すべての投稿を表示

2017年10月23日月曜日

ビューの行に色をつける

みなさま、こんにちは。
今回の台風21号、なかなか大きな被害をもたらしてくれたようですが、皆様支障ございませんでしたでしょうか。
神戸は夜中3時ころまで、かなり強い風に見舞われ、寝不足で本日を迎えることになりました。
会社のあるポートアイランドは海上ということで、さらに強い風だったようで、樹木が折れて歩道をふさいでいたり、信号が全く違う方向を向いていたりと、復旧には少しかかりそうです。

さて余談が長くなりましたが、先日はビュー列にアイコンを表示する手順を掲載致しました。
今回はビューの行に色をつける機能について、記載致します。

今回は下記のような勤怠に関わるビューについて、内容によって色を分けてみたいと思います。


具体的には、

 遅刻・早退⇒  文字列 
 直行・直帰⇒  文字列 
 休暇等  ⇒  文字列 

設定手順ですが、ビューの先頭に1列追加し、式で色を設定します。
列の列情報にある「色で値を表示」に、詳細タブで「列を非表示」にそれぞれチェックします。


色の指定はRGBの値で行い、以下のように文字色のみ変更する場合と、文字色と背景色の両方を変更する場合があります。


つまりRGBの値が3項目の場合は文字色のみ、6項目になると、前半3項目で背景色、後半3項目で文字色を設定します。

なお背景色のみの設定は不可能ですが、6項目を使い設定は可能です。

それでは実際に先のビューに組み込んでみましょう。
ビューの最初に1列追加し、色で値を表示」「列を非表示」にチェックしてください。

ひとつひとつの色をRGBで指定してもいいのですが、列を汎用的に使用するために、以下のように色の名称を設定します。

red := 255:0:0;
blue := 0:0:255;
yellow := 255:255:0;
green := 0:255:65;
white := 255:255:255;
black :=  1:1:1;
plain:= 0:0:0;



以上で主要な色を定義しました。

もし他の色を使われるようでしたら、同じように追加ください。

あとは列式を@ifで定義するだけです。

3条件をネストしますので、少し長くなりますが、先の定義に続き、下記のように記載してみました。

@If (@Contains(riyuu;"遅刻")|@Contains(riyuu;"早退");yellow:black;@if(@Contains(riyuu;"直");green:blue;@If(@Contains(riyuu;"休");red:yellow;plain)))



以上で先のビューをプリビューしてみましょう。


かなり派手ですね。アイコンもみにくくなってしまいました。
ということで、アイコン部分は色が設定されないようにしてみます。

このビューの場合、「終了日」と「承」の間に列を追加します。
先と同様、「色で値を表示」に、詳細タブで「列を非表示」にそれぞれチェックします。
式には、

255:255:255:255:255:255


と入力し、文字も背景色も「白」に設定します。
以上でプリビューすると、


このようにアイコン部分の背景が白になり、見やすくなります。

つまり色を設定したい列の前に「色で値を表示」設定した列を追加することで、それ以降の列の色が変化することがご理解頂けるかと思います。

これらの列はコピーして他のアプリケーションでも流用できますので、ひとつ作っておけば以降は簡単に設定できるはずです。

さてここからは先日とある方の記事を教えて頂いた内容を実践してみたいと思います。

先日のビューアイコンや、本日の行の色。
実はカレンダービューでも適用されるんです。
ということで、試してみましょう。

先のアプリケーションのカレンダービューは以下のようになっております。


設計は至って簡単で、下記のようになっております。


早速ですが、先に作成したビューの色設定を行った1列目をコピーし、カレンダービューの3列目(名前が表示されている列の前)に追加します。


少し色に違和感がありますね。
それではNotesでプリビューしてみましょう。


このように設定した色でカレンダーが表示されました。

次にビューアイコンを試してみましょう。

先の色設定列の前に1列追加し、「値をアイコン表示」にチェックします。
今回は休みの場合のみアイコンを表示するように、以下の式を設定してみました。

@If(@Contains(riyuu;"休");87;"")


早速ですが、プリビューしてみます。


少し見にくいですが、青丸内に病気っぽい顔アイコンが表示されました。

このように色やアイコンを使うことで、簡単にユーザーにわかりやすいアプリケーションにアップグレードすることが可能です。
弊社では特に注意しなければいけない行等に、背景:黒/文字:黄 といった超目立つ設定を施したものもあります。
もっとも今回は例ですので、もう少しやさしい色にしたほうがいいかと思いますが・・・

ぜひ1列追加して、さらに使いやすいアプリケーションに進化させてください。

2017年10月16日月曜日

ビューの列にアイコンを表示する

みなさま、こんにちは!
10月に入り、ノーツのイベントが盛りだくさんのようです。
ということで、簡単に宣伝を・・・

10月20日(金)【会員向:ユーザー会員限定】第 3 回ユーザー情報交換会
10月20日(金) テクてく Lotus 技術者夜会 ザ・コミュニティ編 10月
10月27日(金) ノーツコンソーシアム名古屋地区研究会(ユーザー情報交換会)
11月02日(木) ノーツコンソーシアム大阪研究会
11月15日(水) ノーツコンソーシアム オープンセミナー
11月17日(金) ノーツ四国フェスタ(.NSF)

20日は本業の重要会議があるため、参加できませんが、それ以外には参加予定です。
もし現地でお目にかかる機会がございましたら、ぜひお声掛けください!!

さて・・・ネタが・・・・

ということで、今後配属されるであろう?
後輩のために、ちょっとした内容を掲載できればと考えております。

今回はビューの列にアイコンを表示させる方法についてです。
添付ファイルのついたメールにクリップアイコンが表示されますが、このような機能の設定手順になります。


設定できるアイコンは以下となります。
(ヘルプで「列アイコン」等で検索するとHitします)
初めて見る方には分かりにくいかと思いますが、行が1の位、列が10,100の位となる番号表になっております。
例えば先のメール添付ファイル用のアイコンは"5"、赤の上向き矢印は"101"となります。


それでは今回は下記フォームのような承認作業が発生するデータベースについて、承認状況をアイコン化してみます。
(以下では上段が総務担当者用、下段が承認者用のチェック欄になります。
チェックボックスがONになると、それぞれ「総務承認」「承認者承認」という値となるように設定してあります。)


以下のような作成日順のビューの末尾に承認状況をアイコンで表示してみます。


2列、末尾に追加します。
列幅は"2"くらいが見易いかと思います。
その左の列のタイトルに承認者を示す「承」、右側の列に総務を示す「総」と設定します。
列情報プロパティにて「値をアイコン表示」にチェックを行います。


次に「承」列の値ですが、「式」として、

@If(c_syonin="承認者承認";82;81)


と設定します。

同様に「総」列の値の式は、

@If(c_somu="総務承認";82;81)


となります。

ノーツでプリビューすると、以下のように承認されたものに 
未承認のものに 
が表示されるようになりました。


例えばフィールドの値ごとにアイコンを変化させたり等、さまざまな用途で利用可能な機能であり、見た目にもわかり易い表現が簡単に実現できますので、ぜひ有効にご使用ください。


2017年9月25日月曜日

基本機能に絞った掲示板について~その3

みなさま、こんにちは!
9月も今週で終わりですね。朝夕かなり涼しくなって参りましたので、皆様体調管理にはご留意ください。

先週は東京で【IBM Notes Domino Day 2017】が開催されましたが、かなり盛況との事でした。
私も参加したかったのですが、どうしても本業の兼ね合いがあり、願いは届かず・・・。
今は11月に開催されますノーツコンソーシアムオープンセミナーに参加できるよう調整中です!!

皆様とお会いできる日を楽しみに、日々働いております。

さて先日まででNotesクライアントから利用できる掲示板を作成しましたが、標準テンプレートにはWEB機能も含まれております。
ということで、今回からはWEB画面を作成してみましょう。

XPages作成の初期設定については、お手数ですが過去記事をご参照ください。

それでは新規XPage「m_byDate」を作成します。


ひらいたXPageに、「日付順」ビューをバインドします。


[コントロールの選択]ダイアログボックスが使用可能になっていることを確認し、データパレットのすべての項目を選択し、設計内にドラッグ&ドロップします。


データバインドコントロールの選択ダイアログが開きますので、そのままOKします。


「表示」コントロールを選択し、以下幅を100%に設定します。


フォントのスタイル等は自由に設定してください。

続いてピュー列「title」を選択し、プロパティの「表示」タブ内「列の値をリンクとして表示する」にチェックし、開くモードを「読み取り専用」を選択します。


以上で保存し、ブラウザでプリビューしてみましょう。



見づらいですね。
少し体裁を整えてみましょう。

まずは列タイトルです。

Created ⇒ 作成日
Title ⇒ タイトル


に変更します。


続いて全てのビューの列を選択し、左余白(内側)を設定します。
私は3ピクセルとしました。



次に全てのビュー列のヘッダーを選択し、背景を設定します。
私は薄い青としました。


最後に列の幅を設定します。

作成日:10%
作成者:10%
カテゴリ1:15%
カテゴリ2:15%
タイトル:50%


以上で再度ブラウザでプリビューしてみましょう。


かなり見やすくなりましたね。
※私はページャーも変更してみました。ページャを選択すると、サンプル1~7がありますので、お好きなものを選んでください。


以上で日付順ビューのページが整って参りました。

次回はフォームのXPageを作成し、日付順ページから開くように設定します。


2017年9月19日火曜日

基本機能に絞った掲示板について~その2

みなさま、こんにちは!
先週のテクてくカフェ、盛り上がりましたね。
Notesアプリに限定した機能に関するディスカッションでしたので、次々出てくるというものではありませんでしたが、ひとつ出ると派生的に次に繋がるのがおもしろかったです。
大阪PVは音声がうまく双方向に繋がらず、その点は少し残念ですが、今後の対策に期待してます!

さて、先日は単機能の掲示板のフォームとビューを作成しました。
今回はフォームのカテゴリフィールドをダイアログリストに変更し、過去履歴から選択できるように修正してみます。
過去履歴を参照するには、Excelでいうvlookup関数のような関数@DbColumnを利用します。

まずはヘルプ文書を見てみましょう。


文面だけ読むと複雑なことが書かれているのですが、構文は以下の通りです。

@DbColumn(class:cache;server:database;view;columnNumber)

今回のデータベースにあてはめた場合、

class : "Notes" または ""
cache : "NoCache"・・・検索するたびに最新情報を取得するためのオプション
server:database : "" ・・・同一データベース内に対象のビューがある場合は省略可
veiw : byCategody1 及び byCategory2
columnNumber : 1 ・・・1列目のデータを参照する

となります。

それでは「メイン」フォームを開いてください。
まずはカテゴリ1からです。

フィールド「category1」を選択し、種類をテキストからダイアログリストに変更します。
制御タブに移動し、選択で「式で選択肢を設定」に変更し、以下式を設定します。

@DbColumn("":"NoCache";"";"byCategory1";1)



それではNotesでプリビューしてみましょう。


フィールドの右側に▼ボタンが表示され、クリックすると「キーワードの選択」ダイアログが表示され、過去に登録のあるカテゴリ1の内容が表示されます。
選択して「OK」すると、カテゴリ1に選択した値がセットされます。

このままでは新たなキーワードが設定できませんので、先ほどの式の下にある「リストにない値も可」にチェックします。


それでは再度Notesでプリビューしてみましょう。
先の「キーワードの選択」ダイアログに、「新しいキーワード」という項目が追加されました。


こちらに値を入力し、OKすることで新規のカテゴリを追加することができます。

なお複数のカテゴリを選択できるようにするには、フィールド情報タブにある「複数値も可」にチェックします。


以下のように、キーワードの前にチェックボックスが表示され、複数の値(新しいキーワードと同時にセットも可)が設定可能となります。


同様にcategory2についても、プロパティを変更し、以下の式をセットします。

@DbColumn("":"NoCache";"";"byCategory2";1)



同じように、キーワードが選択できるようになりました。


このように@DbColumnを用いることで、選択肢を提供し、入力の簡素化を図るだけでなく、文字のゆらぎ(前半角の違いも含む)により、別カテゴリに集まってしまうという人為的なミスを減らすことも可能となります。
もっとも常に新しいキーワードに手入力されてしまうと活きてこないのですが。

それでは最後にフレームセットやナビゲーターを準備し、アプリケーションを仕上げます。
もちろん必須ではありませんので、お好みで設定してください。

まずはナビゲータです。
新規ナビゲータで「 メニュー|menu 」を作成します。


開いたナビゲータに4個の四角形を追加し、それぞれに「日付順」「作成者別」「カテゴリ1別」「カテゴリ2別」と表題を設定。
シンプルアクションでそれぞれのビューを開くよう設定します。


次にフレームセットです。
新規フレームセット作成で、「 メイン|main 」を作成します。


左のフレームには

名前:menu
種類:名前付き設計要素/ナビゲータ
値:メニュー
フレーム内のリンクのデフォルト対象:body


と設定します。

右のフレームには、

名前:body
種類:名前付き設計要素/ビュー
値:日付順


と設定し、保存します。

次に「アプリケーション構成」の「アプリケーションのプロパティ」の「起動」タブを選択し、IBM Notes クライアントの起動で「指定したフレームセットを開く/メイン」と設定し保存します。


最後にリソースのアイコンで、適当な画像(32x32ピクセル)に置換し、完成です。


さて、今回は機能を絞った掲示版にフォーカスし、作成してみました。
標準テンプレートと比較すると、設計の簡単さは理解頂けるかと思います。
それゆえ、カスタマイズも簡単になっているはずです。

こちらをベースに、さまざまなアプリケーションに発展させることも可能ですので、ぜひ一度お試しください。

なお私のほうで作成したアプリはこちらよりダウンロード可能ですので、ご自由に使ってください。


2017年9月11日月曜日

基本機能に絞った掲示板について~その1

みなさん、こんにちは!
先週金曜は、IBMチャンピオンである小野様を招待し、大阪研究会はたいへん盛り上がりました。会員の皆様へは、近日議事録が発表されるかと思いますので、お待ちください。
さて今週もイベントは続きます。
金曜にはテクてくLotus技術者夜会が開催されます。
今回はテクてくカフェの開催だそうです。
私自身、初参加ですので、今から楽しみです~。

最近、つくづくブログでの情報発信の難しさ、自分の文才のなさに躓いております。
ただ何もせずにいても成長しませんので、「継続は力なり」ということで引き続きよろしくお願い致します。


さて今回からは新シリーズをスタート致します。
恐らく掲示板はディスカッションテンプレートを使用されているユーザー様が多いのかと推測します。
弊社も過去に記載したように、ディスカッションテンプレートを少しカスタマイズして利用しているアプリケーションが多数存在します。

もちろんディスカッションテンプレートは非常に優秀なテンプレートではありますが、ノーツ初心者が少し手を加えたい等の場合、設計要素が多く、場合によっては影響範囲も考慮する必要があるため、少しハードルが高いのも事実かと思います。

そこで今回は単純な掲示板を作成し、先々、発展したアプリケーションに改築しやすいものを作ってみたいと思います。

それでは新規でアプリケーションを作成します。
テンプレートは使用しません。
参考までに私の設定内容は下記としました。


続いて新規フォームを作成します。
私は「メイン|main」としました。


続いてフィールドを追加します。
掲示板で必要な内容として、今回は以下を設定します。

タイトル:title(テキスト/編集可能)
     入力必須設定として、以下の式を「入力の確認」に設定
      @If(title="";@Failure("[タイトル]の指定は必須です。");@Success)
カテゴリ1:category1(テキスト/編集可能)
カテゴリ2:category2(テキスト/編集可能)
内容:body(リッチテキスト/編集可能)

※カテゴリは後にダイアログリストに変更しますが、まずはテキストとして作成します。


デザインや体裁はお好みで修正してください。
私の例は下記のようになりました。


次にフォームのウィンドウタイトルに以下の式を設定します。

@If(@IsNewDoc;"新規掲示作成中";title)



以上で一度Notesでプリビューしてみましょう。

私の例では以下のようになりました。
※ウィンドウタイトルが正しく表示されるか、確認ください。


続いてサブフォームをひとつ作成します。
フィールドは以下4つになります。

登録日:created(日付/時刻、作成時の計算結果)
      式:@Created
登録者:createdby(作成者、作成時の計算結果、日付のみ表示)
  式:@Name([CN];@UserName(1))・・・※
編集日:modified(日付/時刻、計算結果、日付のみ表示)
  式:@Modified
編集者:modifiedby(名前、計算結果)
  式:@Name([CN];@UserName(1))・・・※

※別名(当社では日本語名)を使用するため、@UserName関数に(1)を設定しています。
以上でプリビューしてみます。

問題なく表示できましたら、テスト用に2~3文書作成し、閉じてください。
続いてビューを作成します。
作成するビューは4種類
●日付順
●作成者別
●カテゴリ1別
●カテゴリ2別

まずは日付順(日付順/byDate)です。


列の設定は、

作成日(created)/降順/日付のみ表示
作成者(createdby)
カテゴリ1(category1)
カテゴリ2(category2)
タイトル(title)/詳細タブにて「利用可能なウィンドウ幅まで拡張して使用する」にチェック

プリビューすると下記のように表示されるはずです。



このビューをコピーし、以下3つのビューを作成します。
●作成者別|byCreatedby
●カテゴリ1別|byCategory1
●カテゴリ2別|byCategory2

デザイナー上では下記のように表示されるはずです。


次に作成者別ビューを開きます。

2列目の作成者を先頭へドラッグアンドドロップし、1列目にくるように移動させます。
続いて作成者列を選択し、以下設定を行います。

幅:1
展開できる行に参画アイコンを表示する:チェック
ソート:昇順
種類:カテゴリ別


プリビューすると以下のように表示されます。


同様にカテゴリ1別では「カテゴリ1」の行、カテゴリ2別では「カテゴリ2」の列を先頭に移動し、作成者別と同じプロパティを設定します。

今回の最後に、アクションを追加します。
共有アクションとして、以下を作成します。

新規作成 式:@Command([Compose];"main")
終了 式:@Command([FileCloseWindow])
編集 式:@Command([EditDocument])
削除 シンプルアクション:データベースから削除
印刷 式:@Command([EditDocument])
戻る 式:@Command([FileCloseWindow])
保存 式:@Command([FileSave]);
     @Command([FileCloseWindow])

※編集:プリビュー(編集モード)、編集モード時は非表示
※戻る:プリビュー(読み込み)、読み込みモード時は非表示

各ビューに「終了」「新規作成」「印刷」「編集」「削除」を。
フォームに「戻る」「編集」「印刷」「保存」「削除」を追加します。

アクションバーのプロパティ等、デザインはお好みで修正ください。

以上で見た目は以下のようになりました。



次回はカテゴリをダイアログリスト化し、過去の履歴から選択できるようにし、ナビゲーター等でアプリケーションを整えたいと思います。