PageRenderTime 60ms CodeModel.GetById 29ms RepoModel.GetById 0ms app.codeStats 0ms

/rollist.php

https://github.com/fredd-for/emaus_tesoreria
PHP | 891 lines | 668 code | 102 blank | 121 comment | 188 complexity | 2c4792fba90f66c2f3aed8486f3f8dc4 MD5 | raw file
Possible License(s): LGPL-2.1
  1. <?php
  2. session_start(); // Initialize session data
  3. ob_start(); // Turn on output buffering
  4. ?>
  5. <?php include "ewcfg6.php" ?>
  6. <?php include "ewmysql6.php" ?>
  7. <?php include "phpfn6.php" ?>
  8. <?php include "rolinfo.php" ?>
  9. <?php include "usuarioinfo.php" ?>
  10. <?php include "userfn6.php" ?>
  11. <?php
  12. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
  13. header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // Always modified
  14. header("Cache-Control: private, no-store, no-cache, must-revalidate"); // HTTP/1.1
  15. header("Cache-Control: post-check=0, pre-check=0", false);
  16. header("Pragma: no-cache"); // HTTP/1.0
  17. ?>
  18. <?php
  19. // Define page object
  20. $rol_list = new crol_list();
  21. $Page =& $rol_list;
  22. // Page init processing
  23. $rol_list->Page_Init();
  24. // Page main processing
  25. $rol_list->Page_Main();
  26. ?>
  27. <?php include "header.php" ?>
  28. <?php if ($rol->Export == "") { ?>
  29. <script type="text/javascript">
  30. <!--
  31. // Create page object
  32. var rol_list = new ew_Page("rol_list");
  33. // page properties
  34. rol_list.PageID = "list"; // page ID
  35. var EW_PAGE_ID = rol_list.PageID; // for backward compatibility
  36. // extend page with Form_CustomValidate function
  37. rol_list.Form_CustomValidate =
  38. function(fobj) { // DO NOT CHANGE THIS LINE!
  39. // Your custom validation code here, return false if invalid.
  40. return true;
  41. }
  42. <?php if (EW_CLIENT_VALIDATE) { ?>
  43. rol_list.ValidateRequired = true; // uses JavaScript validation
  44. <?php } else { ?>
  45. rol_list.ValidateRequired = false; // no JavaScript validation
  46. <?php } ?>
  47. //-->
  48. </script>
  49. <script language="JavaScript" type="text/javascript">
  50. <!--
  51. // Write your client script here, no need to add script tags.
  52. // To include another .js script, use:
  53. // ew_ClientScriptInclude("my_javascript.js");
  54. //-->
  55. </script>
  56. <?php } ?>
  57. <?php if ($rol->Export == "") { ?>
  58. <?php } ?>
  59. <?php
  60. $bSelectLimit = ($rol->Export == "" && $rol->SelectLimit);
  61. if (!$bSelectLimit)
  62. $rs = $rol_list->LoadRecordset();
  63. $rol_list->lTotalRecs = ($bSelectLimit) ? $rol->SelectRecordCount() : $rs->RecordCount();
  64. $rol_list->lStartRec = 1;
  65. if ($rol_list->lDisplayRecs <= 0) // Display all records
  66. $rol_list->lDisplayRecs = $rol_list->lTotalRecs;
  67. if (!($rol->ExportAll && $rol->Export <> ""))
  68. $rol_list->SetUpStartRec(); // Set up start record position
  69. if ($bSelectLimit)
  70. $rs = $rol_list->LoadRecordset($rol_list->lStartRec-1, $rol_list->lDisplayRecs);
  71. ?>
  72. <p><span class="phpmaker" style="white-space: nowrap;">TABLA: Rol
  73. <?php if ($rol->Export == "" && $rol->CurrentAction == "") { ?>
  74. &nbsp;&nbsp;<a href="<?php echo $rol_list->PageUrl() ?>export=excel">Exportar a Excel</a>
  75. <?php } ?>
  76. </span></p>
  77. <?php $rol_list->ShowMessage() ?>
  78. <br>
  79. <table cellspacing="0" class="ewGrid"><tr><td class="ewGridContent">
  80. <div class="ewGridMiddlePanel">
  81. <form name="frollist" id="frollist" class="ewForm" action="" method="post">
  82. <?php if ($rol_list->lTotalRecs > 0) { ?>
  83. <table cellspacing="0" rowhighlightclass="ewTableHighlightRow" rowselectclass="ewTableSelectRow" roweditclass="ewTableEditRow" class="ewTable ewTableSeparate">
  84. <?php
  85. $rol_list->lOptionCnt = 0;
  86. if ($Security->CanView()) {
  87. $rol_list->lOptionCnt++; // view
  88. }
  89. if ($Security->CanEdit()) {
  90. $rol_list->lOptionCnt++; // edit
  91. }
  92. if ($Security->CanDelete()) {
  93. $rol_list->lOptionCnt++; // Delete
  94. }
  95. $rol_list->lOptionCnt++; // Permission
  96. $rol_list->lOptionCnt += count($rol_list->ListOptions->Items); // Custom list options
  97. ?>
  98. <?php echo $rol->TableCustomInnerHtml ?>
  99. <thead><!-- Table header -->
  100. <tr class="ewTableHeader">
  101. <?php if ($rol->idRol->Visible) { // idRol ?>
  102. <?php if ($rol->SortUrl($rol->idRol) == "") { ?>
  103. <td>Id Rol</td>
  104. <?php } else { ?>
  105. <td class="ewPointer" onmousedown="ew_Sort(event,'<?php echo $rol->SortUrl($rol->idRol) ?>',1);">
  106. <table cellspacing="0" class="ewTableHeaderBtn"><tr><td>Id Rol</td><td style="width: 10px;"><?php if ($rol->idRol->getSort() == "ASC") { ?><img src="images/sortup.gif" width="10" height="9" border="0"><?php } elseif ($rol->idRol->getSort() == "DESC") { ?><img src="images/sortdown.gif" width="10" height="9" border="0"><?php } ?></td></tr></table>
  107. </td>
  108. <?php } ?>
  109. <?php } ?>
  110. <?php if ($rol->nombre->Visible) { // nombre ?>
  111. <?php if ($rol->SortUrl($rol->nombre) == "") { ?>
  112. <td>Nombre</td>
  113. <?php } else { ?>
  114. <td class="ewPointer" onmousedown="ew_Sort(event,'<?php echo $rol->SortUrl($rol->nombre) ?>',1);">
  115. <table cellspacing="0" class="ewTableHeaderBtn"><tr><td>Nombre</td><td style="width: 10px;"><?php if ($rol->nombre->getSort() == "ASC") { ?><img src="images/sortup.gif" width="10" height="9" border="0"><?php } elseif ($rol->nombre->getSort() == "DESC") { ?><img src="images/sortdown.gif" width="10" height="9" border="0"><?php } ?></td></tr></table>
  116. </td>
  117. <?php } ?>
  118. <?php } ?>
  119. <?php if ($rol->Export == "") { ?>
  120. <?php if ($Security->CanView()) { ?>
  121. <td style="white-space: nowrap;">&nbsp;</td>
  122. <?php } ?>
  123. <?php if ($Security->CanEdit()) { ?>
  124. <td style="white-space: nowrap;">&nbsp;</td>
  125. <?php } ?>
  126. <?php if ($Security->CanDelete()) { ?>
  127. <td style="white-space: nowrap;">&nbsp;</td>
  128. <?php } ?>
  129. <td style="white-space: nowrap;">&nbsp;</td>
  130. <?php
  131. // Custom list options
  132. foreach ($rol_list->ListOptions->Items as $ListOption) {
  133. if ($ListOption->Visible)
  134. echo $ListOption->HeaderCellHtml;
  135. }
  136. ?>
  137. <?php } ?>
  138. </tr>
  139. </thead>
  140. <?php
  141. if ($rol->ExportAll && $rol->Export <> "") {
  142. $rol_list->lStopRec = $rol_list->lTotalRecs;
  143. } else {
  144. $rol_list->lStopRec = $rol_list->lStartRec + $rol_list->lDisplayRecs - 1; // Set the last record to display
  145. }
  146. $rol_list->lRecCount = $rol_list->lStartRec - 1;
  147. if ($rs && !$rs->EOF) {
  148. $rs->MoveFirst();
  149. if (!$rol->SelectLimit && $rol_list->lStartRec > 1)
  150. $rs->Move($rol_list->lStartRec - 1);
  151. }
  152. $rol_list->lRowCnt = 0;
  153. while (($rol->CurrentAction == "gridadd" || !$rs->EOF) &&
  154. $rol_list->lRecCount < $rol_list->lStopRec) {
  155. $rol_list->lRecCount++;
  156. if (intval($rol_list->lRecCount) >= intval($rol_list->lStartRec)) {
  157. $rol_list->lRowCnt++;
  158. // Init row class and style
  159. $rol->CssClass = "";
  160. $rol->CssStyle = "";
  161. $rol->RowClientEvents = "onmouseover='ew_MouseOver(event, this);' onmouseout='ew_MouseOut(event, this);' onclick='ew_Click(event, this);'";
  162. if ($rol->CurrentAction == "gridadd") {
  163. $rol_list->LoadDefaultValues(); // Load default values
  164. } else {
  165. $rol_list->LoadRowValues($rs); // Load row values
  166. }
  167. $rol->RowType = EW_ROWTYPE_VIEW; // Render view
  168. // Render row
  169. $rol_list->RenderRow();
  170. ?>
  171. <tr<?php echo $rol->RowAttributes() ?>>
  172. <?php if ($rol->idRol->Visible) { // idRol ?>
  173. <td<?php echo $rol->idRol->CellAttributes() ?>>
  174. <div<?php echo $rol->idRol->ViewAttributes() ?>><?php echo $rol->idRol->ListViewValue() ?></div>
  175. </td>
  176. <?php } ?>
  177. <?php if ($rol->nombre->Visible) { // nombre ?>
  178. <td<?php echo $rol->nombre->CellAttributes() ?>>
  179. <div<?php echo $rol->nombre->ViewAttributes() ?>><?php echo $rol->nombre->ListViewValue() ?></div>
  180. </td>
  181. <?php } ?>
  182. <?php if ($rol->Export == "") { ?>
  183. <?php if ($Security->CanView()) { ?>
  184. <td style="white-space: nowrap;"><span class="phpmaker"><?php if ($rol->idRol->CurrentValue <= 0) { ?>-<?php } else { ?>
  185. <a href="<?php echo $rol->ViewUrl() ?>">Ver</a>
  186. <?php } ?></span></td>
  187. <?php } ?>
  188. <?php if ($Security->CanEdit()) { ?>
  189. <td style="white-space: nowrap;"><span class="phpmaker"><?php if ($rol->idRol->CurrentValue <= 0) { ?>-<?php } else { ?>
  190. <a href="<?php echo $rol->EditUrl() ?>">Editar</a>
  191. <?php } ?></span></td>
  192. <?php } ?>
  193. <?php if ($Security->CanDelete()) { ?>
  194. <td style="white-space: nowrap;"><span class="phpmaker"><?php if ($rol->idRol->CurrentValue <= 0) { ?>-<?php } else { ?>
  195. <a onclick="ew_ClickDelete(this);return ew_ConfirmDelete('<?php echo $rol_list->sDeleteConfirmMsg ?>', this);" href="<?php echo $rol->DeleteUrl() ?>">Borrar</a>
  196. <?php } ?></span></td>
  197. <?php } ?>
  198. <td style="white-space: nowrap;"><span class="phpmaker"><?php if ($rol->idRol->CurrentValue < 0) { ?>-<?php } else { ?>
  199. <a href="userpriv.php?idRol=<?php echo $rol->idRol->CurrentValue ?>">Permisos</a>
  200. <?php } ?></span></td>
  201. <?php
  202. // Custom list options
  203. foreach ($rol_list->ListOptions->Items as $ListOption) {
  204. if ($ListOption->Visible)
  205. echo $ListOption->BodyCellHtml;
  206. }
  207. ?>
  208. <?php } ?>
  209. </tr>
  210. <?php
  211. }
  212. if ($rol->CurrentAction <> "gridadd")
  213. $rs->MoveNext();
  214. }
  215. ?>
  216. </tbody>
  217. </table>
  218. <?php } ?>
  219. </form>
  220. <?php
  221. // Close recordset
  222. if ($rs)
  223. $rs->Close();
  224. ?>
  225. </div>
  226. <?php if ($rol->Export == "") { ?>
  227. <div class="ewGridLowerPanel">
  228. <?php if ($rol->CurrentAction <> "gridadd" && $rol->CurrentAction <> "gridedit") { ?>
  229. <form name="ewpagerform" id="ewpagerform" class="ewForm" action="<?php echo ew_CurrentPage() ?>">
  230. <table border="0" cellspacing="0" cellpadding="0" class="ewPager">
  231. <tr>
  232. <td nowrap>
  233. <?php if (!isset($rol_list->Pager)) $rol_list->Pager = new cPrevNextPager($rol_list->lStartRec, $rol_list->lDisplayRecs, $rol_list->lTotalRecs) ?>
  234. <?php if ($rol_list->Pager->RecordCount > 0) { ?>
  235. <table border="0" cellspacing="0" cellpadding="0"><tr><td><span class="phpmaker">Página&nbsp;</span></td>
  236. <!--first page button-->
  237. <?php if ($rol_list->Pager->FirstButton->Enabled) { ?>
  238. <td><a href="<?php echo $rol_list->PageUrl() ?>start=<?php echo $rol_list->Pager->FirstButton->Start ?>"><img src="images/first.gif" alt="Primera" width="16" height="16" border="0"></a></td>
  239. <?php } else { ?>
  240. <td><img src="images/firstdisab.gif" alt="Primera" width="16" height="16" border="0"></td>
  241. <?php } ?>
  242. <!--previous page button-->
  243. <?php if ($rol_list->Pager->PrevButton->Enabled) { ?>
  244. <td><a href="<?php echo $rol_list->PageUrl() ?>start=<?php echo $rol_list->Pager->PrevButton->Start ?>"><img src="images/prev.gif" alt="Anterior" width="16" height="16" border="0"></a></td>
  245. <?php } else { ?>
  246. <td><img src="images/prevdisab.gif" alt="Anterior" width="16" height="16" border="0"></td>
  247. <?php } ?>
  248. <!--current page number-->
  249. <td><input type="text" name="<?php echo EW_TABLE_PAGE_NO ?>" id="<?php echo EW_TABLE_PAGE_NO ?>" value="<?php echo $rol_list->Pager->CurrentPage ?>" size="4"></td>
  250. <!--next page button-->
  251. <?php if ($rol_list->Pager->NextButton->Enabled) { ?>
  252. <td><a href="<?php echo $rol_list->PageUrl() ?>start=<?php echo $rol_list->Pager->NextButton->Start ?>"><img src="images/next.gif" alt="Siguiente" width="16" height="16" border="0"></a></td>
  253. <?php } else { ?>
  254. <td><img src="images/nextdisab.gif" alt="Siguiente" width="16" height="16" border="0"></td>
  255. <?php } ?>
  256. <!--last page button-->
  257. <?php if ($rol_list->Pager->LastButton->Enabled) { ?>
  258. <td><a href="<?php echo $rol_list->PageUrl() ?>start=<?php echo $rol_list->Pager->LastButton->Start ?>"><img src="images/last.gif" alt="Ultima" width="16" height="16" border="0"></a></td>
  259. <?php } else { ?>
  260. <td><img src="images/lastdisab.gif" alt="Ultima" width="16" height="16" border="0"></td>
  261. <?php } ?>
  262. <td><span class="phpmaker">&nbsp;de <?php echo $rol_list->Pager->PageCount ?></span></td>
  263. </tr></table>
  264. </td>
  265. <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
  266. <td>
  267. <span class="phpmaker">Registro <?php echo $rol_list->Pager->FromIndex ?> a <?php echo $rol_list->Pager->ToIndex ?> de <?php echo $rol_list->Pager->RecordCount ?></span>
  268. <?php } else { ?>
  269. <?php if ($Security->CanList()) { ?>
  270. <?php if ($rol_list->sSrchWhere == "0=101") { ?>
  271. <span class="phpmaker">Por favor ingrese criterio de busqueda</span>
  272. <?php } else { ?>
  273. <span class="phpmaker">No se encontraron registros</span>
  274. <?php } ?>
  275. <?php } else { ?>
  276. <span class="phpmaker">No tiene permisos para consultar esta página</span>
  277. <?php } ?>
  278. <?php } ?>
  279. </td>
  280. <?php if ($rol_list->lTotalRecs > 0) { ?>
  281. <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
  282. <td><table border="0" cellspacing="0" cellpadding="0"><tr><td>Registros por página&nbsp;</td><td>
  283. <input type="hidden" id="t" name="t" value="rol">
  284. <select name="<?php echo EW_TABLE_REC_PER_PAGE ?>" id="<?php echo EW_TABLE_REC_PER_PAGE ?>" onchange="this.form.submit();" class="phpmaker">
  285. <option value="20"<?php if ($rol_list->lDisplayRecs == 20) { ?> selected="selected"<?php } ?>>20</option>
  286. <option value="50"<?php if ($rol_list->lDisplayRecs == 50) { ?> selected="selected"<?php } ?>>50</option>
  287. <option value="ALL"<?php if ($rol->getRecordsPerPage() == -1) { ?> selected="selected"<?php } ?>>Todos los registros</option>
  288. </select></td></tr></table>
  289. </td>
  290. <?php } ?>
  291. </tr>
  292. </table>
  293. </form>
  294. <?php } ?>
  295. <?php //if ($rol_list->lTotalRecs > 0) { ?>
  296. <span class="phpmaker">
  297. <?php if ($Security->CanAdd()) { ?>
  298. <a href="<?php echo $rol->AddUrl() ?>">Agregar</a>&nbsp;&nbsp;
  299. <?php } ?>
  300. </span>
  301. <?php //} ?>
  302. </div>
  303. <?php } ?>
  304. </td></tr></table>
  305. <?php if ($rol->Export == "" && $rol->CurrentAction == "") { ?>
  306. <script type="text/javascript">
  307. <!--
  308. //ew_ToggleSearchPanel(rol_list); // uncomment to init search panel as collapsed
  309. //-->
  310. </script>
  311. <?php } ?>
  312. <?php if ($rol->Export == "") { ?>
  313. <script language="JavaScript" type="text/javascript">
  314. <!--
  315. // Write your table-specific startup script here
  316. // document.write("page loaded");
  317. //-->
  318. </script>
  319. <?php } ?>
  320. <?php include "footer.php" ?>
  321. <?php
  322. //
  323. // Page Class
  324. //
  325. class crol_list {
  326. // Page ID
  327. var $PageID = 'list';
  328. // Table Name
  329. var $TableName = 'rol';
  330. // Page Object Name
  331. var $PageObjName = 'rol_list';
  332. // Page Name
  333. function PageName() {
  334. return ew_CurrentPage();
  335. }
  336. // Page Url
  337. function PageUrl() {
  338. $PageUrl = ew_CurrentPage() . "?";
  339. global $rol;
  340. if ($rol->UseTokenInUrl) $PageUrl .= "t=" . $rol->TableVar . "&"; // add page token
  341. return $PageUrl;
  342. }
  343. // Message
  344. function getMessage() {
  345. return @$_SESSION[EW_SESSION_MESSAGE];
  346. }
  347. function setMessage($v) {
  348. if (@$_SESSION[EW_SESSION_MESSAGE] <> "") { // Append
  349. $_SESSION[EW_SESSION_MESSAGE] .= "<br>" . $v;
  350. } else {
  351. $_SESSION[EW_SESSION_MESSAGE] = $v;
  352. }
  353. }
  354. // Show Message
  355. function ShowMessage() {
  356. if ($this->getMessage() <> "") { // Message in Session, display
  357. echo "<p><span class=\"ewMessage\">" . $this->getMessage() . "</span></p>";
  358. $_SESSION[EW_SESSION_MESSAGE] = ""; // Clear message in Session
  359. }
  360. }
  361. // Validate Page request
  362. function IsPageRequest() {
  363. global $objForm, $rol;
  364. if ($rol->UseTokenInUrl) {
  365. //IsPageRequest = False
  366. if ($objForm)
  367. return ($rol->TableVar == $objForm->GetValue("t"));
  368. if (@$_GET["t"] <> "")
  369. return ($rol->TableVar == $_GET["t"]);
  370. } else {
  371. return TRUE;
  372. }
  373. }
  374. //
  375. // Class initialize
  376. // - init objects
  377. // - open connection
  378. //
  379. function crol_list() {
  380. global $conn;
  381. // Initialize table object
  382. $GLOBALS["rol"] = new crol();
  383. // Initialize other table object
  384. $GLOBALS['usuario'] = new cusuario();
  385. // Intialize page id (for backward compatibility)
  386. if (!defined("EW_PAGE_ID"))
  387. define("EW_PAGE_ID", 'list', TRUE);
  388. // Initialize table name (for backward compatibility)
  389. if (!defined("EW_TABLE_NAME"))
  390. define("EW_TABLE_NAME", 'rol', TRUE);
  391. // Open connection to the database
  392. $conn = ew_Connect();
  393. // Initialize list options
  394. $this->ListOptions = new cListOptions();
  395. }
  396. //
  397. // Page_Init
  398. //
  399. function Page_Init() {
  400. global $gsExport, $gsExportFile, $rol;
  401. global $Security;
  402. $Security = new cAdvancedSecurity();
  403. if (!$Security->IsLoggedIn()) $Security->AutoLogin();
  404. if (!$Security->IsLoggedIn()) {
  405. $Security->SaveLastUrl();
  406. $this->Page_Terminate("login.php");
  407. }
  408. $Security->TablePermission_Loading();
  409. $Security->LoadCurrentUserLevel($this->TableName);
  410. $Security->TablePermission_Loaded();
  411. if (!$Security->CanAdmin()) {
  412. $Security->SaveLastUrl();
  413. $this->Page_Terminate("login.php");
  414. }
  415. $rol->Export = @$_GET["export"]; // Get export parameter
  416. $gsExport = $rol->Export; // Get export parameter, used in header
  417. $gsExportFile = $rol->TableVar; // Get export file, used in header
  418. if ($rol->Export == "excel") {
  419. header('Content-Type: application/vnd.ms-excel');
  420. header('Content-Disposition: attachment; filename=' . $gsExportFile .'.xls');
  421. }
  422. // Global page loading event (in userfn6.php)
  423. Page_Loading();
  424. // Page load event, used in current page
  425. $this->Page_Load();
  426. }
  427. //
  428. // Page_Terminate
  429. // - called when exit page
  430. // - if URL specified, redirect to the URL
  431. //
  432. function Page_Terminate($url = "") {
  433. global $conn;
  434. // Page unload event, used in current page
  435. $this->Page_Unload();
  436. // Global page unloaded event (in userfn*.php)
  437. Page_Unloaded();
  438. // Close Connection
  439. $conn->Close();
  440. // Go to URL if specified
  441. if ($url <> "") {
  442. ob_end_clean();
  443. header("Location: $url");
  444. }
  445. exit();
  446. }
  447. var $lDisplayRecs; // Number of display records
  448. var $lStartRec;
  449. var $lStopRec;
  450. var $lTotalRecs;
  451. var $lRecRange;
  452. var $sSrchWhere;
  453. var $lRecCnt;
  454. var $lEditRowCnt;
  455. var $lRowCnt;
  456. var $lRowIndex;
  457. var $lOptionCnt;
  458. var $lRecPerRow;
  459. var $lColCnt;
  460. var $sDeleteConfirmMsg; // Delete confirm message
  461. var $sDbMasterFilter;
  462. var $sDbDetailFilter;
  463. var $bMasterRecordExists;
  464. var $ListOptions;
  465. var $sMultiSelectKey;
  466. //
  467. // Page main processing
  468. //
  469. function Page_Main() {
  470. global $objForm, $gsSearchError, $Security, $rol;
  471. $this->lDisplayRecs = 20;
  472. $this->lRecRange = 10;
  473. $this->lRecCnt = 0; // Record count
  474. // Search filters
  475. $sSrchAdvanced = ""; // Advanced search filter
  476. $sSrchBasic = ""; // Basic search filter
  477. $sFilter = "";
  478. $this->sSrchWhere = ""; // Search WHERE clause
  479. $this->sDeleteConfirmMsg = "żQuiere borrar este registro?"; // Delete confirm message
  480. // Master/Detail
  481. $this->sDbMasterFilter = ""; // Master filter
  482. $this->sDbDetailFilter = ""; // Detail filter
  483. if ($this->IsPageRequest()) { // Validate request
  484. // Set up records per page dynamically
  485. $this->SetUpDisplayRecs();
  486. // Handle reset command
  487. $this->ResetCmd();
  488. // Set Up Sorting Order
  489. $this->SetUpSortOrder();
  490. } // End Validate Request
  491. // Restore display records
  492. if ($rol->getRecordsPerPage() <> "") {
  493. $this->lDisplayRecs = $rol->getRecordsPerPage(); // Restore from Session
  494. } else {
  495. $this->lDisplayRecs = 20; // Load default
  496. }
  497. // Load Sorting Order
  498. $this->LoadSortOrder();
  499. // Build filter
  500. $sFilter = "";
  501. if (!$Security->CanList()) {
  502. $sFilter = "(0=1)"; // Filter all records
  503. }
  504. if ($this->sDbDetailFilter <> "")
  505. $sFilter = ($sFilter <> "") ? "($sFilter) AND (" . $this->sDbDetailFilter . ")" : $this->sDbDetailFilter;
  506. if ($this->sSrchWhere <> "")
  507. $sFilter = ($sFilter <> "") ? "($sFilter) AND (". $this->sSrchWhere . ")" : $this->sSrchWhere;
  508. // Set up filter in Session
  509. $rol->setSessionWhere($sFilter);
  510. $rol->CurrentFilter = "";
  511. // Export data only
  512. if (in_array($rol->Export, array("html","word","excel","xml","csv"))) {
  513. $this->ExportData();
  514. $this->Page_Terminate(); // Terminate response
  515. exit();
  516. }
  517. }
  518. // Set up number of records displayed per page
  519. function SetUpDisplayRecs() {
  520. global $rol;
  521. $sWrk = @$_GET[EW_TABLE_REC_PER_PAGE];
  522. if ($sWrk <> "") {
  523. if (is_numeric($sWrk)) {
  524. $this->lDisplayRecs = intval($sWrk);
  525. } else {
  526. if (strtolower($sWrk) == "all") { // Display all records
  527. $this->lDisplayRecs = -1;
  528. } else {
  529. $this->lDisplayRecs = 20; // Non-numeric, load default
  530. }
  531. }
  532. $rol->setRecordsPerPage($this->lDisplayRecs); // Save to Session
  533. // Reset start position
  534. $this->lStartRec = 1;
  535. $rol->setStartRecordNumber($this->lStartRec);
  536. }
  537. }
  538. // Set up Sort parameters based on Sort Links clicked
  539. function SetUpSortOrder() {
  540. global $rol;
  541. // Check for an Order parameter
  542. if (@$_GET["order"] <> "") {
  543. $rol->CurrentOrder = ew_StripSlashes(@$_GET["order"]);
  544. $rol->CurrentOrderType = @$_GET["ordertype"];
  545. $rol->UpdateSort($rol->idRol); // Field
  546. $rol->UpdateSort($rol->nombre); // Field
  547. $rol->setStartRecordNumber(1); // Reset start position
  548. }
  549. }
  550. // Load Sort Order parameters
  551. function LoadSortOrder() {
  552. global $rol;
  553. $sOrderBy = $rol->getSessionOrderBy(); // Get order by from Session
  554. if ($sOrderBy == "") {
  555. if ($rol->SqlOrderBy() <> "") {
  556. $sOrderBy = $rol->SqlOrderBy();
  557. $rol->setSessionOrderBy($sOrderBy);
  558. }
  559. }
  560. }
  561. // Reset command based on querystring parameter cmd=
  562. // - RESET: reset search parameters
  563. // - RESETALL: reset search & master/detail parameters
  564. // - RESETSORT: reset sort parameters
  565. function ResetCmd() {
  566. global $rol;
  567. // Get reset cmd
  568. if (@$_GET["cmd"] <> "") {
  569. $sCmd = $_GET["cmd"];
  570. // Reset sort criteria
  571. if (strtolower($sCmd) == "resetsort") {
  572. $sOrderBy = "";
  573. $rol->setSessionOrderBy($sOrderBy);
  574. $rol->idRol->setSort("");
  575. $rol->nombre->setSort("");
  576. }
  577. // Reset start position
  578. $this->lStartRec = 1;
  579. $rol->setStartRecordNumber($this->lStartRec);
  580. }
  581. }
  582. // Set up Starting Record parameters based on Pager Navigation
  583. function SetUpStartRec() {
  584. global $rol;
  585. if ($this->lDisplayRecs == 0)
  586. return;
  587. if ($this->IsPageRequest()) { // Validate request
  588. if (@$_GET[EW_TABLE_START_REC] <> "") { // Check for "start" parameter
  589. $this->lStartRec = $_GET[EW_TABLE_START_REC];
  590. $rol->setStartRecordNumber($this->lStartRec);
  591. } elseif (@$_GET[EW_TABLE_PAGE_NO] <> "") {
  592. $this->nPageNo = $_GET[EW_TABLE_PAGE_NO];
  593. if (is_numeric($this->nPageNo)) {
  594. $this->lStartRec = ($this->nPageNo-1)*$this->lDisplayRecs+1;
  595. if ($this->lStartRec <= 0) {
  596. $this->lStartRec = 1;
  597. } elseif ($this->lStartRec >= intval(($this->lTotalRecs-1)/$this->lDisplayRecs)*$this->lDisplayRecs+1) {
  598. $this->lStartRec = intval(($this->lTotalRecs-1)/$this->lDisplayRecs)*$this->lDisplayRecs+1;
  599. }
  600. $rol->setStartRecordNumber($this->lStartRec);
  601. }
  602. }
  603. }
  604. $this->lStartRec = $rol->getStartRecordNumber();
  605. // Check if correct start record counter
  606. if (!is_numeric($this->lStartRec) || $this->lStartRec == "") { // Avoid invalid start record counter
  607. $this->lStartRec = 1; // Reset start record counter
  608. $rol->setStartRecordNumber($this->lStartRec);
  609. } elseif (intval($this->lStartRec) > intval($this->lTotalRecs)) { // Avoid starting record > total records
  610. $this->lStartRec = intval(($this->lTotalRecs-1)/$this->lDisplayRecs)*$this->lDisplayRecs+1; // Point to last page first record
  611. $rol->setStartRecordNumber($this->lStartRec);
  612. } elseif (($this->lStartRec-1) % $this->lDisplayRecs <> 0) {
  613. $this->lStartRec = intval(($this->lStartRec-1)/$this->lDisplayRecs)*$this->lDisplayRecs+1; // Point to page boundary
  614. $rol->setStartRecordNumber($this->lStartRec);
  615. }
  616. }
  617. // Load recordset
  618. function LoadRecordset($offset = -1, $rowcnt = -1) {
  619. global $conn, $rol;
  620. // Call Recordset Selecting event
  621. $rol->Recordset_Selecting($rol->CurrentFilter);
  622. // Load list page SQL
  623. $sSql = $rol->SelectSQL();
  624. if ($offset > -1 && $rowcnt > -1) $sSql .= " LIMIT $offset, $rowcnt";
  625. // Load recordset
  626. $conn->raiseErrorFn = 'ew_ErrorFn';
  627. $rs = $conn->Execute($sSql);
  628. $conn->raiseErrorFn = '';
  629. // Call Recordset Selected event
  630. $rol->Recordset_Selected($rs);
  631. return $rs;
  632. }
  633. // Load row based on key values
  634. function LoadRow() {
  635. global $conn, $Security, $rol;
  636. $sFilter = $rol->KeyFilter();
  637. // Call Row Selecting event
  638. $rol->Row_Selecting($sFilter);
  639. // Load sql based on filter
  640. $rol->CurrentFilter = $sFilter;
  641. $sSql = $rol->SQL();
  642. if ($rs = $conn->Execute($sSql)) {
  643. if ($rs->EOF) {
  644. $LoadRow = FALSE;
  645. } else {
  646. $LoadRow = TRUE;
  647. $rs->MoveFirst();
  648. $this->LoadRowValues($rs); // Load row values
  649. // Call Row Selected event
  650. $rol->Row_Selected($rs);
  651. }
  652. $rs->Close();
  653. } else {
  654. $LoadRow = FALSE;
  655. }
  656. return $LoadRow;
  657. }
  658. // Load row values from recordset
  659. function LoadRowValues(&$rs) {
  660. global $rol;
  661. $rol->idRol->setDbValue($rs->fields('idRol'));
  662. if (is_null($rol->idRol->CurrentValue)) {
  663. $rol->idRol->CurrentValue = 0;
  664. } else {
  665. $rol->idRol->CurrentValue = intval($rol->idRol->CurrentValue);
  666. }
  667. $rol->nombre->setDbValue($rs->fields('nombre'));
  668. }
  669. // Render row values based on field settings
  670. function RenderRow() {
  671. global $conn, $Security, $rol;
  672. // Call Row_Rendering event
  673. $rol->Row_Rendering();
  674. // Common render codes for all row types
  675. // idRol
  676. $rol->idRol->CellCssStyle = "";
  677. $rol->idRol->CellCssClass = "";
  678. // nombre
  679. $rol->nombre->CellCssStyle = "";
  680. $rol->nombre->CellCssClass = "";
  681. if ($rol->RowType == EW_ROWTYPE_VIEW) { // View row
  682. // idRol
  683. $rol->idRol->ViewValue = $rol->idRol->CurrentValue;
  684. $rol->idRol->CssStyle = "";
  685. $rol->idRol->CssClass = "";
  686. $rol->idRol->ViewCustomAttributes = "";
  687. // nombre
  688. $rol->nombre->ViewValue = $rol->nombre->CurrentValue;
  689. $rol->nombre->CssStyle = "";
  690. $rol->nombre->CssClass = "";
  691. $rol->nombre->ViewCustomAttributes = "";
  692. // idRol
  693. $rol->idRol->HrefValue = "";
  694. // nombre
  695. $rol->nombre->HrefValue = "";
  696. }
  697. // Call Row Rendered event
  698. $rol->Row_Rendered();
  699. }
  700. // Export data in XML or CSV format
  701. function ExportData() {
  702. global $rol;
  703. $sCsvStr = "";
  704. // Default export style
  705. $sExportStyle = "h";
  706. // Load recordset
  707. $rs = $this->LoadRecordset();
  708. $this->lTotalRecs = $rs->RecordCount();
  709. $this->lStartRec = 1;
  710. // Export all
  711. if ($rol->ExportAll) {
  712. $this->lStopRec = $this->lTotalRecs;
  713. } else { // Export 1 page only
  714. $this->SetUpStartRec(); // Set up start record position
  715. // Set the last record to display
  716. if ($this->lDisplayRecs < 0) {
  717. $this->lStopRec = $this->lTotalRecs;
  718. } else {
  719. $this->lStopRec = $this->lStartRec + $this->lDisplayRecs - 1;
  720. }
  721. }
  722. if ($rol->Export == "xml") {
  723. $XmlDoc = new cXMLDocument();
  724. } else {
  725. echo ew_ExportHeader($rol->Export);
  726. // Horizontal format, write header
  727. if ($sExportStyle <> "v" || $rol->Export == "csv") {
  728. $sExportStr = "";
  729. ew_ExportAddValue($sExportStr, 'idRol', $rol->Export);
  730. ew_ExportAddValue($sExportStr, 'nombre', $rol->Export);
  731. echo ew_ExportLine($sExportStr, $rol->Export);
  732. }
  733. }
  734. // Move to first record
  735. $this->lRecCnt = $this->lStartRec - 1;
  736. if (!$rs->EOF) {
  737. $rs->MoveFirst();
  738. $rs->Move($this->lStartRec - 1);
  739. }
  740. while (!$rs->EOF && $this->lRecCnt < $this->lStopRec) {
  741. $this->lRecCnt++;
  742. if (intval($this->lRecCnt) >= intval($this->lStartRec)) {
  743. $this->LoadRowValues($rs);
  744. // Render row for display
  745. $rol->RowType = EW_ROWTYPE_VIEW; // Render view
  746. $this->RenderRow();
  747. if ($rol->Export == "xml") {
  748. $XmlDoc->BeginRow();
  749. $XmlDoc->AddField('idRol', $rol->idRol->CurrentValue);
  750. $XmlDoc->AddField('nombre', $rol->nombre->CurrentValue);
  751. $XmlDoc->EndRow();
  752. } else {
  753. if ($sExportStyle == "v" && $rol->Export <> "csv") { // Vertical format
  754. echo ew_ExportField('idRol', $rol->idRol->ExportValue($rol->Export, $rol->ExportOriginalValue), $rol->Export);
  755. echo ew_ExportField('nombre', $rol->nombre->ExportValue($rol->Export, $rol->ExportOriginalValue), $rol->Export);
  756. } else { // Horizontal format
  757. $sExportStr = "";
  758. ew_ExportAddValue($sExportStr, $rol->idRol->ExportValue($rol->Export, $rol->ExportOriginalValue), $rol->Export);
  759. ew_ExportAddValue($sExportStr, $rol->nombre->ExportValue($rol->Export, $rol->ExportOriginalValue), $rol->Export);
  760. echo ew_ExportLine($sExportStr, $rol->Export);
  761. }
  762. }
  763. }
  764. $rs->MoveNext();
  765. }
  766. // Close recordset
  767. $rs->Close();
  768. if ($rol->Export == "xml") {
  769. header("Content-Type: text/xml");
  770. echo $XmlDoc->XML();
  771. } else {
  772. echo ew_ExportFooter($rol->Export);
  773. }
  774. }
  775. // Page Load event
  776. function Page_Load() {
  777. //echo "Page Load";
  778. }
  779. // Page Unload event
  780. function Page_Unload() {
  781. //echo "Page Unload";
  782. }
  783. // Form Custom Validate event
  784. function Form_CustomValidate(&$CustomError) {
  785. // Return error message in CustomError
  786. return TRUE;
  787. }
  788. }
  789. ?>