diff --git a/README.md b/README.md
index 4f9b62b..a12e67c 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,20 @@
# REHAU SKU плагин для MS Excel
## Назначение
-Служит для помощи в обработке клиентских заявок путем поиска продукции REHAU по запросу, выраженному в свободной форме.
+Помощь в обработке клиентских заявок путем поиска продукции REHAU по запросу, выраженному в свободной форме, и в работе с прайс-листом BS REHAU
## Принцип работы
-Плагин делает поисковый запрос в интернет-магазине REHAU, выполняет парсинг полученного ответа и выдает результат
+Плагин делает поисковый запрос в интернет-магазин REHAU, выполняет парсинг полученного ответа и выдает результат
## Реализованные функции
-- Отображение наименования найденного по запросу продукта с помощью формулы `=RAUNAME()`
-- Отображение артикула с помощью формулы `=RAUSKU()`
-- Отображение цены найденного продукта с помощью формулы `=RAUPRICE()`
+- Формулы для поиска информации
+ - Отображение наименования с помощью `=RAUNAME()`
+ - Отображение артикула с помощью `=RAUSKU()`
+ - Отображение цены с помощью формулы `=RAUPRICE()`
+- Экспорт массива ячеек вида "Артикул - Количество" в прайс-лист
+- Объединение нескольких прайс-листов в один файл
+
+*Для работы функций "Экспорт" и "Объединение" требуется указать путь к файлу пустого прайс-листа REHAU*
+
## Работа без установки
1. Запустить файл `RehauSku.Assist-AddIn-packed.xll` или `RehauSku.Assist-AddIn64-packed.xll` в зависимости от архитектуры приложения
@@ -24,7 +30,7 @@
Файл -> Параметры -> Надстройки ->
Управление: Надстройки Excel -> Перейти... -> Обзор
- Выбрать и включить файл плагина.
+ Выбрать и включить файл плагина
## Использованные библиотеки
- [ExcelDna](https://github.com/Excel-DNA/ExcelDna)
diff --git a/RehauSku.Assist.csproj b/RehauSku.Assist.csproj
index 8783034..e8ba584 100644
--- a/RehauSku.Assist.csproj
+++ b/RehauSku.Assist.csproj
@@ -131,9 +131,7 @@
-
-
-
+
diff --git a/Source/AddIn/RegistryUtil.cs b/Source/AddIn/RegistryUtil.cs
index 3e7c120..40d0ec2 100644
--- a/Source/AddIn/RegistryUtil.cs
+++ b/Source/AddIn/RegistryUtil.cs
@@ -47,6 +47,12 @@ namespace RehauSku
return _priceListPath;
}
}
+
+ set
+ {
+ _priceListPath = value;
+ _RootKey.SetValue("PriceListPath", value);
+ }
}
public static ResponseOrder StoreResponseOrder
diff --git a/Source/Forms/Dialog.cs b/Source/Forms/Dialog.cs
index 1953816..170cc81 100644
--- a/Source/Forms/Dialog.cs
+++ b/Source/Forms/Dialog.cs
@@ -11,7 +11,7 @@ namespace RehauSku.Forms
using (OpenFileDialog dialog = new OpenFileDialog())
{
- dialog.Filter = "Все файлы (*.*)|*.*";
+ dialog.Filter = "Файлы Excel (*.xls;*.xlsx;*.xlsm)|*.xls;*.xlsx;*.xlsm";
if (dialog.ShowDialog() == DialogResult.OK)
{
@@ -28,7 +28,7 @@ namespace RehauSku.Forms
using (OpenFileDialog dialog = new OpenFileDialog())
{
- dialog.Filter = "Все файлы (*.*)|*.*";
+ dialog.Filter = "Файлы Excel (*.xls;*.xlsx;*.xlsm)|*.xls;*.xlsx;*.xlsm";
dialog.Multiselect = true;
if (dialog.ShowDialog() == DialogResult.OK)
diff --git a/Source/PriceListTools/ExportTool.cs b/Source/PriceListTools/ExportTool.cs
index 02def5b..0a28bf3 100644
--- a/Source/PriceListTools/ExportTool.cs
+++ b/Source/PriceListTools/ExportTool.cs
@@ -74,12 +74,30 @@ namespace RehauSku.PriceListTools
public void ExportToNewFile()
{
+ if (SkuAmount.Count < 1)
+ {
+ return;
+ }
+
string exportFile = PriceListUtil.CreateNewExportFile();
Workbook wb = ExcelApp.Workbooks.Open(exportFile);
- PriceList priceList = new PriceList(wb);
- if (priceList.IsValid())
+ try
+ {
+ PriceList priceList = new PriceList(wb);
priceList.Fill(SkuAmount);
+ }
+
+ catch(Exception ex)
+ {
+ System.Windows.Forms.MessageBox.Show
+ ($"{RegistryUtil.PriceListPath} не является файлом прайслиста \n\n {ex.Message}",
+ "Неверный файл прайс-листа!",
+ System.Windows.Forms.MessageBoxButtons.OK,
+ System.Windows.Forms.MessageBoxIcon.Error);
+
+ wb.Close();
+ }
}
public void Dispose()
diff --git a/Source/PriceListTools/MergeTool.cs b/Source/PriceListTools/MergeTool.cs
index 21da41d..6b0644d 100644
--- a/Source/PriceListTools/MergeTool.cs
+++ b/Source/PriceListTools/MergeTool.cs
@@ -22,23 +22,56 @@ namespace RehauSku.PriceListTools
foreach (string file in files)
{
Workbook wb = ExcelApp.Workbooks.Open(file);
- PriceList priceList = new PriceList(wb);
- if (priceList.IsValid())
+ try
+ {
+ PriceList priceList = new PriceList(wb);
SkuAmount.AddValues(priceList);
+ }
- wb.Close();
+ catch (Exception ex)
+ {
+ System.Windows.Forms.MessageBox.Show
+ ( $"{wb.Name} не является файлом прайслиста \n\n {ex.Message}",
+ "Неверный файл прайс-листа!",
+ System.Windows.Forms.MessageBoxButtons.OK,
+ System.Windows.Forms.MessageBoxIcon.Error);
+ }
+
+ finally
+ {
+ wb.Close();
+ }
}
ExcelApp.ScreenUpdating = true;
}
public void ExportToNewFile(string exportFile)
{
- Workbook wb = ExcelApp.Workbooks.Open(exportFile);
- PriceList priceList = new PriceList(wb);
+ if (SkuAmount.Count < 1)
+ {
+ return;
+ }
- if (priceList.IsValid())
+ Workbook wb = ExcelApp.Workbooks.Open(exportFile);
+ PriceList priceList;
+
+ try
+ {
+ priceList = new PriceList(wb);
priceList.Fill(SkuAmount);
+ }
+
+ catch (Exception ex)
+ {
+ System.Windows.Forms.MessageBox.Show
+ ($"{RegistryUtil.PriceListPath} не является файлом прайслиста \n\n {ex.Message}",
+ "Неверный файл прайс-листа!",
+ System.Windows.Forms.MessageBoxButtons.OK,
+ System.Windows.Forms.MessageBoxIcon.Error);
+
+ wb.Close();
+ }
}
public void Dispose()
diff --git a/Source/Ribbon/RibbonController.cs b/Source/Ribbon/RibbonController.cs
index 0090761..df6f327 100644
--- a/Source/Ribbon/RibbonController.cs
+++ b/Source/Ribbon/RibbonController.cs
@@ -17,11 +17,11 @@ namespace RehauSku.Ribbon
-
-
+
+
-
+
@@ -60,12 +60,10 @@ namespace RehauSku.Ribbon
}
}
- public void OnSettingsPressed(IRibbonControl control)
+ public void OnSetPricePressed(IRibbonControl control)
{
- Form settingsForm = new SettingsForm();
-
- settingsForm.Show();
-
+ string path = Dialog.GetFilePath();
+ RegistryUtil.PriceListPath = path;
}
}
}