commit
14aa7249fb
@ -27,6 +27,19 @@ namespace RehauSku
|
|||||||
|
|
||||||
return cells.All(x => x != null);
|
return cells.All(x => x != null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void AddValue(this Range range, double value)
|
||||||
|
{
|
||||||
|
if (range.Value2 == null)
|
||||||
|
{
|
||||||
|
range.Value2 = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
{
|
||||||
|
range.Value2 += value;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,12 +46,7 @@ namespace RehauSku.Interface
|
|||||||
dialog.FileName = workbook.Name;
|
dialog.FileName = workbook.Name;
|
||||||
dialog.Filter = "Файлы Excel (*.xls;*.xlsx;*.xlsm)|*.xls;*.xlsx;*.xlsm";
|
dialog.Filter = "Файлы Excel (*.xls;*.xlsx;*.xlsm)|*.xls;*.xlsx;*.xlsm";
|
||||||
|
|
||||||
if (dialog.ShowDialog() == DialogResult.Cancel)
|
if (dialog.ShowDialog() == DialogResult.OK)
|
||||||
{
|
|
||||||
workbook.Close(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
string fileName = dialog.FileName;
|
string fileName = dialog.FileName;
|
||||||
workbook.SaveAs(fileName);
|
workbook.SaveAs(fileName);
|
||||||
|
@ -3,6 +3,7 @@ using Microsoft.Office.Interop.Excel;
|
|||||||
using RehauSku.Interface;
|
using RehauSku.Interface;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using Application = Microsoft.Office.Interop.Excel.Application;
|
using Application = Microsoft.Office.Interop.Excel.Application;
|
||||||
using ProgressBar = RehauSku.Interface.ProgressBar;
|
using ProgressBar = RehauSku.Interface.ProgressBar;
|
||||||
@ -18,22 +19,40 @@ namespace RehauSku.PriceListTools
|
|||||||
|
|
||||||
public void OpenNewPrice()
|
public void OpenNewPrice()
|
||||||
{
|
{
|
||||||
Workbook wb = ExcelApp.Workbooks.Open(RegistryUtil.PriceListPath);
|
if (ExcelApp.Workbooks
|
||||||
|
.Cast<Workbook>()
|
||||||
|
.FirstOrDefault(w => w.FullName == RegistryUtil.PriceListPath) != null)
|
||||||
|
{
|
||||||
|
MessageBox.Show
|
||||||
|
("Шаблонный файл редактируется в другом месте",
|
||||||
|
"Ошибка открытия шаблонного прайс-листа",
|
||||||
|
MessageBoxButtons.OK,
|
||||||
|
MessageBoxIcon.Information);
|
||||||
|
|
||||||
|
throw new ArgumentException("Шаблонный файл редактируется в другом месте");
|
||||||
|
}
|
||||||
|
|
||||||
|
Workbook wb = ExcelApp.Workbooks.Open(RegistryUtil.PriceListPath, null, true);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
TargetFile = new TargetPriceList(wb);
|
TargetFile = new TargetPriceList(wb);
|
||||||
}
|
}
|
||||||
|
|
||||||
catch (Exception ex)
|
catch (Exception exception)
|
||||||
{
|
{
|
||||||
MessageBox.Show
|
MessageBox.Show
|
||||||
(ex.Message,
|
(exception.Message,
|
||||||
"Ошибка открытия шаблонного прайс-листа",
|
"Ошибка открытия шаблонного прайс-листа",
|
||||||
MessageBoxButtons.OK,
|
MessageBoxButtons.OK,
|
||||||
MessageBoxIcon.Information);
|
MessageBoxIcon.Information);
|
||||||
|
|
||||||
|
if (wb != null)
|
||||||
|
{
|
||||||
wb.Close();
|
wb.Close();
|
||||||
throw ex;
|
}
|
||||||
|
|
||||||
|
throw exception;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -45,49 +64,31 @@ namespace RehauSku.PriceListTools
|
|||||||
{
|
{
|
||||||
foreach (int column in columns)
|
foreach (int column in columns)
|
||||||
{
|
{
|
||||||
Range sumCell = TargetFile.Sheet.Cells[row, column];
|
Range cell = TargetFile.Sheet.Cells[row, column];
|
||||||
|
cell.AddValue(positionAmount.Value);
|
||||||
if (sumCell.Value2 == null)
|
|
||||||
{
|
|
||||||
sumCell.Value2 = positionAmount.Value;
|
|
||||||
}
|
|
||||||
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sumCell.Value2 += positionAmount.Value;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ResultBar.IncrementSuccess();
|
ResultBar.IncrementSuccess();
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TargetFile.oldSkuCell != null)
|
else if (TargetFile.oldSkuCell != null)
|
||||||
{
|
{
|
||||||
Range foundCell = TargetFile.oldSkuCell.EntireColumn.Find(positionAmount.Key.Sku);
|
row = GetPositionRow(positionAmount.Key.Sku, positionAmount.Key.Group, TargetFile.oldSkuCell.Column);
|
||||||
|
|
||||||
if (foundCell != null)
|
if (row != null)
|
||||||
{
|
{
|
||||||
row = foundCell.Row;
|
|
||||||
|
|
||||||
foreach (int column in columns)
|
foreach (int column in columns)
|
||||||
{
|
{
|
||||||
if (TargetFile.Sheet.Cells[row, column].Value2 == null)
|
Range cell = TargetFile.Sheet.Cells[row, column];
|
||||||
{
|
cell.AddValue(positionAmount.Value);
|
||||||
TargetFile.Sheet.Cells[row, column].Value2 = positionAmount.Value;
|
}
|
||||||
|
|
||||||
|
ResultBar.IncrementReplaced();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TargetFile.Sheet.Cells[row, column].Value2 += positionAmount.Value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ResultBar.IncrementReplaced();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
string sku = positionAmount.Key.Sku.Substring(1, 6);
|
string sku = positionAmount.Key.Sku.Substring(1, 6);
|
||||||
row = GetPositionRow(sku, positionAmount.Key.Group, TargetFile.skuCell.Column);
|
row = GetPositionRow(sku, positionAmount.Key.Group, TargetFile.skuCell.Column);
|
||||||
|
|
||||||
@ -95,21 +96,11 @@ namespace RehauSku.PriceListTools
|
|||||||
{
|
{
|
||||||
foreach (int column in columns)
|
foreach (int column in columns)
|
||||||
{
|
{
|
||||||
Range amountCell = TargetFile.Sheet.Cells[row, column];
|
Range cell = TargetFile.Sheet.Cells[row, column];
|
||||||
|
cell.AddValue(positionAmount.Value);
|
||||||
if (amountCell.Value2 == null)
|
|
||||||
{
|
|
||||||
amountCell.Value2 = positionAmount.Value;
|
|
||||||
}
|
|
||||||
|
|
||||||
else
|
|
||||||
{
|
|
||||||
amountCell.Value2 += positionAmount.Value;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ResultBar.IncrementReplaced();
|
ResultBar.IncrementReplaced();
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
@ -118,6 +109,7 @@ namespace RehauSku.PriceListTools
|
|||||||
ResultBar.IncrementNotFound();
|
ResultBar.IncrementNotFound();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected private void FillMissing(KeyValuePair<Position, double> positionAmount, params int[] columns)
|
protected private void FillMissing(KeyValuePair<Position, double> positionAmount, params int[] columns)
|
||||||
{
|
{
|
||||||
@ -151,15 +143,8 @@ namespace RehauSku.PriceListTools
|
|||||||
|
|
||||||
foreach (int column in columns)
|
foreach (int column in columns)
|
||||||
{
|
{
|
||||||
if (TargetFile.Sheet.Cells[row, column].Value2 == null)
|
Range cell = TargetFile.Sheet.Cells[row, column];
|
||||||
{
|
cell.AddValue(positionAmount.Value);
|
||||||
TargetFile.Sheet.Cells[row, column].Value2 = positionAmount.Value;
|
|
||||||
}
|
|
||||||
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TargetFile.Sheet.Cells[row, column].Value2 += positionAmount.Value;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,6 +11,12 @@ namespace RehauSku.PriceListTools
|
|||||||
|
|
||||||
public TargetPriceList(Workbook workbook)
|
public TargetPriceList(Workbook workbook)
|
||||||
{
|
{
|
||||||
|
if (workbook == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("Невозможно открыть книгу шаблонного файла. " +
|
||||||
|
"Возможно открыт файл с именем, совпадающим с именем шаблонного файла.");
|
||||||
|
}
|
||||||
|
|
||||||
Sheet = workbook.ActiveSheet;
|
Sheet = workbook.ActiveSheet;
|
||||||
Name = workbook.FullName;
|
Name = workbook.FullName;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user