ビューの条件式修正方法について

このQ&Aのポイント
  • ビューの条件式修正方法について教えてください。
  • 承認済みの文書に「●」印をつけるための条件書き方を教えてください。
  • 申請書のフォームに作成したフィールドとビューの表示条件に関する修正方法を教えてください。
回答を見る
  • ベストアンサー

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

ノーツのビュー、@If(Status=の式を修正したいです こんにちは。 とても初歩的なことだと思うので恥ずかしいのですが、一人ではなかなかうまく解決できず、ここで質問させていただきます。 よろしくお願いいたします。 ■申請書のフォームに、フィールドを作成しました。 【date】(承認日) 【OverdueDate】(承認日の6ヵ月後) 【Status】(一時保存、申請中、承認済み) ■ビューには、Statusが『申請中』、『承認済み』だけを表示させています。 ■『承認済み』の文書のなかで、承認日から6ヶ月経過したものに"●"印をつけたいのです。 それで、ビューの列に、こんな↓関数を書きました。 @If(Status="承認済み"&date<Overdue;"●";"") 『承認済み』の文書すべてに、"●"印がついてしまいます。 不等号の向きを変えると、『申請中』の文書に"●"印がついてしまいます。 文書が承認された日から6ヶ月経過した文書だけに、"●"印をつけるには、どこを修正したらよいか、教えていただけないでしょうか。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Yeti21
  • ベストアンサー率47% (396/830)
回答No.2

どのようなエラーかわかりませんが、タイプが一致していないのではないでしょうか? 比較は文字列と文字列、数値と数値、日付と日付というように合わせる必要があります。 例えば、Dateが文字列なら、以下の要領で。 @ToTime(Date)<@Adjust(@Today;0;-6;0;0;0;0)

oshieteqoo
質問者

お礼

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

その他の回答 (1)

  • Yeti21
  • ベストアンサー率47% (396/830)
回答No.1

落ち着いて見直せば恐らく気がつくと思いますが、比較がおかしいですね。 @If(Status="承認済み"&Date<OverdueDate;"●";"") ということは、 承認日(Date)<承認日の6ヵ月後(OverdueDate) ということで常に真となりますね? 今日(@Today)が承認日の6ヵ月後(OverdueDate)より後なのか前なのかを判定する必要がありますよね? 或いは、承認日(Date)が6ヶ月前(@Adjust(@Today;0;-6;0;0;0;0))より後なのか前なのか。

oshieteqoo
質問者

お礼

ご指摘いただいて、気がつきました。 全部、"●"がついてしまうわけですね。 ありがとうございます! 何パターンか書き直してみたのですが @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』が出てしまいます。 お礼欄に別の質問をすることは慎むべきかと存じますが、別の新たな質問をさせていただくのも気が引けて、こちらに続けて書いてしまいました。 もし差し支えなければ、またご回答いただければ嬉しいです。 どうぞよろしくお願いいたします。

関連するQ&A

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

    ノーツのビューで、自分で作成した文書を表示する式 こんばんは。 ノーツで、それぞれのユーザーさんが作成中の文書を、【作成中】という名前のビューで見ます。 そのとき、自分が作成している文書のみ表示させようと、 ◆ビューの選択の式に、  SELECT(@Contain(Status;"作成中")&user=@UserName) と書きました。 私のユーザーIDで見ると、ちゃんと私が作成中の文書のみ表示されて、大成功でしたが、テスト用IDで見ると、文書が何も表示されなくなってしまいます。 テスト用IDでも、文書を作成途中ですが・・・ ページを使って作っても、何も表示されません。 アドバイスいただけると助かります。 どうぞよろしくお願いいたします。

  • アクションボタン、@Modified, @Adjustでしょうか?

    アクションボタン、@Modified, @Adjustでしょうか? こんにちは。 現在、ノーツの簡単なデータベースを作成しております。 部署で聞ける人がいないので、質問させていただきます。 (本日、関連する別の質問もさせてもらいました。 よろしければそちらもお願いいたします!) 申請書フォームA、Bを作成しました。 ステイタスは『一時保存』、『申請中』、『承認済み』です。 申請者が 【一時保存】ボタンを押す → 『一時保存』 【承認依頼】ボタンを押す → 『申請中』 承認者が、 【承認】ボタンを押す → 『承認済み』 に変更されます。 質問(1) 『承認済み』文書に、承認日のデータフィールドを作りたいです。 @Modifiedフィールドだと、ビューでは空欄になってしまいました。 どうしたら良いか教えていただけますか? 承認日のデータフィールドを作成する目的は、アラートを出すためです。 申請書フォームA,Bによって、 申請書A から申請された文書は、承認後1週間+6ヵ月後 申請書B から申請された文書は、承認後1ヵ月後+6ヵ月後 (質問2) ビューで見たときに、期限切れデータの列を、赤色に変えたいのですが、プログラムペイン?をいじっても、さっぱり・・ 赤色に変えることはこだわっていません。 別の方法でも結構ですので、どなたかお知恵をお貸しください。 (ビューは、ビューA、ビューBの2種類あります。) よろしくお願いいたします。

  • こんにちは。

    こんにちは。 ノーツ初心者ですが、部署でノーツのDBを作成しております。 ここ数日調べていることがありますが、どうしてもうまくいかないので、こちらで質問させていただきます。 申請書フォームを作成しました。 文書ステイタスは、『一時保存(ドラフト)』、『申請中』、『承認済み』です。 文書ステイタスが『申請中』の時のみ、サブフォーム(承認/却下を決めるアクションボタンがあります)を表示させたいのです。 計算結果によって表示させるところまではできているのですが、 @If(@IsDocNew;"";"Subform") を使うと、『一時保存』のときに、承認/却下ボタンが表示されてしまい、困っております。 どうぞ、よろしくお願い申し上げます。

  • 修正できません。

    外部スクリプト honjitsu=1; function today(writeday){ if((new Date()-new Date(writeday))/(24*60*60*1000)<=honjitsu) document.write("<img src='xxx.gif'>"); } HTML内 <script>today("2008/04/30")</script> 2008年4月30日に1日だけ画像を表示させるスクリプトです。(表示される) これを毎年4月30日画像を表示させたいので、 <script>today("04/29")</script> というふうに指定したいのですが、 いろいろやってみましたがうまくいきません。 どこを修正すればよいでしょうか?よろしくお願いします。

  • ドメイン移管するのに、レジストラロックの解除申請を実施してもらったので

    ドメイン移管するのに、レジストラロックの解除申請を実施してもらったのですが、22日経過しても、whois情報のstatusがokになりません。Updated Date:が4月1日のままで、statusは clientTransferProhibited のままです。もう4月23日ですが、こんなに時間がかかるものでしょうか。

  • 修正月齢

    修正月齢とは具体的にどのような時に参考にするのでしょうか。 うちの子は出産予定日より3週間早く生まれました。 先日の検診で首すわりがまだとゆうことで、再度経過観測とゆうことで きてくださいと言われてしまいました。 やっぱり早く生まれるとそれだけ、首すわりや歩き出したりするのも 他の子より遅いのでしょうか。 雑誌を参考にする際も生まれた日から3ヶ月を参考にするのではなく 生まれる予定だった日からの月齢を参考にした方がいいのでしょうか。

  • IF関数を使って進捗管理表の作成

    エクセルA列に数式を入れ 例えばB列に日付を入れるとA列のステイタスが申請中などと分かるように計算式を入れたいのですが、IF関数を使ってもうまくできません。 A列:ステイタス(1.申請中~4.完了) B列:受付日 → A列:1.申請中 C列:申請日 → A列:2.決裁待ち D列:決裁日 → A列:3.承認待ち E列:契約 → A列:4.完了 よろしくお願いいたします。

  • グループウェア(ワークフロー)について

    クライアント数40前後の中小企業です。 3年前にノーツを導入しましたが、訳あってメールソフト程度の運用しかできていません。そこで、名称は伏せますが、SとかDとかの売れてるパッケージに切換を検討するよう上司から命令を受けています。実際トライアルを使ってみましたが、スケジュール管理以外本当に使えるか(使用に耐えるか)疑問でしかたありません。やりたい事はワークフロー(申請書の承認)や文書管理なのです。パッケージにもありますが、フォーマットを作成するにも限界がありそうですし、添付したファイルもローカルにおとさなければならないので、メールで廻すのとおんなじです。このままだと、また失敗しそうです。そこで、フォーマットの作成機能が充実していたり、添付ファイルを直接上書きしながら流せるような専用パッケージをどなたかご紹介いただけないでしょうか。それがあればグループウェアはいらないような気がするのですが・・・ 長々とした文章ですみません。 ちなみにノーツサーバは撤去しますので、『ノーツでやりなよ!』は無しです。 宜しくお願いします。

  • 開業届けを出さずに青色申告の事業所得で申告可能?

    このサイトで検索してそのような回答があったのですが、 開業届と青色申告承認申請書は無関係なのでしょうか? 青色申告承認申請書の提出期限は、 「開業の日から2ヶ月以内」とあり 開業の日=開業届を出した日だと思ったのですが。

  • 2つのif 構文が1つしか動作してくれない

    唐突に質問失礼致します。PHP修行中の者です。 自分のTwitterのタイムラインをFC2ブログに投稿するスクリプトを書きたいと思い、ここ数ヶ月、PHPの本を片手に、200以上のPHPサイトのブラウザタブ開きながら試行錯誤しているのですが暗礁に乗り上げてしまって困っています。 恐縮ながら、どうか御教授いただけたら幸いに存じ上げます。 ブログに投稿することまではできるのですが、今できなくて困っていることは、 1、2つ設置しているif 構文が1つしか動いてくれないので2つ動かしたい。 2、1日分(昨日分=24時間前)の最新(更新分)のテキスト(ツイート)のみ抽出して1日毎に投稿するようにしたい。 3、テキスト(ツイート)の時間のならびを昇順(古い順)にしたい。 の3つです。 改善法をご存じの方がいらっしゃいましたら1~3のいずれか1つだけでもいいので御教授いただけたら幸いに存じ上げます。 今は下記のように書いています。↓ ///////////////////////////////// $url = "http://api.twitter.com/1/statuses/user_timeline.json?&include_rts=true&count=30&screen_name=(ユーザー名)&page=".$_POST['page']; $tweets = json_decode(file_get_contents($url)); $str = ''; $pat1='/^RT/'; $pat2='/@/'; $m1 = preg_match($pat1, $str); foreach ($tweets as $val) { if ($pat1 && $pat2){ echo $str .= $val->retweeted_status->text; } if (!$pat1){ echo $str .= $val->text; } $str .='<br />' .date('Y-m-d H:i:s', strtotime($val->created_at) + 9*3600) .'<br /><br />'."\n"; } var_dump($tweets); try{ $bm->postEntry("ユーザー名".date("Y年m月d日", $timestamp .= strtotime("-1 day"))."のつぶやきまとめ", " [". $str ."]"); ///////////////////////////////// これで実行すると、 1、if 構文に関しては、最初の「if ($pat1 && $pat2){echo $str .= $val->retweeted_status->text;」は読み込んでくれますが、次のif構文の「if (!$pat1){echo $str .= $val->text;」は読み込まれずに、「空白」が出力されてしまいます。 やりたいことは文頭がRTで始まる場合は$val->retweeted_status->textで、それ以外は$val->textにしたいのです。 (全てval->textに指定すれば空白なく全て表示できるのですが、RTが文頭につくval->textのものは文末が省略されてしまっているので、全文が書かれているretweeted_status->textに変えたいのです) 2、テキスト(ツイート)の最新のものを抽出するためには「$url = "http://api.twitter.com/1/statuses/user_timeline.json?&include_rts=true&count=30&screen_name=(ユーザー名)&page=".$_POST['page'];」のどこかを書き加えればいいとは思うのですが、どう書き加えれればいいか分からなくて困っています。 Twitter API仕様書によれば http://watcher.moe-nifty.com/memo/docs/twitterAPI20.txt (転載はじめ) //////////////////////////////// user_timeline 自分の過去24時間以内に update されたステータスから最大20件(count引数使用時は最大200件)を取得する。 引数 id を指定すれば、その id のユーザのステータスを取得できる URL: http://twitter.com/statuses/user_timeline.format http://twitter.com/statuses/user_timeline/id.format (format は xml, json, rss, atom のうちのいずれかを指定) since=日時 (オプション) 指定した日時以降に update されたステータスを取得する 指定した日時以降に update されたステータスを取得する 日時のフォーマットは RFC822(の「5. 日付と時刻仕様」) に従う なお、本オプションの代わりに http リクエストヘッダで If-Modified-Since を明示することで、日時を指定することもできる 例: http://twitter.com/statuses/user_timeline.rss?since=Tue%2C+27+Mar+2007+22%3A55%3A48+GMT 2007年3月27日22時55分48秒GMT以降に update されたステータスを RSS 形式で取得する //////////////////////////////// (転載終わり) …と記載してありますが、実際に.jsonでフォーマットしてデフォルトで20件分の取得だったとしても、「過去24時間以内」ではなく、それより前(1日以上前)のものまで取得されてしまいます。 これをどのように書き変えればいいのでしょうか? 3、最後にこの上記のテキスト(タイムライン)を昇順(古い順)で出力したいのですが、urlからの入力書き換えで可能でしょうか? あるいは今回だと降順(新しい順)しか出力できず、昇順にするためには後から並び替えなければならないのでしょうか? その並び替え方を教えていただきたいです。 質問が多くて誠に申し訳ございません。 改善法をご存じの方がいらっしゃいましたら1~3のいずれか1つだけでもいいので御教授いただけたら幸いに存じ上げます。

    • ベストアンサー
    • PHP