Exemple #1
0
        /// <summary>
        /// Производит сохранение данных в БД созданной сводной ведомости
        /// </summary>
        private void SaveNew()
        {
            // создать виртуальную таблицу с пустыми записями
            _mergeInfoTable = MergeInfo.CreateTableWithRows();
            // скопировать данные из транспонированной таблицы в созданную
            MergeInfoTranspose.ConvertToMergeInfo(_svodTable, _mergeInfoTable);
            // просчитать суммы в созданной таблицйе
            MergeInfo.MathSums(_mergeInfoTable);
            // заполнение данными записи Сводной ведомости
            SetMergeData();
            // создание подключения к БД
            SQLiteConnection connection = new SQLiteConnection(_connection);
            // создание команд для вставки данных в БД
            SQLiteCommand mergeInsert    = MergiesView.InsertCommand(_mergeRow);
            SQLiteCommand tableInsert    = MergeInfo.CreateInsertCommand();
            SQLiteCommand fixdataReplace = new SQLiteCommand();
            SQLiteCommand setUnactual    =
                new SQLiteCommand(MergiesView.GetChangeActualByOrgText(_org.idVal, (int)_mergeRow[MergiesView.repYear],
                                                                       false));
            // создание Адаптера для обработки таблицы
            SQLiteDataAdapter adapter = new SQLiteDataAdapter();

            adapter.InsertCommand = tableInsert;
            // присвоение созданного подключения коммандам
            mergeInsert.Connection             =
                tableInsert.Connection         =
                    fixdataReplace.Connection  =
                        setUnactual.Connection = connection;
            // открытие соединения
            connection.Open();
            // начать транзакция
            SQLiteTransaction transaction = connection.BeginTransaction();

            // прикрепление транзакции
            mergeInsert.Transaction             =
                tableInsert.Transaction         =
                    fixdataReplace.Transaction  =
                        setUnactual.Transaction = transaction;
            // выполнить команду обнуления актуальности сводных ведомостей в выбранном году для текущей организаций
            setUnactual.ExecuteNonQuery();
            // выполнить команду вставки записи о новой сводной ведомости и назначения ее актуальной
            _mergeRow[MergiesView.id] = mergeInsert.ExecuteScalar();
            _mergeRow.EndEdit();
            // внести запись о факте создания записи сводной     ведомости
            fixdataReplace.CommandText = MergiesView.GetReplaceFixDataText(_mergeRow, FixData.FixType.New);
            fixdataReplace.ExecuteNonQuery();
            // заполнить соответствующий столбец таблицы ID сводной ведомости для их привязки к ней (сводной ведомости)
            MergeInfo.SetMergeID(_mergeInfoTable, (long)_mergeRow[MergiesView.id]);
            // ввыполнить вставку записей из таблицы программы в таблицу БД
            adapter.Update(_mergeInfoTable);
            // принять подключение
            transaction.Commit();
            // закрыть соединение
            connection.Close();
        }
Exemple #2
0
        private void SvodVedomostEditDocumentForm_Load(object sender, EventArgs e)
        {
            _svodBS    = new BindingSource();
            _svodTable = MergeInfoTranspose.CreateTable();

            regnumBox.Text  = _org.regnumVal;
            orgnameBox.Text = _org.nameVal;

            if (_mergeRow == null)
            {
                //this.packetcountBox.Value = 0;
                //this.documentcountBox.Value = 0;
                _mergeInfoTable = null;
            }
            else
            {
                yearBox.Text           = _mergeRow[MergiesView.repYear].ToString();
                packetcountBox.Value   = (int)_mergeRow[MergiesView.listCount];
                documentcountBox.Value = (int)_mergeRow[MergiesView.docCount];

                _mergeInfoTable = MergeInfo.CreateTable();
                SQLiteDataAdapter adapter =
                    new SQLiteDataAdapter(MergeInfo.GetSelectText((long)_mergeRow[MergiesView.id]), _connection);
                adapter.Fill(_mergeInfoTable);
                MergeInfoTranspose.ConvertFromMergeInfo(_svodTable, _mergeInfoTable);

                sum1Box.Text = MergeInfo.GetSum(_mergeInfoTable, SalaryGroups.Column1).ToString("N2");
                sum2Box.Text = MergeInfo.GetSum(_mergeInfoTable, SalaryGroups.Column2).ToString("N2");
                sum3Box.Text = MergeInfo.GetSum(_mergeInfoTable, SalaryGroups.Column3).ToString("N2");
                sum4Box.Text = MergeInfo.GetSum(_mergeInfoTable, SalaryGroups.Column4).ToString("N2");
                sum5Box.Text = MergeInfo.GetSum(_mergeInfoTable, SalaryGroups.Column5).ToString("N2");

                if (!(bool)_mergeRow[MergiesView.actual])
                {
                    packetcountBox.Enabled   = false;
                    documentcountBox.Enabled = false;
                    dataView.ReadOnly        = true;
                    saveButton.Enabled       = false;
                    autofillButton.Enabled   = false;
                }
            }
            _svodBS.DataSource           = _svodTable;
            dataView.AutoGenerateColumns = false;
            dataView.DataSource          = _svodBS;

            _svodTable.ColumnChanged += new DataColumnChangeEventHandler(_svodTable_ColumnChanged);
            dataView.CellParsing     += new DataGridViewCellParsingEventHandler(dataView_CellParsing);
            dataView.DataError       += new DataGridViewDataErrorEventHandler(dataView_DataError);
        }
Exemple #3
0
        /// <summary>
        /// Производит сохранение данных в БД измененной сводной ведомости
        /// </summary>
        private void SaveEdited()
        {
            // скопировать данные с транспонированной таблицы в таблицу, соответствующую по структуре с таблицей БД
            MergeInfoTranspose.ConvertToMergeInfo(_svodTable, _mergeInfoTable);
            // просчитать суммы в созданной таблицйе
            MergeInfo.MathSums(_mergeInfoTable);
            // заполнение данными записи Сводной ведомости
            SetMergeData();
            // создание подключения к БД
            SQLiteConnection connection = new SQLiteConnection(_connection);
            // создание команд для вставки данных в БД
            SQLiteCommand mergeInsert    = MergiesView.UpdateCommand(_mergeRow);
            SQLiteCommand tableInsert    = MergeInfo.CreateUpdateCommand();
            SQLiteCommand fixdataReplace = new SQLiteCommand();
            // создание Адаптера для обработки таблицы
            SQLiteDataAdapter adapter = new SQLiteDataAdapter();

            adapter.UpdateCommand = tableInsert;
            // присвоение созданного подключения коммандам
            mergeInsert.Connection            =
                tableInsert.Connection        =
                    fixdataReplace.Connection = connection;
            // открытие соединения
            connection.Open();
            // начать транзакция
            SQLiteTransaction transaction = connection.BeginTransaction();

            // прикрепление транзакции
            mergeInsert.Transaction            =
                tableInsert.Transaction        =
                    fixdataReplace.Transaction = transaction;
            // выполнить обновление данных о сводной ведомости
            mergeInsert.ExecuteNonQuery();
            // выполнить вставку(обновление) данных о факте изменения сводной ведомости
            fixdataReplace.CommandText = MergiesView.GetReplaceFixDataText(_mergeRow, FixData.FixType.Edit);
            fixdataReplace.ExecuteNonQuery();
            // выполнить обносление данных по значениям выплат
            adapter.Update(_mergeInfoTable);
            // принять подключение
            transaction.Commit();
            // закрыть соединение
            connection.Close();
        }