Exemplo n.º 1
0
        public void XmlCreateMouduleRecList() // SampleModule의 녹화기록을 xml에 저장
        {
            try
            {
                XmlDocument doc = new XmlDocument();

                XmlElement rec_xmllist = doc.CreateElement("Root");                                                                                   // root 요소

                XmlElement winSize = doc.CreateElement("WindowSize");                                                                                 // 윈도우 해상도를 저장할 요소 생성
                winSize.InnerText = (SystemParameters.MaximizedPrimaryScreenWidth - 16) + "#" + (SystemParameters.MaximizedPrimaryScreenHeight + 24); // 윈도우 해상도 저장
                rec_xmllist.AppendChild(winSize);                                                                                                     // 메인 요소에 winsSizw요소를 추가
                // ======================================================================================
                // 초기메모 패킷을 로그에 저장
                XmlElement FirstMemo = doc.CreateElement("InitMemo");
                rec_xmllist.AppendChild(FirstMemo);

                foreach (var item in Data.Instance.initmemo)
                {
                    InitMemo memo = (InitMemo)item;

                    XmlElement xRow = doc.CreateElement("Row");

                    XmlElement col1 = doc.CreateElement("col1");
                    col1.InnerText = memo.Col1;
                    XmlElement col2 = doc.CreateElement("col2");
                    col2.InnerText = memo.Col2;

                    xRow.AppendChild(col1);
                    xRow.AppendChild(col2);

                    FirstMemo.AppendChild(xRow);
                }

                XmlElement Log;
                for (int i = 0; i < dt_class.ModRec_list.Count; i++)
                {
                    Log           = doc.CreateElement("L" + (i).ToString()); // 녹화한 숫자의 끝까지 XML에 요소를 추가하여 저장한다.
                    Log.InnerText = Data.Instance.ModRec_list[i];            // log라는 Xml요소에 녹화 데이터를 추가
                    rec_xmllist.AppendChild(Log);                            // Xml 요소를 LogList요소에 추가
                }
                doc.AppendChild(rec_xmllist);                                // Document에 root요소를 추가
                doc.Save(module_savename);                                   // 인덱스에서 지정한 파일 경로 + 파일 이름으로 저장

                dt_class.ModRec_list.Clear();                                // xml 저장 후 리스트 비워주기.
            }

            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message);
            }
        }
Exemplo n.º 2
0
        public void XmlCreateRecordList(string filepath) // 레코드 리스트에 있는 데이터를 Xml에 저장
        {
            try
            {
                XmlDocument doc = new XmlDocument();

                XmlElement rec_xmllist = doc.CreateElement("Root");                                                                                   // root 요소

                XmlElement winSize = doc.CreateElement("WindowSize");                                                                                 // 윈도우 해상도를 저장할 요소 생성
                winSize.InnerText = (SystemParameters.MaximizedPrimaryScreenWidth - 16) + "#" + (SystemParameters.MaximizedPrimaryScreenHeight + 24); // 윈도우 해상도 저장
                rec_xmllist.AppendChild(winSize);                                                                                                     // 메인 요소에 winsSizw요소를 추가
                // ======================================================================================
                // 초기메모 패킷을 로그에 저장
                XmlElement FirstMemo = doc.CreateElement("InitMemo");
                rec_xmllist.AppendChild(FirstMemo);

                foreach (var item in Data.Instance.initmemo)
                {
                    InitMemo memo = (InitMemo)item;

                    XmlElement xRow = doc.CreateElement("Row");

                    XmlElement col1 = doc.CreateElement("col1");
                    col1.InnerText = memo.Col1;
                    XmlElement col2 = doc.CreateElement("col2");
                    col2.InnerText = memo.Col2;

                    xRow.AppendChild(col1);
                    xRow.AppendChild(col2);

                    FirstMemo.AppendChild(xRow);
                }
                XmlElement DBSetting = doc.CreateElement("InitDBSetting");
                rec_xmllist.AppendChild(DBSetting);

                XmlElement ClientID = doc.CreateElement("ClientID");
                ClientID.InnerText = Data.Instance.myId;
                DBSetting.AppendChild(ClientID);

                XmlElement Today = doc.CreateElement("Today");
                Today.InnerText = Data.Instance.Rec_Starttime;
                DBSetting.AppendChild(Today);

                XmlElement Comment = doc.CreateElement("Comment");
                Comment.InnerText = Data.Instance.Rec_Comment;
                DBSetting.AppendChild(Comment);

                XmlElement FileName = doc.CreateElement("FileName");
                FileName.InnerText = Data.Instance.ftp_myfilename;
                DBSetting.AppendChild(FileName);

                XmlElement FirstImage = doc.CreateElement("InitImg");
                rec_xmllist.AppendChild(FirstImage);

                // ======================================================================================
                // 일시정지 패킷을 로그에 저장
                XmlElement Pause = doc.CreateElement("Pause");     // Pause를 추가하기 위한 Pause 요소를 생성
                XmlElement Log;
                // ======================================================================================
                // 로그 저장시 마우스최적화 옵션이 켜져있을 경우
                //if (RecordSetting.Instance.is_mouseoptimize == true)
                //    this.MouseOptimize();

                // 현재 녹화된 데이터까지 xml 문서에 저장
                for (int i = 0; i < dt_class.Rec_list.Count; i++)
                {
                    if (dt_class.Rec_list[i].Contains("Pause"))
                    {
                        if (dt_class.Rec_list[i - 1] == "LControlKey")
                        {
                            dt_class.Rec_list.RemoveAt(i - 1);
                        }
                        Pause = doc.CreateElement("Pause" + pause_count.ToString());
                        rec_xmllist.AppendChild(Pause);
                        pause_count++;
                    }
                    #region 메모 다이얼로그 창이 열렸을 때의 이벤트
                    else if (dt_class.Rec_list[i].Contains("M&"))            // 일시정지 패킷 아래에 MemoData를 로그에 저장
                    {
                        XmlElement MemoData = doc.CreateElement("MemoData"); // Memo를 추가하기 위한 Memo 요소를 생성
                        MemoData.InnerText = Data.Instance.Rec_list[i];
                        Pause.AppendChild(MemoData);
                    }
                    else if (dt_class.Rec_list[i].Contains("↔"))                     // 일시정지 패킷 아래에 MemoLocation를 로그에 저장
                    {
                        XmlElement MemoLocation = doc.CreateElement("MemoLocation"); // Memo를 추가하기 위한 MemoLocation 요소를 생성
                        MemoLocation.InnerText = Data.Instance.Rec_list[i];
                        Pause.AppendChild(MemoLocation);
                    }
                    #endregion
                    else if (dt_class.Rec_list[i].Contains("Image"))  // 일시정지 패킷 아래에 Image를 로그에 저장
                    {
                        XmlElement Image = doc.CreateElement("Image" + image_count.ToString());
                        Image.InnerText = Data.Instance.Rec_list[i].Replace("Image&", "");
                        Pause.AppendChild(Image);
                        image_count++;
                    }
                    #region  일 불러오기 같은 다이얼로그 창이 열렸을때의 이벤트
                    else if (dt_class.Rec_list[i].Contains("D&"))
                    {
                        XmlElement DialogData = doc.CreateElement("DialogData");
                        DialogData.InnerText = Data.Instance.Rec_list[i];
                        Pause.AppendChild(DialogData);
                    }
                    else if (dt_class.Rec_list[i].Contains("♤"))
                    {
                        XmlElement DialogLocation = doc.CreateElement("DialogLocation");
                        DialogLocation.InnerText = Data.Instance.Rec_list[i];
                        Pause.AppendChild(DialogLocation);
                    }
                    #endregion

                    else if (dt_class.Rec_list[i].Contains("InitImg")) // 초기이미지 패킷 아래에 InitImage를 로그에 저장
                    {
                        XmlElement InitImg = doc.CreateElement("InitImg");
                        InitImg.InnerText = Data.Instance.Rec_list[i].Replace("InitImg&", "");
                        FirstImage.AppendChild(InitImg);
                    }
                    else
                    {
                        Log           = doc.CreateElement("L" + (i).ToString()); // 녹화한 숫자의 끝까지 XML에 요소를 추가하여 저장한다.
                        Log.InnerText = Data.Instance.Rec_list[i];               // log라는 Xml요소에 녹화 데이터를 추가
                        rec_xmllist.AppendChild(Log);                            // Xml 요소를 LogList요소에 추가
                    }
                }
                doc.AppendChild(rec_xmllist); // Document에 root요소를 추가

                if (filepath == "")
                {
                    return;
                }
                doc.Save(filepath); // 인덱스에서 지정한 파일 경로 + 파일 이름으로 저장
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message);
            }
        }