1、SaleManage02销售机会管理销售机会管理一、 页面设计销售机会管理页面主要是列出所有的销售机会信息,并提供编辑、指派、删除和查询销售机会的操作。打开“解决方案资源管理器”目录“CRM SaleManage”,添加一个新的使用母板页的Web窗体“SaleChanceManager.aspx”,设计完成页面如图5-4所示。图5-4 销售机会管理页面进入设计界面,按照如图5-5所示设计界面。图5-5 “销售机会管理”页面设计首先在页面的最上方添加三组文本标签和文本框用于查询条件的输入,并添加一个“LinkButton”控件用于执行查询操作,同时添加一个“HyperLink”控件用于链接到“新
2、建销售机会”页面, 设计完成的代码如下: 新建销售机会 查询 然后在该页面添加一个ID为“lblQueryEmpty”的“Label”控件用于在没有销售机会记录时显示信息,再添加一个“GridView”控件用于绑定显示销售机会的信息,修改该控件的ID为“grdSaleChances”,选中“GridView”控件打开GridView任务列表选择“编辑列”,打开如图5-6所示的“字段”对话框,按照数据库表“SaleChance”编辑“编号”、“客户名称”、“概要”、“联系人”、“联系人电话”、“创建时间”、“成功机率”各字段,其中将“编号”字段隐藏,最后添加一个名为“操作”的模版列
3、。图5-6 “GridView”控件“字段”对话框其中“操作”模版列添加了3个图标按钮,分别用来跳转到“编辑销售机会”、“指派销售机会”两个页面和执行“删除销售机会”功能,同时将每个按钮绑定“ChanceId”字段,便于跳转页面同时传递销售机会编号,绑定设置如图5-7所示。最后在事件窗口给这三个图标按钮添加“Command”事件。图5-7 绑定“ChanceId”字段由于指派过的销售机会进入到下一个客户开发阶段,就不能再进行编辑和删除,所以绑定数据时要根据每个销售机会的状态值来设定操作按钮,没有指派过的有“编辑”、“指派”、“删除”三个操作按钮,而指派过的只有一个“指派”按钮,因此需要给“Gr
4、idView”控件添加一个“RowDataBound”事件。编辑完成的“Label”控件和“GridView”控件对应的代码如下: asp:ImageButton ID=imgBtnEdit runat=server CommandArgument= ImageUrl=/Images/edit.gif oncommand=imgBtnEdit_Command ToolTip=编辑销售机会 / asp:ImageButton ID=imgBtnSignTo runat=server CommandArgument= ImageUrl=/Images/group.png oncommand=img
5、BtnSignTo_Command ToolTip=指派销售机会给员工 / asp:ImageButton ID=imgBtnDelete runat=server CommandArgument= ImageUrl=/Images/delete.gif onclientclick=JavaScript:return confirm(确定要删除吗?) oncommand=imgBtnDelete_Command ToolTip=删除销售机会 / 为了便于浏览销售机会信息,页面还添加了一个分页控件“AspNetPager.dll”,将该控件文件拷贝至“CRMbin”目录下面,然后在“CRM”项目
6、中添加对该控件的引用,如图5-8所示。图5-8 添加分页控件AspNetPager要在该页面使用这个分页控件,必须在“SaleChanceManager.aspx”页面代码最上面添加如下预处理指令:然后在“GridView”控件的源代码下面添加如下代码:添加完毕后切换到设计界面就可以看到该分页控件。完整的页面代码如下: 新建销售机会 查询 asp:ImageButton ID=imgBtnEdit runat=server CommandArgument= ImageUrl=/Images/edit.gif oncommand=imgBtnEdit_Command ToolTip
7、=编辑销售机会 / asp:ImageButton ID=imgBtnSignTo runat=server CommandArgument= ImageUrl=/Images/group.png oncommand=imgBtnSignTo_Command ToolTip=指派销售机会给员工 / asp:ImageButton ID=imgBtnDelete runat=server CommandArgument= ImageUrl=/Images/delete.gif onclientclick=JavaScript:return confirm(确定要删除吗?) oncommand=i
8、mgBtnDelete_Command ToolTip=删除销售机会 / 二、 功能编码1数据访问层DAL功能设计打开“解决方案资源管理器”,在程序集目录“DAL”下打开类文件“SaleChanceRepository.cs”,添加一个方法GetPaged ()用于从数据库表“SaleChance”获取分页显示的销售机会记录。该方法实现代码如下:public DataTable GetPaged(int pageIndex, int pageSize, string orderBy, string whereClause, out int totalRowCount) SqlDataAdapt
9、er da = new SqlDataAdapter(); SqlCommand selectCommand = new SqlCommand(); selectCommand.CommandText = SaleChance_GetPaged; selectCommand.Connection = Connection; selectCommand.CommandType = CommandType.StoredProcedure; SqlParameter prmPageIndex = new SqlParameter(PageIndex, pageIndex); selectComman
10、d.Parameters.Add(prmPageIndex); SqlParameter prmPageSize = new SqlParameter(PageSize, pageSize); selectCommand.Parameters.Add(prmPageSize); SqlParameter prmOrderBy = new SqlParameter(OrderBy, orderBy.Trim(); selectCommand.Parameters.Add(prmOrderBy); SqlParameter prmWhereClause = new SqlParameter(Whe
11、reClause, whereClause.Trim(); selectCommand.Parameters.Add(prmWhereClause); da.SelectCommand = selectCommand; DataTable dtSaleChances = null; totalRowCount = 0; DataSet ds = new DataSet(); try Connection.Open(); da.Fill(ds); dtSaleChances = ds.Tables0; totalRowCount = Convert.ToInt32(ds.Tables1.Rows
12、00); catch (Exception ex) dtSaleChances = null; finally Connection.Close(); return dtSaleChances;打开“解决方案资源管理器”,在程序集目录“DAL”下打开类文件“SaleChanceRepository.cs”,添加一个方法Delete ()用于从数据库表“SaleChance”删除销售机会记录。该方法实现代码如下:public bool Delete(int chanceId) SqlCommand cmd = new SqlCommand(SaleChance_Delete, Connectio
13、n); cmd.CommandType = CommandType.StoredProcedure; SqlParameter prmChanceId = new SqlParameter(ChanceId, SqlDbType.Int); prmChanceId.Value = chanceId; cmd.Parameters.Add(prmChanceId); int deletedRowCount = 0; try Connection.Open(); deletedRowCount = cmd.ExecuteNonQuery(); catch (Exception ex) finall
14、y Connection.Close(); return deletedRowCount 0;2业务逻辑层BLL功能设计打开“解决方案资源管理器”,在程序集目录“BLL”下打开类文件“SaleChanceService.cs”,添加对应的逻辑处理方法GetPaged ()用于分页显示未指派人员和已指派人员的销售机会,该方法代码如下:public DataTable GetPaged(int pageIndex, int pageSize, string orderBy, string whereClause, out int totalRowCount) if (whereClause = null) | (whereClause.Trim().Length 1) whereClause = ChanceStatus + Convert.ToInt32(SALECHANCESTATUSVALUE.SUSPENDED).ToString() + AND ChanceStatus + Convert.ToI
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1