Esempio n. 1
0
        private void Frm_FindandChangeTL_Load(object sender, EventArgs e)
        {
            adddata();
            string conn = "LayoutID='" + layoutID + "' order by StartP";
            IList <LayoutBookMark> templist = Common.Services.BaseService.GetList <LayoutBookMark>("SelectLayoutBookMarkList", conn);

            marklist = templist;
            if (marklist.Count == 0)
            {
                MessageBox.Show("无书签!请先添加书签");
                this.Close();
                return;
            }
            if (W_Bkm.Exists(marklist[0].UID.ToString()))
            {
                object tempid = marklist[0].UID.ToString();
                tempmk = W_Bkm.get_Item(ref tempid);
                tempmk.Select();
                oldstr      = tempmk.Range.Text;
                txtold.Text = oldstr;
                if (mkd.FindStr(marklist[0].UID.ToString()) != -1)
                {
                    txtnew.Text = mkd.Data[mkd.FindStr(marklist[0].UID.ToString())].BQdata.ToString();
                    data_object = mkd.Data[mkd.FindStr(marklist[0].UID.ToString())].BQdata;
                    newstr      = txtnew.Text;
                }
                else
                {
                    newstr      = "暂无值";
                    txtnew.Text = newstr;
                    txtnew.SelectAll();
                }
            }
        }
Esempio n. 2
0
        public bool SetWordBookmarks(Word.Application objWord, Word.Bookmarks objBookmarks, string bookMarkName, string bookMarkValue)
        {
            try
            {
                Word.Bookmark objBookmark = null;
                Word.Range    objRange    = null;
                object        objName;

                // Name of Bookmark - Object in the Word Template
                objName = bookMarkName;

                // get the Bookmark
                objBookmark = objBookmarks.get_Item(ref objName);
                objRange    = objBookmark.Range;

                // set new value of Bookmark and
                // write new Bookmark back to Word.Document
                objRange.Text = bookMarkValue;

                return(true);
            }
            catch (Exception ex)
            {
                Console.Beep();
                Console.Beep();
                Message = String.Format("EXCEPTION: {0}", ex.ToString());
                return(false);
            }
        }
Esempio n. 3
0
        //在书签位置插入一段文字,text为文字内容
        public void InsertText(string bookmark, string text)
        {
            object oStart = bookmark;
            object range  = wordDoc.Bookmarks.get_Item(ref oStart).Range;

            Microsoft.Office.Interop.Word.Bookmarks wdBookmarks = wordDoc.Bookmarks;
            Microsoft.Office.Interop.Word.Bookmark  wdBookmark  = wdBookmarks.get_Item(ref oStart);
            Microsoft.Office.Interop.Word.Selection wdSel;
            wdBookmark.Select();
            wdSel      = wordApp.Selection;
            wdSel.Text = text;
            wordDoc.Paragraphs.Last.Range.Text = "\n";
        }
Esempio n. 4
0
        //删除书签
        private void barButtonItem8_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            BM_Word = FrmGHBZTLContents.W_Doc;
            W_Bkm   = BM_Word.Bookmarks;
            if (gridView2.SelectedRowsCount == 0)
            {
                MessageBox.Show("请选择标签");
                return;
            }
            object bookmarkid   = gridView2.GetRowCellDisplayText(this.gridView2.FocusedRowHandle, "UID").ToString();
            string bookmarkname = gridView2.GetRowCellDisplayText(this.gridView2.FocusedRowHandle, "MarkName").ToString();
            string booktype     = gridView2.GetRowCellDisplayText(this.gridView2.FocusedRowHandle, "MarkType").ToString();

            Word.Range temprange = null;
            bool       flag      = W_Bkm.Exists("test");

            if (W_Bkm.Exists(bookmarkid.ToString()))
            {
                temprange = W_Bkm.get_Item(ref bookmarkid).Range;
                temprange.Select();
            }
            if (booktype == "程序员")
            {
                MessageBox.Show("您不能删除程序员定义的标签,否则程序无法正常更新数据!");
                return;
            }
            if (MessageBox.Show("确定要删除书签" + bookmarkname + "?", "询问", MessageBoxButtons.OKCancel) == DialogResult.OK)
            {
                //替换后标签就自动删除了
                if (W_Bkm.Exists(bookmarkid.ToString()))
                {
                    temprange.Text       = temprange.Text;
                    temprange.Font.Color = Word.WdColor.wdColorBlack;
                }

                LayoutBookMark data = this.gridView2.GetRow(this.gridView2.FocusedRowHandle) as LayoutBookMark;// new Ps_Table_GDP();
                try
                {
                    Common.Services.BaseService.Delete <LayoutBookMark>(data);
                    InitGrid2();
                    this.Refresh();
                    MessageBox.Show("删除成功");
                    FrmGHBZTLContents.ParentForm.SaveData_Word();
                }
                catch (Exception)
                {
                    throw;
                }
            }
        }
