⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 runreportconfigview.cs

📁 树形逻辑报表程序源码,能根居元数据定义拖拉开发新的报表.
💻 CS
📖 第 1 页 / 共 3 页
字号:
		{
			listView_configcontrol.Columns.Add("用户配置报表管理",200,HorizontalAlignment.Left);
			listView_configcontrol.View = View.Details;

			//关闭自动重绘
			listView_configcontrol.BeginUpdate();

			//逐项填写
			ListViewItem item;
			foreach( DataRow rw in reportinfo.getConfigInfo().Rows)
			{
				item = listView_configcontrol.Items.Add(rw["ControlID"]+" ["+ reportinfo.getConfigurableRow(rw["ControlID"].ToString())["CName"] +"]",1);//多语种切换
				item.Tag = rw; 
			}

			//自动重绘
			listView_configcontrol.EndUpdate();

			//初始化数据绑定选择的组合框内的数据
			comboBox_datafield.Items.Add("不改变原配置");//多语言化时要修改
			DataTable dictiontable = reportinfo.getDictionInfo();
			if (dictiontable == null || dictiontable.Rows.Count==0)
			{
				//直接从报表的数据域集中取可用字段
				foreach(DataDynamics.ActiveReports.Field field in currentreport.Fields)
				{
					comboBox_datafield.Items.Add(field.Name);
				}
			}
			else
			{
				//从数据字典的数据域集中取可用字段
				foreach(DataRow dictionrow in dictiontable.Rows)
				{
					comboBox_datafield.Items.Add(""+dictionrow["ItemName"]+" ["+dictionrow["CItemDescription"]+"]");//多语言化时要修改
				}
			}

			initRightView();

			//使第一项为当前选项
			if(listView_configcontrol.Items.Count>0)
				listView_configcontrol.Items[0].Selected = true;
		}
	
		/// <summary>
		/// getReportControl - 获得控件对象
		/// </summary>
		private DataDynamics.ActiveReports.ARControl getReportControl(string control_id)
		{
			//逐个扫描所有控件,查看名称是否是control_id
			foreach(DataDynamics.ActiveReports.Section sec in this.currentreport.Sections)
			{
				foreach(DataDynamics.ActiveReports.ARControl ctl in sec.Controls)
				{
					if (control_id.Equals(ctl.Name))
					{
						//可以新增些控件的配置
						return ctl;
					}
				}
			}

			return null;
		}

	
	    /// <summary>
		/// listView_configcontrol_SelectedIndexChanged -- 选择并切换到别的配置对象
		/// </summary>
		private void listView_configcontrol_SelectedIndexChanged(object sender, System.EventArgs e)
		{
			if (listView_configcontrol.SelectedItems.Count == 0)
			{
				panel_attribute.Tag = null;
				initRightView();
				panel_attribute.Enabled = false;
				return;
			}

			panel_attribute.Enabled = true;

			DataRow configinforow = (DataRow) listView_configcontrol.SelectedItems[0].Tag;
			panel_attribute.Tag = configinforow;

			string control_id = configinforow["ControlID"].ToString();
			textBox_control.Text = control_id;

			//查找控件ID对应的可配置数据(记录行)
			DataRow configurablerow = reportinfo.getConfigurableRow(control_id);
		
			//用配置数据初始化界面

			//是否可配置可见性
			if((""+configurablerow["DisplaySelectable"]).Equals("Y"))
				groupBox_display.Enabled = true;
			else
				groupBox_display.Enabled = false;

			if((""+configinforow["DisplayConfigVal"]).Equals("N"))
			{
				radioButton_Hide.Checked = true;
				radioButton_Show.Checked = false;
				groupBox_movedirection.Visible = true;
			}
			else
			{
				radioButton_Hide.Checked = false;
				radioButton_Show.Checked = true;
				groupBox_movedirection.Visible = false;
			}

			//后面控件前移的方式
			if((""+configinforow["SuccCtlMoveDirect"]).Equals("none"))
			{
				radioButton_notmove.Checked = true;
				radioButton_leftmove.Checked = false;
				radioButton_upmove.Checked = false;
			}
			else if ((""+configinforow["SuccCtlMoveDirect"]).Equals("up"))
			{
				radioButton_notmove.Checked = false;
				radioButton_leftmove.Checked = false;
				radioButton_upmove.Checked = true;
			}
			else
			{
				radioButton_notmove.Checked = false;
				radioButton_leftmove.Checked = true;
				radioButton_upmove.Checked = false;
			}

			//是否移动页头脚内的控件
			if((""+configinforow["MovePageHeaderCtl"]).Equals("Y"))
				checkBox_movepageheaderctl.Checked = true;
			else
				checkBox_movepageheaderctl.Checked = false;
			

			//绑定数据配置项
			if((""+configurablerow["DataFieldSelectable"]).Equals("Y"))
			{
				if((""+configinforow["DataFieldConfigVal"]).Length==0)
					comboBox_datafield.SelectedIndex = 0;
				    //comboBox_datafield.Text = "不改变原配置";
				else
					comboBox_datafield.Text = ""+configinforow["DataFieldConfigVal"];

				groupBox_datafield.Enabled = true;
			}
			else
			{
				comboBox_datafield.SelectedIndex = 0;
				//comboBox_datafield.Text = "不改变原配置";//多语言化时要修改
				groupBox_datafield.Enabled = false;
			}

			//控件数据显示格式
			if((""+configurablerow["FormatSelectable"]).Equals("Y"))
			{
				button_format.Enabled=true;
			}
			else
			{
				button_format.Enabled=false;
			}

			//控件风格
			if((""+configurablerow["StyleSelectable"]).Equals("Y"))
			{
				button_style.Enabled=true;
			}
			else
			{
				button_style.Enabled=false;
			}

			//控件颜色
			if((""+configurablerow["ColorSelctable"]).Equals("Y"))
			{
				button_color.Enabled=true;
			}
			else
			{
				button_color.Enabled=false;
			}

			//是否可配标题内容
			if((""+configurablerow["IsMultilanguish"]).Equals("Y")||(""+configurablerow["CaptionConfigurable"]).Equals("Y"))
			{
				groupBox_languish.Enabled=true;
			}
			else
			{
				groupBox_languish.Enabled=false;
			}

			textBox_englishtext.Text = ""+configinforow["UserELabelCaption"];
			textBox_chinesetext.Text = ""+configinforow["UserCLabelCaption"];
			textBox_HKchinsestext.Text = ""+configinforow["UserHLabelCaption"];
		}

		/// <summary>
		/// 初始化右边的各控件
		/// </summary>
		private void initRightView()
		{
			textBox_control.Text = "";
			groupBox_display.Enabled = false;

			radioButton_Show.Checked = true;
			radioButton_Hide.Checked = false;
			groupBox_movedirection.Visible = false;
			radioButton_leftmove.Checked = true;
			radioButton_notmove.Checked = false;
			radioButton_upmove.Checked = false;
			checkBox_movepageheaderctl.Checked = false;

			//绑定数据配置项
			comboBox_datafield.SelectedIndex = 0;
			//comboBox_datafield.Text = "不改变原配置";//多语言化时要修改
			groupBox_datafield.Enabled = false;
			button_format.Enabled=false;
			button_style.Enabled=false;
			button_color.Enabled=false;
			groupBox_languish.Enabled=false;
			textBox_englishtext.Text = "";
			textBox_chinesetext.Text = "";
			textBox_HKchinsestext.Text = "";
		}

