📄 designreportsearchcfg.cs
字号:
adapter.UpdateCommand = cmd;
cmd = new System.Data.OleDb.OleDbCommand( "DELETE FROM ReportSearchField WHERE ReportID='"+manageinfo._ReportID+"' and DataField=?",conn);
para = cmd.Parameters.Add("@DataField",System.Data.OleDb.OleDbType.VarChar,50,"DataField");
para.SourceVersion = System.Data.DataRowVersion.Original;
adapter.DeleteCommand = cmd;
//-----------------------------------/*/
dataset = new System.Data.DataSet();
adapter.Fill(dataset);
datatable = dataset.Tables[0];
dataset_fields = new System.Data.DataSet();
//如查配置了数据字典,则从数据字典表中取数据域信息
adapter_fields = new System.Data.OleDb.OleDbDataAdapter("select itemname,EItemDescription,CItemDescription,HItemDescription,TypeOfData,LengthOfData from TreeDbObjectInfos_items where ObjectName='" + manageinfo._BusinessDictID +"'", conn);
adapter_fields.Fill(dataset_fields);
datatable_fields = dataset_fields.Tables[0];
//如查没有配置了数据字典,则从报表的数据域中取信息,利用上面得到的表结构,填写数据域信息
if(manageinfo._BusinessDictID.Length==0)
{
int n = datatable_fields.Rows.Count;
for(int i=0; i<designreport.Fields.Count; i++)
{
DataRow rw = datatable_fields.NewRow();
rw["itemname"] = designreport.Fields[i].Name;
rw["EItemDescription"] = designreport.Fields[i].Name;
rw["CItemDescription"] = designreport.Fields[i].Name;
rw["HItemDescription"] = designreport.Fields[i].Name;
rw["TypeOfData"] = "unknown";
rw["LengthOfData"] = 10;
datatable_fields.Rows.Add(rw);
}
}
string descript;
ListViewItem newitem;
listView_datafield.BeginUpdate();
foreach (System.Data.DataRow rw1 in datatable_fields.Rows)
{
descript = (rw1["CItemDescription"]==null)?"":rw1["CItemDescription"].ToString();
if (datatable.Select("DataField='" + rw1["itemname"]+"'").Length==0)
{
newitem = listView_datafield.Items.Add(rw1["itemname"] + " [" + descript + "]",0);
newitem.Tag = rw1["itemname"].ToString();
}
}
listView_datafield.EndUpdate();
listView_searchfield.BeginUpdate();
foreach(System.Data.DataRow rw2 in datatable.Rows)
{
System.Data.DataRow[] rows_fields = datatable_fields.Select("itemname='" + rw2["DataField"]+"'");
if (rows_fields.Length==0)
{//数据字典中没有此数据域,标为红色
newitem = new ListViewItem(rw2["DataField"]+" [-]",1);
newitem.ForeColor = Color.Red;
}
else
{
descript = (rows_fields[0]["CItemDescription"]==null)?"":rows_fields[0]["CItemDescription"].ToString();
newitem = new ListViewItem(rows_fields[0]["itemname"] + " [" + descript + "]",1);
}
newitem.SubItems.Add(""+rw2["DataType"]);
newitem.SubItems.Add(""+rw2["ControlClass"]);
newitem.SubItems.Add(""+rw2["ControlWidth"]);
newitem.SubItems.Add(""+rw2["EqualOrRange"]);
newitem.Tag = rw2;
listView_searchfield.Items.Add(newitem);
}
listView_searchfield.EndUpdate();
}
catch( Exception er)
{
MessageBox.Show(this, er.Message);
}
conn.Close();
}
private void listView_datafield_DoubleClick(object sender, System.EventArgs e)
{
selectsearchfield();
}
private void listView_searchfield_DoubleClick(object sender, System.EventArgs e)
{
if(listView_searchfield.SelectedItems.Count>0)
{
DesignReportSearchInfo infodlg = new DesignReportSearchInfo();
infodlg._item = listView_searchfield.SelectedItems[0];
infodlg.ShowDialog(this);
}
}
private void button_addsearch_Click(object sender, System.EventArgs e)
{
selectsearchfield();
}
private void selectsearchfield()
{
if (listView_datafield.SelectedItems.Count == 0)
return;
try
{
ListViewItem item = listView_datafield.SelectedItems[0];
System.Data.DataRow rw = datatable.NewRow();
rw["ReportID"] = manageinfo._ReportID;
rw["DataField"] = item.Tag.ToString();
datatable.Rows.Add(rw);
System.Data.DataRow[] rows_fields = datatable_fields.Select("itemname='" + rw["DataField"] + "'");
if (rows_fields.Length>0)
{
string descript = (rows_fields[0]["CItemDescription"]==null)?"":rows_fields[0]["CItemDescription"].ToString();
string fielddatatype = (""+rows_fields[0]["TypeOfData"]).ToLower();
//判断数据类
if (fielddatatype.IndexOf("date")>=0)
{
rw["DataType"] = "D";
rw["ControlClass"] = "DateTimePicker";
rw["EqualOrRange"] = "N";
rw["ControlWidth"] = "12";
}
else if(fielddatatype.IndexOf("int")>=0 || fielddatatype.IndexOf("num")>=0 || fielddatatype.IndexOf("float")>=0 || fielddatatype.IndexOf("double")>=0 || fielddatatype.IndexOf("money")>=0 || fielddatatype.IndexOf("decimal")>=0)
{
rw["DataType"] = "N";
rw["ControlClass"] = "TextBox";
rw["EqualOrRange"] = "N";
rw["ControlWidth"] = rows_fields[0]["LengthOfData"];
}
else if (fielddatatype.IndexOf("bool")>=0)
{
rw["DataType"] = "B";
rw["ControlClass"] = "CheckBox";
rw["EqualOrRange"] = "N";
rw["ControlWidth"] = "2";
}
else
{
rw["DataType"] = "C";
rw["ControlClass"] = "TextBox";
rw["EqualOrRange"] = "N";
rw["ControlWidth"] = rows_fields[0]["LengthOfData"];
}
rw["ELableCaption"] = rows_fields[0]["EItemDescription"];
rw["CLableCaption"] = rows_fields[0]["CItemDescription"];
rw["HLableCaption"] = rows_fields[0]["HItemDescription"];
ListViewItem newitem = listView_searchfield.Items.Add(rw["DataField"] + " [" + descript + "]",1);
newitem.Tag = rw;
newitem.SubItems.Add(""+rw["DataType"]);
newitem.SubItems.Add(""+rw["ControlClass"]);
newitem.SubItems.Add(""+rw["ControlWidth"]);
newitem.SubItems.Add(""+rw["EqualOrRange"]);
listView_datafield.Items.Remove(item);
}
}
catch( Exception er)
{
MessageBox.Show(this, er.Message);
}
}
private void deletesearchfield()
{
if(listView_searchfield.SelectedItems.Count==0)
return;
try
{
ListViewItem item = listView_searchfield.SelectedItems[0];
System.Data.DataRow rw = (System.Data.DataRow)item.Tag;
System.Data.DataRow[] rows_fields = datatable_fields.Select("itemname='" + rw["DataField"] + "'");
if (rows_fields.Length>0)
{
string descript = (rows_fields[0]["CItemDescription"]==null)?"":rows_fields[0]["CItemDescription"].ToString();
ListViewItem newitem = listView_datafield.Items.Add(rw["DataField"] + " [" + descript + "]",0);
newitem.Tag = rw["DataField"].ToString();
}
listView_searchfield.Items.Remove(item);
//datatable.Rows.Remove(rw);//不能用remove
rw.Delete();
}
catch( Exception er)
{
MessageBox.Show(this, er.Message);
}
}
private void button_delsearch_Click(object sender, System.EventArgs e)
{
deletesearchfield();
}
private void button_ok_Click(object sender, System.EventArgs e)
{
//System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
//连接据库,这段程序用一个公共连接类代替
//conn.ConnectionString = TreeConnection.connstr;
//conn.Open();
try
{
adapter.Update(datatable);
}
catch(Exception er)
{
MessageBox.Show(this, er.Message);
}
//conn.Close();
this.Close();
}
private void button_attribte_Click(object sender, System.EventArgs e)
{
if(listView_searchfield.SelectedItems.Count>0)
{
DesignReportSearchInfo infodlg = new DesignReportSearchInfo();
infodlg._item = listView_searchfield.SelectedItems[0];
infodlg.ShowDialog(this);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -