Beispiel #1
0
        public void FillList(ListView list)
        {
            list.Items.Clear();

            if (this.CfgDom == null || this.CfgDom.DocumentElement == null)
            {
                return;
            }

            XmlNodeList nodes = this.CfgDom.DocumentElement.SelectNodes("library");

            foreach (XmlNode node in nodes)
            {
                string strCode = DomUtil.GetAttr(node, "code");

                strCode = ReportForm.GetDisplayLibraryCode(strCode);

                ListViewItem item = new ListViewItem();
                ListViewUtil.ChangeItemText(item, 0, strCode);

                list.Items.Add(item);
            }

            if (list.Items.Count > 0)
            {
                list.Items[0].Selected = true;
            }
        }
Beispiel #2
0
        // 将对话框中的数据保存到 XML 结构中
        public void SetData(XmlNode nodeLibrary)
        {
            if (nodeLibrary == null)
            {
                return;
            }

            DomUtil.SetAttr(nodeLibrary, "code", ReportForm.GetOriginLibraryCode(this.comboBox_general_libraryCode.Text));
            // DomUtil.SetAttr(nodeLibrary, "table_102_departments", this.textBox_102_departments.Text.Replace("\r\n", ","));

            XmlNode node_reports = nodeLibrary.SelectSingleNode("reports");

            if (node_reports == null)
            {
                node_reports = nodeLibrary.OwnerDocument.CreateElement("reports");
                nodeLibrary.AppendChild(node_reports);
            }
            else
            {
                node_reports.RemoveAll();
            }

            foreach (ListViewItem item in this.listView_reports.Items)
            {
                string strName      = ListViewUtil.GetItemText(item, COLUMN_REPORT_NAME);
                string strFreq      = ListViewUtil.GetItemText(item, COLUMN_REPORT_FREQ);
                string strType      = ListViewUtil.GetItemText(item, COLUMN_REPORT_TYPE);
                string strCfgFile   = ListViewUtil.GetItemText(item, COLUMN_REPORT_CFGFILE);
                string strNameTable = ListViewUtil.GetItemText(item, COLUMN_REPORT_NAMETABLE);

                XmlNode node_report = nodeLibrary.OwnerDocument.CreateElement("report");
                node_reports.AppendChild(node_report);
                DomUtil.SetAttr(node_report, "name", strName);
                DomUtil.SetAttr(node_report, "frequency", strFreq);
                DomUtil.SetAttr(node_report, "type", strType);
                DomUtil.SetAttr(node_report, "cfgFile", strCfgFile);
                DomUtil.SetAttr(node_report, "nameTable", strNameTable);
            }

            DomUtil.SetAttr(nodeLibrary, "htmlTemplate", this.comboBox_style_htmlTemplate.Text);
        }
Beispiel #3
0
        const int COLUMN_REPORT_NAMETABLE = 4;  // 名字表

        public void LoadData(XmlNode nodeLibrary)
        {
            if (nodeLibrary == null)
            {
                return;
            }

            this.comboBox_general_libraryCode.Text = ReportForm.GetDisplayLibraryCode(DomUtil.GetAttr(nodeLibrary, "code"));
            // this.textBox_102_departments.Text = DomUtil.GetAttr(nodeLibrary, "table_102_departments").Replace(",", "\r\n");

            this.listView_reports.Items.Clear();

            XmlNodeList nodes = nodeLibrary.SelectNodes("reports/report");

            if (nodes.Count > 0)
            {
                foreach (XmlNode node in nodes)
                {
                    string strName = DomUtil.GetAttr(node, "name");
                    string strFreq = DomUtil.GetAttr(node, "frequency");

                    string strType      = DomUtil.GetAttr(node, "type");
                    string strCfgFile   = DomUtil.GetAttr(node, "cfgFile");
                    string strNameTable = DomUtil.GetAttr(node, "nameTable");

                    ListViewItem item = new ListViewItem();
                    ListViewUtil.ChangeItemText(item, COLUMN_REPORT_NAME, strName);
                    ListViewUtil.ChangeItemText(item, COLUMN_REPORT_FREQ, strFreq);
                    ListViewUtil.ChangeItemText(item, COLUMN_REPORT_TYPE, strType);
                    ListViewUtil.ChangeItemText(item, COLUMN_REPORT_CFGFILE, strCfgFile);
                    ListViewUtil.ChangeItemText(item, COLUMN_REPORT_NAMETABLE, strNameTable);

                    this.listView_reports.Items.Add(item);
                }
            }

            this.comboBox_style_htmlTemplate.Text = DomUtil.GetAttr(nodeLibrary, "htmlTemplate");

            this.Changed = false;
        }
Beispiel #4
0
        private void button_start_createCfgFile_Click(object sender, EventArgs e)
        {
            string strError = "";

            // string strCfgFileName = Path.Combine(Program.MainForm.DataDir, "servers.xml");
            // 当前登录的主要服务器不同,则需要的 xml 配置文件是不同的。应当存储在各自的目录中
            string strFileName = Path.Combine(Program.MainForm.ServerCfgDir, ReportForm.GetValidPathString(Program.MainForm.GetCurrentUserName()) + "\\servers.xml");

            PathUtil.CreateDirIfNeed(Path.GetDirectoryName(strFileName));

            if (File.Exists(strFileName) == true)
            {
                DialogResult result = MessageBox.Show(this,
                                                      "当前已经存在配置文件 '" + strFileName + "'。若重新创建配置文件,以前的内容将被覆盖。\r\n\r\n确实要重新创建配置文件? ",
                                                      "EntityRegisterForm",
                                                      MessageBoxButtons.YesNo,
                                                      MessageBoxIcon.Question,
                                                      MessageBoxDefaultButton.Button2);
                if (result == System.Windows.Forms.DialogResult.No)
                {
                    return;
                }
            }

            // 创建 servers.xml 配置文件
            int nRet = Program.MainForm.BuildServersCfgFile(strFileName,
                                                            out strError);

            if (nRet == -1)
            {
                goto ERROR1;
            }

            LoadServerXml();
            return;

ERROR1:
            MessageBox.Show(this, strError);
        }
Beispiel #5
0
        void LoadServerXml()
        {
            // 当前登录的主要服务器不同,则需要的 xml 配置文件是不同的。应当存储在各自的目录中
            string strFileName = Path.Combine(Program.MainForm.ServerCfgDir, ReportForm.GetValidPathString(Program.MainForm.GetCurrentUserName()) + "\\servers.xml");

            PathUtil.CreateDirIfNeed(Path.GetDirectoryName(strFileName));

            if (File.Exists(strFileName) == false ||
                MainForm.GetServersCfgFileVersion(strFileName) < MainForm.SERVERSXML_VERSION)
            {
                string strError = "";
                // 创建 servers.xml 配置文件
                int nRet = Program.MainForm.BuildServersCfgFile(strFileName,
                                                                out strError);
                if (nRet == -1)
                {
                    MessageBox.Show(this, strError);
                    return;
                }
            }

            XmlDocument dom = new XmlDocument();

            try
            {
                dom.Load(strFileName);
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, "文件 '" + strFileName + "' 装入XMLDOM 时出错: " + ex.Message);
                return;
            }

            // TODO: 是否在文件不存在的情况下,给出缺省的几个 server ?

            this.entityRegisterControl1.ServersDom = dom;
        }
Beispiel #6
0
        private void button_localReportDir_Click(object sender, EventArgs e)
        {
            // string strReportDir = Path.Combine(Program.MainForm.UserDir, "reports");

            this.textBox_reportDirectory.Text = ReportForm.GetReportDir();
        }