Esempio n. 5
0
        //查找名称
        private void barButtonItem14_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (barEditItem1.EditValue == null)
            {
                MessageBox.Show("请输入要查找的书签的名称");
                return;
            }
            if (gridView2.RowCount == 0)
            {
                MessageBox.Show("没有书签可查找");
                return;
            }
            string tagstr = barEditItem1.EditValue.ToString();

            for (int i = num + 1; i <= gridView2.RowCount; i++)
            {
                if (i == gridView2.RowCount)
                {
                    num = -1;
                    MessageBox.Show("已搜索到结尾");
                }
                if (gridView2.GetRowCellDisplayText(i, "MarkName").ToString().Contains(tagstr))
                {
                    gridView2.FocusedRowHandle = i;
                    this.Refresh();
                    num = i;
                    //定位该书签
                    BM_Word = FrmGHBZTLContents.W_Doc;
                    W_Bkm   = BM_Word.Bookmarks;
                    object     bookmarkid   = gridView2.GetRowCellDisplayText(this.gridView2.FocusedRowHandle, "UID").ToString();
                    string     bookmarkname = gridView2.GetRowCellDisplayText(this.gridView2.FocusedRowHandle, "MarkName").ToString();
                    Word.Range temprange    = null;
                    if (W_Bkm.Exists(bookmarkid.ToString()))
                    {
                        temprange = W_Bkm.get_Item(ref bookmarkid).Range;
                        temprange.Select();
                    }
                    break;
                }
            }
            //barEditItem1.Caption;
        }
        public override List <string> GetBookmarksList()
        {
            var bmList = new List <string>();

            for (int i = 1; i <= oBookmarks.Count; i++)
            {
                object oI = i;
                try
                {
                    var bm = oBookmarks.get_Item(ref oI).Name;
                    bmList.Add(bm);
                }
                catch (Exception ex)
                {
                    bmList.Add("Не удалось считать закладку.\r\n" + ex.Message);
                }
            }

            this._bookmarks = bmList;
            return(bmList);
        }
Esempio n. 7
0
        //定位书签
        private void barButtonItem13_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            BM_Word = FrmGHBZTLContents.W_Doc;
            W_Bkm   = BM_Word.Bookmarks;
            if (gridView2.SelectedRowsCount == 0)
            {
                MessageBox.Show("请选择标签");
                return;
            }
            object bookmarkid   = gridView2.GetRowCellDisplayText(this.gridView2.FocusedRowHandle, "UID").ToString();
            string bookmarkname = gridView2.GetRowCellDisplayText(this.gridView2.FocusedRowHandle, "MarkName").ToString();

            Word.Range temprange = null;
            if (W_Bkm.Exists(bookmarkid.ToString()))
            {
                temprange = W_Bkm.get_Item(ref bookmarkid).Range;
                temprange.Select();
            }
            else
            {
                MessageBox.Show("无法定位,可能在Word中已删除了该标签");
            }
        }
Esempio n. 8
0
        public void Start()
        {
            try {
                //Make hidden document active to receive selection
                HiddenDoc.Activate();                 //results in a slight application focus loss
            }
            catch (System.Runtime.InteropServices.COMException ex) {
                if (ex.Message == "Object has been deleted.")
                {
                    //Open Blank document, then attach styles *and update
                    HiddenDoc = Globals.ThisAddIn.Application.Documents.Add(ref missing, ref missing, ref missing, ref FalseObj);
                    HiddenDoc.set_AttachedTemplate(ref templateObj);
                    HiddenDoc.UpdateStyles();
                    HiddenDoc.Activate();
                }
                else
                {
                    throw;
                }
            }

            //Remove Continue Bookmark, if exists
            Word.Bookmarks hiddenDocBookmarks = Globals.ThisAddIn.Application.ActiveDocument.Bookmarks;
            if (hiddenDocBookmarks.Exists("Continue"))
            {
                object        deleteMarkObj = "Continue";
                Word.Bookmark deleteMark    = hiddenDocBookmarks.get_Item(ref deleteMarkObj);
                deleteMark.Select();
                deleteMark.Delete();
            }

            //Tell hidden document it has been saved to remove rare prompt to save document
            HiddenDoc.Saved = true;

            //Keep track when started
            started = true;
        }
