「みんな教えて! 選手権!!」開催のお知らせ

ノーツのビュー、@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も見ています


おすすめ情報