/// <summary>
        /// Displays the form on which randomizing definitions can be attached to query data columns.
        /// </summary>
        /// <param name="queryDef">File containing the query definition.</param>
        /// <returns>List containing the column reandomization specifications.</returns>
        public PFList <DataTableRandomizerColumnSpec> ShowRandomizerDefinitionForm(pfQueryDef queryDef)
        {
            PFList <DataTableRandomizerColumnSpec> colSpecs = null;
            DataTable           dt  = null;
            DataTableRandomizer dtr = null;


            try
            {
                _msg.Length = 0;
                _msg.Append("ShowRandomizerDefinitionForm started ... ");
                WriteMessageToLog(_msg.ToString());

                dt = GetQueryDefSchema(queryDef);
                if (dt == null)
                {
                    _msg.Length = 0;
                    _msg.Append("Unable to determine schema for query definition ");
                    _msg.Append(queryDef.QueryName);
                    WriteMessageToLog(_msg.ToString());
                    AppMessages.DisplayErrorMessage(_msg.ToString());
                    return(colSpecs);
                }

                dtr      = new DataTableRandomizer();
                colSpecs = dtr.GetInitColSpecListFromDataTable(dt);
                SyncColSpecsWithSavedValues(queryDef, colSpecs);
                SyncColSpecsWithDataSchema(queryDef, ref colSpecs);

                PFRandomDataForms.DataTableRandomizerColumnSpecForm frm = new PFRandomDataForms.DataTableRandomizerColumnSpecForm(colSpecs);
                frm.ColSpecs = colSpecs;
                DialogResult res = frm.ShowDialog();
                if (res == DialogResult.OK)
                {
                    colSpecs    = frm.ColSpecs;
                    _msg.Length = 0;
                    _msg.Append(frm.ColSpecs.ToXmlString());
                    WriteMessageToLog(_msg.ToString());
                }
                else
                {
                    _msg.Length = 0;
                    _msg.Append("Column spec edit cancelled.");
                    WriteMessageToLog(_msg.ToString());
                }
            }
            catch (System.Exception ex)
            {
                _msg.Length = 0;
                _msg.Append(AppGlobals.AppMessages.FormatErrorMessage(ex));
                WriteMessageToLog(_msg.ToString());
                AppMessages.DisplayErrorMessage(_msg.ToString(), _saveErrorMessagesToAppLog);
            }
            finally
            {
                _msg.Length = 0;
                _msg.Append("... ShowRandomizerDefinitionForm finished.");
                WriteMessageToLog(_msg.ToString());
            }

            return(colSpecs);
        }
        public void ColSpecForm()
        {
            DataTable dt = null;
            TEST_DataTableRandomizer dtr = null;
            string           dbConnStr   = string.Empty;
            DatabasePlatform dbPlat      = DatabasePlatform.Unknown;
            PFDatabase       db          = null;
            PFList <DataTableRandomizerColumnSpec> colSpecs            = null;
            RandomNamesAndLocationsDataRequest     randomizerNameSpecs = null;

            try
            {
                _msg.Length = 0;
                _msg.Append("ColSpecForm started ...\r\n");
                _messageLog.WriteLine(_msg.ToString());

                dbPlat = DatabasePlatform.SQLServerCE35;

                db = GetPFDatabaseObject(dbPlat);
                db.ConnectionString = GetConnectionString(dbPlat);

                randomizerNameSpecs = RandomNamesAndLocationsDataRequest.LoadFromXmlFile(@"C:\Testfiles\Randomizer\CountryRequestPersonsOnly.xml");

                db.OpenConnection();

                string sqlQuery = "select * from RandomNameData";
                //listTable = db.RunQueryDataTable(sqlQuery, CommandType.Text);
                dt = db.GetQueryDataSchema(sqlQuery, CommandType.Text);

                dtr      = new TEST_DataTableRandomizer();
                colSpecs = dtr.GetInitColSpecListFromDataTable(dt);

                PFRandomDataForms.DataTableRandomizerColumnSpecForm frm = new PFRandomDataForms.DataTableRandomizerColumnSpecForm(colSpecs);
                DialogResult res = frm.ShowDialog();
                if (res == DialogResult.OK)
                {
                    //time to do something
                    _msg.Length = 0;
                    _msg.Append(frm.ColSpecs.ToXmlString());
                    _messageLog.WriteLine(_msg.ToString());
                }
                else
                {
                    _msg.Length = 0;
                    _msg.Append("Column spec edit cancelled.");
                    _messageLog.WriteLine(_msg.ToString());
                }
            }
            catch (System.Exception ex)
            {
                _msg.Length = 0;
                _msg.Append(AppGlobals.AppMessages.FormatErrorMessage(ex));
                _messageLog.WriteLine(_msg.ToString());
                AppMessages.DisplayErrorMessage(_msg.ToString(), _saveErrorMessagesToAppLog);
            }
            finally
            {
                _msg.Length = 0;
                _msg.Append("\r\n... ColSpecForm finished.");
                _messageLog.WriteLine(_msg.ToString());
            }
        }