📄 runreportconfigview.cs
字号:
{
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 + -