public static void OnCreateReportUsingFieldMergeCell(IWin32Window owner, string reportTitle, List <Hashtable> listSource, Hashtable fieldParams, Hashtable bookMarkParams, string reportName, string templateDir, Hashtable mapMergeCell, bool includeSumRow, bool isItalicHeader, bool autoIndex, string prefixParam, string posfixParam) { string tempFile; bool returnCode = UpdateTempFile(owner, templateDir, reportName, out tempFile); if (!returnCode) { return; } try { WordAppUtil.ThreadForWaitingExport(); // tao wordApp tu template WordAppUtil.CreateMsWordFromTemplate(); UpdateTableData(listSource, autoIndex, includeSumRow, isItalicHeader); DoMergeCell(mapMergeCell); UpdateParamUsingMergeField(fieldParams, prefixParam, posfixParam); UpdateParamUsingBookmark(bookMarkParams); } finally { WordAppUtil.QuitMsWordApp(true); WordAppUtil.ThreadForClosingExport(); } WordViewerUtil.LoadDocument(owner, reportTitle, tempFile, true); }
public static void OnCreateReportUsingBookmark(IWin32Window owner, string reportTitle, List <Hashtable> listSource, Hashtable mapParams, string reportName, string templateDir, bool includeSumRow, bool autoIndex) { string tempFile; bool returnCode = UpdateTempFile(owner, templateDir, reportName, out tempFile); if (!returnCode) { return; } try { WordAppUtil.ThreadForWaitingExport(); // tao wordApp tu template WordAppUtil.CreateMsWordFromTemplate(); UpdateTableData(listSource, autoIndex, includeSumRow, false); UpdateParamUsingBookmark(mapParams); } finally { WordAppUtil.QuitMsWordApp(true); WordAppUtil.ThreadForClosingExport(); } WordViewerUtil.LoadDocument(owner, reportTitle, tempFile, true); }
public static void UpdateParamUsingBookmark(Hashtable mapParams) { foreach (DictionaryEntry entry in mapParams) { WordAppUtil.SetParameterUsingBookmark(entry.Key.ToString(), entry.Value); } }
public static void DoMergeCell(Hashtable mapMergeCell) { foreach (DictionaryEntry entry in mapMergeCell) { int index; if (int.TryParse(entry.Key.ToString(), out index)) { WordAppUtil.DoMergeCell(index, (Hashtable)entry.Value); } } }
public static void UpdateTableData(List <Hashtable> listSource, bool autoIndex, bool includeSumRow, bool isItalicHeader) { var mapTableIndex = new Hashtable(); foreach (Hashtable map in listSource) { var columnNames = map[ConstUtil.COLUMN_NAMES] as List <string>; var sourceTable = map[ConstUtil.SOURCE_TABLE] as DataTable; var tableIndex = map[ConstUtil.TABLE_INDEX] as string; var isHeader = map[ConstUtil.IS_HEADER] as string; var includeHeader = map[ConstUtil.INCLUDE_HEADER] as string; WordAppUtil.ColumnNames = columnNames; WordAppUtil.SourceTable = sourceTable; if (!String.IsNullOrEmpty(tableIndex)) { var index = Convert.ToInt32(tableIndex); int i; if (mapTableIndex.ContainsKey(index)) { i = (int)mapTableIndex[index]; } else { i = 1; } var isFirstTime = (i == 1 && !mapTableIndex.ContainsKey(index)); if (autoIndex) { WordAppUtil.FillDataToWordDocTable2(index, includeSumRow, isFirstTime); } else { if ("1".Equals(isHeader)) { WordAppUtil.FillDataToWordDocTableWithoutStt2(index, true, isItalicHeader, false, "1".Equals(includeHeader), includeSumRow, isFirstTime); } else { WordAppUtil.FillDataToWordDocTableWithoutStt2(index, false, false, false, "1".Equals(includeHeader), includeSumRow, isFirstTime); } } if (mapTableIndex.ContainsKey(index)) { mapTableIndex.Remove(index); } mapTableIndex.Add(index, i + 1); } } }
private void button3_Click(object sender, EventArgs e) { // path of template *.dot WordAppUtil.Template = Application.StartupPath + "/" + "test.dot"; WordAppUtil.ThreadForWaitingExport(); // tao wordApp tu template WordAppUtil.CreateMsWordFromTemplate(); // thiet lap du lieu table nguon cho WordDoc Table WordAppUtil.SourceTable = _dataTable; WordAppUtil.ColumnNames = new List <string>() { "id", "ten", "chuc_vu", "phong_ban_id" }; // fill du lieu vao WordDoc Table WordAppUtil.FillDataToWordDocTable2(1, false, true); // thiet lap cac parameter cho WordDoc WordAppUtil.SetParameterUsingBookmark("hinh_thuc_cung_cap", " Truc tiep"); WordAppUtil.SetParameterUsingBookmark("hinh_thuc_cung_cap1", " Truc tiep1"); WordAppUtil.SetParameterUsingBookmark("tu_ngay", "Từ ngày 12/06/2013 - đến ngày 12/07/2013"); WordAppUtil.SetParameterUsingBookmark("ngay_in", "Hà nội, ngày 12 tháng 07 năm 2013"); WordAppUtil.SetParameterUsingBookmark("nguoi_lap", "Chung Duy Nguyễn"); string tempFile = Application.StartupPath + "/test_" + DateTime.Now.ToString("ddMMyyyyHHmmss") + ".doc"; WordAppUtil.SaveAs(tempFile); WordAppUtil.QuitMsWordApp(false); WordAppUtil.OpenWordDocument(tempFile); WordAppUtil.ThreadForClosingExport(); }
public static void UpdateParamUsingMergeField(Hashtable mapParams, string prefixParam, string posfixParam) { foreach (DictionaryEntry entry in mapParams) { var key = entry.Key.ToString(); if (key.Length < prefixParam.Length || !prefixParam.Equals(key.Substring(0, prefixParam.Length))) { key = prefixParam + key; } if (!posfixParam.Equals(key.Substring(key.Length - posfixParam.Length))) { key += posfixParam; } WordAppUtil.SetParameterUsingMergeField(key, entry.Value); } if (!mapParams.ContainsKey("Ngay_In") && !mapParams.ContainsKey(prefixParam + "Ngay_In" + posfixParam)) { WordAppUtil.SetParameterUsingMergeField(prefixParam + "Ngay_In" + posfixParam, DateUtil.GetCurrentDateTimeAsDdmmyyString()); } }