12万作品が月額500円(税別)で見放題なのはdTVだけ!! >>dTV(外部リンク)

ノーツのビュー、@If(Status=の式を修正したいです

こんにちは。
とても初歩的なことだと思うので恥ずかしいのですが、一人ではなかなかうまく解決できず、ここで質問させていただきます。
よろしくお願いいたします。

■申請書のフォームに、フィールドを作成しました。
【date】(承認日)
【OverdueDate】(承認日の6ヵ月後)
【Status】(一時保存、申請中、承認済み)

■ビューには、Statusが『申請中』、『承認済み』だけを表示させています。

■『承認済み』の文書のなかで、承認日から6ヶ月経過したものに"●"印をつけたいのです。

それで、ビューの列に、こんな↓関数を書きました。
@If(Status="承認済み"&date<Overdue;"●";"")

『承認済み』の文書すべてに、"●"印がついてしまいます。
不等号の向きを変えると、『申請中』の文書に"●"印がついてしまいます。

文書が承認された日から6ヶ月経過した文書だけに、"●"印をつけるには、どこを修正したらよいか、教えていただけないでしょうか。
よろしくお願いいたします。

A 回答 (2件)

どのようなエラーかわかりませんが、タイプが一致していないのではないでしょうか?


比較は文字列と文字列、数値と数値、日付と日付というように合わせる必要があります。

例えば、Dateが文字列なら、以下の要領で。

@ToTime(Date)<@Adjust(@Today;0;-6;0;0;0;0)
    • good
    • 0
この回答へのお礼

ありがとうございました。
教えていただいた通りにやってみたところ、上手くいきました。
本日、おかげさまで完成させることができ、心から感謝いたします。

お礼日時:2010/06/03 22:51

落ち着いて見直せば恐らく気がつくと思いますが、比較がおかしいですね。



@If(Status="承認済み"&Date<OverdueDate;"●";"")

ということは、

承認日(Date)<承認日の6ヵ月後(OverdueDate)

ということで常に真となりますね?
今日(@Today)が承認日の6ヵ月後(OverdueDate)より後なのか前なのかを判定する必要がありますよね?
或いは、承認日(Date)が6ヶ月前(@Adjust(@Today;0;-6;0;0;0;0))より後なのか前なのか。
    • good
    • 0
この回答へのお礼

ご指摘いただいて、気がつきました。
全部、"●"がついてしまうわけですね。
ありがとうございます!

何パターンか書き直してみたのですが
@If(Status="承認済み"&date<(@Adjust(@Today;0;-6;0;0;0;0);"●";"")
@If(Status="承認済み"&OverdueDate>(@Adjust(@Today;0;6;0;0;0;0);"●";"")
@If(Status="承認済み"&@GetField(date)<(@Adjust(@Today;0;0;-6;0;0;0);"●";"")
『ERROR』が出てしまいます。

お礼欄に別の質問をすることは慎むべきかと存じますが、別の新たな質問をさせていただくのも気が引けて、こちらに続けて書いてしまいました。
もし差し支えなければ、またご回答いただければ嬉しいです。
どうぞよろしくお願いいたします。

お礼日時:2010/06/01 20:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qノーツのビューで、自分で作成した文書を表示する式

ノーツのビューで、自分で作成した文書を表示する式

こんばんは。

ノーツで、それぞれのユーザーさんが作成中の文書を、【作成中】という名前のビューで見ます。
そのとき、自分が作成している文書のみ表示させようと、

◆ビューの選択の式に、

 SELECT(@Contain(Status;"作成中")&user=@UserName)

と書きました。

私のユーザーIDで見ると、ちゃんと私が作成中の文書のみ表示されて、大成功でしたが、テスト用IDで見ると、文書が何も表示されなくなってしまいます。
テスト用IDでも、文書を作成途中ですが・・・

ページを使って作っても、何も表示されません。

アドバイスいただけると助かります。
どうぞよろしくお願いいたします。

Aベストアンサー

共有ビューは誰が見ても同じ内容である必要があります。
なのでビューの条件でユーザー毎に内容が変わるような場合は使用できません。
そのような場合は、ビューを作成するときにビューの種類で[共有 (使用すると個人に)] または[共有 (使用するとデスクトップで管理する個人に)]を選択して作成します。
(バージョンによっては「使用すると個人」ではなく「最初は個人」となっているかもしれません)

元は共有ビューですが、最初に使用した時点でそのユーザー用の個人ビューに移行します。
つまり、ユーザー毎に個人ビューが作成されます。
ただし、一度個人ビューとなってしまったものは、元の共有ビューの設計を変更してもそれが反映されません。
一度各ユーザーが削除するなりする必要がありますので、混乱の元となります。
ですから、管理上はあまりお勧めはできません。

QEXCELファイルをロータスノーツのデータベースに流し込めますか

EXCELファイルの表をロータスノーツのデータベースに流し込む、というのはできるでしょうか。
「流し込む」というのは、ファイル読込等の一括した方法で、ということです。
できそうな気がするのですが教えて下さい。

Aベストアンサー

再び登場しました。

基本的な詳しい流れは、R4.6で以下の通りです。

0.まず、Excelの表ををカンマで区切ったテキスト形式で保存し、
  列に対するフィールドとの対応の説明ファイル(拡張子 .COL)を作成します。
(通称.COLファイル)
1.データベース開いて、ソースデータを呼び出すビューを開きます。
  文章(Form)に流し込みたいフィールドが全部記述されているビューにします。
2.[ファイル - 呼び出し] を選択する。
3.[Tabular Text] を選択する。
4.ソースファイルの名前を選択する。
5.[呼び出し] をクリックします。
6.呼び出されたソースデータに適用するフォームを [使用フォーム] リストから選択する。
7.ヘッダ、フッダがある場合は、[ヘッダー行数] または [フッター行数] を選択する。
  (要するに注釈行のことです)
8.ソースファイルに [1ページの行数] の数値を入力する。
9.[形式:] リストは [主要文書] が選択された状態にしておく。
10.[形式ファイルの使用] を選択し、列の説明ファイル(.COL)を選択する。
11.[OK] をクリックします。

となります。
.COLファイルの作り方などはHelp Fileに書いてあります。
Help Fileは、
「ノーツの基本」から、「データベースの開発及び管理」の下にある、「ビューへ呼び出す/ビューから書き出す」の項目を探してみて下さい。
その中に、「表形式テキストをビューへ呼び出す」「列の説明(COL)ファイルを作成する」等の項目があると思います。

バージョンが違うとまたちょっと違うかもしれませんが、多分似たようなものがあるはずです。

では。

再び登場しました。

基本的な詳しい流れは、R4.6で以下の通りです。

0.まず、Excelの表ををカンマで区切ったテキスト形式で保存し、
  列に対するフィールドとの対応の説明ファイル(拡張子 .COL)を作成します。
(通称.COLファイル)
1.データベース開いて、ソースデータを呼び出すビューを開きます。
  文章(Form)に流し込みたいフィールドが全部記述されているビューにします。
2.[ファイル - 呼び出し] を選択する。
3.[Tabular Text] を選択する。
4.ソースファイルの名前を選択...続きを読む

Qノーツでのアクセス権の設定方法

Lotus Notes 6を使用しています。
あるユーザへ「データベースに新規文書は作成できないけれど、他のユーザが作成した既存の文書は閲覧・更新ができる」というようなアクセス権を付与したいのですが、そのようなことは可能でしょうか?

Aベストアンサー

先ほど回答を記載したものですが、
質問の意味を少々取り間違えていたようですので、補足します。

「新規作成はできないけれど、他のユーザが作成した既存の文書は閲覧・更新ができる」

このようなアクセス権限の設定は可能ですが、データベースの設計にも少々依存します。

具体的にはアクセス権を「作成者」に設定し、オプション「文書の作成」のチェックがない場合、
そのユーザ(以後、Bと表現)は文書を新規作成できないが、
閲覧・更新する権限を持つことになります。

ただし、ユーザBが文書を閲覧するには対象文書の「読者」フィールドに
「ユーザBのユーザ名」もしくは「ユーザBが所属するグループ」、「ユーザBが保持するロール」
が設定されている必要があります。
※「読者」フィールドがない場合はデフォルトで閲覧できます。

また、ユーザBが文書を更新するには対象文書の「作成者」フィールドに
「ユーザBのユーザ名」もしくは「ユーザBが所属するグループ」、「ユーザBが保持するロール」
が設定されている必要があります。
※「作成者」フィールドがない場合はデフォルトで更新できません。


一例として、以下のような設定・設計であれば可能です。
【アクセス制御リストの設定】
使用者A⇒アクセス権「作成者」ロール「更新者」オプション「文書の作成」チェックあり
使用者B⇒アクセス権「作成者」ロール「更新者」オプション「文書の作成」チェックなし

【データベースの設計】
対象文書が「作成者」フィールドを持ち、当フィールドに値「[更新者]」が設定されている。

先ほど回答を記載したものですが、
質問の意味を少々取り間違えていたようですので、補足します。

「新規作成はできないけれど、他のユーザが作成した既存の文書は閲覧・更新ができる」

このようなアクセス権限の設定は可能ですが、データベースの設計にも少々依存します。

具体的にはアクセス権を「作成者」に設定し、オプション「文書の作成」のチェックがない場合、
そのユーザ(以後、Bと表現)は文書を新規作成できないが、
閲覧・更新する権限を持つことになります。

ただし、ユーザBが文...続きを読む

QWebブラウザからノーツを使う

Webブラウザからノーツを起動してコンテンツを使用することは可能なのでしょうか。
もし、できるとすると特別なソフトを入れなければならないのでしょうか。
会社のノーツをみんな利用しているWebブラウザで使用できるようにしたいと考えています。

Aベストアンサー

すんません。
かつてこれ(アプリ開発)で飯食ってたんですが,何しろ
遥か昔の話なんで具体的なやり方は忘却の彼方です。

具体的なWebサーバの構築方法などを解説しているサイトは
知らないのですが,Notes/Dominoに関して知っていると
何かと役に立つサイトをば。

◎Notes/Dominoポータル
http://nmag.softbankpub.co.jp/home.nsf/content/home
フォーラムもあって質問もできて便利です。

◎Tips for Notes and Dmino
http://domino.aitj.co.jp/Pub/Tips.nsf
裏技的なTipsや便利なコマンド・スクリプトを公開しています。

※これらのサイトのURLを見ると分かりますが,サイト
自体がノーツDB(*.nsf)で構築されています。
Webでどんな感じに使えるかを確認することができるかと。
同様のサイトは,IBMのLotus系のページ・Symantecの
サービス&サポートのページなんかがあります。

Webサーバ構築に限らないのですが,サーバCD-ROM付属の
ユーザマニュアル(黄色い本)なんかは基本中の基本かな。
上手くすれば,この本だけでメールをブラウザ経由で
見る程度はいけるかもしれません。

あと書店でソフトバンクやリックテレコムの解説本も
あると何かと助かります。

さらに万全を期すのであれば,色々なベンダがDomino/Notes
の資格取得講習をしていますので,アプリ開発の基礎と
システム管理の基礎を受講しておくと,今回の話+αの
ことは社内で出来ちゃいます。
(大体1コース5万*3日=15万くらいかかるのネック)

あたしゃR4.5/4.6のCLSまでで挫折しましたが。

すんません。
かつてこれ(アプリ開発)で飯食ってたんですが,何しろ
遥か昔の話なんで具体的なやり方は忘却の彼方です。

具体的なWebサーバの構築方法などを解説しているサイトは
知らないのですが,Notes/Dominoに関して知っていると
何かと役に立つサイトをば。

◎Notes/Dominoポータル
http://nmag.softbankpub.co.jp/home.nsf/content/home
フォーラムもあって質問もできて便利です。

◎Tips for Notes and Dmino
http://domino.aitj.co.jp/Pub/Tips.nsf
裏技的なTipsや便利なコマンド・スク...続きを読む

QNotes 開発で、 excelファイルを読み込みデータを追加したい。

現在notes7で開発を行っている(初心者)なのですが

ビュー内の選択している文書からデータを取ってきて
読み込んだexcelファイルに書き足していきたいのですが、

任意のexcelを開くところまではネットを参考にして出来たのですが
詳細を理解していないため、そのファイルにデータを書き足していくことが出来ません。アドバイスをお願い致します。

現在作ってあるプログラムが以下です。

' 既存のEXCELワークブックを開く
Dim xlApp As Variant ' Excelオブジェクト
' マイドキュメントの指定ファイルを開く
Dim wsh As Variant, fso As Variant
Dim FilePath As String, FileName As String
Set wsh = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
FilePath = wsh.SpecialFolders("MyDocuments")
FileName = FilePath & "\sample.xls"
If Not fso.FileExists(FileName) Then
Msgbox "ファイルがありません。" & Chr(13) & FileName, 16
Exit Sub
End If
Set xlApp = CreateObject("Excel.Application") ' Excel OLE起動
xlApp.Workbooks.Open FileName
xlApp.Visible = True


これで、ファイルは開けます。ちなみにビュー内の選択文書の取り込みは出来てます。後は、そのデータをエクセルに書き出すだけなのですが
そこが解りません。

それと、現在マイドキュメント内のファイルを読み込んでますが
同じデータを共有リソースの中に保存してあるので、そっちから開きたいのですが、パスをどのように設定すればいいのか解りません。

すみませんが、アドバイスをお願い致します。

現在notes7で開発を行っている(初心者)なのですが

ビュー内の選択している文書からデータを取ってきて
読み込んだexcelファイルに書き足していきたいのですが、

任意のexcelを開くところまではネットを参考にして出来たのですが
詳細を理解していないため、そのファイルにデータを書き足していくことが出来ません。アドバイスをお願い致します。

現在作ってあるプログラムが以下です。

' 既存のEXCELワークブックを開く
Dim xlApp As Variant ' Excelオブジェクト
' マイドキュ...続きを読む

Aベストアンサー

ひとまず、書き出しの方から回答いたします。

エクセルファイルの取得まではできているようですので、今後は「シートオブジェクトの取得」->「セルを指定して処理」の流れでプログラムを作成すればよいと思います。

例えば、作成済みのプログラムの次に以下のコードを追記すれば、Excelに書き出しができると思います。

Dim xlWorksheet As Variant'エクセル・シート
'シート名を指定してシートオブジェクトを取得
Set xlWorkSheet = xlApp.WorkSheets( "Sheet1" )
'セルの1行1列目に「あああああ」という文字をセット
xlWorksheet.cells(1,1).Value = "あああああ"

既に文書の取り込みができているとのことですので、例えば文書オブジェクトがdocだとしたら、以下のコードで実現できるのではないでしょうか。

'文書上のxxxxxフィールドの値を、Excelの1行1列目にセット
xlWorksheet.cells(1,1).Value = doc.GetItemValue( "xxxxx")(0)

蛇足ですが、サイズ幅の変更のような処理も可能です。(マクロをNotes上から実行させるイメージです)

xlWorksheet.cells(1,1).ColumnWidth = 4.13

ひとまず、書き出しの方から回答いたします。

エクセルファイルの取得まではできているようですので、今後は「シートオブジェクトの取得」->「セルを指定して処理」の流れでプログラムを作成すればよいと思います。

例えば、作成済みのプログラムの次に以下のコードを追記すれば、Excelに書き出しができると思います。

Dim xlWorksheet As Variant'エクセル・シート
'シート名を指定してシートオブジェクトを取得
Set xlWorkSheet = xlApp.WorkSheets( "Sheet1" )
'セルの1行1列目に「あああああ」と...続きを読む

QLotus Notes 6.5 @prompt[yesno]の使用方法について

WindowsXP上で、Lotus Notes 6.5を使用しており、Notesメール上に@関数式を使用して自動回答ボタンを作成しようと思っています。

ボタンクリック→yesnoダイアログボックス表示→yesの場合には管理者へメール送信、noの場合にはキャンセル
という形にしようと思っており、Helpを見たところ、yesの場合に1が返され、noの場合0が返されるとありますが、この返された数値はどのように拾えば(?)よろしいでしょうか。

たとえば非常に拙い例ですが
1行目 question:= @prompt([yesno];"回答";"よろしいですか?")
2行目 @if(question:=0 ; キャンセルしたときの命令; 実行するときの命令)
とした場合、yesでもnoでもキャンセルが実行されます。
(そもそもExcel関数のifと同じ様に使っている@if文がおかしいのかもしれませんが…。)

どのようにしたらyesだとこれ、noだとこれといった判断をつけさせるかを教えていただければ幸いです。よろしくお願いします。

WindowsXP上で、Lotus Notes 6.5を使用しており、Notesメール上に@関数式を使用して自動回答ボタンを作成しようと思っています。

ボタンクリック→yesnoダイアログボックス表示→yesの場合には管理者へメール送信、noの場合にはキャンセル
という形にしようと思っており、Helpを見たところ、yesの場合に1が返され、noの場合0が返されるとありますが、この返された数値はどのように拾えば(?)よろしいでしょうか。

たとえば非常に拙い例ですが
1行目 question:= @prompt([yesno];"回答";"よろしいです...続きを読む

Aベストアンサー

einsiedlerさんは、ほぼ正解に近いところまでいっております。挙げられてた例をもとに回答するのであれば、以下のロジックで目的が達成できると思われます。

1行目 question:= @prompt([yesno];"回答";"よろしいですか?")
2行目 @if(question=0 ; キャンセルしたときの命令; 実行するときの命令)

「:=」は代入のための演算子なので、比較を行う場合には「=」を用います。2行目をさらにシンプルに記載するのであれば、以下の記載でも良いと思います。

@if(question; 実行するときの命令; キャンセルしたときの命令)

QNotesのフォームを動的に・・・

Notesのフォームを動的に変化させることは可能でしょうか。

例えば・・・ユーザ登録依頼フォームを作成していますが、登録・変更・削除でフォームを動的に変更したいです。

○ 登録
● 変更
○ 削除

ユーザID:[ ] (変更、削除時のみ表示)
名前:[ ] (新規、変更時のみ表示)

Notesのバージョンは5Jです。

有識者の方よろしくお願いします。。。

Aベストアンサー

ごめんなさーい!

大事なことを忘れていました。
ラジオボタンフィールドのプロパティで、「キーワードの変更時にフィールドを更新する」を選択して下さい。

QNotesのメッセージボックスについて

基本的な質問ですみません。。。

以下のようなスクリプトの場合、[中止]、[再試行]、[無視]の3つのボタンが表示されると思っていたのですが
OKボタンしか表示されません・・・
どこを修正したらいいんでしょうか・・

Sub Initialize
Dim msg As Integer

msg = Messagebox("表示されるボタンは?", MB_ABORTRETRYIGNORE, "Test")

End Sub

ちなみに、バージョンは6.5.3です。

Aベストアンサー

MessageBox 関数とステートメント
のヘルプは読んだろうか?
ここだけじゃ無理ですが、、
MB_ABORTRETRYIGNOREを使うためには、
ローカルにLSSファイル(コンスト値一覧)の読み込みが
事前に必要です。(%Include と %If を使用する の項目も読んでね)

このまま最小で修正するなら、ヘルプに書いてある値
(数字)を地かに記述すればOKです。
(値と書いてある数字です。)
蛇足:各項目数字の足し算で表示形式がかわります。

Qノーツで、ナビゲータから、フォームを開きたいのです

こんにちは。

ノーツ歴4ヶ月の者です。過去に近い質問が見つからなかったので、質問させていただきます。

ノーツで、部署内の掲示板を作成しています。
とてもシンプルで、部署メンバー全員が投稿できます。

メインナビゲータには、ボタンがあり、
●投稿者別
●日付別
●トピック別
です。
が、もうひとつ、投稿者が入力フォームを開くボタンを作りたいのです。
ボタンとフォームをどうやってつなげたら良いか教えてください。

よろしくお願いいたします。

Aベストアンサー

単に入力フォームを開くのであれば、ボタンに以下のようなコマンド式を設定すれば良いです。

@PostedCommand([Compose];"フォーム名")

もし、フレームセットを使用している場合は、上記の式の前に以下のようにフレームを指定する式を入れます。

@SetTargetFrame("フレーム名");

QLotusNotesのスペシャリストの方いらっしゃたら助けてください!

LotusNotesのスペシャリストの方いらっしゃたら助けてください!

社員番号からメールアドレスを調べたいのですがわかりません。。。

社員番号のフィールドは「Enp」
メールアドレスのフィールドは「mail」です。

社員番号を入力するとメールアドレスが自動で表示するようにしたいです。

初歩的な質問で恐縮ですがどなたかご教示お願いいたします。

Aベストアンサー

実際に試したわけではないので、間違っているかもしれませんが、

・@dblookup の二番目の引数がおかしいです。サーバー名:データベース名です
・EmployeeID は""でくくります。

@DbLookup( class :cache ; server :database ; view ; key ; fieldName ; keywords ) または
@DbLookup( class :cache ; server :database ; view ; key ; columnNumber ; keywords)

こんな感じででしょうか。省略して問題なさそうなところを省略して書いています)
@DbLookup( "" ; "": "names.nsf" ; "all_list_1" ; @Nallow(enp) ; "EmployeeID" ; 2)

ただ、この式を評価するには以下の条件が必要です。

1. names.nsf の中に、all_list_1 というビューを作っている(デフォルトではないので、カスタマイズしていると仮定しています)
2. 検索をかけるall_list_1 の社員番号列がソートされており、ソートされている列のうち、もっとも左側に来ている

今はエラーメッセージは吸収されているかもしれませんが、実際にどんなエラーメッセージがでているか分かれば、どこが原因かわかりそうです。

実際に試したわけではないので、間違っているかもしれませんが、

・@dblookup の二番目の引数がおかしいです。サーバー名:データベース名です
・EmployeeID は""でくくります。

@DbLookup( class :cache ; server :database ; view ; key ; fieldName ; keywords ) または
@DbLookup( class :cache ; server :database ; view ; key ; columnNumber ; keywords)

こんな感じででしょうか。省略して問題なさそうなところを省略して書いています)
@DbLookup( "" ; "": "names.nsf" ; "all_list_1" ; @Nallow(enp)...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング