请问个设计思路WINFORM的(需要高手支援)。

zl194 2009-11-17 02:14:10
要做一个部门管理的界面
客户要求是表格形式的,内容如下。
部门编码,部门名称,负责人,联系方式,人数。

但我的困惑是,我的部门是分级次的,每人数要从末级的部门中统计。统计我可以解决。但是这种分级次的部门怎么在表格中显示呢。最好是这样。
部门A,部门名称,负责人,联系方式,人数。
部门A1,部门名称,负责人,联系方式,人数。
部门A2,部门名称,负责人,联系方式,人数。
部门A21,部门名称,负责人,联系方式,人数。
部门B,部门名称,负责人,联系方式,人数。
部门C,部门名称,负责人,联系方式,人数。

类似一个树控件,但是要有很多列才可以。怎样能美观的实现呢??





...全文
205 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzxap 2009-11-17
  • 打赏
  • 举报
回复
[code=C#]
Create TABLE CateTable (
[CateID] [int] IDENTITY (1, 1) NOT NULL ,
[Product] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[RootID] [int] NOT NULL ,
[ParentID] [int] NOT NULL
)
GO

程序

//从数据库中读取数据
SqlConnection con = new SqlConnection("server=127.0.0.1\\sqlexpress;uid=sa;");
con.Open();
con.ChangeDatabase("STggggg");
SqlCommand cmd = new SqlCommand("select * from 产品树 where NodeType='f'", con);
//cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
try
{
sda.Fill(ds);
}
catch
{
}
finally
{
cmd = null;
con.Close();
}
//往TreeView中添加树节点
//添加根节点
TreeNode tn = new TreeNode();
tn.Text = "所有产品";
tn.Name = "0";//Name作为ID
tn.Tag = "0";//Tag作为RootID
tn.ImageIndex = 0;
tn.SelectedImageIndex = 0;
tv.Nodes.Add(tn);//该TreeView命名为tv
tv.SelectedNode = tv.TopNode;
//把其他节点加上去
if (ds != null)
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
tn = new TreeNode();
tn.Text = dr["Product"].ToString();
tn.Name = dr["CateID"].ToString();//Name作为CateID
tn.Tag = dr["RootID"].ToString();//Tag作为RootID
tn.ImageIndex = 1;
tn.SelectedImageIndex = 1;
//判断是否为主节点
if (dr["CateID"].ToString() == dr["RootID"].ToString())
{
//主节点
tv.SelectedNode = tv.TopNode;
}
else
{
//其他节点
if (tv.SelectedNode.Name != dr["ParentID"].ToString())
{
TreeNode[] tn_temp = tv.Nodes.Find(dr["ParentID"].ToString(), true); //通过ParentID查找父节点
if (tn_temp.Length > 0)
{
tv.SelectedNode = tn_temp[0]; //选中查找到的节点
}
}
}
tv.SelectedNode.Nodes.Add(tn);
}
//tv.ExpandAll();//展开TreeView
tv.SelectedNode = tv.TopNode; //最顶端节点选中
}


[/CODE]
lovexilove 2009-11-17
  • 打赏
  • 举报
回复
其实也就那么点东西
足球中国 2009-11-17
  • 打赏
  • 举报
回复
Developer Express .NET v8.2 的树控件好象是为你设计的。
zl194 2009-11-17
  • 打赏
  • 举报
回复
竟然发重复了,郁闷。谢谢大家了。
极地_雪狼 2009-11-17
  • 打赏
  • 举报
回复
表现形式可以灵活,客户要求的只是一种形式,可能那就是他能想到的唯一的一种形式,所以,在客户同意的情况下可以采用变通的方式
liherun 2009-11-17
  • 打赏
  • 举报
回复
up,#5
LutzMark 2009-11-17
  • 打赏
  • 举报
回复
5楼的很典型啊
tkscascor 2009-11-17
  • 打赏
  • 举报
回复
... 5楼的那个界面 让我想到了我的毕业设计,
asdfg_ 2009-11-17
  • 打赏
  • 举报
回复
问下客户需不需要分级显示 说不定他们不需要分级显示呢 如果要分级按5楼那种可以
llxzj60 2009-11-17
  • 打赏
  • 举报
回复
表格中?那就一楼那种嘛
huang_8228 2009-11-17
  • 打赏
  • 举报
回复
或者你可以在 5 楼的基础上使用树控件的展开收起事件实现表格里面的显示状况,因为 5 楼的只能显示一个节点及其子节点,并且使用的SelectionChanged事件。

不过注意节点与行之间的对其情况
huang_8228 2009-11-17
  • 打赏
  • 举报
回复
在不自己做一个控件的情况下就只有用5楼的方法了,在WPF里面我倒是看到过树跟表格结合的控件例子,直接100多行XAML代码就搞定了。只是你要用winform就难办了。
cymandhxl 2009-11-17
  • 打赏
  • 举报
回复
可以用c1的grid。
和你要求的一模一样的。

另外可以自己做点东西。比如说在“部门A1”加点空格或者“-”啥的也可以。都很不错的
qqiuzaihui 2009-11-17
  • 打赏
  • 举报
回复
说话费劲, 我还是上两张图吧:




左边是TreeView控件, 右边是DataGridView控件。
enaking 2009-11-17
  • 打赏
  • 举报
回复
左边用目录目录树,右边用datagridview,,,选择目录树的部门时,右边datagridview显示所以子部门的列表,目录树用递归的方法
liherun 2009-11-17
  • 打赏
  • 举报
回复
1楼是山西的嘛?
jzywh 2009-11-17
  • 打赏
  • 举报
回复
xceedGrid
jzywh 2009-11-17
  • 打赏
  • 举报
回复
ParentID

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