Add Excel statusbar progress message
This commit is contained in:
parent
06799119fb
commit
120eee0231
32
src/Interface/ProgressBar.cs
Normal file
32
src/Interface/ProgressBar.cs
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
using Microsoft.Office.Interop.Excel;
|
||||||
|
|
||||||
|
namespace RehauSku.Interface
|
||||||
|
{
|
||||||
|
internal class ProgressBar
|
||||||
|
{
|
||||||
|
private Application Excel = AddIn.Excel;
|
||||||
|
private double CurrentProgress { get; set; }
|
||||||
|
private readonly double TaskWeight;
|
||||||
|
|
||||||
|
public ProgressBar(int weight)
|
||||||
|
{
|
||||||
|
TaskWeight = weight;
|
||||||
|
CurrentProgress = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void DoProgress()
|
||||||
|
{
|
||||||
|
double percent = (++CurrentProgress / TaskWeight) * 100;
|
||||||
|
|
||||||
|
if (percent < 100)
|
||||||
|
{
|
||||||
|
Excel.StatusBar = $"Выполнено {percent.ToString("#.##")} %";
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Excel.StatusBar = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,7 @@
|
|||||||
using Microsoft.Office.Interop.Excel;
|
using Microsoft.Office.Interop.Excel;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using RehauSku.Interface;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace RehauSku.PriceListTools
|
namespace RehauSku.PriceListTools
|
||||||
{
|
{
|
||||||
@ -9,6 +11,8 @@ namespace RehauSku.PriceListTools
|
|||||||
|
|
||||||
public void FillTarget()
|
public void FillTarget()
|
||||||
{
|
{
|
||||||
|
ProgressBar bar = new ProgressBar(SourceFiles.Sum(file => file.PositionAmount.Count));
|
||||||
|
|
||||||
foreach (Source source in SourceFiles)
|
foreach (Source source in SourceFiles)
|
||||||
{
|
{
|
||||||
TargetFile.Sheet.Columns[TargetFile.amountCell.Column]
|
TargetFile.Sheet.Columns[TargetFile.amountCell.Column]
|
||||||
@ -19,8 +23,11 @@ namespace RehauSku.PriceListTools
|
|||||||
newColumnHeader.Value2 = $"{source.Name}";
|
newColumnHeader.Value2 = $"{source.Name}";
|
||||||
newColumnHeader.WrapText = true;
|
newColumnHeader.WrapText = true;
|
||||||
|
|
||||||
foreach(var kvp in source.PositionAmount)
|
foreach (var kvp in source.PositionAmount)
|
||||||
|
{
|
||||||
FillColumnsWithDictionary(kvp, TargetFile.amountCell.Column - 1, TargetFile.amountCell.Column);
|
FillColumnsWithDictionary(kvp, TargetFile.amountCell.Column - 1, TargetFile.amountCell.Column);
|
||||||
|
bar.DoProgress();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FilterByAmount();
|
FilterByAmount();
|
||||||
|
@ -27,8 +27,13 @@ namespace RehauSku.PriceListTools
|
|||||||
|
|
||||||
public void FillTarget()
|
public void FillTarget()
|
||||||
{
|
{
|
||||||
|
ProgressBar bar = new ProgressBar(Current.PositionAmount.Count);
|
||||||
|
|
||||||
foreach (var kvp in Current.PositionAmount)
|
foreach (var kvp in Current.PositionAmount)
|
||||||
|
{
|
||||||
FillColumnsWithDictionary(kvp, TargetFile.amountCell.Column);
|
FillColumnsWithDictionary(kvp, TargetFile.amountCell.Column);
|
||||||
|
bar.DoProgress();
|
||||||
|
}
|
||||||
|
|
||||||
FilterByAmount();
|
FilterByAmount();
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
using RehauSku.Assistant;
|
using RehauSku.Assistant;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using RehauSku.Interface;
|
||||||
|
|
||||||
namespace RehauSku.PriceListTools
|
namespace RehauSku.PriceListTools
|
||||||
{
|
{
|
||||||
@ -23,10 +24,12 @@ namespace RehauSku.PriceListTools
|
|||||||
public void FillTarget()
|
public void FillTarget()
|
||||||
{
|
{
|
||||||
GetSelected();
|
GetSelected();
|
||||||
|
ProgressBar bar = new ProgressBar(PositionAmount.Count);
|
||||||
|
|
||||||
foreach (var kvp in PositionAmount)
|
foreach (var kvp in PositionAmount)
|
||||||
{
|
{
|
||||||
FillColumnsWithDictionary(kvp, TargetFile.amountCell.Column);
|
FillColumnsWithDictionary(kvp, TargetFile.amountCell.Column);
|
||||||
|
bar.DoProgress();
|
||||||
}
|
}
|
||||||
|
|
||||||
FilterByAmount();
|
FilterByAmount();
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using RehauSku.Interface;
|
using RehauSku.Interface;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace RehauSku.PriceListTools
|
namespace RehauSku.PriceListTools
|
||||||
{
|
{
|
||||||
@ -9,10 +10,15 @@ namespace RehauSku.PriceListTools
|
|||||||
|
|
||||||
public void FillTarget()
|
public void FillTarget()
|
||||||
{
|
{
|
||||||
|
ProgressBar bar = new ProgressBar(SourceFiles.Sum(x => x.PositionAmount.Count));
|
||||||
|
|
||||||
foreach (Source source in SourceFiles)
|
foreach (Source source in SourceFiles)
|
||||||
{
|
{
|
||||||
foreach (var kvp in source.PositionAmount)
|
foreach (var kvp in source.PositionAmount)
|
||||||
|
{
|
||||||
FillColumnsWithDictionary(kvp, TargetFile.amountCell.Column);
|
FillColumnsWithDictionary(kvp, TargetFile.amountCell.Column);
|
||||||
|
bar.DoProgress();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FilterByAmount();
|
FilterByAmount();
|
||||||
|
@ -3,6 +3,7 @@ using Microsoft.Office.Interop.Excel;
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using RehauSku.Interface;
|
||||||
|
|
||||||
namespace RehauSku.PriceListTools
|
namespace RehauSku.PriceListTools
|
||||||
{
|
{
|
||||||
@ -39,6 +40,7 @@ namespace RehauSku.PriceListTools
|
|||||||
public static List<Source> GetSourceLists(string[] files)
|
public static List<Source> GetSourceLists(string[] files)
|
||||||
{
|
{
|
||||||
var ExcelApp = (Application)ExcelDnaUtil.Application;
|
var ExcelApp = (Application)ExcelDnaUtil.Application;
|
||||||
|
ProgressBar bar = new ProgressBar(files.Length);
|
||||||
|
|
||||||
List<Source> sourceFiles = new List<Source>();
|
List<Source> sourceFiles = new List<Source>();
|
||||||
|
|
||||||
@ -51,6 +53,7 @@ namespace RehauSku.PriceListTools
|
|||||||
Source priceList = new Source(wb);
|
Source priceList = new Source(wb);
|
||||||
sourceFiles.Add(priceList);
|
sourceFiles.Add(priceList);
|
||||||
wb.Close();
|
wb.Close();
|
||||||
|
bar.DoProgress();
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@ -60,6 +63,7 @@ namespace RehauSku.PriceListTools
|
|||||||
System.Windows.Forms.MessageBoxButtons.OK,
|
System.Windows.Forms.MessageBoxButtons.OK,
|
||||||
System.Windows.Forms.MessageBoxIcon.Information);
|
System.Windows.Forms.MessageBoxIcon.Information);
|
||||||
wb.Close();
|
wb.Close();
|
||||||
|
bar.DoProgress();
|
||||||
}
|
}
|
||||||
ExcelApp.ScreenUpdating = true;
|
ExcelApp.ScreenUpdating = true;
|
||||||
}
|
}
|
||||||
|
@ -121,6 +121,7 @@
|
|||||||
<Compile Include="Assistant\ParseUtil.cs" />
|
<Compile Include="Assistant\ParseUtil.cs" />
|
||||||
<Compile Include="Assistant\RequestModifier.cs" />
|
<Compile Include="Assistant\RequestModifier.cs" />
|
||||||
<Compile Include="Assistant\SkuExtensions.cs" />
|
<Compile Include="Assistant\SkuExtensions.cs" />
|
||||||
|
<Compile Include="Interface\ProgressBar.cs" />
|
||||||
<Compile Include="PriceListTools\CombineTool.cs" />
|
<Compile Include="PriceListTools\CombineTool.cs" />
|
||||||
<Compile Include="PriceListTools\ConvertTool.cs" />
|
<Compile Include="PriceListTools\ConvertTool.cs" />
|
||||||
<Compile Include="PriceListTools\Position.cs" />
|
<Compile Include="PriceListTools\Position.cs" />
|
||||||
|
Loading…
Reference in New Issue
Block a user