#region  改变控件当前值时事件处理

		//各控件内容被修改时,发生的各事件
		private void radioButton_Show_CheckedChanged(object sender, System.EventArgs e)
		{
			setCurrentControlVisible();

			//如果面板没有与当前的配置关联
			if(panel_attribute.Tag == null)
				return;

			//取得与面板关联的配置信息对象
			DataRow rw = (DataRow) panel_attribute.Tag;
			if(textBox_control.Text.Equals(rw["ControlID"].ToString()))
				rw["DisplayConfigVal"] = radioButton_Show.Checked?"Y":"N";
		}


		
		
		
		public void setCurrentControlVisible()
		{
			if(radioButton_Show.Checked == true)
			{
				groupBox_movedirection.Enabled = false;
				groupBox_dataconfig.Enabled = true;
				groupBox_languish.Enabled = true;
			}
			else
			{
				groupBox_movedirection.Enabled = true;
				groupBox_dataconfig.Enabled = false;
				groupBox_languish.Enabled = false;
			}
		}

		private void radioButton_leftmove_CheckedChanged(object sender, System.EventArgs e)
		{
			//如果面板没有与当前的配置关联
			if(panel_attribute.Tag == null)
				return;

			if (radioButton_leftmove.Checked ==true)
				checkBox_movepageheaderctl.Enabled = true;
			else
				checkBox_movepageheaderctl.Enabled = false;

			//取得与面板关联的配置信息对象
			DataRow rw = (DataRow) panel_attribute.Tag;
			if(textBox_control.Text.Equals(rw["ControlID"].ToString()))
			{
				rw["SuccCtlMoveDirect"] = radioButton_upmove.Checked?"up":(radioButton_notmove.Checked?"none":"left");
			}
		}

		private void checkBox_movepageheaderctl_CheckedChanged(object sender, System.EventArgs e)
		{
			//如果面板没有与当前的配置关联
			if(panel_attribute.Tag == null)
				return;

			//取得与面板关联的配置信息对象
			DataRow rw = (DataRow) panel_attribute.Tag;
			if(textBox_control.Text.Equals(rw["ControlID"].ToString()))
			{
				rw["MovePageHeaderCtl"] = checkBox_movepageheaderctl.Checked?"Y":"N";
			}
		
		}

		private void comboBox_datafield_SelectedIndexChanged(object sender, System.EventArgs e)
		{
			//如果面板没有与当前的配置关联
			if(panel_attribute.Tag == null)
				return;

			//取得与面板关联的配置信息对象
			DataRow rw = (DataRow) panel_attribute.Tag;
			if(textBox_control.Text.Equals(rw["ControlID"].ToString()))
			{
				rw["DataFieldConfigVal"] = (comboBox_datafield.SelectedIndex<=0)?"":comboBox_datafield.Text;
			}
		}

		private void textBox_englishtext_TextChanged(object sender, System.EventArgs e)
		{
			//如果面板没有与当前的配置关联
			if(panel_attribute.Tag == null)
				return;

			//取得与面板关联的配置信息对象
			DataRow rw = (DataRow) panel_attribute.Tag;
			if(textBox_control.Text.Equals(rw["ControlID"].ToString()))
				rw["UserELabelCaption"] = textBox_englishtext.Text;
		}

		private void textBox_chinesetext_TextChanged(object sender, System.EventArgs e)
		{
			//如果面板没有与当前的配置关联
			if(panel_attribute.Tag == null)
				return;

			//取得与面板关联的配置信息对象
			DataRow rw = (DataRow) panel_attribute.Tag;
			if(textBox_control.Text.Equals(rw["ControlID"].ToString()))
				rw["UserCLabelCaption"] = textBox_chinesetext.Text;
		
		}

		private void textBox_HKchinsestext_TextChanged(object sender, System.EventArgs e)
		{
			//如果面板没有与当前的配置关联
			if(panel_attribute.Tag == null)
				return;

			//取得与面板关联的配置信息对象
			DataRow rw = (DataRow) panel_attribute.Tag;
			if(textBox_control.Text.Equals(rw["ControlID"].ToString()))
				rw["UserHLabelCaption"] = textBox_HKchinsestext.Text;
		
		}

		private void button_format_Click(object sender, System.EventArgs e)
		{
		
		}

		private void button_style_Click(object sender, System.EventArgs e)
		{
		
		}

		private void button_color_Click(object sender, System.EventArgs e)
		{
		
		}

		#endregion


			
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -