Q&A
  • このエントリーをはてなブックマークに追加
  • Save This Page to del.icio.us
  • このエントリーをBuzzurlに追加
  • このエントリーをnewsingへ追加
4

クリック数: 2174

デヂエ8での年齢自動計算

こんにちは、デヂエ8をWinXP SP3上で利用しております。
ライブラリの一覧表示に生年月日とならんで、今日現在での満年齢を表示したいのですが、やり方がわかりませんでした。

ヘルプデスクの方に伺ったら、それはできません、とのことで・・。
テンプレート集にあった「社員名簿」ライブラリには

●絞り込み
「デヂエ 8」から、絞り込みの条件が追加され、「今日から○年(月/日)前(後)」以降(以前)という設定が可能になりました。
「今日」をベースに計算できるので、年齢計算や、入社日を対象にして○年目の社員を絞り込むことも可能です。

という表記があったので、できる!と思ったら、どうやらこれは今日現在○○才の人を絞込む、といったものらしく、一覧表には記述できないとのこと。

また時間計算フィールドには「今日」といった選択肢が無く、また表示パターンにも「年」という表示がないらしい・・。

しょうがないので、当面はCSV書き出し後、エクセルのdatedif関数の結果を満年齢フィールドとして書き戻していますが、これだと手動更新ですね。
日々更新するほどの必要はないのですが、できれば自動更新したいところです。

どなたか裏技でできている!という方はいらっしゃいませんでしょうか?

  • つながり: 0
  • コメント: 7

共感度を数字で表そう!

決定

コメント

2010/09/24 11:42

2月生まれ
累計値の自動計算も同じようなものですね。改善できればいいのですが??

2010/08/26 12:04

うずら
こんにちは

うちでは、まさにdupont さんの言う手法で年齢などを計算しています。

1.早朝にデータをCSVでエクスポート
2.Excelのマクロで自動計算
3.デジエにインポート

コマンドライン機能を使用していないせいもあってか、
たまに失敗しますが・・・

2010/08/24 16:51

dupont
デヂエの自動計算が貧弱なのはぜひ改善して欲しいところです。

ところで、先日のJavaScriptでの手法以外に、最近記事になった「コマンドラインによるCSVファイルの自動入出力機能」ってのが使えるかもしれません。

・サーバーのタスクで夜間のうちにバッチファイルでCSVに出力
・エクセルのマクロか何かで年齢を計算して加工
・そのCSVをコマンドラインから読み込ませる


・・・いや、アイデアとしてですよ。到底お勧めはできません。


豆知識『「デヂエ 8」のデータが Access に同期?』
http://cybozu.kanshin.jp/keyword/...

2010/08/24 07:30

555
はじめまして

この件はデヂエ当初から指摘している事案ですが、いまだに改善されません。
ほんとサイボウズはなにやってるんでしょうかね。

2010/08/18 16:25

dupont
以下のコメントに誤記がありました。訂正します。

×まず一覧を表示させたときのHTMLソースから、年齢のフィールドを表示する~
○まず一覧を表示させたときのHTMLソースから、生年月日のフィールドを表示する~

なお、生年月日のフィールドの表示書式は、「2004/10/12」の形式にしてください。
それ以外だと計算ができなくなります。

2010/08/18 15:35

dupont
読んでいて、触っていて、デヂエでもシステム変数的なものが使えるといいのになぁと思いました。

さて、表示上の話だけなのであればブラウザにがんばってもらう方法があります。
ブックマークレットでもいいのですが、それだと各PCで登録が必要なので、デヂエなら「関連リンク」が使えますね。

■設定手順■
まず一覧を表示させたときのHTMLソースから、年齢のフィールドを表示するtdタグのclass名を調べます。
サンプルの「社員名簿」の場合は「record-value-28」です。

ライブラリ管理→ライブラリの基本設定→関連リンク→追加する→任意のホームページへのリンク
タイトルは「年齢表示」などすきにつけてください。
URLはもともと表示されている「http://」を消して、以下の長いコードを一行で貼り付けます。
そのときに前半にある「tdclass="record-value-28";」の部分の""の中を先ほど調べたclass名に書き換えてください。

javascript:function calcAge(){var tdclass="record-value-28";var d=new Date();today=d.getFullYear()*10000+d.getMonth()*100+100+d.getDate();var tdobj=document.getElementsByTagName("td");for(i in tdobj){if(typeof(tdobj[i])!="number"){if(tdobj[i].getAttribute("className")==tdclass||tdobj[i].getAttribute("class")==tdclass){var b=new Date(tdobj[i].innerHTML);birthday=b.getFullYear()*10000+b.getMonth()*100+100+b.getDate();var age=Math.floor((today-birthday)/10000);tdobj[i].innerHTML+=" ("+age+")"}}}}calcAge();

で「追加する」ボタンで追加したら、一覧ビューで「総レコード数」の左にあるマークをクリックして該当のリンクを選択します。
うまくいけば生年月日の横に()つきで満年齢が表示されるはずです。


サンプルの社員名簿でWindowsXP SP3 IE6 で検証済み。
一応ほかのブラウザでも動くよう書いたつもりです。
詳しい方、コードの間違いがあればご指摘ください。


2010/08/16 18:43

ハタナカ
みぃしゃん様、こんにちは。
コミュニティ事務局のハタナカと申します。

申し訳ございません、サポートでもご案内したとおり「今日時点での満年齢」を
一覧で自動的に表示することはできません。
「ある特定日での満年齢を日数表示」はできますが、これではご希望の運用と
かけ離れてしまいますよね。。

他の皆さま、何かいいアイディアがあればぜひお知らせください。
よろしくお願いいたします。

ログインパネル

  • 質問する

お役立ちランキング

タグ