protected function Form_Create()
 {
     // Setup DataGrid Columns
     $this->colEditLinkColumn = new QDataGridColumn(QApplication::Translate('Edit'), '<?= $_FORM->dtgEntityQtypeCustomField_EditLinkColumn_Render($_ITEM) ?>');
     $this->colEditLinkColumn->HtmlEntities = false;
     $this->colEntityQtypeCustomFieldId = new QDataGridColumn(QApplication::Translate('Entity Qtype Custom Field Id'), '<?= $_ITEM->EntityQtypeCustomFieldId; ?>', array('OrderByClause' => QQ::OrderBy(QQN::EntityQtypeCustomField()->EntityQtypeCustomFieldId), 'ReverseOrderByClause' => QQ::OrderBy(QQN::EntityQtypeCustomField()->EntityQtypeCustomFieldId, false)));
     $this->colEntityQtypeId = new QDataGridColumn(QApplication::Translate('Entity Qtype'), '<?= $_FORM->dtgEntityQtypeCustomField_EntityQtypeId_Render($_ITEM); ?>', array('OrderByClause' => QQ::OrderBy(QQN::EntityQtypeCustomField()->EntityQtypeId), 'ReverseOrderByClause' => QQ::OrderBy(QQN::EntityQtypeCustomField()->EntityQtypeId, false)));
     $this->colCustomFieldId = new QDataGridColumn(QApplication::Translate('Custom Field Id'), '<?= $_FORM->dtgEntityQtypeCustomField_CustomField_Render($_ITEM); ?>');
     // Setup DataGrid
     $this->dtgEntityQtypeCustomField = new QDataGrid($this);
     $this->dtgEntityQtypeCustomField->CellSpacing = 0;
     $this->dtgEntityQtypeCustomField->CellPadding = 4;
     $this->dtgEntityQtypeCustomField->BorderStyle = QBorderStyle::Solid;
     $this->dtgEntityQtypeCustomField->BorderWidth = 1;
     $this->dtgEntityQtypeCustomField->GridLines = QGridLines::Both;
     // Datagrid Paginator
     $this->dtgEntityQtypeCustomField->Paginator = new QPaginator($this->dtgEntityQtypeCustomField);
     $this->dtgEntityQtypeCustomField->ItemsPerPage = 10;
     // Specify Whether or Not to Refresh using Ajax
     $this->dtgEntityQtypeCustomField->UseAjax = false;
     // Specify the local databind method this datagrid will use
     $this->dtgEntityQtypeCustomField->SetDataBinder('dtgEntityQtypeCustomField_Bind');
     $this->dtgEntityQtypeCustomField->AddColumn($this->colEditLinkColumn);
     $this->dtgEntityQtypeCustomField->AddColumn($this->colEntityQtypeCustomFieldId);
     $this->dtgEntityQtypeCustomField->AddColumn($this->colEntityQtypeId);
     $this->dtgEntityQtypeCustomField->AddColumn($this->colCustomFieldId);
 }
 public function __construct($objParentObject, $strSetEditPanelMethod, $strCloseEditPanelMethod, $strControlId = null)
 {
     // Call the Parent
     try {
         parent::__construct($objParentObject, $strControlId);
     } catch (QCallerException $objExc) {
         $objExc->IncrementOffset();
         throw $objExc;
     }
     // Record Method Callbacks
     $this->strSetEditPanelMethod = $strSetEditPanelMethod;
     $this->strCloseEditPanelMethod = $strCloseEditPanelMethod;
     // Setup DataGrid Columns
     $this->colEditLinkColumn = new QDataGridColumn(QApplication::Translate('Edit'), '<?= $_CONTROL->ParentControl->dtgEntityQtypeCustomField_EditLinkColumn_Render($_ITEM) ?>');
     $this->colEditLinkColumn->HtmlEntities = false;
     $this->colEntityQtypeCustomFieldId = new QDataGridColumn(QApplication::Translate('Entity Qtype Custom Field Id'), '<?= $_ITEM->EntityQtypeCustomFieldId; ?>', array('OrderByClause' => QQ::OrderBy(QQN::EntityQtypeCustomField()->EntityQtypeCustomFieldId), 'ReverseOrderByClause' => QQ::OrderBy(QQN::EntityQtypeCustomField()->EntityQtypeCustomFieldId, false)));
     $this->colEntityQtypeId = new QDataGridColumn(QApplication::Translate('Entity Qtype'), '<?= $_CONTROL->ParentControl->dtgEntityQtypeCustomField_EntityQtypeId_Render($_ITEM); ?>', array('OrderByClause' => QQ::OrderBy(QQN::EntityQtypeCustomField()->EntityQtypeId), 'ReverseOrderByClause' => QQ::OrderBy(QQN::EntityQtypeCustomField()->EntityQtypeId, false)));
     $this->colCustomFieldId = new QDataGridColumn(QApplication::Translate('Custom Field Id'), '<?= $_CONTROL->ParentControl->dtgEntityQtypeCustomField_CustomField_Render($_ITEM); ?>');
     // Setup DataGrid
     $this->dtgEntityQtypeCustomField = new QDataGrid($this);
     $this->dtgEntityQtypeCustomField->CellSpacing = 0;
     $this->dtgEntityQtypeCustomField->CellPadding = 4;
     $this->dtgEntityQtypeCustomField->BorderStyle = QBorderStyle::Solid;
     $this->dtgEntityQtypeCustomField->BorderWidth = 1;
     $this->dtgEntityQtypeCustomField->GridLines = QGridLines::Both;
     // Datagrid Paginator
     $this->dtgEntityQtypeCustomField->Paginator = new QPaginator($this->dtgEntityQtypeCustomField);
     $this->dtgEntityQtypeCustomField->ItemsPerPage = 10;
     // Specify Whether or Not to Refresh using Ajax
     $this->dtgEntityQtypeCustomField->UseAjax = true;
     // Specify the local databind method this datagrid will use
     $this->dtgEntityQtypeCustomField->SetDataBinder('dtgEntityQtypeCustomField_Bind', $this);
     $this->dtgEntityQtypeCustomField->AddColumn($this->colEditLinkColumn);
     $this->dtgEntityQtypeCustomField->AddColumn($this->colEntityQtypeCustomFieldId);
     $this->dtgEntityQtypeCustomField->AddColumn($this->colEntityQtypeId);
     $this->dtgEntityQtypeCustomField->AddColumn($this->colCustomFieldId);
     // Setup the Create New button
     $this->btnCreateNew = new QButton($this);
     $this->btnCreateNew->Text = QApplication::Translate('Create a New') . ' ' . QApplication::Translate('EntityQtypeCustomField');
     $this->btnCreateNew->AddAction(new QClickEvent(), new QAjaxControlAction($this, 'btnCreateNew_Click'));
 }
 /**
  * Count EntityQtypeCustomFields
  * by CustomFieldId Index(es)
  * @param integer $intCustomFieldId
  * @return int
  */
 public static function CountByCustomFieldId($intCustomFieldId)
 {
     // Call EntityQtypeCustomField::QueryCount to perform the CountByCustomFieldId query
     return EntityQtypeCustomField::QueryCount(QQ::Equal(QQN::EntityQtypeCustomField()->CustomFieldId, $intCustomFieldId));
 }
         $strTableName = "shipment";
         $strObjectId = "ShipmentId";
         $strId = 'shipment`.`shipment_id';
         $strHelperTable = '`shipment_custom_field_helper`';
         break;
     case 11:
         $strTableName = "receipt";
         $strObjectId = "ReceiptId";
         $strId = 'receipt`.`receipt_id';
         $strHelperTable = '`receipt_custom_field_helper`';
         break;
     default:
         throw new Exception('Not a valid EntityQtypeId.');
 }
 $blnNoAlterTable = false;
 $objEntityQtypeCustomFieldArray = EntityQtypeCustomField::LoadArrayByEntityQtypeId($intEntityQtypeId, QQ::Clause(QQ::Expand(QQN::EntityQtypeCustomField()->CustomField)));
 if ($objEntityQtypeCustomFieldArray) {
     foreach ($objEntityQtypeCustomFieldArray as $objEntityQtypeCustomField) {
         echo 'ALTER TABLE ' . $strHelperTable . ' ADD cfv_' . $objEntityQtypeCustomField->CustomFieldId . " TEXT DEFAULT NULL;<br />";
     }
 } else {
     $blnNoAlterTable = true;
 }
 $arrCustomFieldSql = array();
 $arrCustomFieldSql['strSelect'] = '';
 $arrCustomFieldSql['strFrom'] = '';
 $arrCustomFieldSql['strInsertColumnHeader'] = '';
 $arrCustomFieldSql['strInsertValues'] = '';
 if ($objEntityQtypeCustomFieldArray) {
     foreach ($objEntityQtypeCustomFieldArray as $objEntityQtypeCustomField) {
         $strAlias = $objEntityQtypeCustomField->CustomFieldId;
 /**
  * Used internally by the Meta-based Add Column tools.
  *
  * Given a QQNode or a Text String, this will return a EntityQtypeCustomField-based QQNode.
  * It will also verify that it is a proper EntityQtypeCustomField-based QQNode, and will throw an exception otherwise.
  *
  * @param mixed $mixContent
  * @return QQNode
  */
 protected function ResolveContentItem($mixContent)
 {
     if ($mixContent instanceof QQNode) {
         if (!$mixContent->_ParentNode) {
             throw new QCallerException('Content QQNode cannot be a Top Level Node');
         }
         if ($mixContent->_RootTableName == 'entity_qtype_custom_field') {
             if ($mixContent instanceof QQReverseReferenceNode && !$mixContent->_PropertyName) {
                 throw new QCallerException('Content QQNode cannot go through any "To Many" association nodes.');
             }
             $objCurrentNode = $mixContent;
             while ($objCurrentNode = $objCurrentNode->_ParentNode) {
                 if (!$objCurrentNode instanceof QQNode) {
                     throw new QCallerException('Content QQNode cannot go through any "To Many" association nodes.');
                 }
                 if ($objCurrentNode instanceof QQReverseReferenceNode && !$objCurrentNode->_PropertyName) {
                     throw new QCallerException('Content QQNode cannot go through any "To Many" association nodes.');
                 }
             }
             return $mixContent;
         } else {
             throw new QCallerException('Content QQNode has a root table of "' . $mixContent->_RootTableName . '". Must be a root of "entity_qtype_custom_field".');
         }
     } else {
         if (is_string($mixContent)) {
             switch ($mixContent) {
                 case 'EntityQtypeCustomFieldId':
                     return QQN::EntityQtypeCustomField()->EntityQtypeCustomFieldId;
                 case 'EntityQtypeId':
                     return QQN::EntityQtypeCustomField()->EntityQtypeId;
                 case 'CustomFieldId':
                     return QQN::EntityQtypeCustomField()->CustomFieldId;
                 case 'CustomField':
                     return QQN::EntityQtypeCustomField()->CustomField;
                 default:
                     throw new QCallerException('Simple Property not found in EntityQtypeCustomFieldDataGrid content: ' . $mixContent);
             }
         } else {
             if ($mixContent instanceof QQAssociationNode) {
                 throw new QCallerException('Content QQNode cannot go through any "To Many" association nodes.');
             } else {
                 throw new QCallerException('Invalid Content type');
             }
         }
     }
 }
 /**
  * Load a single EntityQtypeCustomField object,
  * by EntityQtypeId and CustomFieldId index(es)
  * This assumes that there is only one object per combination of these two parameters, which is the case but not enforced
  * @param integer $intEntityQtypeCustomFieldId
  * @return EntityQtypeCustomField
  */
 public static function LoadByEntityQtypeIdCustomFieldId($intEntityQtypeId, $intCustomFieldId)
 {
     return EntityQtypeCustomField::QuerySingle(QQ::AndCondition(QQ::Equal(QQN::EntityQtypeCustomField()->EntityQtypeId, $intEntityQtypeId), QQ::Equal(QQN::EntityQtypeCustomField()->CustomFieldId, $intCustomFieldId)));
 }