这几天网络老是出问题,所以懒得上博客,经过前两天的努力终于把企业销售管理系统搞定了.......虽然说很累..但确实学到了不少好东东.界面如下:
总体是想仿照windows优化大师那种导航栏加面版的样式.......感觉还不错.
左边的导航条是用了网上一个NavBarControl的控件.里边有很多种样式,我随意选了一个XP样式的.可以自动拉伸,中间我也用了一个splitter控件,查了下MSDN,是一个根据导航条的长度可以手动水平拉伸了..windows资源管理器其实就用到了这个控件.主界面花了我好长时间.....一开始左边老是跳不出子窗口,说什么它的MdiPartent不是MdiContainer,查了半天..终于发现原来是窗口构造时默认this.MdiContainer=false;改过来了之后由于怕界面有大有小所以全设为Form.WindowState=FormWindowState.Maximize().这样界面就美观多了
最上面的是用了MainMenu的控件,以前没用过...觉得还不错....
下面就是各模块的代码设计了..整体来说不是很难,和图书管理系统差不多.就当是巩固喽.
但这次我懂得如何是程序更健壮,更有结构感,可扩展性更强,我把那些常用的方法全都定义在一个 BuzinessRule层里,这样其他地方也可以调用..以后更改也会很方便.还有这次用到了存储过程,不像上次手工查询数据.这样更方便更有扩展性..但程序代码也多了不少.主要是以下几句
SqlCommand mycom = new SqlCommand();
mycom.Connection = this.sqlConnection1;
mycom.CommandType = CommandType.StoredProcedure;
mycom.CommandText = "StoredProcedureProBuy";然后是定义输入输出参数了.比如
SqlParameter parinputProID = mycom.Parameters.Add("@ProID",SqlDbType.Char);
parinputProID.Direction = ParameterDirection.Input;
SqlParameter parinputStartTime = mycom.Parameters.Add("@StartTime",SqlDbType.DateTime);
parinputStartTime.Direction = ParameterDirection.Input;
parinputStartTime.Value = this.dateTimePicker1.Value;
SqlParameter parinputEndTime = mycom.Parameters.Add("@EndTime",SqlDbType.DateTime);
parinputEndTime.Direction = ParameterDirection.Input;
parinputEndTime.Value = this.dateTimePicker2.Value;
SqlParameter paroutputTotalNumber = mycom.Parameters.Add("@TotalNumber",SqlDbType.Int);
paroutputTotalNumber.Direction = ParameterDirection.Output;
SqlParameter paroutputTotalProfit = mycom.Parameters.Add("@TotalProfit",SqlDbType.Float);
paroutputTotalProfit.Direction = ParameterDirection.Output;然后还有打开连接执行...虽然烦了一点,但也无所谓啦.
接着学到一个创建DataTable填充数据集然后绑定DataGrid在界面上显示
ProID = new DataColumn();
ProID.DataType = typeof(string);
ProID.ColumnName = "ProID";
ProID.Caption = "商品号码";
ProID.ReadOnly = true;
ProID.Unique = true;
ProfitAnalyse.Columns.Add(ProID);定义表中的每一列,再加入表中....挺方便.

浙公网安备 33010602011771号