Beispiel #1
0
 private void manufacturingOk_Click(object sender, EventArgs e)
 {
     if (manufacturingTxtComponent1.Text.Equals(ItemManufacturingRecordManager.UnspecifiedComponentId))
     {
         // When the first component is unspecified we assume the user intends
         // to delete the manufacturing recipe
         if (m_tableIO.getState().Equals(TableIO.State.View))
         {
             // Only delete on View since Add only creates the record during save
             m_tableIO.recordDelete();
         }
         this.Close();
     }
     else
     {
         DataValidation.Result dataValidationResult = m_tableIO.recordValid();
         if (dataValidationResult == null || dataValidationResult.isValid())
         {
             if (m_tableIO.recordSave(m_itemId))
             {
                 this.Close();
             }
         }
         else
         {
             dataValidationResult.showMessage();
         }
     }
     // Not every path leads to this.Close() and that is intentional
 }
        public void saveRecord()
        {
            DataValidation.Result dataValidationResult = new DataValidation.Result();

            // 1. Validate the data
            foreach (TableHandler tableHandler in listTableHandler)
            {
                if (!tableHandler.getTableIO().isRecordOptional())
                {
                    dataValidationResult = tableHandler.getTableIO().recordValid();
                    if (dataValidationResult != null &&
                        !dataValidationResult.isValid())
                    {
                        dataValidationResult.showMessage();
                        break;
                    }
                }
            }

            if (dataValidationResult == null || dataValidationResult.isValid())
            {
                // 2. Retrieve the id from the primary table
                String primaryId = null;
                if (listTableHandler.Count != 0)
                {
                    TableHandler primaryTableHandler = listTableHandler[0];
                    if (true /*|| primaryTableHandler.getTableIO().getState().Equals(TableIO.State.Add)*/)
                    {
                        Control idControl = primaryTableHandler.getTableIO().findControl(Net7.Table_item_base._id);
                        if (idControl != null)
                        {
                            primaryId = idControl.Text;
                        }
                    }
                }
                else
                {
                    // Data is invalid, issue a halt to this process
                }

                // 3. Save each table
                // TODO: This generates multiple calls to TableIO.enableFiels()
                foreach (TableHandler tableHandler in listTableHandler)
                {
                    if (!tableHandler.getTableIO().isRecordOptional())
                    {
                        if (!tableHandler.getTableIO().recordSave(primaryId))
                        {
                            return;
                        }
                    }
                }

                // 4. Set the proper state
                foreach (TableHandler tableHandler in listTableHandler)
                {
                    tableHandler.getTableIO().setState(TableIO.State.View);
                }
            }
        }