New release
This commit is contained in:
parent
24024b5729
commit
20cfbfcca3
18
README.md
18
README.md
@ -1,14 +1,20 @@
|
|||||||
# REHAU SKU плагин для MS Excel
|
# REHAU SKU плагин для MS Excel
|
||||||
## Назначение
|
## Назначение
|
||||||
Служит для помощи в обработке клиентских заявок путем поиска продукции REHAU по запросу, выраженному в свободной форме.
|
Помощь в обработке клиентских заявок путем поиска продукции REHAU по запросу, выраженному в свободной форме, и в работе с прайс-листом BS REHAU
|
||||||
|
|
||||||
## Принцип работы
|
## Принцип работы
|
||||||
Плагин делает поисковый запрос в интернет-магазине REHAU, выполняет парсинг полученного ответа и выдает результат
|
Плагин делает поисковый запрос в интернет-магазин REHAU, выполняет парсинг полученного ответа и выдает результат
|
||||||
|
|
||||||
## Реализованные функции
|
## Реализованные функции
|
||||||
- Отображение наименования найденного по запросу продукта с помощью формулы `=RAUNAME()`
|
- Формулы для поиска информации
|
||||||
- Отображение артикула с помощью формулы `=RAUSKU()`
|
- Отображение наименования с помощью `=RAUNAME()`
|
||||||
- Отображение цены найденного продукта с помощью формулы `=RAUPRICE()`
|
- Отображение артикула с помощью `=RAUSKU()`
|
||||||
|
- Отображение цены с помощью формулы `=RAUPRICE()`
|
||||||
|
- Экспорт массива ячеек вида "Артикул - Количество" в прайс-лист
|
||||||
|
- Объединение нескольких прайс-листов в один файл
|
||||||
|
|
||||||
|
*Для работы функций "Экспорт" и "Объединение" требуется указать путь к файлу пустого прайс-листа REHAU*
|
||||||
|
|
||||||
|
|
||||||
## Работа без установки
|
## Работа без установки
|
||||||
1. Запустить файл `RehauSku.Assist-AddIn-packed.xll` или `RehauSku.Assist-AddIn64-packed.xll` в зависимости от архитектуры приложения
|
1. Запустить файл `RehauSku.Assist-AddIn-packed.xll` или `RehauSku.Assist-AddIn64-packed.xll` в зависимости от архитектуры приложения
|
||||||
@ -24,7 +30,7 @@
|
|||||||
Файл -> Параметры -> Надстройки ->
|
Файл -> Параметры -> Надстройки ->
|
||||||
Управление: Надстройки Excel -> Перейти... -> Обзор
|
Управление: Надстройки Excel -> Перейти... -> Обзор
|
||||||
|
|
||||||
Выбрать и включить файл плагина.
|
Выбрать и включить файл плагина
|
||||||
|
|
||||||
## Использованные библиотеки
|
## Использованные библиотеки
|
||||||
- [ExcelDna](https://github.com/Excel-DNA/ExcelDna)
|
- [ExcelDna](https://github.com/Excel-DNA/ExcelDna)
|
||||||
|
@ -131,9 +131,7 @@
|
|||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
<None Include="Properties\ExcelDna.Build.props" />
|
<None Include="Properties\ExcelDna.Build.props" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup />
|
||||||
<Folder Include="Source\Settings\" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<Import Project="packages\ExcelDna.AddIn.1.5.0\build\ExcelDna.AddIn.targets" Condition="Exists('packages\ExcelDna.AddIn.1.5.0\build\ExcelDna.AddIn.targets')" />
|
<Import Project="packages\ExcelDna.AddIn.1.5.0\build\ExcelDna.AddIn.targets" Condition="Exists('packages\ExcelDna.AddIn.1.5.0\build\ExcelDna.AddIn.targets')" />
|
||||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
|
@ -47,6 +47,12 @@ namespace RehauSku
|
|||||||
return _priceListPath;
|
return _priceListPath;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_priceListPath = value;
|
||||||
|
_RootKey.SetValue("PriceListPath", value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ResponseOrder StoreResponseOrder
|
public static ResponseOrder StoreResponseOrder
|
||||||
|
@ -11,7 +11,7 @@ namespace RehauSku.Forms
|
|||||||
|
|
||||||
using (OpenFileDialog dialog = new OpenFileDialog())
|
using (OpenFileDialog dialog = new OpenFileDialog())
|
||||||
{
|
{
|
||||||
dialog.Filter = "Все файлы (*.*)|*.*";
|
dialog.Filter = "Файлы Excel (*.xls;*.xlsx;*.xlsm)|*.xls;*.xlsx;*.xlsm";
|
||||||
|
|
||||||
if (dialog.ShowDialog() == DialogResult.OK)
|
if (dialog.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
@ -28,7 +28,7 @@ namespace RehauSku.Forms
|
|||||||
|
|
||||||
using (OpenFileDialog dialog = new OpenFileDialog())
|
using (OpenFileDialog dialog = new OpenFileDialog())
|
||||||
{
|
{
|
||||||
dialog.Filter = "Все файлы (*.*)|*.*";
|
dialog.Filter = "Файлы Excel (*.xls;*.xlsx;*.xlsm)|*.xls;*.xlsx;*.xlsm";
|
||||||
dialog.Multiselect = true;
|
dialog.Multiselect = true;
|
||||||
|
|
||||||
if (dialog.ShowDialog() == DialogResult.OK)
|
if (dialog.ShowDialog() == DialogResult.OK)
|
||||||
|
@ -74,14 +74,32 @@ namespace RehauSku.PriceListTools
|
|||||||
|
|
||||||
public void ExportToNewFile()
|
public void ExportToNewFile()
|
||||||
{
|
{
|
||||||
|
if (SkuAmount.Count < 1)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
string exportFile = PriceListUtil.CreateNewExportFile();
|
string exportFile = PriceListUtil.CreateNewExportFile();
|
||||||
Workbook wb = ExcelApp.Workbooks.Open(exportFile);
|
Workbook wb = ExcelApp.Workbooks.Open(exportFile);
|
||||||
PriceList priceList = new PriceList(wb);
|
|
||||||
|
|
||||||
if (priceList.IsValid())
|
try
|
||||||
|
{
|
||||||
|
PriceList priceList = new PriceList(wb);
|
||||||
priceList.Fill(SkuAmount);
|
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()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
Dispose(true);
|
Dispose(true);
|
||||||
|
@ -22,25 +22,58 @@ namespace RehauSku.PriceListTools
|
|||||||
foreach (string file in files)
|
foreach (string file in files)
|
||||||
{
|
{
|
||||||
Workbook wb = ExcelApp.Workbooks.Open(file);
|
Workbook wb = ExcelApp.Workbooks.Open(file);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
PriceList priceList = new PriceList(wb);
|
PriceList priceList = new PriceList(wb);
|
||||||
|
|
||||||
if (priceList.IsValid())
|
|
||||||
SkuAmount.AddValues(priceList);
|
SkuAmount.AddValues(priceList);
|
||||||
|
}
|
||||||
|
|
||||||
|
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();
|
wb.Close();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
ExcelApp.ScreenUpdating = true;
|
ExcelApp.ScreenUpdating = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ExportToNewFile(string exportFile)
|
public void ExportToNewFile(string exportFile)
|
||||||
{
|
{
|
||||||
Workbook wb = ExcelApp.Workbooks.Open(exportFile);
|
if (SkuAmount.Count < 1)
|
||||||
PriceList priceList = new PriceList(wb);
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (priceList.IsValid())
|
Workbook wb = ExcelApp.Workbooks.Open(exportFile);
|
||||||
|
PriceList priceList;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
priceList = new PriceList(wb);
|
||||||
priceList.Fill(SkuAmount);
|
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()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
Dispose(true);
|
Dispose(true);
|
||||||
|
@ -17,11 +17,11 @@ namespace RehauSku.Ribbon
|
|||||||
<tabs>
|
<tabs>
|
||||||
<tab id='rau' label='REHAU'>
|
<tab id='rau' label='REHAU'>
|
||||||
<group id='priceList' label='Прайс-лист'>
|
<group id='priceList' label='Прайс-лист'>
|
||||||
<button id='exportToPrice' label='Экспорт' size='large' imageMso='PivotExportToExcel' onAction='OnExportPressed'/>
|
<button id='exportToPrice' label='Экспорт в новый файл' size='normal' imageMso='PivotExportToExcel' onAction='OnExportPressed'/>
|
||||||
<button id='mergeFiles' label='Объединить' size='large' imageMso='Copy' onAction='OnMergePressed'/>
|
<button id='mergeFiles' label='Объединить' size='normal' imageMso='Copy' onAction='OnMergePressed'/>
|
||||||
</group>
|
</group>
|
||||||
<group id='rausettings' label='Настройки'>
|
<group id='rausettings' label='Настройки'>
|
||||||
<button id='set' label='Настройки' size='large' imageMso='CurrentViewSettings' onAction='OnSettingsPressed'/>
|
<button id='setPriceList' label='Файл прайс-листа' size='normal' imageMso='CurrentViewSettings' onAction='OnSetPricePressed'/>
|
||||||
</group>
|
</group>
|
||||||
</tab>
|
</tab>
|
||||||
</tabs>
|
</tabs>
|
||||||
@ -60,12 +60,10 @@ namespace RehauSku.Ribbon
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnSettingsPressed(IRibbonControl control)
|
public void OnSetPricePressed(IRibbonControl control)
|
||||||
{
|
{
|
||||||
Form settingsForm = new SettingsForm();
|
string path = Dialog.GetFilePath();
|
||||||
|
RegistryUtil.PriceListPath = path;
|
||||||
settingsForm.Show();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user