private async void btPrintRow_Click(object sender, EventArgs e) { if (dgvData.CurrentRow != null && dgvData.CurrentRow.Index != -1 && dtData != null && dtData.DefaultView.Count != 0) { DataRowView rowSelect = dtData.DefaultView[dgvData.CurrentRow.Index]; int id = (int)rowSelect["id"]; DataTable dtBody = Config.hCntMain.getRouteBody(id).Result; if (dtBody == null || dtBody.Rows.Count == 0) { return; } await Task.Factory.StartNew(() => { Config.DoOnUIThread(() => { blockers.SaveControlsEnabledState(this); blockers.SetControlsEnabled(this, false); //progressBar1.Visible = progressBar1.Enabled = true; fLoad = new Nwuram.Framework.UI.Forms.frmLoad(); fLoad.TopMost = false; fLoad.Owner = this; fLoad.TextWait = "Грузим отчётик!"; fLoad.Show(); }, this); //if (report == null) report = new Nwuram.Framework.ToExcelNew.ExcelUnLoad(); int indexRow = 1; int maxCol = 5; setWidthColumn(indexRow, 1, 14, report); setWidthColumn(indexRow, 2, 15, report); setWidthColumn(indexRow, 3, 40, report); setWidthColumn(indexRow, 4, 13, report); setWidthColumn(indexRow, 5, 13, report); report.Merge(indexRow, 1, indexRow, maxCol); report.AddSingleValue($"Маршрут №{rowSelect["RouteNumber"]}", indexRow, 1); report.SetCellAlignmentToJustify(indexRow, 1, indexRow, 1); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, 1); report.SetFontSize(indexRow, 1, indexRow, 1, 18); indexRow++; indexRow++; Config.DoOnUIThread(() => { report.Merge(indexRow, 1, indexRow, maxCol); report.AddSingleValue($"{label3.Text} {dtpStart.Value.ToShortDateString()} по {dtpEnd.Value.ToShortDateString()}", indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, maxCol); report.AddSingleValue($"{label5.Text}:{cmbDriver.Text}", indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, maxCol); report.AddSingleValue($"{label6.Text}:{cmbShop.Text}", indexRow, 1); indexRow++; if (tbNumber.Text.Length > 0 || tbFioMan.Text.Length > 0) { report.Merge(indexRow, 1, indexRow, maxCol); string str = "Фильтры: "; if (tbNumber.Text.Length > 0) { str += $"Номер маршрута: {tbNumber.Text};"; } if (tbFioMan.Text.Length > 0) { str += $"Водитель: {tbFioMan.Text};"; } report.AddSingleValue($"{str}", indexRow, 1); indexRow++; } report.Merge(indexRow, 1, indexRow, maxCol); report.AddSingleValue("Выгрузил: " + Nwuram.Framework.Settings.User.UserSettings.User.FullUsername, indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, maxCol); report.AddSingleValue("Дата выгрузки: " + DateTime.Now.ToString(), indexRow, 1); }, this); indexRow++; indexRow++; report.AddSingleValue("№ заказа в маршруте", indexRow, 1); report.AddSingleValue("№ заказа", indexRow, 2); report.AddSingleValue("Адрес доставки", indexRow, 3); report.AddSingleValue("Вес заказа, кг", indexRow, 4); report.AddSingleValue("Длина маршрута, км", indexRow, 5); report.SetFontBold(indexRow, 1, indexRow, maxCol); report.SetBorders(indexRow, 1, indexRow, maxCol); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxCol); report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxCol); report.SetWrapText(indexRow, 1, indexRow, maxCol); indexRow++; dtBody.DefaultView.Sort = "RouteNumber asc"; foreach (DataRowView row in dtBody.DefaultView) { setValueToCell(indexRow, 1, row["RouteNumber"]); setValueToCell(indexRow, 2, row["OrderNumber"]); setValueToCell(indexRow, 3, row["Address"]); setValueToCell(indexRow, 4, row["weigth"]); setValueToCell(indexRow, 5, row["RouteLength"]); report.SetBorders(indexRow, 1, indexRow, maxCol); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxCol); report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxCol); report.SetCellAlignmentToRight(indexRow, 4, indexRow, 5); indexRow++; } setValueToCell(indexRow, 3, "Итого"); decimal routeWeigth = dtBody.AsEnumerable().Sum(r => r.Field <decimal>("weigth")); setValueToCell(indexRow, 4, routeWeigth); decimal routeLength = dtBody.AsEnumerable().Sum(r => r.Field <decimal>("RouteLength")); setValueToCell(indexRow, 5, routeLength); report.SetBorders(indexRow, 1, indexRow, maxCol); indexRow++; report.SetPageSetup(1, 9999, true); report.Show(); Config.DoOnUIThread(() => { blockers.RestoreControlEnabledState(this); fLoad.Dispose(); }, this); }); } }
private void btPrint_Click(object sender, EventArgs e) { Logging.StartFirstLevel(79); Logging.Comment("Произведена выгрузка отчета с превышения процента наценки"); Logging.Comment($"Количество выгруженных записей: {dtResult.Rows.Count}"); Logging.Comment($"Настройка процента наценки: {tbPrcn.Text}"); Logging.StopFirstLevel(); Nwuram.Framework.ToExcelNew.ExcelUnLoad report = new Nwuram.Framework.ToExcelNew.ExcelUnLoad("list-1"); int rIndex = 1; int maxMerge = 0; foreach (DataGridViewColumn col in dgvData.Columns) { if (col.Visible) { maxMerge++; } } report.Merge(rIndex, 1, rIndex, maxMerge); report.AddSingleValue("Проверка превышения процента наценки", rIndex, 1); report.SetCellAlignmentToCenter(rIndex, 1, rIndex, 1); report.SetFontBold(rIndex, 1, rIndex, 1); report.SetFontSize(rIndex, 1, rIndex, 1, 14); rIndex++; report.Merge(rIndex, 1, rIndex, 2); report.Merge(rIndex, 5, rIndex, 7); report.AddSingleValue("Дата: " + date.ToShortDateString(), rIndex, 1); report.AddSingleValue("Выгрузил: " + UserSettings.User.FullUsername, rIndex, 3); report.SetCellAlignmentToRight(rIndex, 3, rIndex, 3); rIndex++; string shotName = ""; if (Nwuram.Framework.Settings.Connection.ConnectionSettings.GetServer().ToLower().Contains("k21")) { shotName = "Косыгина 21"; } else { shotName = "Хошимина 14"; } report.Merge(rIndex, 1, rIndex, 2); report.Merge(rIndex, 3, rIndex, 4); report.Merge(rIndex, 5, rIndex, 7); report.AddSingleValue("Процент наценки: " + tbPrcn.Text, rIndex, 1); report.AddSingleValue("Магазин: " + shotName, rIndex, 3); report.AddSingleValue("Дата выгрузки: " + DateTime.Now.ToString(), rIndex, 5); report.SetCellAlignmentToRight(rIndex, 3, rIndex, 3); rIndex++; rIndex++; int cIndex = 0; foreach (DataGridViewColumn col in dgvData.Columns) { if (col.Visible) { cIndex++; report.AddSingleValue(col.HeaderText, rIndex, cIndex); } } report.SetBorders(rIndex, 1, rIndex, cIndex); report.SetCellAlignmentToCenter(rIndex, 1, rIndex, cIndex); report.SetWrapText(rIndex, 1, rIndex, cIndex); rIndex++; foreach (DataRowView row in dtResult.DefaultView) { cIndex = 0; foreach (DataGridViewColumn col in dgvData.Columns) { if (col.Visible) { cIndex++; report.AddSingleValue(row[col.DataPropertyName].ToString(), rIndex, cIndex); } } report.SetBorders(rIndex, 1, rIndex, cIndex); report.SetCellAlignmentToCenter(rIndex, 1, rIndex, cIndex); rIndex++; } report.SetColumnAutoSize(1, 1, rIndex, maxMerge); report.Show(); }
private async void BtPrint_Click(object sender, EventArgs e) { await Task.Factory.StartNew(() => { Config.DoOnUIThread(() => { blockers.SaveControlsEnabledState(this); blockers.SetControlsEnabled(this, false); //progressBar1.Visible = progressBar1.Enabled = true; fLoad = new Nwuram.Framework.UI.Forms.frmLoad(); fLoad.TopMost = false; fLoad.Owner = this; fLoad.TextWait = "Грузим отчётик!"; fLoad.Show(); }, this); //if (report == null) report = new Nwuram.Framework.ToExcelNew.ExcelUnLoad(); int indexRow = 1; int maxCol = 0; foreach (DataGridViewColumn col in dgvData.Columns) { if (col.Visible) { maxCol++; } } setWidthColumn(indexRow, 1, 13, report); setWidthColumn(indexRow, 2, 16, report); setWidthColumn(indexRow, 3, 25, report); setWidthColumn(indexRow, 4, 25, report); setWidthColumn(indexRow, 5, 17, report); setWidthColumn(indexRow, 6, 17, report); setWidthColumn(indexRow, 7, 20, report); report.Merge(indexRow, 1, indexRow, maxCol); report.AddSingleValue($"{this.Text}", indexRow, 1); report.SetCellAlignmentToJustify(indexRow, 1, indexRow, 1); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, 1); report.SetFontSize(indexRow, 1, indexRow, 1, 18); indexRow++; indexRow++; Config.DoOnUIThread(() => { report.Merge(indexRow, 1, indexRow, maxCol); report.AddSingleValue($"{label3.Text} {dtpStart.Value.ToShortDateString()} по {dtpEnd.Value.ToShortDateString()}", indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, maxCol); report.AddSingleValue($"{label5.Text}:{cmbDriver.Text}", indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, maxCol); report.AddSingleValue($"{label6.Text}:{cmbShop.Text}", indexRow, 1); indexRow++; if (tbNumber.Text.Length > 0 || tbFioMan.Text.Length > 0) { report.Merge(indexRow, 1, indexRow, maxCol); string str = "Фильтры: "; if (tbNumber.Text.Length > 0) { str += $"Номер маршрута: {tbNumber.Text};"; } if (tbFioMan.Text.Length > 0) { str += $"Водитель: {tbFioMan.Text};"; } report.AddSingleValue($"{str}", indexRow, 1); indexRow++; } report.Merge(indexRow, 1, indexRow, maxCol); report.AddSingleValue("Выгрузил: " + Nwuram.Framework.Settings.User.UserSettings.User.FullUsername, indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, maxCol); report.AddSingleValue("Дата выгрузки: " + DateTime.Now.ToString(), indexRow, 1); }, this); indexRow++; indexRow++; maxCol = 0; foreach (DataGridViewColumn col in dgvData.Columns) { if (col.Visible) { maxCol++; report.AddSingleValue(col.HeaderText, indexRow, maxCol); } } report.SetFontBold(indexRow, 1, indexRow, maxCol); report.SetBorders(indexRow, 1, indexRow, maxCol); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxCol); report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxCol); report.SetWrapText(indexRow, 1, indexRow, maxCol); indexRow++; foreach (DataRowView row in dtData.DefaultView) { maxCol = 0; foreach (DataGridViewColumn col in dgvData.Columns) { if (col.Visible) { maxCol++; setValueToCell(indexRow, maxCol, row[col.DataPropertyName]); } } report.SetBorders(indexRow, 1, indexRow, maxCol); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxCol); report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxCol); report.SetCellAlignmentToRight(indexRow, 5, indexRow, 7); indexRow++; } report.SetPageSetup(1, 9999, true); report.Show(); Config.DoOnUIThread(() => { blockers.RestoreControlEnabledState(this); fLoad.Dispose(); }, this); }); }
private async void BtPrint_Click(object sender, EventArgs e) { await Task.Factory.StartNew(() => { Config.DoOnUIThread(() => { blockers.SaveControlsEnabledState(this); blockers.SetControlsEnabled(this, false); //progressBar1.Visible = progressBar1.Enabled = true; fLoad = new Nwuram.Framework.UI.Forms.frmLoad(); fLoad.TopMost = false; fLoad.Owner = this; fLoad.TextWait = "Грузим отчётик!"; fLoad.Show(); }, this); //if (report == null) report = new Nwuram.Framework.ToExcelNew.ExcelUnLoad(); int indexRow = 1; int maxCol = 0; foreach (DataGridViewColumn col in dgvData.Columns) { if (col.Visible) { maxCol++; } } setWidthColumn(indexRow, 1, 29, report); setWidthColumn(indexRow, 2, 22, report); setWidthColumn(indexRow, 3, 25, report); setWidthColumn(indexRow, 4, 25, report); report.Merge(indexRow, 1, indexRow, maxCol); report.AddSingleValue($"{this.Text}", indexRow, 1); report.SetCellAlignmentToJustify(indexRow, 1, indexRow, 1); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, 1); report.SetFontSize(indexRow, 1, indexRow, 1, 18); indexRow++; indexRow++; Config.DoOnUIThread(() => { /* * report.Merge(indexRow, 1, indexRow, maxCol); * report.AddSingleValue($"{label5.Text}{cmbDeps.Text}", indexRow, 1); * indexRow++; * * report.Merge(indexRow, 1, indexRow, maxCol); * report.AddSingleValue($"{label3.Text}{cmbPost.Text}", indexRow, 1); * indexRow++; */ report.Merge(indexRow, 1, indexRow, maxCol); report.AddSingleValue("Выгрузил: " + Nwuram.Framework.Settings.User.UserSettings.User.FullUsername, indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, maxCol); report.AddSingleValue("Дата выгрузки: " + DateTime.Now.ToString(), indexRow, 1); }, this); indexRow++; indexRow++; maxCol = 0; foreach (DataGridViewColumn col in dgvData.Columns) { if (col.Visible) { maxCol++; report.AddSingleValue(col.HeaderText, indexRow, maxCol); } } report.SetFontBold(indexRow, 1, indexRow, maxCol); report.SetBorders(indexRow, 1, indexRow, maxCol); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxCol); report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxCol); report.SetWrapText(indexRow, 1, indexRow, maxCol); indexRow++; foreach (DataRowView row in dtData.DefaultView) { maxCol = 0; foreach (DataGridViewColumn col in dgvData.Columns) { if (col.Visible) { maxCol++; setValueToCell(indexRow, maxCol, row[col.DataPropertyName]); } } report.SetBorders(indexRow, 1, indexRow, maxCol); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxCol); report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxCol); report.SetCellAlignmentToRight(indexRow, 3, indexRow, 4); indexRow++; } report.SetPageSetup(1, 9999, true); report.Show(); Config.DoOnUIThread(() => { blockers.RestoreControlEnabledState(this); fLoad.Dispose(); }, this); }); }
private void btPrint_Click(object sender, EventArgs e) { Nwuram.Framework.ToExcelNew.ExcelUnLoad report = new Nwuram.Framework.ToExcelNew.ExcelUnLoad(); int indexRow = 1; int maxColumns = 0; foreach (DataGridViewColumn col in dgvData.Columns) { if (col.Visible) { maxColumns++; if (col.Name.Equals("nameTenant")) { setWidthColumn(indexRow, maxColumns, 20, report); } if (col.Name.Equals("cTypeContract")) { setWidthColumn(indexRow, maxColumns, 21, report); } if (col.Name.Equals("cAgreements")) { setWidthColumn(indexRow, maxColumns, 22, report); } if (col.Name.Equals("cPeriodCredit")) { setWidthColumn(indexRow, maxColumns, 22, report); } if (col.Name.Equals("cSummaCredit")) { setWidthColumn(indexRow, maxColumns, 18, report); } if (col.Name.Equals("cDatePay")) { setWidthColumn(indexRow, maxColumns, 15, report); } if (col.Name.Equals("cSumma")) { setWidthColumn(indexRow, maxColumns, 16, report); } if (col.Name.Equals("cCountDaysCredit")) { setWidthColumn(indexRow, maxColumns, 18, report); } if (col.Name.Equals("cPrcPenalty")) { setWidthColumn(indexRow, maxColumns, 15, report); } if (col.Name.Equals("cSummaPenalty")) { setWidthColumn(indexRow, maxColumns, 15, report); } if (col.Name.Equals("cItogPenalty")) { setWidthColumn(indexRow, maxColumns, 15, report); } } } #region "Head" report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue("Отчёт по начислению пени", indexRow, 1); report.SetFontBold(indexRow, 1, indexRow, 1); report.SetFontSize(indexRow, 1, indexRow, 1, 16); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, 1); indexRow++; indexRow++; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue($"Период начисления {cmbPeriodCredit.Text}", indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue($"Объект аренды: {cmbObject.Text}", indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue($"Тип договора: {cmbTypeContract.Text}", indexRow, 1); indexRow++; if (tbAgreement.Text.Trim().Length > 0 || tbTenant.Text.Trim().Length > 0) { report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue($"Фильтры: " + $"{(tbTenant.Text.Trim().Length == 0 ? "" : "Арендатор: " + tbTenant.Text.Trim())} " + $"{(tbAgreement.Text.Trim().Length == 0 ? "" : "Номер договора: " + tbAgreement.Text.Trim())}", indexRow, 1); indexRow++; } report.Merge(indexRow, 1, indexRow, 6); report.AddSingleValue("Выгрузил: " + Nwuram.Framework.Settings.User.UserSettings.User.FullUsername, indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, 6); report.AddSingleValue("Дата выгрузки: " + DateTime.Now.ToString(), indexRow, 1); indexRow++; indexRow++; #endregion int indexCol = 0; foreach (DataGridViewColumn col in dgvData.Columns) { if (col.Visible) { indexCol++; report.AddSingleValue(col.HeaderText, indexRow, indexCol); } } report.SetFontBold(indexRow, 1, indexRow, maxColumns); report.SetBorders(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns); indexRow++; indexCol = 0; int indexStartRow = indexRow; //foreach (DataGridViewRow row in dgvData.Rows) foreach (DataGridViewColumn col in dgvData.Columns) { if (col.Visible) { indexCol++; indexRow = indexStartRow; int startMergRow = indexRow; object tmpValue = null; int preId = 0; //foreach (DataGridViewColumn col in dgvData.Columns) foreach (DataGridViewRow row in dgvData.Rows) { if ((int)dtData.DefaultView[row.Index]["id_StatusPenalty"] == 3) { report.SetCellColor(indexRow, 1, indexRow, maxColumns, panel2.BackColor); } report.SetWrapText(indexRow, indexCol, indexRow, indexCol); if (new List <int>() { nameTenant.Index, cTypeContract.Index, cAgreements.Index, cPeriodCredit.Index, cItogPenalty.Index }.Contains(col.Index)) { if (indexRow == indexStartRow) { tmpValue = row.Cells[col.Index].Value; preId = (int)dtData.DefaultView[row.Index]["id"]; } else if (indexRow - indexStartRow == dgvData.Rows.Count - 1) { report.Merge(startMergRow, indexCol, indexRow, indexCol); if (tmpValue is DateTime) { report.AddSingleValue(((DateTime)tmpValue).ToShortDateString(), startMergRow, indexCol); } else { report.AddSingleValue(tmpValue.ToString(), startMergRow, indexCol); } } else if (indexRow != indexStartRow) { if (!tmpValue.Equals(row.Cells[col.Index].Value) || preId != (int)dtData.DefaultView[row.Index]["id"]) { report.Merge(startMergRow, indexCol, indexRow - 1, indexCol); if (tmpValue is DateTime) { report.AddSingleValue(((DateTime)tmpValue).ToShortDateString(), startMergRow, indexCol); } else { report.AddSingleValue(tmpValue.ToString(), startMergRow, indexCol); } startMergRow = indexRow; tmpValue = row.Cells[col.Index].Value; preId = (int)dtData.DefaultView[row.Index]["id"]; } } } else { if (row.Cells[col.Index].Value is DateTime) { report.AddSingleValue(((DateTime)row.Cells[col.Index].Value).ToShortDateString(), indexRow, indexCol); } else { report.AddSingleValue(row.Cells[col.Index].Value.ToString(), indexRow, indexCol); } } report.SetBorders(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns); indexRow++; } } } report.SetCellColor(indexRow, 1, indexRow, 1, panel2.BackColor); report.Merge(indexRow, 2, indexRow, 4); report.AddSingleValue(chbCongressAccept.Text, indexRow, 2); report.SetFontBold(indexRow, maxColumns - 1, indexRow, maxColumns); report.SetBorders(indexRow, maxColumns - 1, indexRow, maxColumns); report.SetCellAlignmentToRight(indexRow, maxColumns - 1, indexRow, maxColumns); report.AddSingleValue("Итого", indexRow, maxColumns - 1); report.AddSingleValue(tbItogPenalty.Text, indexRow, maxColumns); report.Show(); }
private async void btnPrint_Click(object sender, EventArgs e) { if (!chbCancel.Checked && !chbComplete.Checked && !chbЕmployesОrder.Checked) { return; } int id_Shop = (int)cmbShop.SelectedValue; var outer = Task.Factory.StartNew(() => // внешняя задача { Config.DoOnUIThread(() => { blockers.SaveControlsEnabledState(this); blockers.SetControlsEnabled(this, false); //progressBar1.Visible = progressBar1.Enabled = true; fLoad = new Nwuram.Framework.UI.Forms.frmLoad(); fLoad.TopMost = false; fLoad.Owner = this; fLoad.TextWait = "Грузим отчётик!"; fLoad.Show(); }, this); Nwuram.Framework.ToExcelNew.ExcelUnLoad report = new Nwuram.Framework.ToExcelNew.ExcelUnLoad(); bool isShow = false; if (chbComplete.Checked) { DataTable dtDataStatus3 = Config.connect.getReportData(dtpStart.Value, dtpEnd.Value, 3, id_Shop); DataTable dtDataStatus3Body = (id_Shop == 1 ? Config.connect : Config.hCntSecond).getSumNotesOrderWithRCena(dtpStart.Value, dtpEnd.Value, 3, id_Shop); if (dtDataStatus3 != null && dtDataStatus3.Rows.Count > 0) { isShow = true; report.changeNameTab("Выполненные"); decimal sumOrder = 0, sumNote = 0, SummaDelivery = 0, sumPackage = 0, DeliveryCost = 0, valueOst = 0, valueDelta = 0; int indexRow = 1; int maxColumns = 12; setWidthColumn(indexRow, 1, 6, report); setWidthColumn(indexRow, 2, 10, report); setWidthColumn(indexRow, 3, 17, report); setWidthColumn(indexRow, 4, 11, report); setWidthColumn(indexRow, 5, 16, report); setWidthColumn(indexRow, 6, 22, report); setWidthColumn(indexRow, 7, 16, report); setWidthColumn(indexRow, 8, 12, report); setWidthColumn(indexRow, 9, 14, report); setWidthColumn(indexRow, 10, 16, report); setWidthColumn(indexRow, 11, 16, report); setWidthColumn(indexRow, 12, 13, report); #region "Head" report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue($"Отчёт об выполненных заказах с {dtpStart.Value.ToShortDateString()} по {dtpEnd.Value.ToShortDateString()}", indexRow, 1); report.SetFontBold(indexRow, 1, indexRow, 1); report.SetFontSize(indexRow, 1, indexRow, 1, 16); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, 1); indexRow++; indexRow++; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue("Выгрузил: " + Nwuram.Framework.Settings.User.UserSettings.User.FullUsername, indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue("Дата выгрузки: " + DateTime.Now.ToString(), indexRow, 1); indexRow++; indexRow++; #endregion report.AddSingleValue("№ п/п", indexRow, 1); report.AddSingleValue("Номер заказа", indexRow, 2); report.AddSingleValue("Сумма заказа", indexRow, 3); report.AddSingleValue("Дата доставки", indexRow, 4); report.AddSingleValue("Сумма чека", indexRow, 5); report.AddSingleValue("№ чека", indexRow, 6); report.AddSingleValue("Стоимость доставки", indexRow, 7); report.AddSingleValue("Кол-во пакетов", indexRow, 8); report.AddSingleValue("Стоимость пакетов", indexRow, 9); report.AddSingleValue("Затраты на доставку", indexRow, 10); report.AddSingleValue("Остаток по доставке", indexRow, 11); report.AddSingleValue("∆ по чеку", indexRow, 12); report.SetFontBold(indexRow, 1, indexRow, maxColumns); report.SetBorders(indexRow, 1, indexRow, maxColumns); report.SetWrapText(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns); indexRow++; int npp = 1; var groupOrder = dtDataStatus3.AsEnumerable() .GroupBy(r => new { id_tOrders = r.Field <int>("id_tOrders") }) .Select(g => new { g.Key.id_tOrders, sumNote = g.Sum(r => r.Field <decimal>("sumNote")) }); foreach (var g in groupOrder) { EnumerableRowCollection <DataRow> rowCollect = dtDataStatus3.AsEnumerable().Where(r => r.Field <int>("id_tOrders") == g.id_tOrders); DataRow row = rowCollect.First(); int startRow = indexRow; report.SetWrapText(indexRow, 1, indexRow + rowCollect.Count() - 1, maxColumns); report.Merge(indexRow, 1, indexRow + rowCollect.Count() - 1, 1); report.Merge(indexRow, 2, indexRow + rowCollect.Count() - 1, 2); report.Merge(indexRow, 3, indexRow + rowCollect.Count() - 1, 3); report.Merge(indexRow, 4, indexRow + rowCollect.Count() - 1, 4); report.Merge(indexRow, 5, indexRow + rowCollect.Count() - 1, 5); report.Merge(indexRow, 7, indexRow + rowCollect.Count() - 1, 7); report.Merge(indexRow, 8, indexRow + rowCollect.Count() - 1, 8); report.Merge(indexRow, 9, indexRow + rowCollect.Count() - 1, 9); report.Merge(indexRow, 10, indexRow + rowCollect.Count() - 1, 10); report.Merge(indexRow, 11, indexRow + rowCollect.Count() - 1, 11); report.Merge(indexRow, 12, indexRow + rowCollect.Count() - 1, 12); report.AddSingleValue(npp.ToString(), indexRow, 1); report.AddSingleValue(row["OrderNumber"].ToString(), indexRow, 2); report.AddSingleValueObject(row["sumOrder"], indexRow, 3); report.SetFormat(indexRow, 3, indexRow, 3, "0.00"); report.AddSingleValue(((DateTime)row["DeliveryDate"]).ToShortDateString(), indexRow, 4); report.AddSingleValueObject(g.sumNote, indexRow, 5); report.SetFormat(indexRow, 5, indexRow, 5, "0.00"); report.AddSingleValueObject(row["SummaDelivery"], indexRow, 7); report.SetFormat(indexRow, 7, indexRow, 7, "0.00"); report.AddSingleValueObject(row["CountPackage"], indexRow, 8); report.SetFormat(indexRow, 8, indexRow, 8, "0.00"); report.AddSingleValueObject(row["sumPackage"], indexRow, 9); report.SetFormat(indexRow, 9, indexRow, 9, "0.00"); report.AddSingleValueObject(row["DeliveryCost"], indexRow, 10); report.SetFormat(indexRow, 10, indexRow, 10, "0.00"); sumOrder += (decimal)row["sumOrder"]; sumNote += g.sumNote; SummaDelivery += (decimal)row["SummaDelivery"]; sumPackage += (decimal)row["sumPackage"]; DeliveryCost += (decimal)row["DeliveryCost"]; decimal value = (decimal)row["SummaDelivery"] - (decimal)row["sumPackage"] - (decimal)row["DeliveryCost"]; valueOst += value; report.AddSingleValueObject(value, indexRow, 11); report.SetFormat(indexRow, 11, indexRow, 11, "0.00"); if (dtDataStatus3Body != null) { decimal sum = dtDataStatus3Body.AsEnumerable().Where(r => r.Field <int>("id_tOrders") == (int)row["id_tOrders"]).Sum(r => r.Field <decimal>("resultSum")); report.AddSingleValueObject(g.sumNote - sum, indexRow, 12); valueDelta += g.sumNote - sum; } else { report.AddSingleValueObject(0, indexRow, 12); } report.SetFormat(indexRow, 12, indexRow, 12, "0.00"); foreach (DataRow rowSelect in rowCollect) { //report.AddSingleValueObject(rowSelect["sumNote"], indexRow, 5); //report.SetFormat(indexRow, 5, indexRow, 5, "0.00"); report.AddSingleValue($"Касса:{rowSelect["KassNumber"]} Чек:{rowSelect["CheckNumber"]}", indexRow, 6); indexRow++; } report.SetBorders(startRow, 1, indexRow - 1, maxColumns); report.SetCellAlignmentToCenter(startRow, 1, indexRow - 1, maxColumns); report.SetCellAlignmentToJustify(startRow, 1, indexRow - 1, maxColumns); //indexRow++; npp++; } report.SetFormat(indexRow, 2, indexRow, maxColumns, "0.00"); report.AddSingleValue($"Итого:", indexRow, 1); report.AddSingleValueObject(sumOrder, indexRow, 3); report.AddSingleValueObject(sumNote, indexRow, 5); report.AddSingleValueObject(SummaDelivery, indexRow, 7); report.AddSingleValueObject(sumPackage, indexRow, 9); report.AddSingleValueObject(DeliveryCost, indexRow, 10); report.AddSingleValueObject(valueOst, indexRow, 11); report.AddSingleValueObject(valueDelta, indexRow, 12); report.SetBorders(indexRow, 1, indexRow, maxColumns); report.SetFontBold(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns); } } if (chbCancel.Checked) { DataTable dtData = Config.connect.getReportData(dtpStart.Value, dtpEnd.Value, 4, id_Shop); if (dtData != null && dtData.Rows.Count > 0) { if (!isShow) { isShow = true; report.changeNameTab("Отменённые"); } else { report.GoToNextSheet("Отменённые"); } int indexRow = 1; int maxColumns = 9; decimal sumOrder = 0; setWidthColumn(indexRow, 1, 9, report); setWidthColumn(indexRow, 2, 20, report); setWidthColumn(indexRow, 3, 20, report); setWidthColumn(indexRow, 4, 16, report); setWidthColumn(indexRow, 5, 20, report); setWidthColumn(indexRow, 6, 18, report); setWidthColumn(indexRow, 7, 16, report); setWidthColumn(indexRow, 8, 16, report); setWidthColumn(indexRow, 9, 40, report); #region "Head" report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue($"Отчёт об отменённых заказах с {dtpStart.Value.ToShortDateString()} по {dtpEnd.Value.ToShortDateString()}", indexRow, 1); report.SetFontBold(indexRow, 1, indexRow, 1); report.SetFontSize(indexRow, 1, indexRow, 1, 16); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, 1); indexRow++; indexRow++; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue("Выгрузил: " + Nwuram.Framework.Settings.User.UserSettings.User.FullUsername, indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue("Дата выгрузки: " + DateTime.Now.ToString(), indexRow, 1); indexRow++; indexRow++; #endregion report.AddSingleValue("№ п/п", indexRow, 1); report.AddSingleValue("ФИО", indexRow, 2); report.AddSingleValue("Адрес", indexRow, 3); report.AddSingleValue("Телефон", indexRow, 4); report.AddSingleValue("e-mail", indexRow, 5); report.AddSingleValue("Номер заказа", indexRow, 6); report.AddSingleValue("Дата заказа", indexRow, 7); report.AddSingleValue("Сумма заказа", indexRow, 8); report.AddSingleValue("Комментарий об отмене заказа", indexRow, 9); report.SetFontBold(indexRow, 1, indexRow, maxColumns); report.SetBorders(indexRow, 1, indexRow, maxColumns); report.SetWrapText(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns); indexRow++; int npp = 1; foreach (DataRowView row in dtData.DefaultView) { report.SetWrapText(indexRow, 1, indexRow, maxColumns); report.AddSingleValue(npp.ToString(), indexRow, 1); report.AddSingleValue(row["FIO"].ToString(), indexRow, 2); report.AddSingleValue(row["Address"].ToString(), indexRow, 3); report.AddSingleValue(row["Phone"].ToString(), indexRow, 4); report.AddSingleValue(row["Email"].ToString(), indexRow, 5); report.AddSingleValue(row["OrderNumber"].ToString(), indexRow, 6); report.AddSingleValue(((DateTime)row["DateOrder"]).ToShortDateString(), indexRow, 7); report.AddSingleValueObject(row["sumOrder"], indexRow, 8); report.SetFormat(indexRow, 4, indexRow, 4, "0.00"); report.AddSingleValue(row["Comment"].ToString(), indexRow, 9); sumOrder += (decimal)row["sumOrder"]; report.SetBorders(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns); indexRow++; npp++; } report.SetFormat(indexRow, 2, indexRow, maxColumns, "0.00"); report.AddSingleValue($"Итого:", indexRow, 1); report.AddSingleValueObject(sumOrder, indexRow, 8); report.SetBorders(indexRow, 1, indexRow, maxColumns); report.SetFontBold(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns); } } if (chbЕmployesОrder.Checked) { DataTable dtData = Config.connect.reportЕmployesОrder(dtpStart.Value, dtpEnd.Value, id_Shop); if (dtData != null && dtData.Rows.Count > 0) { if (!isShow) { isShow = true; report.changeNameTab("Отчет по сотрудникам"); } else { report.GoToNextSheet("Отчет по сотрудникам"); } int indexRow = 1; int maxColumns = 8; decimal sumOrder = 0; setWidthColumn(indexRow, 1, 9, report); setWidthColumn(indexRow, 2, 25, report); setWidthColumn(indexRow, 3, 16, report); setWidthColumn(indexRow, 4, 16, report); setWidthColumn(indexRow, 5, 16, report); setWidthColumn(indexRow, 6, 12, report); setWidthColumn(indexRow, 7, 12, report); setWidthColumn(indexRow, 8, 12, report); #region "Head" report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue($"Отчет по сотрудникам с {dtpStart.Value.ToShortDateString()} по {dtpEnd.Value.ToShortDateString()}", indexRow, 1); report.SetFontBold(indexRow, 1, indexRow, 1); report.SetFontSize(indexRow, 1, indexRow, 1, 16); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, 1); indexRow++; indexRow++; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue("Выгрузил: " + Nwuram.Framework.Settings.User.UserSettings.User.FullUsername, indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue("Дата выгрузки: " + DateTime.Now.ToString(), indexRow, 1); indexRow++; indexRow++; #endregion report.AddSingleValue("№ п/п", indexRow, 1); report.AddSingleValue("ФИО сотрудника", indexRow, 2); report.AddSingleValue("Дата заказа", indexRow, 3); report.AddSingleValue("Номер заказа", indexRow, 4); report.AddSingleValue("Позиций в заказе", indexRow, 5); report.AddSingleValue("Сборщик", indexRow, 6); report.AddSingleValue("Пробитие", indexRow, 7); report.AddSingleValue("Доставщик", indexRow, 8); report.SetFontBold(indexRow, 1, indexRow, maxColumns); report.SetBorders(indexRow, 1, indexRow, maxColumns); report.SetWrapText(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns); indexRow++; var groupCountCollector = dtData.AsEnumerable() .Where(r => r.Field <bool>("Collector")) .GroupBy(g => new { OrderNumber = g.Field <int>("OrderNumber") }) .Select(s => new { s.Key.OrderNumber, countCollector = s.Count() }); var groupKadr = dtData.AsEnumerable().GroupBy(r => new { id_Kadr = r.Field <int>("id_Kadr"), FIO = r.Field <string>("FIO") }).Select(s => new { s.Key.id_Kadr, s.Key.FIO }); int npp = 1; Color cCompleted = Color.FromArgb(244, 255, 96); foreach (var gKadr in groupKadr) { EnumerableRowCollection <DataRow> rowCollect = dtData.AsEnumerable().Where(r => r.Field <int>("id_Kadr") == gKadr.id_Kadr).OrderBy(r => r.Field <int>("OrderNumber")); report.Merge(indexRow, 2, indexRow + rowCollect.Count() - 1, 2); setValueToCell(indexRow, 2, gKadr.FIO, report); var groupDate = rowCollect.AsEnumerable().GroupBy(g => new { DeliveryDate = g.Field <DateTime>("DeliveryDate") }).Select(s => new { s.Key.DeliveryDate }); decimal countCollector = 0; int countKassCheck = 0; int countDelivery = 0; foreach (var gDate in groupDate) { EnumerableRowCollection <DataRow> rowCollectDate = rowCollect.Where(r => r.Field <DateTime>("DeliveryDate") == gDate.DeliveryDate); report.Merge(indexRow, 3, indexRow + rowCollectDate.Count() - 1, 3); setValueToCell(indexRow, 3, gDate.DeliveryDate, report); foreach (DataRow row in rowCollectDate) { report.SetWrapText(indexRow, 1, indexRow, maxColumns); setValueToCell(indexRow, 1, npp, report); setValueToCell(indexRow, 4, row["OrderNumber"], report); setValueToCell(indexRow, 5, row["countRow"], report); if ((bool)row["Collector"]) { decimal valResult = Convert.ToDecimal((int)row["countRow"]) / Convert.ToDecimal(groupCountCollector.Where(r => r.OrderNumber == (int)row["OrderNumber"]).First().countCollector); countCollector += valResult; setValueToCell(indexRow, 6, valResult, report); } if ((bool)row["KassCheck"]) { setValueToCell(indexRow, 7, row["KassCheck"], report); countKassCheck++; } if ((bool)row["Delivery"]) { setValueToCell(indexRow, 8, row["Delivery"], report); countDelivery++; } if (!(bool)row["isCompleted"]) { report.SetCellColor(indexRow, 4, indexRow, maxColumns, cCompleted); } report.SetBorders(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns); indexRow++; npp++; } } report.Merge(indexRow, 1, indexRow, 5); setValueToCell(indexRow, 1, $"Итого:", report); setValueToCell(indexRow, 6, countCollector, report); setValueToCell(indexRow, 7, countKassCheck, report); setValueToCell(indexRow, 8, countDelivery, report); report.SetBorders(indexRow, 1, indexRow, maxColumns); report.SetFontBold(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToRight(indexRow, 1, indexRow, 1); //report.SetCellAlignmentToRight(indexRow, 6, indexRow, maxColumns); indexRow++; } report.SetCellColor(indexRow + 1, 1, indexRow + 1, 1, cCompleted); setValueToCell(indexRow + 1, 2, "-заказ не выполнен", report); } } Config.DoOnUIThread(() => { blockers.RestoreControlEnabledState(this); fLoad.Dispose(); }, this); if (isShow) { report.SetPageSetup(1, 9999, true); report.Show(); } else { MessageBox.Show("Нет данных для отчёта", "Выгрузка отчёта", MessageBoxButtons.OK, MessageBoxIcon.Information); } #region логирование Logging.StartFirstLevel(79); Logging.Comment("Произведена выгрузка в Excel отчета по работе онлайн-магазина"); Logging.Comment($"Период с: {dtpStart.Value.ToShortDateString()} по: {dtpEnd.Value.ToShortDateString()}"); Logging.Comment($"Отчет о выполненых заказах: {(chbComplete.Checked ? "Да" : "Нет")}"); Logging.Comment($"Отчет об отмененных заказах: {(chbCancel.Checked ? "Да" : "Нет")}"); Logging.Comment("Завершение выгрузки отчета по работе онлайн магазина"); Logging.StopFirstLevel(); #endregion }); }
public static void createReport(DataTable dtReport, string _nameObject, string status, DateTime _startDate) { Nwuram.Framework.ToExcelNew.ExcelUnLoad report = new Nwuram.Framework.ToExcelNew.ExcelUnLoad(); int indexRow = 1; Control[] cnt = new frmAddReportMonth().Controls.Find("dgvData", false); DataGridView dgvData = (DataGridView)cnt[0]; int maxColumns = 0; foreach (DataGridViewColumn col in dgvData.Columns) { if (col.Visible) { maxColumns++; if (col.Name.Equals("nameLandLord")) { setWidthColumn(indexRow, maxColumns, 20, report); } if (col.Name.Equals("nameTenant")) { setWidthColumn(indexRow, maxColumns, 20, report); } if (col.Name.Equals("TypeContract")) { setWidthColumn(indexRow, maxColumns, 13, report); } if (col.Name.Equals("cAgreements")) { setWidthColumn(indexRow, maxColumns, 22, report); } if (col.Name.Equals("timeLimit")) { setWidthColumn(indexRow, maxColumns, 14, report); } if (col.Name.Equals("cBuild")) { setWidthColumn(indexRow, maxColumns, 9, report); } if (col.Name.Equals("cFloor")) { setWidthColumn(indexRow, maxColumns, 10, report); } if (col.Name.Equals("cSection")) { setWidthColumn(indexRow, maxColumns, 10, report); } if (col.Name.Equals("cSquart")) { setWidthColumn(indexRow, maxColumns, 12, report); } if (col.Name.Equals("Cost_of_Meter")) { setWidthColumn(indexRow, maxColumns, 14, report); } if (col.Name.Equals("cSumDog")) { setWidthColumn(indexRow, maxColumns, 19, report); } if (col.Name.Equals("cDiscount")) { setWidthColumn(indexRow, maxColumns, 10, report); } if (col.Name.Equals("cPlane")) { setWidthColumn(indexRow, maxColumns, 20, report); } //Console.WriteLine(col.Name); } } #region "Head" report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue("Ежемесячный отчёт", indexRow, 1); report.SetFontBold(indexRow, 1, indexRow, 1); report.SetFontSize(indexRow, 1, indexRow, 1, 16); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, 1); indexRow++; indexRow++; string[] monthNames = DateTimeFormatInfo.CurrentInfo.MonthNames; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue($"Период ежемесячного отчёта {monthNames[_startDate.Month-1]}.{_startDate.Year}", indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue($"Объект аренды: {_nameObject}", indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue($"Статус: {status}", indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue("Выгрузил: " + Nwuram.Framework.Settings.User.UserSettings.User.FullUsername, indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue("Дата выгрузки: " + DateTime.Now.ToString(), indexRow, 1); indexRow++; indexRow++; #endregion int indexCol = 0; foreach (DataGridViewColumn col in dgvData.Columns) { if (col.Visible) { indexCol++; report.AddSingleValue(col.HeaderText, indexRow, indexCol); } } report.SetFontBold(indexRow, 1, indexRow, maxColumns); report.SetBorders(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns); indexRow++; var groupByPost = dtReport.DefaultView.ToTable().AsEnumerable().GroupBy(r => new { id = r.Field <int>("id_Landlord") }) .Select(s => new { s.Key.id, sumPlan = s.Sum(r => r.Field <decimal>("plane")) }); decimal maxResultPlane = 0; foreach (var gPost in groupByPost) { EnumerableRowCollection <DataRow> rowCollect = dtReport.DefaultView.ToTable().AsEnumerable().Where(r => r.Field <int>("id_Landlord") == gPost.id); int startMergRow = indexRow; foreach (DataRow row in rowCollect) { indexCol = 1; report.SetWrapText(indexRow, indexCol, indexRow, maxColumns); foreach (DataGridViewColumn col in dgvData.Columns) { if (col.Visible) { if (new List <string>() { "nameLandLord" }.Contains(col.Name)) { indexCol++; continue; } if (row[col.DataPropertyName] is DateTime) { report.AddSingleValue(((DateTime)row[col.DataPropertyName]).ToShortDateString(), indexRow, indexCol); } else if (row[col.DataPropertyName] is decimal) { report.AddSingleValueObject(row[col.DataPropertyName], indexRow, indexCol); report.SetFormat(indexRow, indexCol, indexRow, indexCol, "0.00"); } else { report.AddSingleValue(row[col.DataPropertyName].ToString(), indexRow, indexCol); } indexCol++; } } report.SetBorders(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns); indexRow++; } indexCol = 1; foreach (DataGridViewColumn col in dgvData.Columns) { if (new List <string>() { "nameLandLord" }.Contains(col.Name)) { report.Merge(startMergRow, indexCol, indexRow - 1, indexCol); if (rowCollect.First()[col.DataPropertyName] is DateTime) { report.AddSingleValue(((DateTime)rowCollect.First()[col.DataPropertyName]).ToShortDateString(), startMergRow, indexCol); } else if (rowCollect.First()[col.DataPropertyName] is decimal) { report.AddSingleValueObject(rowCollect.First()[col.DataPropertyName], startMergRow, indexCol); report.SetFormat(startMergRow, indexCol, startMergRow, indexCol, "0.00"); } else { report.AddSingleValue(rowCollect.First()[col.DataPropertyName].ToString(), startMergRow, indexCol); } } else if (new List <string>() { "cPlane" }.Contains(col.Name)) { report.AddSingleValueObject(gPost.sumPlan, indexRow, indexCol); report.SetFormat(indexRow, indexCol, indexRow, indexCol, "0.00"); report.Merge(indexRow, 1, indexRow, indexCol - 1); report.AddSingleValue("Итого:", indexRow, 1); report.SetCellAlignmentToRight(indexRow, 1, indexRow, indexCol - 1); indexRow++; } indexCol++; } maxResultPlane += gPost.sumPlan; } report.AddSingleValueObject(maxResultPlane, indexRow, maxColumns); report.SetFormat(indexRow, maxColumns, indexRow, maxColumns, "0.00"); report.Merge(indexRow, 1, indexRow, maxColumns - 1); report.AddSingleValue("Итого:", indexRow, 1); report.SetCellAlignmentToRight(indexRow, 1, indexRow, maxColumns - 1); report.SetFontBold(indexRow, 1, indexRow, maxColumns); indexRow++; report.Show(); }
public static void createReport(DataTable dtReport, string _nameObject, string status, DateTime _startDate) { Nwuram.Framework.ToExcelNew.ExcelUnLoad report = new Nwuram.Framework.ToExcelNew.ExcelUnLoad(); int indexRow = 1; List <string> listColumnsSum = new List <string>() { "preCredit", "preOverPayment", "prePlan", "EndPlan", "Penalty", "OtherPayments", "ultraResult", "Included", "Credit", "OverPayment" }; List <string> listColumnGroup = new List <string>() { "nameLandLord" }; Dictionary <string, int> dicColumnNameForIndex = new Dictionary <string, int>(); Control[] cnt = new frmAddReportPlane().Controls.Find("dgvData", false); DataGridView dgvData = (DataGridView)cnt[0]; int maxColumns = 0; bool isAddItog = false; foreach (DataGridViewColumn col in dgvData.Columns) { if (col.Visible) { maxColumns++; if (col.Name.Equals("nameLandLord")) { setWidthColumn(indexRow, maxColumns, 20, report); } if (col.Name.Equals("nameTenant")) { setWidthColumn(indexRow, maxColumns, 20, report); } if (col.Name.Equals("TypeContract")) { setWidthColumn(indexRow, maxColumns, 13, report); } if (col.Name.Equals("cAgreements")) { setWidthColumn(indexRow, maxColumns, 22, report); } if (col.Name.Equals("timeLimit")) { setWidthColumn(indexRow, maxColumns, 14, report); } if (col.Name.Equals("cBuild")) { setWidthColumn(indexRow, maxColumns, 9, report); } if (col.Name.Equals("cFloor")) { setWidthColumn(indexRow, maxColumns, 10, report); } if (col.Name.Equals("cSection")) { setWidthColumn(indexRow, maxColumns, 10, report); } if (col.Name.Equals("cSquart")) { setWidthColumn(indexRow, maxColumns, 12, report); } if (col.Name.Equals("Cost_of_Meter")) { setWidthColumn(indexRow, maxColumns, 14, report); } if (col.Name.Equals("cSumDog")) { setWidthColumn(indexRow, maxColumns, 19, report); } if (col.Name.Equals("cDiscount")) { setWidthColumn(indexRow, maxColumns, 10, report); } if (col.Name.Equals("cPlane")) { setWidthColumn(indexRow, maxColumns, 20, report); } //Console.WriteLine(col.Name); dicColumnNameForIndex.Add(col.Name, maxColumns); } } #region "Head" report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue("План отчёт", indexRow, 1); report.SetFontBold(indexRow, 1, indexRow, 1); report.SetFontSize(indexRow, 1, indexRow, 1, 16); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, 1); indexRow++; indexRow++; string[] monthNames = DateTimeFormatInfo.CurrentInfo.MonthNames; report.Merge(indexRow, 1, indexRow, maxColumns); //<<<<<<< HEAD report.AddSingleValue($"Период план-отчёта {monthNames[_startDate.Month-1]}.{_startDate.Year}", indexRow, 1); //======= // report.AddSingleValue($"Период ежемесячного отчёта {monthNames[_startDate.Month-1]}.{_startDate.Year}", indexRow, 1); //>>>>>>> 5b40c2b8d571ec7b2bfd3ee230bb62ce5596e5b9 indexRow++; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue($"Объект аренды: {_nameObject}", indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue($"Статус: {status}", indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue("Выгрузил: " + Nwuram.Framework.Settings.User.UserSettings.User.FullUsername, indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue("Дата выгрузки: " + DateTime.Now.ToString(), indexRow, 1); indexRow++; indexRow++; #endregion int indexCol = 0; foreach (DataGridViewColumn col in dgvData.Columns) { if (col.Visible) { indexCol++; report.AddSingleValue(col.HeaderText, indexRow, indexCol); } } report.SetFontBold(indexRow, 1, indexRow, maxColumns); report.SetBorders(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns); indexRow++; var groupByPost = dtReport.DefaultView.ToTable().AsEnumerable().GroupBy(r => new { id = r.Field <int>("id_Landlord") }) .Select(s => new { s.Key.id, preCredit = s.Sum(r => r.Field <decimal>("preCredit")), preOverPayment = s.Sum(r => r.Field <decimal>("preOverPayment")), prePlan = s.Sum(r => r.Field <decimal>("prePlan")), EndPlan = s.Sum(r => r.Field <decimal>("EndPlan")), Penalty = s.Sum(r => r.Field <decimal>("Penalty")), OtherPayments = s.Sum(r => r.Field <decimal>("OtherPayments")), ultraResult = s.Sum(r => r.Field <decimal>("ultraResult")), Included = s.Sum(r => r.Field <decimal>("Included")), Credit = s.Sum(r => r.Field <decimal>("Credit")), OverPayment = s.Sum(r => r.Field <decimal>("OverPayment")) }); decimal maxResultPlane = 0; foreach (var gPost in groupByPost) { EnumerableRowCollection <DataRow> rowCollect = dtReport.DefaultView.ToTable().AsEnumerable().Where(r => r.Field <int>("id_Landlord") == gPost.id); int startMergRow = indexRow; foreach (DataRow row in rowCollect) { indexCol = 1; report.SetWrapText(indexRow, indexCol, indexRow, maxColumns); foreach (DataGridViewColumn col in dgvData.Columns) { if (col.Visible) { if (new List <string>() { "nameLandLord" }.Contains(col.Name)) { indexCol++; continue; } if (row[col.DataPropertyName] is DateTime) { report.AddSingleValue(((DateTime)row[col.DataPropertyName]).ToShortDateString(), indexRow, indexCol); } else if (row[col.DataPropertyName] is decimal) { report.AddSingleValueObject(row[col.DataPropertyName], indexRow, indexCol); report.SetFormat(indexRow, indexCol, indexRow, indexCol, "0.00"); } else { report.AddSingleValue(row[col.DataPropertyName].ToString(), indexRow, indexCol); } indexCol++; } } report.SetBorders(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns); indexRow++; } indexCol = 1; isAddItog = false; foreach (DataGridViewColumn col in dgvData.Columns) { if (listColumnGroup.Contains(col.Name)) { report.Merge(startMergRow, indexCol, indexRow - 1, indexCol); if (rowCollect.First()[col.DataPropertyName] is DateTime) { report.AddSingleValue(((DateTime)rowCollect.First()[col.DataPropertyName]).ToShortDateString(), startMergRow, indexCol); } else if (rowCollect.First()[col.DataPropertyName] is decimal) { report.AddSingleValueObject(rowCollect.First()[col.DataPropertyName], startMergRow, indexCol); report.SetFormat(startMergRow, indexCol, startMergRow, indexCol, "0.00"); } else { report.AddSingleValue(rowCollect.First()[col.DataPropertyName].ToString(), startMergRow, indexCol); } } else if (listColumnsSum.Contains(col.Name)) { switch (col.Name) { case "preCredit": report.AddSingleValueObject(gPost.preCredit, indexRow, indexCol); break; case "preOverPayment": report.AddSingleValueObject(gPost.preOverPayment, indexRow, indexCol); break; case "prePlan": report.AddSingleValueObject(gPost.prePlan, indexRow, indexCol); break; case "EndPlan": report.AddSingleValueObject(gPost.EndPlan, indexRow, indexCol); break; case "Penalty": report.AddSingleValueObject(gPost.Penalty, indexRow, indexCol); break; case "OtherPayments": report.AddSingleValueObject(gPost.OtherPayments, indexRow, indexCol); break; case "ultraResult": report.AddSingleValueObject(gPost.ultraResult, indexRow, indexCol); break; case "Included": report.AddSingleValueObject(gPost.Included, indexRow, indexCol); break; case "Credit": report.AddSingleValueObject(gPost.Credit, indexRow, indexCol); break; case "OverPayment": report.AddSingleValueObject(gPost.OverPayment, indexRow, indexCol); break; default: break; } //report.AddSingleValueObject(gPost.preCredit, indexRow, indexCol); report.SetFormat(indexRow, indexCol, indexRow, indexCol, "0.00"); if (!isAddItog) { report.Merge(indexRow, 1, indexRow, indexCol - 1); report.AddSingleValue($" Итого:", indexRow, 1); isAddItog = true; } report.SetCellAlignmentToRight(indexRow, 1, indexRow, indexCol - 1); } indexCol++; } report.SetBorders(indexRow, 1, indexRow, maxColumns); report.SetFontBold(indexRow, 1, indexRow, maxColumns); indexRow++; maxResultPlane += gPost.preCredit; } indexRow++; isAddItog = false; foreach (string lCol in listColumnsSum) { if (!isAddItog) { report.Merge(indexRow, 1, indexRow, dicColumnNameForIndex[lCol] - 1); report.AddSingleValue($" Итого:", indexRow, 1); isAddItog = true; } report.AddSingleValueObject(dtReport.AsEnumerable().Sum(r => r.Field <decimal>(lCol)), indexRow, dicColumnNameForIndex[lCol]); report.SetFormat(indexRow, dicColumnNameForIndex[lCol], indexRow, dicColumnNameForIndex[lCol], "0.00"); } //report.AddSingleValueObject(maxResultPlane, indexRow, maxColumns); //report.SetFormat(indexRow, maxColumns, indexRow, maxColumns, "0.00"); //report.Merge(indexRow, 1, indexRow, maxColumns - 1); //report.AddSingleValue("Итого:", indexRow, 1); report.SetCellAlignmentToRight(indexRow, 1, indexRow, maxColumns - 1); report.SetFontBold(indexRow, 1, indexRow, maxColumns); indexRow++; report.Show(); }
private void btPrint_Click(object sender, EventArgs e) { int id_typeDoc = (int)cmbTypeDoc.SelectedValue; EnumerableRowCollection <DataRow> rowCollect = dtPostVsDeps.AsEnumerable().Where(r => r.Field <bool>("isSelect")); if (!chbAllDepsAndPosts.Checked && rowCollect.Count() == 0) { MessageBox.Show("Необходимо выбрать должность и отдел!", "Информирование", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } Task <DataTable> task = Config.hCntMain.getReportInformationUser(id_typeDoc); task.Wait(); if (task.Result == null || task.Result.Rows.Count == 0) { MessageBox.Show("Нет данных для отчёта!", "Информирование", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } DataTable dtReport = task.Result.Clone(); if (!chbAllDepsAndPosts.Checked) { foreach (DataRow row in rowCollect) { EnumerableRowCollection <DataRow> rowToReport = task.Result.AsEnumerable().Where(r => r.Field <int>("id_Departments") == (int)row["id_Departments"] && r.Field <int>("id_Posts") == (int)row["id_Posts"]); if (rowToReport.Count() > 0) { dtReport.Merge(rowToReport.CopyToDataTable()); } } } else if (UserSettings.User.StatusCode.ToLower().Equals("ркв")) { foreach (DataRow row in dtDepsLinkToDep.Rows) { EnumerableRowCollection <DataRow> rowToReport = task.Result.AsEnumerable().Where(r => r.Field <int>("id_Departments") == (int)row["id_DepartmentsView"]); if (rowToReport.Count() > 0) { dtReport.Merge(rowToReport.CopyToDataTable()); } } } else { dtReport = task.Result.Copy(); } if (dtReport.Rows.Count == 0) { MessageBox.Show("Нет данных для отчёта!", "Информирование", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } Nwuram.Framework.ToExcelNew.ExcelUnLoad report = new Nwuram.Framework.ToExcelNew.ExcelUnLoad(); int indexRow = 1; int maxColumn = 5; report.Merge(indexRow, 1, indexRow, maxColumn); report.AddSingleValue("Документы, ожидающие ознакомления", indexRow, 1); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumn); report.SetFontBold(indexRow, 1, indexRow, maxColumn); report.SetFontSize(indexRow, 1, indexRow, maxColumn, 16); indexRow++; report.Merge(indexRow, 1, indexRow, maxColumn); report.AddSingleValue($"Выгрузил:{Nwuram.Framework.Settings.User.UserSettings.User.FullUsername}", indexRow, 1); report.SetCellAlignmentToRight(indexRow, 1, indexRow, maxColumn); indexRow++; report.Merge(indexRow, 1, indexRow, maxColumn); report.AddSingleValue($"Дата выгрузки:{DateTime.Now.ToShortDateString()} {DateTime.Now.ToShortTimeString()}", indexRow, 1); report.SetCellAlignmentToRight(indexRow, 1, indexRow, maxColumn); indexRow++; indexRow++; report.AddSingleValue("№", indexRow, 1); report.AddSingleValue("Отдел", indexRow, 2); report.AddSingleValue("Должность", indexRow, 3); report.AddSingleValue("Наименование документа", indexRow, 4); report.AddSingleValue("Дата отправки на ознакомление", indexRow, 5); report.SetBorders(indexRow, 1, indexRow, maxColumn); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumn); report.SetWrapText(indexRow, 1, indexRow, maxColumn); report.SetFontBold(indexRow, 1, indexRow, maxColumn); report.SetColumnWidth(indexRow, 1, indexRow, 1, 6); report.SetColumnWidth(indexRow, 2, indexRow, 2, 25); report.SetColumnWidth(indexRow, 3, indexRow, 3, 25); report.SetColumnWidth(indexRow, 4, indexRow, 4, 50); report.SetColumnWidth(indexRow, 5, indexRow, 5, 20); indexRow++; var groupDeps = dtReport.AsEnumerable().GroupBy(r => new { id_Departments = r.Field <int>("id_Departments"), nameDep = r.Field <string>("nameDep") }) .Select(s => new { s.Key.id_Departments, s.Key.nameDep }); int npp = 1; foreach (var gDep in groupDeps) { int startIndexGroupDeps = indexRow; var groupPost = dtReport.AsEnumerable() .Where(r => r.Field <int>("id_Departments") == gDep.id_Departments) .GroupBy(r => new { id_Posts = r.Field <int>("id_Posts"), namePost = r.Field <string>("namePost") }) .Select(s => new { s.Key.id_Posts, s.Key.namePost }); foreach (var gPost in groupPost) { int startIndexGroupPost = indexRow; rowCollect = dtReport.AsEnumerable() .Where(r => r.Field <int>("id_Departments") == gDep.id_Departments && r.Field <int>("id_Posts") == gPost.id_Posts); foreach (DataRow row in rowCollect) { report.AddSingleValue($"{npp}", indexRow, 1); report.AddSingleValue($"{row["cName"]}", indexRow, 4); report.AddSingleValue($"{((DateTime)row["DateEdit"]).ToShortDateString()}", indexRow, 5); report.SetCellAlignmentToCenter(indexRow, 4, indexRow, 5); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, 1); report.SetWrapText(indexRow, 4, indexRow, 4); report.SetBorders(indexRow, 1, indexRow, 5); indexRow++; npp++; } report.Merge(startIndexGroupPost, 3, indexRow - 1, 3); report.AddSingleValue($"{gPost.namePost}", startIndexGroupPost, 3); report.SetCellAlignmentToCenter(startIndexGroupPost, 3, startIndexGroupPost, 3); report.SetCellAlignmentToJustify(startIndexGroupPost, 3, startIndexGroupPost, 3); report.SetWrapText(startIndexGroupPost, 3, startIndexGroupPost, 3); report.SetBorders(startIndexGroupPost, 3, startIndexGroupPost, 3); } report.Merge(startIndexGroupDeps, 2, indexRow - 1, 2); report.AddSingleValue($"{gDep.nameDep.Trim()}", startIndexGroupDeps, 2); report.SetCellAlignmentToCenter(startIndexGroupDeps, 2, startIndexGroupDeps, 2); report.SetCellAlignmentToJustify(startIndexGroupDeps, 2, startIndexGroupDeps, 2); report.SetWrapText(startIndexGroupDeps, 2, startIndexGroupDeps, 2); report.SetBorders(startIndexGroupDeps, 2, startIndexGroupDeps, 2); } report.Show(); }
private async void btPrint_Click(object sender, EventArgs e) { int id_Shop = (int)cmbShop.SelectedValue; int id_dep = (int)cmbDeps.SelectedValue; report = new Nwuram.Framework.ToExcelNew.ExcelUnLoad(); blockers.SaveControlsEnabledState(this); blockers.SetControlsEnabled(this, false); progressBar1.Visible = true; var result = await Task <bool> .Factory.StartNew(() => { DataTable dtDbase1, dtKassRealiz; Task <DataTable> task; if (id_Shop == 1) { task = Config.hCntMain.GetListTovarForValidateReport(id_dep); task.Wait(); dtDbase1 = task.Result; task = Config.hCntMainKassRealizz.GetListTovarForValidateReport(id_dep); task.Wait(); dtKassRealiz = task.Result; } else { task = Config.hCntSecond.GetListTovarForValidateReport(id_dep); task.Wait(); dtDbase1 = task.Result; task = Config.hCntSecondKassRealizz.GetListTovarForValidateReport(id_dep); task.Wait(); dtKassRealiz = task.Result; } if (dtKassRealiz != null && dtKassRealiz.Rows.Count > 0) { DataTable dtTmp = dtDbase1.Clone(); var query = (from g in dtDbase1.AsEnumerable() join k in dtKassRealiz.AsEnumerable() on new { Q = g.Field <string>("ean") } equals new { Q = k.Field <string>("ean") } into t1 from leftjoin1 in t1.DefaultIfEmpty() select dtTmp.LoadDataRow(new object[] { g.Field <int>("id_tovar"), g.Field <string>("ean"), g.Field <string>("cname"), g.Field <decimal>("rcena"), g.Field <DateTime>("DateCreate"), g.Field <string>("FIO"), g.Field <int>("id_otdel"), g.Field <string>("nameDep"), g.Field <int?>("idPromo"), leftjoin1 == null ? null : leftjoin1.Field <decimal?>("price"), leftjoin1 == null ? null : leftjoin1.Field <string>("FIO"), leftjoin1 == null ? null : leftjoin1.Field <DateTime?>("s_time"), }, false)); dtDbase1 = query .Where(r => r.Field <decimal?>("rcena") != r.Field <decimal?>("priceKass")) .OrderBy(r => r.Field <int>("id_otdel")).ThenBy(r => r.Field <string>("ean")) .CopyToDataTable(); //foreach (DataRow row in dtDbase1.Rows) //{ // EnumerableRowCollection<DataRow> rowCollect = dtKassRealiz.AsEnumerable() // .Where(r => r.Field<string>("ean") == (string)row["ean"]);//&& Math.Abs(((DateTime)row["DateCreate"] - r.Field<DateTime>("s_time")).TotalSeconds) < 4); // if (rowCollect.Count() > 0) // { // row["priceKass"] = rowCollect.First()["price"]; // row["FIOKass"] = rowCollect.First()["FIO"]; // row["dateKass"] = rowCollect.First()["s_time"]; // //rowCollect.First().Delete(); // } //} } if (dtDbase1 == null || dtDbase1.Rows.Count == 0) { Config.DoOnUIThread(() => { MessageBox.Show("Нет данных для выгрузки", "Выгрузка отчёта", MessageBoxButtons.OK, MessageBoxIcon.Information); blockers.RestoreControlEnabledState(this); progressBar1.Visible = false; }, this); return(false); } int indexRow = 1; int maxColumns = 10; setWidthColumn(indexRow, 1, 8, report); setWidthColumn(indexRow, 2, 12, report); setWidthColumn(indexRow, 3, 14, report); setWidthColumn(indexRow, 4, 50, report); setWidthColumn(indexRow, 5, 10, report); setWidthColumn(indexRow, 6, 19, report); setWidthColumn(indexRow, 7, 18, report); setWidthColumn(indexRow, 8, 10, report); setWidthColumn(indexRow, 9, 19, report); setWidthColumn(indexRow, 10, 18, report); #region "Head" report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue($"{this.Text}", indexRow, 1); report.SetFontBold(indexRow, 1, indexRow, 1); report.SetFontSize(indexRow, 1, indexRow, 1, 16); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, 1); indexRow++; indexRow++; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue("Выгрузил: " + Nwuram.Framework.Settings.User.UserSettings.User.FullUsername, indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue("Дата выгрузки: " + DateTime.Now.ToString(), indexRow, 1); indexRow++; indexRow++; #endregion report.Merge(indexRow, 1, indexRow + 1, 1); report.AddSingleValue("№", indexRow, 1); report.Merge(indexRow, 2, indexRow + 1, 2); report.AddSingleValue("Отдел", indexRow, 2); report.Merge(indexRow, 3, indexRow + 1, 3); report.AddSingleValue("EAN", indexRow, 3); report.Merge(indexRow, 4, indexRow + 1, 4); report.AddSingleValue("Наименование", indexRow, 4); report.Merge(indexRow, 5, indexRow, 7); report.AddSingleValue("На кассе", indexRow, 5); report.AddSingleValue("Цена", indexRow + 1, 5); report.AddSingleValue("Дата установки", indexRow + 1, 6); report.AddSingleValue("Выгрузил на кассу", indexRow + 1, 7); report.Merge(indexRow, 8, indexRow, 10); report.AddSingleValue("В программе ТК", indexRow, 8); report.AddSingleValue("Цена", indexRow + 1, 8); report.AddSingleValue("Дата установки", indexRow + 1, 9); report.AddSingleValue("Сохранил в программе", indexRow + 1, 10); report.SetFontBold(indexRow, 1, indexRow + 1, maxColumns); report.SetBorders(indexRow, 1, indexRow + 1, maxColumns); report.SetWrapText(indexRow, 1, indexRow + 1, maxColumns); report.SetCellAlignmentToCenter(indexRow, 1, indexRow + 1, maxColumns); report.SetCellAlignmentToJustify(indexRow, 1, indexRow + 1, maxColumns); indexRow++; indexRow++; int npp = 1; foreach (DataRow row in dtDbase1.Rows) { report.SetWrapText(indexRow, 1, indexRow, maxColumns); addDataToCell(npp, indexRow, 1, report); addDataToCell(row["nameDep"], indexRow, 2, report); addDataToCell(row["ean"], indexRow, 3, report); addDataToCell(row["cname"], indexRow, 4, report); addDataToCell(row["priceKass"], indexRow, 5, report); addDataToCell(row["dateKass"], indexRow, 6, report, true); addDataToCell(row["FIOKass"], indexRow, 7, report); addDataToCell(row["rcena"], indexRow, 8, report); addDataToCell(row["DateCreate"], indexRow, 9, report, true); addDataToCell(row["FIO"], indexRow, 10, report); report.SetBorders(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToRight(indexRow, 5, indexRow, 5); report.SetCellAlignmentToRight(indexRow, 8, indexRow, 8); indexRow++; npp++; } report.SetPageSetup(1, 9999, true); report.Show(); Config.DoOnUIThread(() => { blockers.RestoreControlEnabledState(this); progressBar1.Visible = false; }, this); return(true); }); }
private void btPrint_Click(object sender, EventArgs e) { Logging.StartFirstLevel(79); Logging.Comment("Выгрузка отчёта из справочника категорий"); if (!string.IsNullOrWhiteSpace(tbName.Text)) { Logging.Comment($"Фильтр по наименованию категорий: {tbName.Text}"); } Logging.StopFirstLevel(); Nwuram.Framework.ToExcelNew.ExcelUnLoad report = new Nwuram.Framework.ToExcelNew.ExcelUnLoad("list-1"); int rIndex = 1; report.Merge(rIndex, 1, rIndex, 5); report.AddSingleValue("Справочник категорий", rIndex, 1); report.SetCellAlignmentToCenter(rIndex, 1, rIndex, 1); report.SetFontBold(rIndex, 1, rIndex, 1); report.SetFontSize(rIndex, 1, rIndex, 1, 14); rIndex++; report.Merge(rIndex, 3, rIndex, 5); report.AddSingleValue("Выгрузил: " + UserSettings.User.FullUsername, rIndex, 3); report.SetCellAlignmentToRight(rIndex, 3, rIndex, 3); rIndex++; report.Merge(rIndex, 1, rIndex, 2); report.Merge(rIndex, 3, rIndex, 5); report.AddSingleValue("Фильтры: " + tbName.Text, rIndex, 1); report.AddSingleValue("Дата выгрузки: " + DateTime.Now.ToString(), rIndex, 3); report.SetCellAlignmentToRight(rIndex, 3, rIndex, 3); rIndex++; rIndex++; int cIndex = 0; foreach (DataGridViewColumn col in dgvData.Columns) { if (col.Visible) { cIndex++; report.AddSingleValue(col.HeaderText, rIndex, cIndex); } } report.SetBorders(rIndex, 1, rIndex, cIndex); report.SetCellAlignmentToCenter(rIndex, 1, rIndex, cIndex); rIndex++; foreach (DataRowView row in dtData.DefaultView) { report.AddSingleValue(row["nameDep"].ToString(), rIndex, 1); report.AddSingleValue(row["cName"].ToString(), rIndex, 2); report.AddSingleValue(row["cNameParent"].ToString(), rIndex, 3); if (!(bool)row["isActive"]) { report.SetCellColor(rIndex, 1, rIndex, cIndex, panel1.BackColor); } report.SetBorders(rIndex, 1, rIndex, cIndex); report.SetCellAlignmentToCenter(rIndex, 1, rIndex, cIndex); rIndex++; } report.Merge(rIndex, 2, rIndex, 5); report.SetCellColor(rIndex, 1, rIndex, 1, panel1.BackColor); report.AddSingleValue("- не действующие", rIndex, 2); rIndex++; report.SetColumnAutoSize(1, 1, rIndex, 5); report.Show(); }
private void btPrint_Click(object sender, EventArgs e) { Logging.StartFirstLevel(79); Logging.Comment($"Фомирование отчёта из \"{this.Text}\""); Logging.Comment($"Договор:{tbAgreement.Text}"); Logging.Comment($"Арендатор:{tbTenant.Text}"); Logging.Comment($"Период начисления:{cmbPeriodCredit.Text}"); Logging.Comment($"Объект аренды:{cmbObject.Text}"); Logging.Comment($"Тип договора:{cmbTypeContract.Text}"); Logging.Comment($"Подтвержденные пени: {(chbCongressAccept.Checked ? "Да" : "Нет")}"); Logging.StopFirstLevel(); Nwuram.Framework.ToExcelNew.ExcelUnLoad report = new Nwuram.Framework.ToExcelNew.ExcelUnLoad(); int indexRow = 1; int maxColumns = 0; foreach (DataGridViewColumn col in dgvData.Columns) { if (col.Visible) { maxColumns++; if (col.Name.Equals("nameTenant")) { setWidthColumn(indexRow, maxColumns, 20, report); } if (col.Name.Equals("cTypeContract")) { setWidthColumn(indexRow, maxColumns, 21, report); } if (col.Name.Equals("cAgreements")) { setWidthColumn(indexRow, maxColumns, 22, report); } if (col.Name.Equals("cPeriodCredit")) { setWidthColumn(indexRow, maxColumns, 22, report); } if (col.Name.Equals("cSummaCredit")) { setWidthColumn(indexRow, maxColumns, 18, report); } if (col.Name.Equals("cDatePay")) { setWidthColumn(indexRow, maxColumns, 15, report); } if (col.Name.Equals("cSumma")) { setWidthColumn(indexRow, maxColumns, 16, report); } if (col.Name.Equals("cCountDaysCredit")) { setWidthColumn(indexRow, maxColumns, 18, report); } if (col.Name.Equals("cPrcPenalty")) { setWidthColumn(indexRow, maxColumns, 15, report); } if (col.Name.Equals("cSummaPenalty")) { setWidthColumn(indexRow, maxColumns, 15, report); } if (col.Name.Equals("cItogPenalty")) { setWidthColumn(indexRow, maxColumns, 15, report); } } } #region "Head" report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue("Отчёт по начислению пени", indexRow, 1); report.SetFontBold(indexRow, 1, indexRow, 1); report.SetFontSize(indexRow, 1, indexRow, 1, 16); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, 1); indexRow++; indexRow++; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue($"Период начисления {cmbPeriodCredit.Text}", indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue($"Объект аренды: {cmbObject.Text}", indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue($"Тип договора: {cmbTypeContract.Text}", indexRow, 1); indexRow++; if (tbAgreement.Text.Trim().Length > 0 || tbTenant.Text.Trim().Length > 0) { report.Merge(indexRow, 1, indexRow, maxColumns); report.AddSingleValue($"Фильтры: " + $"{(tbTenant.Text.Trim().Length == 0 ? "" : "Арендатор: " + tbTenant.Text.Trim())} " + $"{(tbAgreement.Text.Trim().Length == 0 ? "" : "Номер договора: " + tbAgreement.Text.Trim())}", indexRow, 1); indexRow++; } report.Merge(indexRow, 1, indexRow, 6); report.AddSingleValue("Выгрузил: " + Nwuram.Framework.Settings.User.UserSettings.User.FullUsername, indexRow, 1); indexRow++; report.Merge(indexRow, 1, indexRow, 6); report.AddSingleValue("Дата выгрузки: " + DateTime.Now.ToString(), indexRow, 1); indexRow++; indexRow++; #endregion int indexCol = 0; foreach (DataGridViewColumn col in dgvData.Columns) { if (col.Visible) { indexCol++; report.AddSingleValue(col.HeaderText, indexRow, indexCol); } } report.SetFontBold(indexRow, 1, indexRow, maxColumns); report.SetBorders(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns); indexRow++; var groupByPost = dtData.DefaultView.ToTable().AsEnumerable().GroupBy(r => new { id = r.Field <int>("id") }) .Select(s => new { s.Key.id }); foreach (var gPost in groupByPost) { EnumerableRowCollection <DataRow> rowCollect = dtData.DefaultView.ToTable().AsEnumerable().Where(r => r.Field <int>("id") == gPost.id); int startMergRow = indexRow; foreach (DataRow row in rowCollect) { indexCol = 1; report.SetWrapText(indexRow, indexCol, indexRow, maxColumns); foreach (DataGridViewColumn col in dgvData.Columns) { if (col.Visible) { if (new List <int>() { nameTenant.Index, cTypeContract.Index, cAgreements.Index, cPeriodCredit.Index, cItogPenalty.Index }.Contains(col.Index)) { indexCol++; continue; } if (row[col.DataPropertyName] is DateTime) { report.AddSingleValue(((DateTime)row[col.DataPropertyName]).ToShortDateString(), indexRow, indexCol); } else if (row[col.DataPropertyName] is decimal) { report.AddSingleValueObject(row[col.DataPropertyName], indexRow, indexCol); report.SetFormat(indexRow, indexCol, indexRow, indexCol, "0.00"); } else { report.AddSingleValue(row[col.DataPropertyName].ToString(), indexRow, indexCol); } indexCol++; } } report.SetBorders(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns); report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns); if ((int)row["id_StatusPenalty"] == 3) { report.SetCellColor(indexRow, 1, indexRow, maxColumns, panel2.BackColor); } indexRow++; } indexCol = 1; foreach (DataGridViewColumn col in dgvData.Columns) { if (new List <int>() { nameTenant.Index, cTypeContract.Index, cAgreements.Index, cPeriodCredit.Index, cItogPenalty.Index }.Contains(col.Index)) { report.Merge(startMergRow, indexCol, indexRow - 1, indexCol); if (rowCollect.First()[col.DataPropertyName] is DateTime) { report.AddSingleValue(((DateTime)rowCollect.First()[col.DataPropertyName]).ToShortDateString(), startMergRow, indexCol); } else if (rowCollect.First()[col.DataPropertyName] is decimal) { report.AddSingleValueObject(rowCollect.First()[col.DataPropertyName], startMergRow, indexCol); report.SetFormat(startMergRow, indexCol, startMergRow, indexCol, "0.00"); } else { report.AddSingleValue(rowCollect.First()[col.DataPropertyName].ToString(), startMergRow, indexCol); } } indexCol++; } } /* * indexCol = 0; * int indexStartRow = indexRow; * //foreach (DataGridViewRow row in dgvData.Rows) * foreach (DataGridViewColumn col in dgvData.Columns) * { * if (col.Visible) * { * indexCol++; * indexRow = indexStartRow; * int startMergRow = indexRow; * object tmpValue = null; * int preId = 0; * //foreach (DataGridViewColumn col in dgvData.Columns) * foreach (DataGridViewRow row in dgvData.Rows) * { * if ((int)dtData.DefaultView[row.Index]["id_StatusPenalty"] == 3) * report.SetCellColor(indexRow, 1, indexRow, maxColumns, panel2.BackColor); * * report.SetWrapText(indexRow, indexCol, indexRow, indexCol); * * if (new List<int>() { nameTenant.Index, cTypeContract.Index, cAgreements.Index, cPeriodCredit.Index, cItogPenalty.Index }.Contains(col.Index)) * { * if (indexRow == indexStartRow) * { * tmpValue = row.Cells[col.Index].Value; * preId = (int)dtData.DefaultView[row.Index]["id"]; * } * else if (indexRow - indexStartRow == dgvData.Rows.Count - 1) * { * report.Merge(startMergRow, indexCol, indexRow-1, indexCol); * * if (tmpValue is DateTime) * report.AddSingleValue(((DateTime)tmpValue).ToShortDateString(), startMergRow, indexCol); * if (tmpValue is decimal) * { * report.AddSingleValueObject(tmpValue, startMergRow, indexCol); * report.SetFormat(startMergRow, indexCol, startMergRow, indexCol, "0.00"); * } * else * report.AddSingleValue(tmpValue.ToString(), startMergRow, indexCol); * * * if (row.Cells[col.Index].Value is DateTime) * report.AddSingleValue(((DateTime)row.Cells[col.Index].Value).ToShortDateString(), indexRow, indexCol); * else * if (row.Cells[col.Index].Value is decimal) * { * report.AddSingleValueObject(row.Cells[col.Index].Value, indexRow, indexCol); * report.SetFormat(indexRow, indexCol, indexRow, indexCol, "0.00"); * } * else * report.AddSingleValue(row.Cells[col.Index].Value.ToString(), indexRow, indexCol); * * } * else if (indexRow != indexStartRow) * { * if (!tmpValue.Equals(row.Cells[col.Index].Value) || preId != (int)dtData.DefaultView[row.Index]["id"]) * { * report.Merge(startMergRow, indexCol, indexRow - 1, indexCol); * * if (tmpValue is DateTime) * report.AddSingleValue(((DateTime)tmpValue).ToShortDateString(), startMergRow, indexCol); * else * if (tmpValue is decimal) * { * report.AddSingleValueObject(tmpValue, startMergRow, indexCol); * report.SetFormat(startMergRow, indexCol, startMergRow, indexCol, "0.00"); * } * else * report.AddSingleValue(tmpValue.ToString(), startMergRow, indexCol); * * startMergRow = indexRow; * tmpValue = row.Cells[col.Index].Value; * preId = (int)dtData.DefaultView[row.Index]["id"]; * } * } * } * else * { * if (row.Cells[col.Index].Value is DateTime) * report.AddSingleValue(((DateTime)row.Cells[col.Index].Value).ToShortDateString(), indexRow, indexCol); * else * if (row.Cells[col.Index].Value is decimal) * { * report.AddSingleValueObject(row.Cells[col.Index].Value, indexRow, indexCol); * report.SetFormat(indexRow, indexCol, indexRow, indexCol, "0.00"); * } * else * report.AddSingleValue(row.Cells[col.Index].Value.ToString(), indexRow, indexCol); * } * * * report.SetBorders(indexRow, 1, indexRow, maxColumns); * report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns); * report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns); * indexRow++; * } * } * } */ report.SetCellColor(indexRow, 1, indexRow, 1, panel2.BackColor); report.Merge(indexRow, 2, indexRow, 4); report.AddSingleValue(chbCongressAccept.Text, indexRow, 2); report.SetFontBold(indexRow, maxColumns - 1, indexRow, maxColumns); report.SetBorders(indexRow, maxColumns - 1, indexRow, maxColumns); report.SetCellAlignmentToRight(indexRow, maxColumns - 1, indexRow, maxColumns); report.AddSingleValue("Итого", indexRow, maxColumns - 1); report.AddSingleValue(tbItogPenalty.Text, indexRow, maxColumns); report.Show(); }