private void GetDetailDataFromControlsManual(PDataLabelRow ARow) { // Translate comboBox items like 'Number' back to database entries like 'float' // and make sure that unused fields in the database are set to null (where controls are currently hidden) switch (cmbDetailDataType.SelectedIndex) { case 1: ARow.DataType = "float"; break; case 2: ARow.DataType = "currency"; break; case 3: ARow.DataType = "boolean"; break; case 4: ARow.DataType = "date"; break; case 5: ARow.DataType = "time"; break; case 6: ARow.DataType = "lookup"; break; case 7: ARow.DataType = "partnerkey"; break; default: ARow.DataType = "char"; break; } // Set all fields to null where the control is not visible, because the information is not required if (!txtDetailCharLength.Visible) { ARow.SetCharLengthNull(); } if (!txtDetailNumDecimalPlaces.Visible) { ARow.SetNumDecimalPlacesNull(); } if (!cmbDetailCurrencyCode.Visible) { ARow.SetCurrencyCodeNull(); } if (!cmbDetailLookupCategoryCode.Visible) { ARow.SetLookupCategoryCodeNull(); } // Get the checked items from the UsedBy ListBox and update our UsedBy column ARow[UsedByColumnOrdinal] = clbUsedBy.GetCheckedStringList(); }