117 lines
4.4 KiB
C#
117 lines
4.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Media;
|
|
|
|
namespace XLIMS.CORE.Helpers
|
|
{
|
|
public class ClosePsv
|
|
{
|
|
#region Constructor
|
|
|
|
public ClosePsv(DocViewModel document, XLAB7Repository repository, int copies = 0)
|
|
{
|
|
if (copies == 0) _copies = 1;
|
|
else _copies = copies;
|
|
_document = document;
|
|
_repository = repository;
|
|
_fi = new FileInfo(@"Resources\DOCX\ClosePsv.docx");
|
|
_wordApp = new Microsoft.Office.Interop.Word.Application();
|
|
_wordDocument = _wordApp.Documents.Open(_fi.FullName);
|
|
_table = _wordDocument.Tables[1];
|
|
}
|
|
|
|
#endregion //Constructor
|
|
|
|
#region Fields
|
|
|
|
private Microsoft.Office.Interop.Word.Application _wordApp;
|
|
private Microsoft.Office.Interop.Word.Document _wordDocument;
|
|
private object _wFalse = false;
|
|
private object _wTrue = true;
|
|
private object _missing = null;
|
|
private FileInfo _fi;
|
|
private DocViewModel _document;
|
|
private Table _table;
|
|
private int _copies;
|
|
private XLAB7Repository _repository;
|
|
#endregion //Fields
|
|
|
|
#region Properties
|
|
|
|
#endregion //Properties
|
|
|
|
#region Mehtods
|
|
|
|
private void Replace(string text, string replacementText)
|
|
{
|
|
Find find = _wordApp.Selection.Find;
|
|
find.Text = text;
|
|
find.Replacement.Text = replacementText;
|
|
find.Execute(FindText: Type.Missing,
|
|
MatchCase: false,
|
|
MatchWholeWord: false,
|
|
MatchWildcards: false,
|
|
MatchSoundsLike: Type.Missing,
|
|
MatchAllWordForms: false,
|
|
Forward: true,
|
|
Wrap: Microsoft.Office.Interop.Word.WdFindWrap.wdFindContinue,
|
|
Format: false,
|
|
ReplaceWith: Type.Missing,
|
|
Replace: Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll);
|
|
}
|
|
|
|
public void Print()
|
|
{
|
|
|
|
Replace("number", _document.Number);
|
|
Replace("div", _document.CurrentFRPD.NMFRPD);
|
|
Replace("date", ((DateTime)_document.Date).ToLongDateString());
|
|
Replace("count", _document.AllEKZMK.Count.ToString());
|
|
Replace("bad", _document.AllEKZMK.Count(o => o.GDN == false).ToString());
|
|
Replace("good", _document.AllEKZMK.Count(o => o.GDN == true).ToString());
|
|
Replace("person", _document.CurrentPRSNVY.PRFIO);
|
|
Replace("today", ((DateTime)_document.DateVY).ToLongDateString());
|
|
var i = 2;
|
|
var n = 1;
|
|
foreach (var data in _document.AllGroupsEKZMK)
|
|
{
|
|
_table.Rows.Add();
|
|
_table.Rows[i].Cells[1].Range.Text = n.ToString();
|
|
_table.Rows[i].Cells[2].Range.Text = data.CurrentEKZMK.CurrentEKZ.IDTPRZNavigation.IDTIPSNavigation.IDSPNMTPNavigation.NMTP;
|
|
_table.Rows[i].Cells[3].Range.Text = data.CurrentEKZMK.CurrentEKZ.IDTPRZNavigation.IDTIPSNavigation.TP;
|
|
_table.Rows[i].Cells[4].Range.Text = data.CurrentEKZMK.CurrentEKZ.IDTPRZNavigation.DPZN;
|
|
if (data.GroupEKZMK.Count() > 3)
|
|
{
|
|
_table.Rows[i].Cells[5].Range.Text = data.GroupEKZMK.Count().ToString();
|
|
}
|
|
else
|
|
{
|
|
foreach (var d in data.GroupEKZMK)
|
|
{
|
|
_table.Rows[i].Cells[5].Range.Text += d.CurrentEKZ.NNZV + ", ";
|
|
}
|
|
}
|
|
_table.Rows[i].Cells[6].Range.Text = data.Count.ToString();
|
|
_table.Rows[i].Cells[7].Range.Text = data.GoodCount.ToString();
|
|
_table.Rows[i].Cells[8].Range.Text = data.BadCount.ToString();
|
|
try
|
|
{
|
|
_table.Rows[i].Cells[9].Range.Text = data.CurrentEKZMK.CurrentDMS.NND.ToString() + " от " + data.CurrentEKZMK.CurrentDMS.DTD.ToShortDateString();
|
|
}
|
|
catch { }
|
|
|
|
i++;
|
|
n++;
|
|
}
|
|
_wordDocument.PrintOut(Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, _copies);
|
|
_wordDocument.Close(_wFalse);
|
|
_wordApp.Quit();
|
|
}
|
|
#endregion //Mehtods
|
|
}
|
|
}
|