示例#1
0
        /// <summary>
        /// Обновление данных в Таблице
        /// </summary>
        public void UpdateTable()
        {
            SQLRequest = null;

            if (Select != null)
            {
                SQLRequest += $"SELECT {Select} ";
            }
            if (From != null)
            {
                SQLRequest += $"FROM {From} ";
            }
            if (Where != null)
            {
                SQLRequest += $"WHERE {Where} ";
            }
            if (orderBy != null)
            {
                SQLRequest += $"ORDER BY {orderBy}";
            }

            DVTable = UsAc.Execute(SQLRequest);
        }
示例#2
0
        public void OutToWord(string NumOfDeal)
        {
            //Получение записи из таблицы
            var    DealTable   = UsAc.Execute($@"SELECT * FROM Дело WHERE Номер_дела = ""{NumOfDeal}""");
            string DateStart   = DealTable.Table.Rows[0]["Дата_открытия"].ToString().Substring(0, 10);
            string DateEnd     = DealTable.Table.Rows[0]["Дата_закрытия"].ToString().Substring(0, 10);
            string DateStorage = DealTable.Table.Rows[0]["Дата_введения_на_хранение"].ToString().Substring(0, 10);
            string Zaveritel   = DealTable.Table.Rows[0]["Заверитель"].ToString();

            //Получение списка документов
            var    DocumentsInDealTable = UsAc.Execute($@"SELECT * FROM Документ Where Номер_дела = ""{NumOfDeal}""");
            string DocCount             = DocumentsInDealTable.Count.ToString() + "      ";

            //Число страниц для документа
            int DocNum = 1;

            var wordApp = new Microsoft.Office.Interop.Word.Application();

            wordApp.Visible = false;
            object missing      = System.Reflection.Missing.Value;
            var    wordDocument = wordApp.Documents.Open(Environment.CurrentDirectory + "/model/register.docx");

            try
            {
                ReplaceWordStub("{Num}", NumOfDeal, wordDocument);
                ReplaceWordStub("{DocCount}", DocCount, wordDocument);
                ReplaceWordStub("{DateStart}", DateStart, wordDocument);
                ReplaceWordStub("{DateEnd}", DateEnd, wordDocument);
                ReplaceWordStub("{DateStorage}", DateStorage, wordDocument);
                ReplaceWordStub("{Zav}", Zaveritel, wordDocument);

                Microsoft.Office.Interop.Word.Table wordTable = wordDocument.Tables[1];
                for (int x = 2; x < DocumentsInDealTable.Table.Rows.Count + 2; x++)
                {
                    //Добавляем строку таблицы
                    object oMissing = System.Reflection.Missing.Value;
                    wordTable.Rows.Add(ref oMissing);

                    //# п/п
                    wordTable.Cell(x, 1).Range.Text = (x - 1).ToString();
                    wordTable.Cell(x, 1).Range.Bold = 0;
                    wordTable.Cell(x, 1).Range.Cells.SetHeight(1, WdRowHeightRule.wdRowHeightAuto);

                    //Наименование
                    wordTable.Cell(x, 2).Range.Text = DocumentsInDealTable.Table.Rows[x - 2]["Название_документа"].ToString();
                    wordTable.Cell(x, 2).Range.Bold = 0;

                    //Номера листов
                    if (DocumentsInDealTable.Table.Rows[x - 2]["Число_страниц"].ToString() == "1")
                    {
                        wordTable.Cell(x, 3).Range.Text = (DocNum++).ToString();
                    }
                    else if (DocumentsInDealTable.Table.Rows[x - 2]["Число_страниц"].ToString() == "0")
                    {
                        wordTable.Cell(x, 3).Range.Text = DocNum.ToString();
                    }
                    else
                    {
                        string num   = (DocNum + 1).ToString() + "-";
                        var    count = Convert.ToInt32(DocumentsInDealTable.Table.Rows[x - 2]["Число_страниц"]) - 1;

                        DocNum += count;
                        num    += DocNum.ToString();

                        wordTable.Cell(x, 3).Range.Text = num;
                    }
                    wordTable.Cell(x, 3).Range.Bold = 0;
                    wordTable.Cell(x, 3).Range.Cells.SetHeight(1, WdRowHeightRule.wdRowHeightAuto);
                }
            }
            catch (Exception ex)
            {
                object doNotSaveChanges = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges;
                wordDocument.Close(ref doNotSaveChanges, ref missing, ref missing);
                throw ex;
            }

            wordApp.Visible = true;
        }