$value) { if (preg_match("/^advice_/", $key)) { $buff[] = "$key=". $value; } } foreach ($_REQUEST as $key => $value) { if (preg_match("/^rating_/", $key)) { $buff[] = "$key=". $value; } } $value = join("\n", $buff). "\n"; file_put_contents("./reportfiles/report.ini", $value); $text .= startmenu(); } else { $path = $_SERVER['DOCUMENT_ROOT']. current_Dir(). "/data/original.que"; $Que = get_crypt_file($path, $System['cryptkey']); $text .= "

環境設定(レポート関連)

基本設定
データ設定
今回

■集計に含めない大分類(自由記入等)

前回
  • レポートを作成する調査結果のファイル(CSV)を指定してください。 データは、予めサーバにアップロードされていなければなりません。 アップロードがお済みでない場合はメインメニューの[データファイル]からアップロードしてください。
  • 「今回」は必須です。必ず設定してください。
  • 自由記入など、集計に含めない大分類があればカンマで区切って指定してください。
比較設問

※前回データと比較する設問コード(Q01,Q02,Q03等)をカンマで区切って設定してください。

※上記「前回」データが設定されていない場合は無視されます。

他者コメント

※「他者コメント」にピックアップする設問コード(例[Q30])を指定してください。

高評価コメントとアドバイス

部下の評価が ポイント以上に高評価コメントを適用する。

部下の評価が ポイント未満にアドバイスを適用する。

"; $middle = get_middle_section($Que); foreach ($middle as $key => $value) { if ($value) { $text .= " "; } } $text .= "
中項目 高評価コメントとアドバイス
". $key. "
高評価コメント
アドバイス
オプション機能

※調査完了後に変更すると、変更以前のレポート(PDF)は更新されません。ご注意ください。

メール設定
案内メール
件名
本文

※レポート閲覧を案内するメールのタイトルと内容を設定してください。

※本文内には、%で括った以下のキーワードで情報を差し込むことができます。
%name% : ユーザ名
%upw% : パスワード
%url% : ユーザ専用のURL

アドバイス通知
件名
本文

※アドバイスや励ましが投稿された場合に通知されるメールのタイトルと内容を設定してください。

※本文内には、%で括った以下のキーワードで情報を差し込むことができます。
%name% : ユーザ名
%upw% : パスワード
%url% : ユーザ専用のURL
%from% : 投稿者名


"; $javascript = " function findfile(id) { $.get('admin.php?ajax=reportfilelist&id='+id, function(data) { $('#systemDialog').html(data); $('#systemDialog').dialog({ title: 'ファイル選択', resizable: false, width: 320, height:480, modal:true, show:'blind', hide:'blind', buttons: { 'キャンセル': function() { $(this).dialog('close'); } } }); }); } function setfile(id, file) { $('#'+id).val(file); $('#systemDialog').dialog('close'); } function setfile(id, file) { $('#'+id).val(file); $('#systemDialog').dialog('close'); } function findque() { $.get('admin.php?ajax=quelist', function(data) { $('#systemDialog').html(data); $('#systemDialog').dialog({ title: '項目選択', resizable: false, width: 480, height:480, modal:true, show:'blind', hide:'blind', buttons: { 'キャンセル': function() { $(this).dialog('close'); }, '選択する': function() { var que = new Array(); $('.que:checked').each(function() { que.push( $(this).val() ); }); var str = que.join(','); $('#compfields').val(str); $(this).dialog('close'); } } }); }); }"; } } elseif ($_REQUEST['action'] == "report") { /* レポートの表示 */ $file = "./reportfiles/csv/". $Report['maindata']; include_once "../common/inc/MPDF54/mpdf.php"; include_once "../common/inc/report.inc"; exit; } elseif ($_REQUEST['action'] == "sendmail") { /* 案内メールを送信 */ $cnt = 0; foreach ($_REQUEST['ids'] as $ID) { $subject = $Report['subject']; $sql = "SELECT * FROM `$client` WHERE `ID`='$ID'"; $rs = mysql_query($sql); if (mysql_num_rows($rs)) { $buff = mysql_fetch_object($rs); /* メールアドレスをチェック */ if (preg_match("/\w+\@[\w\.\-]+/", $buff->Email)) { $name = $buff->Name; $upw = $buff->Pw; $url = $Init['Currenturl']. "/report.php?ID=". $buff->ID; $mailbody = $Report['body']; while (preg_match("/\%(\w+)\%/i", $mailbody, $m)) { $v = $m[1]; $mailbody = preg_replace("/\%$v\%/i", $$v, $mailbody); } $mailbody = preg_replace("/[\t]/", "", $mailbody); $mailbody = preg_replace("/( |\r\n|\r)/", "\n", $mailbody); mb_send_mail($buff->Email, $subject, $mailbody, "From:". $Setup['Email'], "-f". $Setup['Email']); $cnt++; } } } $ready = " $('#systemDialog').html('\

\

\ 案内メール送信完了
\
\ $cnt 名に案内メールを送信しました。\

\ '); $('#systemDialog').dialog({ title: '案内メール送信完了', resizable: false, width: 480, height:320, modal:true, show:'blind', hide:'blind', buttons: { '閉じる': function() { $(this).dialog('close'); location.href='admin.php'; } } });"; } elseif ($_REQUEST['action'] == "member") { /* 非評価者及び、関係上司一覧 */ $file = "./reportfiles/csv/". $Report['maindata']; $text = "

レポート対象者名簿

"; if (is_file($file)) { createTable($file, "maindata"); $datafiles = array(); foreach(glob("./reportfiles/users/*.dat", GLOB_NOSORT) as $file) { @$date = date("Y-m-d", filemtime($file)); preg_match("/\/(\w+)\.dat$/", $file, $m); $id = $m[1]; $datafiles[] = join("\t", array( $id, $date )); } /* 全PDFファイルを取得 */ $pdffiles = glob("./reportfiles/pdf/*.pdf", GLOB_NOSORT); $text .= "

\

\ 【最終確認です】
\
\ 選択された '+cnt+'名 の送信先に案内メールを送信します。
\
\ メールを送信しても宜しいですか?\

\ '); $('#systemDialog').dialog({ title: '案内メール送信', resizable: false, width: 480, height:320, modal:true, show:'blind', hide:'blind', buttons: { '送信する': function() { $(this).dialog('close'); $('#myform').submit(); }, 'キャンセル': function() { $(this).dialog('close'); } } });\" />

\

\ 本日現在、作成済みのレポートPDF('+pdf_cnt+'件)のすべてをzip形式に圧縮してダウンロードします。\ 作成されていないレポートが新たに作成されることはありません。
\ また、新しいコメントが投稿されている場合でも、本人が更新していなければ、勝手に更新されることはありません。\
\ それぞれのレポートの最終更新日はレポート内に記載されています。
\
\ ダウンロードした圧縮ファイルは、安全の為パスワードで保護されています。\ 本システムにログインしたパスワードで解凍してください。\

\ '); $('#systemDialog').dialog({ title: 'レポートのダウンロード', resizable: false, width: 480, height:340, modal:true, show:'blind', hide:'blind', buttons: { 'ダウンロードする': function() { $(this).dialog('close'); location.href='admin.php?cmd=report_admin&action=download'; }, 'キャンセル': function() { $(this).dialog('close'); } } });\" />

※被評価者をクリックしてレポートを表示します。 被評価者が表示/更新していない場合は、この場でPDFを生成する為、長い時間(10秒程度)が必要です。

※「自己学習」は、自己学習ノートが最後に更新された日付です。 日付のない方は、まだノートに記入されていません。

※[強制的に更新]を押してPDFを表示すると、強制的に更新することができます。

"; $sql = "SELECT `$client`.* FROM `$client` WHERE `$client`.`Target`='checked';"; $rs = mysql_query($sql); $cnt = mysql_num_rows($rs); $text .= " "; $sql = "SELECT `maindata`.*, `$client`.`Name` as 'Boss', `$client`.`Email` as 'Email', `$client`.`Office` FROM `maindata` LEFT JOIN `$client` ON `maindata`.`F1`=`$client`.`ID` WHERE `maindata`.`F3`='上司' AND ((SELECT COUNT(`ID`) FROM `$client` WHERE `maindata`.`F1`=`$client`.`ID` AND `$client`.`Target`='checked')=0) GROUP BY `maindata`.`F1` ORDER BY `$client`.`Email`"; $rs = mysql_query($sql); $cnt = mysql_num_rows($rs); $text .= "
"; $i = 1; while($buff = mysql_fetch_object($rs)) { $dummy = array_values(preg_grep("/^". $buff->ID. "\t/", $datafiles)); list($id, $date) = split("\t", $dummy[0]); $pdf = " "; $dummy = array_values(preg_grep("/\/". $buff->ID. "\.pdf/", $pdffiles)); if (count($dummy)) $pdf = ""; $text .= " ID. "');\"> "; $i++; } $text .= "
被評価者 (". $cnt. "名)
No ID 所属 氏名 Email PDF 自己学習
$i ID. "\" />". $buff->ID. " ". $buff->Office. " ". $buff->Name. " ". mb_strimwidth($buff->Email, 0, 20, '...'). " ID. "\" style=\"text-align:center;\">$pdf $date
"; $i = 1; while($buff = mysql_fetch_object($rs)) { $text .= " "; $i++; } $text .= "
上司 (". $cnt. "名)
No   所属 氏名
$i F1. "\" /> ". $buff->Office. " ". $buff->Boss. "

※上司は、被評価者ではない上司のみを表示しています。
非評価者は左に表示されています。

"; $ready .= " $('.ids').click(function(event) { event.stopPropagation(); }); download_button();"; $javascript = " var msg; var pdf_cnt; function report(id) { var popup; //直接PDFを開く //popup = window.open('admin.php?cmd=report_admin&action=report&id='+id, 'popup'); //プログレースからPDFを開く //毎回新しいウィンド、タブで開く window.open('progress.php?script=admin.php&cmd=report_admin&action=report&id='+id+'&sub='+$('#sub:checked').val(), ''); //popup.focus(); //リストにチェックを入れる $('#check_'+id).html(''); download_button(); } function pdfCount() { pdf_cnt = $('.pdf_check').length; } function download_button() { pdfCount(); $('#downloadbtn').val('ダウンロード('+pdf_cnt+'件)'); }"; } else { /* データが設定されていないまたは、ファイルが存在しない場合はエラー */ $text .= "

レポート用データファイルが設定されていないか、設定ファイルが見つかりません。

"; } $text .= "
"; } elseif ($_REQUEST['action'] == "files") { /* データファイルの管理 */ $text = "

レポート用ファイル

"; if ($_REQUEST['sub'] == "upload") { /* アップロードされたファイルを所定の場所に保存 */ if ($_FILES['upload']['name']) { if ($_REQUEST['changename'] && $_REQUEST['fname']) { $localpath = "./reportfiles/csv/". $_REQUEST['fname']; } else { $localpath = "./reportfiles/csv/". $_FILES['upload']['name']; } move_uploaded_file($_FILES['upload']['tmp_name'], $localpath); } } elseif ($_REQUEST['sub'] == "delete") { /* 選択されたファイルの一括削除 */ foreach($_REQUEST['filename'] as $file) { @unlink("./reportfiles/csv/$file"); } } $fname = date("Ymd", time()). ".csv"; if ($_REQUEST['sub'] == "uploadform") { /* アップロードフォームの表示 */ $text .= "
  • 本システムが出力した「回答結果」CSVと同様の形式で保存されたファイルをアップロードします。
  • 実際に使用するデータは「環境設定」で選択して決定します。
  • 前回分のデータも併記する場合は、ここで前回分もアップロードしておきます。
  • [参照...]を押してパソコン内のファイルを選択して、[アップロード]ボタンを押してください。 同名のファイルが存在する場合は上書きされます。
  • アップロード後でも不要なファイルは、いつでも削除していただけます。

"; } else { /* ファイル一覧 */ $text .= "
"; $files = getfile("./reportfiles/csv", "file DESC"); foreach ($files as $line) { @list($key, $filename, $date, $size) = split("\t", $line); $exp = ""; if (preg_match("/\.(\w+)$/", $filename, $m)) { $exp = $m[1]; } switch (strtolower($exp)) { case "xls" || "xlsx" || "csv": $img = "excel.png"; break; case "jpg" || "gif" || "png": $img = "pictures.png"; break; case "doc" || "docx": $img = "word.png"; break; case "zip" || "lzh" || "cab": $img = "winzip.png"; break; default: $img = "bin.png"; } $text .= "

$filename

$date

\n"; } $text .= "
"; } } function getfile($dir, $sort = "", $flg = false) { !$sort && $sort = 'date DESC'; @list($key, $dummy) = split(" ", $sort); $files = array(); if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { $type = filetype("$dir/$file"); if ($type == "file") { @$date = date("Ymd H:i", filemtime("$dir/$file")); @$filesize = ceil(filesize("$dir/$file") / 1024); $size = sprintf("%9d", $filesize); $flg && $file = "$dir/$file"; $val = join("\t", array( $$key, $file, $date, $filesize )); $files[] = $val; } } closedir($dh); } if (preg_match("/DESC/i", $sort)) { rsort($files); } else { sort($files); } return($files); } ?>