Ejemplo n.º 1
0
 public function ProcessMessages()
 {
     $nameSuffix = ExtractInputValue('namesuffix', METHOD_POST);
     $columns = $this->grid->GetViewColumns();
     foreach ($columns as $column) {
         $inlineEditColumn = $column->GetInsertOperationColumn();
         if (isset($inlineEditColumn)) {
             $editControl = $inlineEditColumn->GetEditControl();
             $editControl->SetName($editControl->GetName() . $nameSuffix);
         }
     }
     $this->GetDataset()->Insert();
     $exceptions = array();
     foreach ($this->GetColumns() as $column) {
         try {
             $column->ProcessMessages();
         } catch (Exception $e) {
             $exceptions[] = $e;
         }
     }
     foreach ($this->GetColumns() as $column) {
         try {
             $column->AfterSetAllDatasetValues();
         } catch (Exception $e) {
             $exceptions[] = $e;
         }
     }
     $message = '';
     $oldFieldValues = $this->GetDataset()->GetCurrentFieldValues();
     $fieldValues = $this->GetDataset()->GetCurrentFieldValues();
     if ($this->CanChangeData($fieldValues, $message)) {
         if (count($exceptions) > 0) {
             $this->HandleError($this->ExceptionsToErrorMessage($exceptions), false);
             return;
         }
         try {
             $this->WriteChangesToDataset($oldFieldValues, $fieldValues, $this->GetDataset());
             $this->GetDataset()->Post();
             $fieldValues = ArrayUtils::Merge($fieldValues, $this->GetDataset()->GetInsertFieldValues());
             $this->DoAfterChangeData($fieldValues);
             $primaryKeyValues = $this->GetDataset()->GetPrimaryKeyValues();
             $this->GetDataset()->SetSingleRecordState($primaryKeyValues);
             $this->GetDataset()->Open();
             $this->GetDataset()->Next();
         } catch (Exception $e) {
             $this->HandleError($this->ExceptionToErrorMessage($e), false);
             return;
         }
     } else {
         $this->HandleError($message, true);
         return;
     }
     $this->grid->SetGridMessage($message);
 }
Ejemplo n.º 2
0
 /**
  * @return array
  */
 public final function GetViewData()
 {
     return ArrayUtils::Merge(array('ReadOnly' => $this->GetReadOnly()), $this->DoGetViewData());
 }