예제 #1
0
 /// <summary>
 /// Проверка корректности вставляемых данных
 /// </summary>
 /// <param name="dtp">Данные, уже имеющиеся в таблице</param>
 /// <param name="row">Вставляемые данные</param>
 /// <returns>Возвращает True если строка уже есть, иначе False</returns>
 private bool CheckCorrect(DataTable dtp, PlanProductsRow row)
 {
     bool flag = false;
     for (int i = 0; i < dtp.Rows.Count; i++)
     {
         if (dtp.Rows[i].Field<long>(0) == row.ProductCode &&
             Convert.ToInt32(dtp.Rows[i].ItemArray[2]) == row.Month &&
             Convert.ToInt32(dtp.Rows[i].ItemArray[3]) == row.Year)
         {
             flag = true;
             break;
         }
     }
     return flag;
 }
예제 #2
0
 public AddPlanProductsRowForm(FormType ftype, PlanProductsRow data)
 {
     InitializeComponent();
     switch (ftype)
     {
         case FormType.ADDFORM:
             this.Text = "Добавление записи в таблицу";
             break;
         case FormType.EDITFORM:
             this.Text = "Редактирование записи";
             break;
     }
     FType = ftype;
     InitializeData();
     LoadDataToControls(data);
 }
예제 #3
0
파일: Globals.cs 프로젝트: Digiman/ASTPP
 public static DatabaseLib.ParametersCollection ConvertPlanProductsRowToParameters(PlanProductsRow row)
 {
     DatabaseLib.ParametersCollection par = new DatabaseLib.ParametersCollection();
     par.Add("ProductCode", row.ProductCode, DbType.UInt64);
     par.Add("PlanCount", row.PlanCount, DbType.UInt64);
     par.Add("Month", row.Month, DbType.Single);
     par.Add("Year", row.Year, DbType.Single);
     return par;
 }
예제 #4
0
파일: Globals.cs 프로젝트: Digiman/ASTPP
        public static PlanProductsRow[] ConvertDataTableToPlanProductsRow(DataTable dt)
        {
            PlanProductsRow[] res = new PlanProductsRow[dt.Rows.Count];

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                res[i].ProductCode = dt.Rows[i].Field<long>(0);
                res[i].PlanCount = Convert.ToInt32(dt.Rows[i].ItemArray[1]);
                res[i].Month = Convert.ToInt32(dt.Rows[i].ItemArray[2]);
                res[i].Year = Convert.ToInt32(dt.Rows[i].ItemArray[3]);
            }

            return res;
        }
예제 #5
0
파일: DBWorker.cs 프로젝트: Digiman/ASTPP
 public static void CreateAndFillPlanProductsTable(PlanProductsRow[] data)
 {
     CreatePlanProductsTable();
     FillPlanProductsTable(data);
 }
예제 #6
0
파일: DBWorker.cs 프로젝트: Digiman/ASTPP
        /// <summary>
        /// Загрузка данных из файла для таблицы "План выпуска изделий"
        /// </summary>
        /// <param name="fname">Полный путь к файлу, содержащим данные для таблицы</param>
        /// <returns>Возвращает массив структур PlanProductsRow</returns>
        public static PlanProductsRow[] LoadDataForPlanProducts(string fname)
        {
            StreamReader file = new StreamReader(fname);
            int count = 0;
            string[] mas = new string[0];
            while (!file.EndOfStream)
            {
                string str = file.ReadLine();
                count++;
                Array.Resize(ref mas, count);
                mas[count - 1] = str;
            }
            file.Close();

            PlanProductsRow[] prod = new PlanProductsRow[count];
            for (int i = 0; i < count; i++)
            {
                string[] tmp = mas[i].Split('\t');
                prod[i].ProductCode = Convert.ToInt64(tmp[0]);
                prod[i].PlanCount = Convert.ToInt32(tmp[1]);
                prod[i].Month = Convert.ToInt32(tmp[2]);
                prod[i].Year = Convert.ToInt32(tmp[3]);
            }

            return prod;
        }
예제 #7
0
파일: DBWorker.cs 프로젝트: Digiman/ASTPP
 public static void FillPlanProductsTable(PlanProductsRow[] data)
 {
     DatabaseLib.ParametersCollection[] pars = new DatabaseLib.ParametersCollection[data.Length];
     for (int i = 0; i < data.Length; i++)
         pars[i] = Converter.ConvertPlanProductsRowToParameters(data[i]);
     dbf.InsertMany("PlanProducts", pars);
 }
예제 #8
0
 // кнопка ОК
 private void okButton_Click(object sender, EventArgs e)
 {
     // проверка полей на пустоту
     if (radMultiColumnComboBox1.SelectedIndex >= 0 || radTextBox1.Text != "" || radTextBox2.Text != "" || radDropDownList1.SelectedIndex >= 0)
     {
         PlanProductsRow row = new PlanProductsRow();
         int ind = radMultiColumnComboBox1.SelectedIndex;
         row.ProductCode = dtp.Rows[ind].Field<long>(0);
         row.PlanCount = Convert.ToInt32(radTextBox1.Text);
         row.Month = Convert.ToInt32(radDropDownList1.SelectedIndex + 1);
         row.Year = Convert.ToInt32(radTextBox2.Text);
         switch (FType)
         {
             case FormType.ADDFORM:
                 // проверка корректности вставки данных
                 if (!CheckCorrect(dtp, row))
                 {
                     // вставка данных в таблицу
                     DBWorker.InsertDataRowToTable("ПВИ", row);
                 }
                 else
                     MessageBox.Show("Вставляемые данные должны быть уникальными! Уже есть строка в таблице с такими данными!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 break;
             case FormType.EDITFORM:
                 DatabaseLib.ParametersCollection par = Converter.ConvertPlanProductsRowToParameters(row);
                 string where = String.Format("(ProductCode = {0}) and (PlanCount = {1}) and (Month = {2}) and (Year = {3})",
                                              Row.ProductCode, Row.PlanCount, Row.Month, Row.Year);
                 DBWorker.UpdateRow("PlanProducts", where, par);
                 break;
         }
         this.DialogResult = DialogResult.OK;
         this.Close();
     }
     else
         MessageBox.Show("Не заданы значения для новой записи!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
 }
예제 #9
0
 // загрузка данных в контролы для редактирования
 private void LoadDataToControls(PlanProductsRow data)
 {
     for (int i = 0; i < radMultiColumnComboBox1.EditorControl.Rows.Count; i++)
         if ((long)radMultiColumnComboBox1.EditorControl.Rows[i].Cells[0].Value == data.ProductCode)
         {
             radMultiColumnComboBox1.SelectedIndex = i;
             break;
         }
     radTextBox1.Text = data.PlanCount.ToString();
     radDropDownList1.SelectedIndex = data.Month - 1;
     radTextBox2.Text = data.Year.ToString();
     Row = data;
 }