Пример #1
0
        /// <summary>
        /// Обработка выбора записи из истории.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cbHistory_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (_pgPpFlag == false)
            {
                switch (cbHistory.SelectedIndex)
                {
                case 0:                         // Очистка истории:
                    if (MessageBox.Show("Вы действительно хотите удалить все записи?", cPp.name, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                    {
                        cPp.db.soldiers.removeAllButOneRecords();
                        cPp.db.changed = true;
                    }
                    break;

                case 1:                         // Создание новой записи:
                    if (noHistoryRecord(DateTime.Now.ToShortDateString()))
                    {
                        cPp.db.soldiers.addRecord(ObjectCloner.DeepClone(cPp.db.soldiers.record));
                        cPp.db.changed = true;
                    }
                    else
                    {
                        MessageBox.Show(String.Format("Запись с именем {0} уже существует.", DateTime.Now.ToShortDateString()), cPp.name, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    break;

                default:                                                       // Выбор:
                    cPp.db.soldiers.recordIndex = cbHistory.SelectedIndex - 2; // Первые два элемента зарезервированы.
                    break;
                }
                tsbSoldiers_Click(null, null);
            }
        }
Пример #2
0
        /// <summary>
        /// Инициализация открытых ранее данных.
        /// </summary>
        private void afterOpen()
        {
            // Ведение истории:
            int lastRecordIndex = cPp.db.soldiers.records.Count - 1;

            if (cPp.db.soldiers.records[lastRecordIndex].date.Date < DateTime.Now.Date)             // Сегодня новое число. Создаем копию личного состава для ведения истории:
            {
                cPp.db.soldiers.addRecord(ObjectCloner.DeepClone(cPp.db.soldiers.records[lastRecordIndex]));
                lastRecordIndex++;                 // Записей стало на одну больше.
                cPp.db.changed = true;             // База данных была изменена.
            }

            // Изменение интерфейса:
            cPp.db.soldiers.recordIndex = lastRecordIndex;
            synchronizeDb(true);
            tsbSoldiers_Click(null, null);
            cPp.flushMemory();             // Принудительное освобождение памяти.
        }