Esempio n. 9
0
        private void btnChange_Click(object sender, EventArgs e)
        {
            BM_Word = FrmGHBZTLContents.W_Doc;
            W_Bkm   = BM_Word.Bookmarks;
            if (BM_Word.Application.Selection.Range.Text == null)
            {
                MessageBox.Show("请选择添加书签的文本!");
                return;
            }
            if (txtMarkName.Text.Length == 0)
            {
                MessageBox.Show("请输入书签名称!");
                txtMarkName.Focus();
                return;
            }
            LayoutBookMark lbm = new LayoutBookMark();

            lbm.UID      = "B_M_" + lbm.UID;
            lbm.LayoutID = FrmGHBZTLContents.LayoutID;
            lbm.MarkName = txtMarkName.Text;
            lbm.MarkDisc = txtMarkDisc.Text;
            if (chbType.Checked)
            {
                lbm.MarkType = "程序员";
            }
            else
            {
                lbm.MarkType = "用户";
            }
            Word.Range tmpRng = BM_Word.Application.Selection.Range;
            if (tmpRng.Bookmarks.Count > 0)
            {
                MessageBox.Show(tmpRng.Text + " 已是书签或包含已有书签!");
                return;
            }
            object oRng = tmpRng;

            W_Bkm.Add(lbm.UID.ToString(), ref oRng);
            object markid = lbm.UID.ToString();

            Word.Bookmark tempbk = W_Bkm.get_Item(ref markid);
            tempbk.Range.Font.Color = Word.WdColor.wdColorBlue;
            lbm.StartP = tempbk.Start;
            if (tempbk.Range.Text.Length > 140)
            {
                lbm.MarkText = tempbk.Range.Text.Substring(0, 140);
            }
            else
            {
                lbm.MarkText = tempbk.Range.Text;
            }
            try
            {
                Common.Services.BaseService.Create <LayoutBookMark>(lbm);
            }
            catch (Exception)
            {
                throw;
            }
            FrmBookMark.Parentfrm.InitGrid2();
            FrmBookMark.Parentfrm.Refresh();
            MessageBox.Show("书签添加成功!");
            //保存word
            FrmGHBZTLContents.ParentForm.SaveData_Word();
            txtMarkName.Text = "";
            txtMarkDisc.Text = "";
            txtMarkName.Focus();
        }
Esempio n. 10
0
        private void btnChange_Click(object sender, EventArgs e)
        {
            BM_Word = FrmGHBZTLContents.W_Doc;
            W_Bkm = BM_Word.Bookmarks;
            if (BM_Word.Application.Selection.Range.Text == null)
            {
                MessageBox.Show("��ѡ�������ǩ���ı�!");
                return;
            }
            if (txtMarkName.Text.Length == 0)
            {
                MessageBox.Show("��������ǩ����!");
                txtMarkName.Focus();
                return;
            }
            LayoutBookMark lbm = new LayoutBookMark();
            lbm.UID = "B_M_" + lbm.UID;
            lbm.LayoutID = FrmGHBZTLContents.LayoutID;
            lbm.MarkName = txtMarkName.Text;
            lbm.MarkDisc = txtMarkDisc.Text;
            if (chbType.Checked)
            {
                lbm.MarkType = "����Ա";
            }
            else
            {
                lbm.MarkType = "�û�";
            }
            Word.Range tmpRng = BM_Word.Application.Selection.Range;
            if (tmpRng.Bookmarks.Count > 0)
            {
                MessageBox.Show(tmpRng.Text + " ������ǩ�����������ǩ!");
                return;
            }
            object oRng = tmpRng;
            W_Bkm.Add(lbm.UID.ToString(), ref oRng);
            object markid = lbm.UID.ToString();
            Word.Bookmark tempbk = W_Bkm.get_Item(ref markid);
            tempbk.Range.Font.Color = Word.WdColor.wdColorBlue;
            lbm.StartP = tempbk.Start;
            if (tempbk.Range.Text.Length > 140)
            {
                lbm.MarkText = tempbk.Range.Text.Substring(0, 140);
            }
            else
            {
                lbm.MarkText = tempbk.Range.Text;
            }
            try
            {
                Common.Services.BaseService.Create<LayoutBookMark>(lbm);
            }
            catch (Exception)
            {

                throw;
            }
            FrmBookMark.Parentfrm.InitGrid2();
            FrmBookMark.Parentfrm.Refresh();
            MessageBox.Show("��ǩ��ӳɹ���");
            //����word
            FrmGHBZTLContents.ParentForm.SaveData_Word();
            txtMarkName.Text = "";
            txtMarkDisc.Text = "";
            txtMarkName.Focus();
        }
