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

📄 designreportsearchcfg.cs

📁 树形逻辑报表程序源码,能根居元数据定义拖拉开发新的报表.
💻 CS
📖 第 1 页 / 共 2 页
字号:
				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 + -