Example #1
0
        /// <summary>
        /// Выбрать файл
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tbFileName_EditClick(object sender, EventArgs e)
        {                                                                                        //"CSV Files|*.csv|All Files|*.*"
            const string title        = "Выбор шаблона отчета";
            const string filter       = "Office Files|*.XLS;*.XLSX;*.DOC;*.DOCX)|All files|*.*"; //формат загружаемого файла;
            string       fileNameFull = "";

            if (!FBAFile.OpenFileName(title, filter, "", ref fileNameFull))
            {
                return;
            }
            tbFileName.Text = fileNameFull;
            tbFormat.Text   = Path.GetExtension(fileNameFull).ToUpper();
        }
Example #2
0
        /// <summary>
        /// Загрузка файла.
        /// </summary>
        /// <returns>Возвращает успешность или нет загрузки файла.</returns>
        private bool ImportFile()
        {
            //Выбор файла загрузки.
            string fileName = tbFileName.Text;

            if (!FBAFile.OpenFileName("Выбор файла для загрузки", "CSV Files|*.csv|Excel Files|*.xlsx|All Files|*.*", "", ref fileName))
            {
                return(false);
            }
            tbFileName.Text = fileName;
            //Загрузка возможно из двух типов файлов xlsx и csv.
            string EXT = System.IO.Path.GetExtension(fileName).ToUpper();

            if (EXT == ".XLSX")
            {
                fileType = "Excel";
            }
            else if (EXT == ".CSV")
            {
                fileType = "CSV";
            }
            else
            {
                sys.SM("Импорт из этого типа файла не поддерживается!");
                return(false);
            }

            //Начать асинхронное добавление строк
            if (sys.IsEmpty(fileName))
            {
                return(false);
            }

            //HACK - для того чтобы не было ошибки вызова обновления прогресс бара. т.к. компанент создан не в том потоке.
            System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;

            if (fileType == "CSV")
            {
                LoadCSV(fileName);
            }
            if (fileType == "Excel")
            {
                LoadXLSX(fileName);
            }

            return(true);
        }
Example #3
0
        ///Добавить одно изображение.
        private void ImageAdd()
        {
            const string title            = "Выбор изображения";
            const string filter           = "Image Files(*.BMP;*.JPG;*.GIF;*.PNG)|*.BMP;*.JPG;*.GIF;*.PNG|All files (*.*)|*.*"; //формат загружаемого файла;
            string       fileNameFull     = "";
            const string initialDirectory = "";

            if (!FBAFile.OpenFileName(title, filter, initialDirectory, ref fileNameFull))
            {
                return;
            }
            if (!ImageAdd(fileNameFull))
            {
                return;
            }
            ImageRefresh();
            sys.SM("Изображение успешно загружено!", MessageType.Information);
        }
Example #4
0
        ///Событие. Кнопки редактора запросов
        private void TbSQL1Click(object sender, EventArgs e)
        {
            string indexstr = tabControlSQL1.SelectedTab.Tag.ToString();
            //FastColoredTextBox f;
            //var textSQL11 = tabControSQL.Controls.Find("sdF").
            var textSQL = (FastColoredTextBox)tabControlSQL1.Controls.Find("textSQL" + indexstr, true).First();
            var dgvSQL  = (DataGridViewFBA)tabControlSQL1.Controls.Find("dgvSQL" + indexstr, true).First(); //textSQL1
            var fastColoredTextBoxSQL = (FastColoredTextBoxNS.FastColoredTextBox)tabControlSQL1.Controls.Find("fastColoredTextBoxSQL" + indexstr, true).First();

            if ((sender == textSQL) && (textSQL.Text == ""))
            {
                textSQL.AppendText("SELECT * FROM fbaEnterHist");
            }

            //Выполнить запрос.
            if (sender == tbSQL1)
            {
                var    tbSQLResult = (TextBox)tabControlSQL1.Controls.Find("tbSQLResult" + indexstr, true).First();
                string SQL         = textSQL.SelectedText;
                if (SQL == "")
                {
                    SQL = textSQL.Text;
                }

                string ExecTextSQL = SQL;
                if (cb_MSQL_SQL.Checked)
                {
                    ExecTextSQL = sys.Parse(SQL);
                }
                DateTime DateTime1 = DateTime.Now;
                sys.RefreshGrid(GetDirection(), dgvSQL, ExecTextSQL);
                tbSQLResult.Text = " Rows: " + dgvSQL.RowCount + "    Execute time: " + sys.GetTimeDiff(DateTime1, DateTime.Now);
            }

            //Распарсить запрос.
            if (sender == tbSQL7)
            {
                var    tbSQLResult = (TextBox)tabControlSQL1.Controls.Find("tbSQLResult" + indexstr, true).First();
                string SQL         = textSQL.SelectedText;
                if (SQL == "")
                {
                    SQL = textSQL.Text;
                }

                string   ExecTextSQL = SQL;
                DateTime DateTime1   = DateTime.Now;
                if (cb_MSQL_SQL.Checked)
                {
                    ExecTextSQL = sys.Parse(SQL);
                }
                fastColoredTextBoxSQL.Text = ExecTextSQL;
                tbSQLResult.Text           = " Execute time: " + sys.GetTimeDiff(DateTime1, DateTime.Now);
            }

            //Очистка редактора запросов
            if (sender == tbSQL2)
            {
                textSQL.Clear();
            }

            //Export to Excel
            if (sender == cm4)
            {
                dgvSQL.ExportToExcel();
            }

            //Новая вкладка.
            //В процедуру передаются компоненты с перовой вкладки (которая никогда не удаляется)
            //чтобы на их примере сделать новую вкладку.
            //Можно было бы и без них - но тогда пришлось бы каждый раз в коде изменять свойства компонентов.
            if (sender == tbSQL3)
            {
                TabControlPageAdd(tabControlSQL1, splitContainerSQL1, textSQL, pnlResultSQL1, tbSQLResult1, dgvSQL1, cmGrid, ref TabIndexSQL);
            }

            //Удалить вкладку
            if ((sender == tbSQL4) && (tabControlSQL1.TabPages.Count > 1))
            {
                tabControlSQL1.SelectedTab.Dispose();
            }

            //Открыть из CSV.
            if (sender == tbSQL5)
            {
                string       FileName         = "";
                string       ErrorMes         = "";
                const bool   ErrorShow        = true;
                const string InitialDirectory = "";
                if (!FBAFile.OpenFileName("", "CSV Files|*.csv|All Files|*.*", InitialDirectory, ref FileName))
                {
                    return;
                }
                System.Data.DataTable DT;
                sys.CSVToDataTable(out DT, FileName, out ErrorMes, ErrorShow);
                dgvSQL.DataSource = DT;
            }

            //Сохранить текст запроса.
            if (sender == tbSQL6)
            {
                string FileName = "";
                if (!FBAFile.SaveFileName("Save SQL", "SQL Files|*.sql|All Files|*.*", "", 0, ref FileName))
                {
                    return;
                }
                FBAFile.FileWriteTextObject(textSQL, FileName, true);
            }

            //Copy to Remote Database
            if (sender == cm1)
            {
                string SQL;
                string ServerTableName = "MyTableName";
                //if (Var.con.serverTypeRemote == ServerType.MSSQL) ServerTableName = "dbo.MyTableName";
                if (!sys.InputValue("Имя таблицы на сервере", "Имя таблицы", SizeMode.Small, ValueType.String, ref ServerTableName))
                {
                    return;
                }
                var DT = (DataTable)dgvSQL.DataSource;
                if (Var.con.serverTypeRemote == ServerType.MSSQL)
                {
                    //Способ Var.con.MSSQLCopyTableToServer работает быстрее для MSSQL, чем sys.GetTextTableToDatabase.
                    Var.con.MSSQLCopyTableToServer(DT, ServerTableName);
                }
                if (Var.con.serverTypeRemote == ServerType.Postgre)
                {
                    SQL = sys.GetTextTableToDatabase(Var.con.serverTypeRemote, ServerTableName, DT, true);
                    sys.Exec(DirectionQuery.Remote, SQL);
                }
                sys.SM("Таблица " + ServerTableName + " загружена на сервер " + Var.con.serverType, MessageType.Information);
            }

            //Copy to Local Database
            if (sender == cm2)
            {
                string ServerTableName = "MyTableName";
                if (!sys.InputValue("Имя таблицы на сервере", "Имя таблицы", SizeMode.Small, ValueType.String, ref ServerTableName))
                {
                    return;
                }
                var    DT  = (DataTable)dgvSQL.DataSource;
                string SQL = sys.GetTextTableToDatabase(ServerType.SQLite, ServerTableName, DT, true);
                Var.conLite.Exec(SQL);
                sys.SM("Таблица " + ServerTableName + " сохранена в локальной базе данных SQLite", MessageType.Information);
            }

            //Export to CSV
            if (sender == cm3)
            {
                string       FileName         = "Table_" + sys.GetDate4FileName(DateTime.Now) + ".csv";
                var          DT               = (DataTable)dgvSQL.DataSource;
                const string InitialDirectory = "";
                if (!FBAFile.SaveFileName("Import object", "XLS Files|*.xls|All Files|*.*", InitialDirectory, 0, ref FileName))
                {
                    return;
                }
                if (!sys.DataTableToCSV(DT, FileName, true))
                {
                    return;
                }
                //sys.SM("Таблица сохранена в файл: " + FileName, MessageType.Information);
                //sys.FileRunSimple(FileName);
                FBAFile.FileRunNotebook(FileName);
            }

            //Export to XLS
            if (sender == cm4)
            {
                var DT = (DataTable)dgvSQL.DataSource;
                if (!sys.DataTableToExcel(DT))
                {
                    return;
                }
                sys.SM("Таблица выгружена в файл XLS", MessageType.Information);
            }
        }