コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 public static void UpdateParamUsingBookmark(Hashtable mapParams)
 {
     foreach (DictionaryEntry entry in mapParams)
     {
         WordAppUtil.SetParameterUsingBookmark(entry.Key.ToString(), entry.Value);
     }
 }
コード例 #4
0
 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);
         }
     }
 }
コード例 #5
0
        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);
                }
            }
        }
コード例 #6
0
        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();
        }
コード例 #7
0
 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());
     }
 }