private void btnExport_Click(object sender, EventArgs e) { if (dgvMeasure.SelectedRows.Count == 1) { var targetPath = string.Empty; // Get value for export //var dtStart = new DateTime(dtpStart.Value.Year, dtpStart.Value.Month, dtpStart.Value.Day, 0, 0, 0); //var dtEnd = new DateTime(dtpEnd.Value.Year, dtpEnd.Value.Month, dtpEnd.Value.Day, 23, 59, 59); var strSDate = dgvMeasure.CurrentRow.Cells[StartTime.Index].Value.ToString(); var strEDate = dgvMeasure.CurrentRow.Cells[EndTime.Index].Value.ToString(); int intUser = Common.CnvNullToInt(cmbUser.SelectedValue); int intType = Common.CnvNullToInt(((dynamic)cmbType.SelectedItem).Value); int intResult = Common.CnvNullToInt(((dynamic)cmbResult.SelectedItem).Value); var intMeasureId = Common.CnvNullToString(dgvMeasure.CurrentRow.Cells[MeasureID.Index].Value); var strDeviceName = Common.CnvNullToString(dgvMeasure.CurrentRow.Cells[DeviceName.Index].Value); var intMeasureType = Common.CnvNullToInt(dgvMeasure.CurrentRow.Cells[MeasureType.Index].Value); var strType = string.Empty; if (intMeasureType == (int)clsDBUltity.emMeasureType.AlarmTest) { strType = "Alarm Test"; } else if (intMeasureType == (int)clsDBUltity.emMeasureType.WalkingTest) { strType = "Walking Test"; } var strResult = Common.CnvNullToString(Common.MeasureResultDisplay(Common.CnvNullToInt(dgvMeasure.CurrentRow.Cells[Result.Index].Value))); var strUser = Common.CnvNullToString(dgvMeasure.CurrentRow.Cells[User.Index].Value); // Export excel var exportExcel = new AkbExcel(); TempPath = (intMeasureType == 0) ? PathBase + SOURCE_PATH + File_Name : PathBase + SOURCE_PATH + File_Name_Walking; TargetPath = PathBase + SOURCE_PATH; if (!File.Exists(TempPath)) { Common.ShowMsg(MessageBoxIcon.Warning, "Not excel template"); return; } var flag = false; try { if (intMeasureType == 0) { var strAlarmValue = Common.CnvNullToString(dgvMeasure.CurrentRow.Cells[AlarmValue.Index].Value); string dtNow = DateTime.Now.ToString(clsDBUltity.cstrDateTimeFormatNoMiliSecond); var sourcePath = TargetPath + "Report.xlsx"; targetPath = ValidateExportExcel(sourcePath, DateTime.Now.ToString("yyyyMMddHHmmss") + "_Report"); if (string.IsNullOrEmpty(targetPath)) { return; } exportExcel.OpenExcel(targetPath, false, false, sourcePath); using (var objDb = new clsDBUltity()) { // Binding grid measure detail var dataExport = objDb.GetTBLMeasureDetail(intMeasureId, chkView.Checked); if (Common.TableIsNullOrEmpty(dataExport)) { return; } var cellTimeExport = new AkbExcelCellCoordinate(3, 5); //Time export var cellMeasureID = new AkbExcelCellCoordinate(4, 3); //Measure ID var cellStart = new AkbExcelCellCoordinate(5, 3); //Start var cellEnd = new AkbExcelCellCoordinate(6, 3); //End var cellAlarmValue = new AkbExcelCellCoordinate(7, 3); //Alarm Value var cellUser = new AkbExcelCellCoordinate(4, 5); //Alarm Value var cellType = new AkbExcelCellCoordinate(5, 5); //Type var cellResult = new AkbExcelCellCoordinate(6, 5); //Result var cellDeviceName = new AkbExcelCellCoordinate(7, 5); //Device Name var cellStartBindingGrid = new AkbExcelCellCoordinate(11, 2); //Starting row to binding data exportExcel.SetCellValue(cellTimeExport, dtNow); exportExcel.SetCellValue(cellMeasureID, intMeasureId); exportExcel.SetCellValue(cellStart, strSDate); exportExcel.SetCellValue(cellEnd, strEDate); exportExcel.SetCellValue(cellAlarmValue, strAlarmValue); exportExcel.SetCellValue(cellUser, strUser); exportExcel.SetCellValue(cellType, strType); exportExcel.SetCellValue(cellResult, strResult); exportExcel.SetCellValue(cellDeviceName, strDeviceName); var objData = new object[dataExport.Rows.Count, 4]; int i = 0; var no = 0; foreach (DataRow item in dataExport.Rows) { objData[i, 0] = Common.CnvNullToString(++no); objData[i, 1] = Common.CnvNullToString(item["samples_time"]); objData[i, 2] = Common.CnvNullToString(item["actual_delegate"]); objData[i, 3] = Common.CnvNullToString(Common.MeasureResultDisplay(Common.CnvNullToInt(item["result"]))); i++; } string strRange = exportExcel.SetRangeValue(cellStartBindingGrid, objData); exportExcel.SetBorderAllRange(strRange, Color.Black); if (!exportExcel.Save()) { Common.ShowMsg(MessageBoxIcon.Warning, "Error exporting excel data"); return; } } } else { var strFailLevel = Common.CnvNullToString(dgvMeasure.CurrentRow.Cells[FailLevel.Index].Value); var strPeriod = Common.CnvNullToString(dgvMeasure.CurrentRow.Cells[colPeriod.Index].Value); string dtNow = DateTime.Now.ToString(clsDBUltity.cstrDateTimeFormatMiliSecond); var sourcePath = TargetPath + "ReportWalking.xlsx"; targetPath = ValidateExportExcel(sourcePath, DateTime.Now.ToString("yyyyMMddHHmmss") + "_ReportWalking"); if (string.IsNullOrEmpty(targetPath)) { return; } exportExcel.OpenExcel(targetPath, false, false, sourcePath); using (var objDb = new clsDBUltity()) { // Get value measure detail limit var dataLimit = objDb.GetTBLMeasureDetailLimit(intMeasureId); // Get value measure detail var dataExport = objDb.GetTBLMeasureDetail(intMeasureId, chkView.Checked); if (Common.TableIsNullOrEmpty(dataLimit) && Common.TableIsNullOrEmpty(dataExport)) { return; } var cellTimeExport = new AkbExcelCellCoordinate(3, 5); //Time export var cellMeasureID = new AkbExcelCellCoordinate(4, 3); //Measure ID var cellStart = new AkbExcelCellCoordinate(5, 3); //Start var cellEnd = new AkbExcelCellCoordinate(6, 3); //End var cellAlarmValue = new AkbExcelCellCoordinate(7, 3); //Alarm Value var cellUser = new AkbExcelCellCoordinate(4, 5); //Alarm Value var cellType = new AkbExcelCellCoordinate(5, 5); //Type var cellResult = new AkbExcelCellCoordinate(6, 5); //Result var cellDeviceName = new AkbExcelCellCoordinate(7, 5); //Device Name var cellFailLevel = new AkbExcelCellCoordinate(8, 3); //Fail Level var cellStartBindingLimit = new AkbExcelCellCoordinate(12, 2); //Fail Level var cellStartBindingGrid = new AkbExcelCellCoordinate(20, 2); //Starting row to binding data exportExcel.SetCellValue(cellTimeExport, dtNow); exportExcel.SetCellValue(cellMeasureID, intMeasureId); exportExcel.SetCellValue(cellStart, strSDate); exportExcel.SetCellValue(cellEnd, strEDate); exportExcel.SetCellValue(cellAlarmValue, strPeriod); exportExcel.SetCellValue(cellUser, strUser); exportExcel.SetCellValue(cellType, strType); exportExcel.SetCellValue(cellResult, strResult); exportExcel.SetCellValue(cellFailLevel, strFailLevel); exportExcel.SetCellValue(cellDeviceName, strDeviceName); var objLimit = new object[dataLimit.Rows.Count, 3]; var j = 0; var num = 0; foreach (DataRow item in dataLimit.Rows) { DateTime samplesTime; objLimit[j, 0] = Common.CnvNullToString(++num); if (DateTime.TryParse(Common.CnvNullToString(item["samples_time"]), out samplesTime)) { objLimit[j, 1] = ((DateTime)item["samples_time"]).ToString(clsDBUltity.cstrDateTimeFormatMiliSecond); } else { objLimit[j, 1] = string.Empty; } objLimit[j, 2] = Common.CnvNullToString(item["actual_delegate"]); j++; } string strRangeLimit = exportExcel.SetRangeValue(cellStartBindingLimit, objLimit); exportExcel.SetBorderAllRange(strRangeLimit, Color.Black); var objData = new object[dataExport.Rows.Count, 3]; int i = 0; var no = 0; foreach (DataRow item in dataExport.Rows) { DateTime samplesTime; objData[i, 0] = Common.CnvNullToString(++no); if (DateTime.TryParse(Common.CnvNullToString(item["samples_time"]), out samplesTime)) { objData[i, 1] = ((DateTime)item["samples_time"]).ToString(clsDBUltity.cstrDateTimeFormatMiliSecond); } else { objData[i, 1] = string.Empty; } objData[i, 2] = Common.CnvNullToString(item["actual_value"]); i++; } string strRange = exportExcel.SetRangeValue(cellStartBindingGrid, objData); exportExcel.SetBorderAllRange(strRange, Color.Black); if (!exportExcel.Save()) { Common.ShowMsg(MessageBoxIcon.Warning, "Error exporting excel data"); return; } } } flag = true; } catch (Exception ex) { } finally { if (exportExcel != null) { exportExcel.CloseExcel(); } exportExcel = null; // Open file saved if (flag && Common.ComfirmMsg("Do you want open file?") == true) { if (File.Exists(targetPath)) { System.Diagnostics.Process.Start(targetPath); } else { Common.ShowMsg(MessageBoxIcon.Error, "File export not found"); } } } } else { Common.ShowMsg(MessageBoxIcon.Warning, "Please select 1 row data to export excel"); return; } }
private void dgvMeasure_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex == -1) { return; } dgvMeasureDetail.AutoGenerateColumns = false; // btnDelete if (e.ColumnIndex == dgvMeasure.Columns["colDelete"].Index && e.RowIndex >= 0) { var measureid = Common.CnvNullToInt(dgvMeasure.Rows[e.RowIndex].Cells[MeasureID.Index].Value); using (var objDb = new clsDBUltity()) { // Binding grid measure detail if (Common.ComfirmMsg("Do you want delete this record?")) { objDb.DeleteMeasure(measureid); var dtStart = new DateTime(dtpStart.Value.Year, dtpStart.Value.Month, dtpStart.Value.Day, 0, 0, 0); var dtEnd = new DateTime(dtpEnd.Value.Year, dtpEnd.Value.Month, dtpEnd.Value.Day, 23, 59, 59); var strSDate = dtStart.ToString(clsDBUltity.cstrDateTimeFormatNoMiliSecond); var strEDate = dtEnd.ToString(clsDBUltity.cstrDateTimeFormatNoMiliSecond); int intUser = Common.CnvNullToInt(cmbUser.SelectedValue); int intType = Common.CnvNullToInt(((dynamic)cmbType.SelectedItem).Value); int intResult = Common.CnvNullToInt(((dynamic)cmbResult.SelectedItem).Value); int intStatus = Common.CnvNullToInt(((dynamic)cmbStatus.SelectedItem).Value); // Binding grid measure dgvMeasure.DataSource = objDb.GetTBLMeasure(strSDate, strEDate, intUser, intType, intResult, intStatus); dgvMeasure.ClearSelection(); dgvMeasureDetail.DataSource = null; dgvMeasureDetail.ClearSelection(); } else { return; } } return; } // btnEnable if (e.ColumnIndex == dgvMeasure.Columns["colEnable"].Index && e.RowIndex >= 0 && dgvMeasure.Columns["colEnable"].Visible) { var measureid_selected = Common.CnvNullToInt(dgvMeasure.Rows[e.RowIndex].Cells[MeasureID.Index].Value); var pathErrors = Common.PathDataErrors + @"\" + measureid_selected; string[] files = null; if (Directory.Exists(pathErrors)) { files = Directory.GetFiles(pathErrors); } else { using (var fbd = new FolderBrowserDialog()) { DialogResult result = fbd.ShowDialog(); if (result == DialogResult.OK && !string.IsNullOrWhiteSpace(fbd.SelectedPath)) { files = Directory.GetFiles(fbd.SelectedPath); } else { return; } } } xExecuteNonQueryFromFile(files, measureid_selected); } var measure_id = Common.CnvNullToString(dgvMeasure.Rows[e.RowIndex].Cells[MeasureID.Index].Value); using (var objDb = new clsDBUltity()) { // Binding grid measure detail dgvMeasureDetail.DataSource = objDb.GetTBLMeasureDetail(measure_id, chkView.Checked); dgvMeasureDetail.ClearSelection(); } // keep selected row after onclick int index = e.RowIndex; dgvMeasure.Rows[index].Selected = true; }