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; } }
// 将对话框中的数据保存到 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); }
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; }
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); }
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; }
private void button_localReportDir_Click(object sender, EventArgs e) { // string strReportDir = Path.Combine(Program.MainForm.UserDir, "reports"); this.textBox_reportDirectory.Text = ReportForm.GetReportDir(); }