Esempio n. 11
0
        public void End()
        {
            //Exit quietly if buffer hasn't started
            if (!started)
            {
                return;
            }

            //Turn off buffer started flag
            started = false;

            //Verify hidden document is active
            if ((HiddenDoc as Word.Document) != Globals.ThisAddIn.Application.ActiveDocument)
            {
                HiddenDoc.Activate();
            }

            //Remove Continue Bookmark, if exists
            Word.Bookmarks hiddenDocBookmarks = Globals.ThisAddIn.Application.ActiveDocument.Bookmarks;
            hiddenDocBookmarks.ShowHidden = true;
            if (hiddenDocBookmarks.Exists("Continue"))
            {
                object        deleteMarkObj = "Continue";
                Word.Bookmark deleteMark    = hiddenDocBookmarks.get_Item(ref deleteMarkObj);
                deleteMark.Delete();
            }

            //Hidden doc selection
            curSel = Globals.ThisAddIn.Application.Selection;

            //Hidden doc range
            Word.Range hiddenDocRange;
            Word.Range bufDocRange;

            //Select entire doc, save range
            curSel.WholeStory();
            bufDocRange = curSel.Range;

            //If cursor bookmark placed in, move there, else find end of text, put a bookmark there
            Boolean cursorFound = false;

            if (hiddenDocBookmarks.Exists("_cursor"))
            {
                object        cursorBookmarkObj = "_cursor";
                Word.Bookmark cursorBookmark    = hiddenDocBookmarks.get_Item(ref cursorBookmarkObj);
                bufDocRange.SetRange(cursorBookmark.Range.End, cursorBookmark.Range.End);
                cursorBookmark.Delete();
                cursorFound = true;
            }
            else
            {
                //The -2 is done because [range object].WordOpenXML likes to drop bookmarks at the end of the range
                bufDocRange.SetRange(curSel.End - 2, curSel.End - 2);
            }

            object bookmarkObj = bufDocRange;

            //Generate GUID for hidden bookmark
            System.Guid guid = System.Guid.NewGuid();
            String      id   = "_buf" + guid.ToString().Replace("-", string.Empty);

            Word.Bookmark mark = Globals.ThisAddIn.Application.ActiveDocument.Bookmarks.Add(id, ref bookmarkObj);

            //Get OpenXML Text (Text with formatting)
            curSel.WholeStory();
            hiddenDocRange = curSel.Range;
            string XMLText = hiddenDocRange.WordOpenXML;

            //Clear out contents of buffer
            hiddenDocRange.Delete(ref missing, ref missing);             //comment this for docbuffer troubleshooting

            //Tell hidden document it has been saved to remove rare prompt to save document
            HiddenDoc.Saved = true;

            //Make primary document active
            Globals.ThisAddIn.Application.ActiveDocument.Activate();

            //Get selection from new active document
            curSel = Globals.ThisAddIn.Application.Selection;

            //insert buffered formatted text into main document
            curSel.InsertXML(XMLText, ref missing);

            //Place cursor at bookmark+1 (this is done due to WordOpenXML ignoring bookmarks at the end of the selection)
            Word.Bookmarks bookmarks = Globals.ThisAddIn.Application.ActiveDocument.Bookmarks;
            bookmarks.ShowHidden = true;

            object stringObj = id;

            Word.Bookmark get_mark = bookmarks.get_Item(ref stringObj);
            bufDocRange = get_mark.Range;

            if (cursorFound)             //Canned language actively placed cursor
            {
                bufDocRange.SetRange(get_mark.Range.End, get_mark.Range.End);
            }
            else             //default cursor at the end of text
            {
                bufDocRange.SetRange(get_mark.Range.End + 1, get_mark.Range.End + 1);
            }
            bufDocRange.Select();
        }