/**
  * Function deleteReportTable
  * This Function deletes report table
  *
  * @access public
  * @param string $sRepTabUid
  * @return void
  */
 public function deleteReportTable($sRepTabUid)
 {
     try {
         $oReportTable = new ReportTable();
         $aFields = $oReportTable->load($sRepTabUid);
         if (!empty($aFields)) {
             $this->dropTable($aFields['REP_TAB_NAME'], $aFields['REP_TAB_CONNECTION']);
             $oCriteria = new Criteria('workflow');
             $oCriteria->add(ReportVarPeer::REP_TAB_UID, $sRepTabUid);
             $oDataset = ReportVarPeer::doDelete($oCriteria);
             $oReportTable->remove($sRepTabUid);
         }
     } catch (Exception $oError) {
         throw $oError;
     }
 }
Beispiel #2
0
    /**

     * Create Report Tables from an array of data

     *

     * @param array $aReportTables

     * @param array $aReportTablesVars

     * @return void

     */

    public function createReportTables ($aReportTables, $aReportTablesVars)

    {

        $this->createReportTablesVars( $aReportTablesVars );

        $oReportTables = new ReportTables();

        foreach ($aReportTables as $sKey => $aRow) {

            $bExists = true;

            $sTable = $aRow['REP_TAB_NAME'];

            $iCounter = 1;

            while ($bExists) {

                $oCriteria = new Criteria( 'workflow' );

                $oCriteria->add( ReportTablePeer::REP_TAB_NAME, $sTable );

                $oDataset = ReportTablePeer::doSelectRS( $oCriteria );

                $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );

                $oDataset->next();

                $bExists = ($aRow2 = $oDataset->getRow());

                if ($bExists) {

                    $sTable = $aRow['REP_TAB_NAME'] . '_' . $iCounter;

                    $iCounter ++;

                } else {

                    $aRow['REP_TAB_NAME'] = $sTable;

                }

            }

            $aFields = $oReportTables->getTableVars( $aRow['REP_TAB_UID'], true );

            $oReportTables->createTable( $aRow['REP_TAB_NAME'], $aRow['REP_TAB_CONNECTION'], $aRow['REP_TAB_TYPE'], $aFields );

            $oReportTables->populateTable( $aRow['REP_TAB_NAME'], $aRow['REP_TAB_CONNECTION'], $aRow['REP_TAB_TYPE'], $aFields, $aRow['PRO_UID'], $aRow['REP_TAB_GRID'] );

            $aReportTables[$sKey]['REP_TAB_NAME'] = $aRow['REP_TAB_NAME'];

            $oRep = new ReportTable();

            if ($oRep->reportTableExists( $aRow['REP_TAB_UID'] )) {

                $oRep->remove( $aRow['REP_TAB_UID'] );

            }

            $oRep->create( $aRow );

        }

    }