File "status_list.php"
Full path: /www/ansys/qgis/002_kujyusaki/status/status_list.php
File size: 15.25 KiB (15618 bytes)
MIME-type: text/x-php
Charset: utf-8
<?php
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
// 自動でクラスを参照する
// 関数名 : __autoload()
// 備考 : 参照先は./class/XXX.phpとする
// 更新 : 2012/10/19 KMK-Teraoka
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
function __autoload($className)
{
$fPath = "./class/" . str_replace("_", "/", $className) . ".php";
require_once $fPath;
}
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
// 値を元に表示値を検索
// 関数名 : retView
// 備考 :
// 更新 : 2013/04/19 KMK-Teraoka
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
function retView($value_, $list_)
{
$row = count($list_);
for($iCount = 0; $iCount < $row; $iCount++)
{
if (strcmp($list_[$iCount]["value"], $value_) == 0)
{
return $list_[$iCount]["view"];
}
}
return "<font color=\"#FF0000\">リストに存在しません[". $value_. "]</font>";
}
//===============================================
// DEBUG_MODE
// 備考 :
// 更新 : 2012/11/01 KMK-Teraoka
//===============================================
define("DEBUG_MODE", "0");
Debug::setMode(DEBUG_MODE);
if (DEBUG_MODE == 1)
{
Stopwatch::start();
}
//===============================================
// CommonUtilities
// 備考 :
// 更新 : 2012/11/01 KMK-Teraoka
//===============================================
$PENTA_OCEAN = "五洋建設株式会社";
$TAIL_PENTA_OCEAN = "penta-ocean";
$SCRIPT_TITLE = "運行管理-沖縄 空寿崎- 端末状態確認";
$APP_ID = "3";
$APP_ID_GD = "11";
$CONST_ID = "4";
$WORK_STATUS = "0";
$CONST_NAME = "";
switch($WORK_STATUS)
{
case 0:
$CONST_NAME = "五洋建設 管理者用";
break;
default:
throw new Exception("作業ステータスが選択されていません");
break;
}
$TOP_FORM = "../index.php";
$VIEW_FORM = "./status_view.php";
$HOST = "192.168.100.153";
$DB = "ansys";
$USER = "postgres";
$PASS = "am#71ZJ*";
$TERMINALS_TABLE = "qgis.ts_terminal";
$WHERE_PATTERN = array(
"0" => array("name" => "端末名称", "object" => "terminal_name", "pattern" => "middle")
);
$VIEW_LIST = array(
array("head" => " ", "object" => "", "width" => "8%", "type" => ""),
array("head" => "端末名称", "object" => "terminal_name", "width" => "20%", "type" => ""),
array("head" => "作業役割", "object" => "work_status", "width" => "14%", "type" => "1"),
array("head" => "緯度", "object" => "lat", "width" => "12%", "type" => ""),
array("head" => "経度", "object" => "lon", "width" => "12%", "type" => ""),
array("head" => "測位精度", "object" => "acc", "width" => "7%", "type" => ""),
array("head" => "車速[km/h]", "object" => "spd", "width" => "7%", "type" => ""),
array("head" => "測位時間", "object" => "mesdatetime", "width" => "20%", "type" => ""),
//array("head" => "アプリID", "object" => "app_id", "width" => "20%", "type" => ""),
);
$WORK_STATUS_LIST = array(
"0" => array("value" => "0", "view" => "五洋建設職員"),
"1" => array("value" => "1", "view" => "ダンプトラック"),
"2" => array("value" => "2", "view" => "ガードマン"),
);
$PAGE_LIMIT = 30;
//===============================================
// HTML-HEAD-
// 備考 :
// 更新 : 2012/10/18 KMK-Teraoka
//===============================================
print "<html>";
print "<head>";
print "<meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\">";
print "<link rel=\"stylesheet\" type=\"text/css\" href=\"/ansys/config/css/style.css\">";
print "<link rel=\"shortcut icon\" href=\"/ansys/config/favicon.ico\">";
print "<title>". $SCRIPT_TITLE. "</title>";
print "</head>";
//===============================================
// HTML-BODY部開始-
// 備考 :
// 更新 : 2012/10/18 KMK-Teraoka
//===============================================
print "<body>";
print "<center>";
print "<font size=\"3\">";
print "<b>";
print "". $SCRIPT_TITLE. "<br>";
print "【". $PENTA_OCEAN. "】";
print "</b>";
print "</font>";
print "</center>";
print "<hr />";
try
{
//================================================
// データベース接続
// 備考 :
// 更新 : 2012/10/18 KMK-Teraoka
//================================================
$conn = pg_connect("
host = ". $HOST. "
dbname = ". $DB. "
user = ". $USER. "
password= ". $PASS. "
");
if (!$conn)
{
throw new Exception("データベースへの接続に失敗しました");
}
//===============================================
// POST、GETパラメータの受け取り
// 備考 :
// 更新 : 2012/11/01 KMK-Teraoka
//===============================================
if (DEBUG_MODE == 1)
{
extract($_POST);
extract($_GET);
Debug::writes($_POST);
}
$selSearch = isset($_POST["selSearch"]) ? htmlspecialchars($_POST["selSearch"]) : "";
$txtSearchObj = isset($_POST["txtSearchObj"]) ? htmlspecialchars($_POST["txtSearchObj"]) : "";
$viewPage = isset($_POST["hPage"]) ? htmlspecialchars($_POST["hPage"]) : 1;
$btnSearch = isset($_POST["btnSearch"]) ? htmlspecialchars($_POST["btnSearch"]) : "";
if (strcmp($btnSearch, "クリア") == 0)
{
$txtSearchObj = "";
}
else if (strcmp($btnSearch, "検索") == 0)
{
$viewPage = 1;
}
//===============================================
// WHERE句の作成
// 備考 :
// 更新 : 2012/11/01 KMK-Teraoka
//===============================================
$whereObj = "";
if (strcmp($txtSearchObj, "") != 0)
{
$selPattern = "";
for($iCount = 0; $iCount < count($WHERE_PATTERN); $iCount++)
{
if (strcmp($WHERE_PATTERN[$iCount]["object"], $selSearch) == 0)
$selPattern = $WHERE_PATTERN[$iCount]["pattern"];
}
if (strcmp($selPattern, "front") == 0)
$whereObj .= " WHERE ". $selSearch. " LIKE '%". $txtSearchObj. "'";
else if (strcmp($selPattern, "back") == 0)
$whereObj .= " WHERE ". $selSearch. " LIKE '". $txtSearchObj. "%'";
else if (strcmp($selPattern, "middle") == 0)
$whereObj .= " WHERE ". $selSearch. " LIKE '%". $txtSearchObj. "%'";
else
$whereObj .= " WHERE ". $selSearch. "='". $txtSearchObj. "'";
$whereObj .= " AND const_id='". $CONST_ID. "'";
$whereObj .= " AND (app_id='". $APP_ID. "' OR app_id='". $APP_ID_GD. "')";
if (strcmp($WORK_STATUS, 0) != 0)
$whereObj .= " AND work_status='". $WORK_STATUS. "'";
}
else
{
$whereObj .= " WHERE const_id='". $CONST_ID. "'";
//$whereObj .= " AND app_id='". $APP_ID. "'";
$whereObj .= " AND (app_id='". $APP_ID. "' OR app_id='". $APP_ID_GD. "')";
if (strcmp($WORK_STATUS, 0) != 0)
$whereObj .= " AND work_status='". $WORK_STATUS. "'";
}
Debug::write($whereObj);
//===============================================
// ORDER句の作成
// 備考 :
// 更新 : 2012/11/01 KMK-Teraoka
//===============================================
$orderObj = " ORDER BY terminal_name";
//===============================================
// 見出し
// 備考 : Table内TableでBorderを細くする
// 更新 : 2012/11/01 KMK-Teraoka
//===============================================
print "<table width=\"100%\" border=\"0\" bgcolor=\"#000000\" cellspacing=\"0\" cellpadding=\"0\">";
print "<tr>";
print "<td>";
print "<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"3\">";
print "<tr bgcolor=\"#99CCFF\">";
print "<td align=\"left\">";
print "端末状態一覧 [". $CONST_NAME. "]";
print "</td>";
print "</tr>";
print "</table>";
print "</td>";
print "</tr>";
print "</table>";
print "<br />";
//===============================================
// 検索条件の指定
// 備考 :
// 更新 : 2012/11/01 KMK-Teraoka
//===============================================
print "<form action=\"". $_SERVER['PHP_SELF']. "\" method=\"post\" style=\"display:inline\">";
print "検索条件:";
print "<select name=\"selSearch\" id=\"select_option\">";
for($iCount = 0; $iCount < count($WHERE_PATTERN); $iCount++)
{
$selOption = "";
if (strcmp($selSearch, $WHERE_PATTERN[$iCount]["object"]) == 0)
$selOption = " selected";
print "<option value=\"". $WHERE_PATTERN[$iCount]["object"]. "\" ". $selOption. ">". $WHERE_PATTERN[$iCount]["name"]. "</option>";
}
print "</select>";
print " ";
print "<input type=\"text\" name=\"txtSearchObj\" value=\"". $txtSearchObj. "\" style=\"width:120px\" id=\"text\">";
print " ";
print "<input type=\"submit\" name=\"btnSearch\" value=\"検索\" style=\"width:60px\" id=\"submit_button\">";
print " ";
print "<input type=\"submit\" name=\"btnSearch\" value=\"クリア\" style=\"width:60px\" id=\"submit_button\">";
print "<br />";
print "<input type=\"hidden\" name=\"hPage\" value=\"". $viewPage. "\">";
print "</form>";
//===============================================
// トップ画面へ戻るのLink
// 備考 :
// 更新 : 2012/11/01 KMK-Teraoka
//===============================================
print "<form name=\"topForm_1\" method=\"post\" action=\"". $TOP_FORM. "\" style=\"display:inline\">";
print "<a href=\"javascript:topForm_1.submit()\">トップ画面</a>";
print "</form>";
print "<br />";
//===============================================
// ページリンクの作成
// 備考 : Table内TableでBorderを細くする
// 更新 : 2012/11/01 KMK-Teraoka
//===============================================
$selRowCnt = "SELECT count(*) as count FROM ". $TERMINALS_TABLE. "";
if (strcmp($whereObj, "") != 0)
$selRowCnt .= $whereObj;
if (strcmp($orderObj, "") != 0)
$selList .= $orderObj;
$selRowCnt .= ";";
Debug::write($selRowCnt);
if (!($resRowCnt = pg_query($conn, $selRowCnt)))
throw new Exception("行数の取得に失敗<br />". $selRowCnt. "<br />". pg_last_error(). "<br />");
$rowRowCnt = pg_fetch_array($resRowCnt, 0, PGSQL_ASSOC);
$pageLinkCnt = ceil(($rowRowCnt["count"] / $PAGE_LIMIT));
for($iCount = 0; $iCount < $pageLinkCnt; $iCount++)
{
if ($viewPage == ($iCount + 1))
{
print ($iCount + 1). "";
}
else
{
print "<form name=\"ownForm". ($iCount + 1). "_1\" method=\"post\" action=\"". $_SERVER['PHP_SELF']. "\" style=\"display:inline\">";
print "<a href=\"javascript:ownForm". ($iCount + 1). "_1.submit()\">". ($iCount + 1). "</a>";
print "<input type=\"hidden\" name=\"selSearch\" value=\"". $selSearch. "\">";
print "<input type=\"hidden\" name=\"txtSearchObj\" value=\"". $txtSearchObj. "\">";
print "<input type=\"hidden\" name=\"hPage\" value=\"". ($iCount + 1). "\">";
print "</form>";
}
if ($iCount < ($pageLinkCnt - 1))
{
print " ";
}
}
print "<br />";
//===============================================
// 一覧の取得
// 備考 :
// 更新 : 2012/11/01 KMK-Teraoka
//===============================================
$selList = "SELECT * FROM ". $TERMINALS_TABLE. "";
if (strcmp($whereObj, "") != 0)
$selList .= $whereObj;
if (strcmp($orderObj, "") != 0)
$selList .= $orderObj;
$selList .= " LIMIT 30";
$selList .= " OFFSET ". (($viewPage - 1) * 30). "";
$selList .= ";";
Debug::write($selList);
if (!($resList = pg_query($conn, $selList)))
{
throw new Exception("一覧の取得に失敗<br />". $selList. "<br />". pg_last_error(). "<br />");
}
//===============================================
// 一覧の表示
// 備考 :
// 更新 : 2012/11/01 KMK-Teraoka
//===============================================
print "<table width=\"100%\" border=\"0\" bgcolor=\"#000000\" cellspacing=\"0\" cellpadding=\"0\">";
print "<tr>";
print "<td>";
print "<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"3\">";
print "<tr bgcolor=\"#99CCFF\">";
for($iCount = 0; $iCount < count($VIEW_LIST); $iCount++)
{
print "<th style=\"width:". $VIEW_LIST[$iCount]["width"]. ";height:25px;\">";
print $VIEW_LIST[$iCount]["head"];
print "</th>";
}
print "</tr>";
for($iCount = 0; $iCount < pg_num_rows($resList); $iCount++)
{
$rowList = pg_fetch_array($resList, $iCount, PGSQL_ASSOC);
print "<tr bgcolor=\"#FFFFFF\" align=\"center\">";
for($jCount = 0; $jCount < count($VIEW_LIST); $jCount++)
{
print "<td style=\"height:25px;\">";
if (strcmp($VIEW_LIST[$jCount]["object"], "") == 0)
{
print "<form name=\"cForm_2_". $rowList["android_id"]. "\" method=\"post\" action=\"". $VIEW_FORM. "\" style=\"display:inline\">";
print "<a href=\"javascript:cForm_2_". $rowList["android_id"]. ".submit()\">詳細確認</a>";
print "<input type=\"hidden\" name=\"editId\" value=\"". $rowList["android_id"]. "\">";
print "<input type=\"hidden\" name=\"workStatus\" value=\"". $rowList["work_status"]. "\">";
print "<input type=\"hidden\" name=\"selSearch\" value=\"". $selSearch. "\">";
print "<input type=\"hidden\" name=\"txtSearchObj\" value=\"". $txtSearchObj. "\">";
print "<input type=\"hidden\" name=\"hPage\" value=\"". $viewPage. "\">";
print "</form>";
}
else if (strcmp($rowList[$VIEW_LIST[$jCount]["object"]], "") != 0)
{
switch($VIEW_LIST[$jCount]["type"])
{
case 1:
print retView($rowList[$VIEW_LIST[$jCount]["object"]], $WORK_STATUS_LIST);
break;
default:
print $rowList[$VIEW_LIST[$jCount]["object"]];
break;
}
}
else
{
print " ";
}
print "</td>";
}
print "</tr>";
}
print "</table>";
print "</td>";
print "</tr>";
print "</table>";
print "<input type=\"hidden\" name=\"hPage\" value=\"". $viewPage. "\">";
//===============================================
// ページリンクの作成
// 備考 :
// 更新 : 2012/11/01 KMK-Teraoka
//===============================================
$pageLinkCnt = ceil(($rowRowCnt["count"] / $PAGE_LIMIT));
for($iCount = 0; $iCount < $pageLinkCnt; $iCount++)
{
if ($viewPage == ($iCount + 1))
{
print ($iCount + 1). "";
}
else
{
print "<form name=\"ownForm". ($iCount + 1). "_2\" method=\"post\" action=\"". $_SERVER['PHP_SELF']. "\" style=\"display:inline\">";
print "<a href=\"javascript:ownForm". ($iCount + 1). "_2.submit()\">". ($iCount + 1). "</a>";
print "<input type=\"hidden\" name=\"selSearch\" value=\"". $selSearch. "\">";
print "<input type=\"hidden\" name=\"txtSearchObj\" value=\"". $txtSearchObj. "\">";
print "<input type=\"hidden\" name=\"hPage\" value=\"". ($iCount + 1). "\">";
print "</form>";
}
if ($iCount < ($pageLinkCnt - 1))
{
print " ";
}
}
print "<br />";
}
catch(Exception $exc)
{
print "<font color=\"#FF0000\">";
print "【スクリプトエラー】<br />";
print $exc->getMessage(). "<br />";
print "</font>";
}
//===============================================
// トップ画面へ戻るのLink
// 備考 :
// 更新 : 2012/11/01 KMK-Teraoka
//===============================================
print "<form name=\"topForm_2\" method=\"post\" action=\"". $TOP_FORM. "\" style=\"display:inline\">";
print "<a href=\"javascript:topForm_2.submit()\">トップ画面</a>";
print "</form>";
print "<br />";
//===============================================
// Postgresql終了処理
// 備考 :
// 更新 : 2012/11/01 KMK-Teraoka
//===============================================
pg_close($conn);
//===============================================
// HTML終了処理
// 備考 :
// 更新 : 2012/11/01 KMK-Teraoka
//===============================================
print "<hr />";
print "<font size=\"3\" color=\"#000000\" face=\"Arial\">";
print "<center>";
print "<b>";
print "<i>";
print $TAIL_PENTA_OCEAN;
print "</i>";
print "</b>";
print "</center>";
print "</font>";
print "</body>";
print "</html>";
?>