private void buttonCreateDictionary_Click(object sender, EventArgs e) { string namePrefix = textBoxNamePrefix.Text.ToUpper(); if (!CSPro.Names.IsValid(namePrefix)) { string suggestedNamePrefix = CSPro.Names.CreateFromLabel(namePrefix); if (MessageBox.Show(String.Format(Messages.InvalidNameSuggestOther, namePrefix, suggestedNamePrefix), this.Text, MessageBoxButtons.YesNo) == DialogResult.No) { return; } namePrefix = suggestedNamePrefix; } HashSet <string> usedNames = new HashSet <string>(); string dictionaryName = CSPro.Names.CreateFromLabel(namePrefix + "_DICT"); string levelName = CSPro.Names.CreateFromLabel(namePrefix + "_LEVEL"); string recordName = CSPro.Names.CreateFromLabel(namePrefix + "_REC"); usedNames.Add(dictionaryName); usedNames.Add(levelName); usedNames.Add(recordName); List <CreateDictionaryItemControl.ItemSelections> ids = new List <CreateDictionaryItemControl.ItemSelections>(); List <CreateDictionaryItemControl.ItemSelections> items = new List <CreateDictionaryItemControl.ItemSelections>(); CreateDictionaryItemControl cdicForMessages = null; try { foreach (CreateDictionaryItemControl cdic in _itemSettings) { cdicForMessages = cdic; CreateDictionaryItemControl.ItemSelections selections = cdic.Selections; if (!selections.IncludeItem) { continue; } if (!CSPro.Names.IsValid(selections.Name)) { throw new Exception(String.Format(Messages.InvalidName, selections.Name)); } if (usedNames.Contains(selections.Name)) { throw new Exception(String.Format(Messages.AlreadyUsedName, selections.Name)); } usedNames.Add(selections.Name); int length = 0; if (selections.IsNumeric) { length = selections.BeforeDecLength; if (selections.AfterDecLength > 0) { if (selections.IsId) { throw new Exception(Messages.InvalidIdNumericDecimal); } if (selections.AfterDecLength > CSPro.Defines.MaxLengthDecimal) { throw new Exception(String.Format(Messages.InvalidLengthNumericDecimal, CSPro.Defines.MaxLengthDecimal)); } length += selections.AfterDecLength + (checkBoxDecChar.Checked ? 1 : 0); } if (length > CSPro.Defines.MaxLengthNumeric) { throw new Exception(String.Format(Messages.InvalidLengthNumeric, CSPro.Defines.MaxLengthNumeric)); } } else { length = selections.AlphaLength; if (length > CSPro.Defines.MaxLengthAlpha) { throw new Exception(String.Format(Messages.InvalidLengthAlpha, CSPro.Defines.MaxLengthAlpha)); } } if (length == 0) { throw new Exception(Messages.InvalidLengthZero); } if (selections.IsId) { ids.Add(selections); } else { items.Add(selections); } } cdicForMessages = null; if (ids.Count == 0) { throw new Exception(Messages.InvalidNumberIds); } // save the dictionary SaveFileDialog sfd = new SaveFileDialog(); sfd.Title = Messages.CSProSaveTitle; sfd.Filter = Messages.CSProFileFilter; if (_lastSaveFilename != null) { sfd.InitialDirectory = Path.GetDirectoryName(_lastSaveFilename); sfd.FileName = Path.GetFileName(_lastSaveFilename); } if (sfd.ShowDialog() != DialogResult.OK) { return; } CSPro.DataDictionary dictionary = new CSPro.DataDictionary(); dictionary.DecimalCharDefault = checkBoxDecChar.Checked; dictionary.ZeroFillDefault = checkBoxZeroFill.Checked; dictionary.Name = dictionaryName; dictionary.Label = textBoxNamePrefix.Text + " Dictionary"; CSPro.Level level = new CSPro.Level(dictionary, 0); dictionary.AddLevel(level); level.Name = levelName; level.Label = textBoxNamePrefix.Text + " Level"; CSPro.Record record = new CSPro.Record(level); level.AddRecord(record); record.Name = recordName; record.Label = textBoxNamePrefix.Text + " Record"; int startingPos = 1; foreach (CreateDictionaryItemControl.ItemSelections selections in ids) { AddItem(level.IDs, selections, ref startingPos); } foreach (CreateDictionaryItemControl.ItemSelections selections in items) { AddItem(record, selections, ref startingPos); } record.Length = startingPos; CSPro.DataDictionaryWriter.Save(dictionary, sfd.FileName); _lastSaveFilename = sfd.FileName; } catch (Exception exception) { if (cdicForMessages != null) { MessageBox.Show(String.Format("{0}: {1}", cdicForMessages.ColumnText, exception.Message)); } else { MessageBox.Show(exception.Message); } return; } }
private void buttonCreateDictionary_Click(object sender,EventArgs e) { string namePrefix = textBoxNamePrefix.Text.ToUpper(); if( !CSPro.Names.IsValid(namePrefix) ) { string suggestedNamePrefix = CSPro.Names.CreateFromLabel(namePrefix); if( MessageBox.Show(String.Format(Messages.InvalidNameSuggestOther,namePrefix,suggestedNamePrefix),this.Text,MessageBoxButtons.YesNo) == DialogResult.No ) return; namePrefix = suggestedNamePrefix; } HashSet<string> usedNames = new HashSet<string>(); string dictionaryName = CSPro.Names.CreateFromLabel(namePrefix + "_DICT"); string levelName = CSPro.Names.CreateFromLabel(namePrefix + "_LEVEL"); string recordName = CSPro.Names.CreateFromLabel(namePrefix + "_REC"); usedNames.Add(dictionaryName); usedNames.Add(levelName); usedNames.Add(recordName); List<CreateDictionaryItemControl.ItemSelections> ids = new List<CreateDictionaryItemControl.ItemSelections>(); List<CreateDictionaryItemControl.ItemSelections> items = new List<CreateDictionaryItemControl.ItemSelections>(); CreateDictionaryItemControl cdicForMessages = null; try { foreach( CreateDictionaryItemControl cdic in _itemSettings ) { cdicForMessages = cdic; CreateDictionaryItemControl.ItemSelections selections = cdic.Selections; if( !selections.IncludeItem ) continue; if( !CSPro.Names.IsValid(selections.Name) ) throw new Exception(String.Format(Messages.InvalidName,selections.Name)); if( usedNames.Contains(selections.Name) ) throw new Exception(String.Format(Messages.AlreadyUsedName,selections.Name)); usedNames.Add(selections.Name); int length = 0; if( selections.IsNumeric ) { length = selections.BeforeDecLength; if( selections.AfterDecLength > 0 ) { if( selections.IsId ) throw new Exception(Messages.InvalidIdNumericDecimal); if( selections.AfterDecLength > CSPro.Defines.MaxLengthDecimal ) throw new Exception(String.Format(Messages.InvalidLengthNumericDecimal,CSPro.Defines.MaxLengthDecimal)); length += selections.AfterDecLength + ( checkBoxDecChar.Checked ? 1 : 0 ); } if( length > CSPro.Defines.MaxLengthNumeric ) throw new Exception(String.Format(Messages.InvalidLengthNumeric,CSPro.Defines.MaxLengthNumeric)); } else { length = selections.AlphaLength; if( length > CSPro.Defines.MaxLengthAlpha ) throw new Exception(String.Format(Messages.InvalidLengthAlpha,CSPro.Defines.MaxLengthAlpha)); } if( length == 0 ) throw new Exception(Messages.InvalidLengthZero); if( selections.IsId ) ids.Add(selections); else items.Add(selections); } cdicForMessages = null; if( ids.Count == 0 ) throw new Exception(Messages.InvalidNumberIds); // save the dictionary SaveFileDialog sfd = new SaveFileDialog(); sfd.Title = Messages.CSProSaveTitle; sfd.Filter = Messages.CSProFileFilter; if( _lastSaveFilename != null ) { sfd.InitialDirectory = Path.GetDirectoryName(_lastSaveFilename); sfd.FileName = Path.GetFileName(_lastSaveFilename); } if( sfd.ShowDialog() != DialogResult.OK ) return; CSPro.DataDictionary dictionary = new CSPro.DataDictionary(); dictionary.DecimalCharDefault = checkBoxDecChar.Checked; dictionary.ZeroFillDefault = checkBoxZeroFill.Checked; dictionary.Name = dictionaryName; dictionary.Label = textBoxNamePrefix.Text + " Dictionary"; CSPro.Level level = new CSPro.Level(dictionary,0); dictionary.AddLevel(level); level.Name = levelName; level.Label = textBoxNamePrefix.Text + " Level"; CSPro.Record record = new CSPro.Record(level); level.AddRecord(record); record.Name = recordName; record.Label = textBoxNamePrefix.Text + " Record"; int startingPos = 1; foreach( CreateDictionaryItemControl.ItemSelections selections in ids ) AddItem(level.IDs,selections,ref startingPos); foreach( CreateDictionaryItemControl.ItemSelections selections in items ) AddItem(record,selections,ref startingPos); record.Length = startingPos; CSPro.DataDictionaryWriter.Save(dictionary,sfd.FileName); _lastSaveFilename = sfd.FileName; } catch( Exception exception ) { if( cdicForMessages != null ) MessageBox.Show(String.Format("{0}: {1}",cdicForMessages.ColumnText,exception.Message)); else MessageBox.Show(exception.Message); return; } }