SaleManage02销售机会管理.docx

上传人:b****5 文档编号:6859019 上传时间:2023-01-11 格式:DOCX 页数:20 大小:288.10KB
下载 相关 举报
SaleManage02销售机会管理.docx_第1页
第1页 / 共20页
SaleManage02销售机会管理.docx_第2页
第2页 / 共20页
SaleManage02销售机会管理.docx_第3页
第3页 / 共20页
SaleManage02销售机会管理.docx_第4页
第4页 / 共20页
SaleManage02销售机会管理.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

SaleManage02销售机会管理.docx

《SaleManage02销售机会管理.docx》由会员分享,可在线阅读,更多相关《SaleManage02销售机会管理.docx(20页珍藏版)》请在冰豆网上搜索。

SaleManage02销售机会管理.docx

SaleManage02销售机会管理

销售机会管理

一、页面设计

销售机会管理页面主要是列出所有的销售机会信息,并提供编辑、指派、删除和查询销售机会的操作。

打开“解决方案资源管理器”目录“CRM\SaleManage”,添加一个新的使用母板页的Web窗体“SaleChanceManager.aspx”,设计完成页面如图5-4所示。

图5-4销售机会管理页面

进入设计界面,按照如图5-5所示设计界面。

图5-5“销售机会管理”页面设计

首先在页面的最上方添加三组文本标签和文本框用于查询条件的输入,并添加一个“LinkButton”控件用于执行查询操作,同时添加一个“HyperLink”控件用于链接到“新建销售机会”页面,设计完成的代码如下:

HyperLinkID="HyperLink1"runat="server"

NavigateUrl="~/SaleManage/CreateChance.aspx">新建销售机会

HyperLink>

 

LinkButtonID="lnkQuery"runat="server"OnClick="lnkQuery_Click">

查询

LinkButton>

LabelID="Label1"runat="server"Text="客户名称:

">

Label>

TextBoxID="txtClientName"runat="server"

CssClass="shortTextEntry">

TextBox>

LabelID="Label2"runat="server"Text="概要:

">

Label>

TextBoxID="txtTitle"runat="server"

CssClass="shortTextEntry">

TextBox>

LabelID="Label3"runat="server"Text="联系人:

">

Label>

TextBoxID="txtLinkMan"runat="server"

CssClass="shortTextEntry">

TextBox>

然后在该页面添加一个ID为“lblQueryEmpty”的“Label”控件用于在没有销售机会记录时显示信息,再添加一个“GridView”控件用于绑定显示销售机会的信息,修改该控件的ID为“grdSaleChances”,选中“GridView”控件打开GridView任务列表选择“编辑列”,打开如图5-6所示的“字段”对话框,按照数据库表“SaleChance”编辑“编号”、“客户名称”、“概要”、“联系人”、“联系人电话”、“创建时间”、“成功机率”各字段,其中将“编号”字段隐藏,最后添加一个名为“操作”的模版列。

图5-6“GridView”控件“字段”对话框

其中“操作”模版列添加了3个图标按钮,分别用来跳转到“编辑销售机会”、“指派销售机会”两个页面和执行“删除销售机会”功能,同时将每个按钮绑定“ChanceId”字段,便于跳转页面同时传递销售机会编号,绑定设置如图5-7所示。

最后在事件窗口给这三个图标按钮添加“Command”事件。

图5-7绑定“ChanceId”字段

由于指派过的销售机会进入到下一个客户开发阶段,就不能再进行编辑和删除,所以绑定数据时要根据每个销售机会的状态值来设定操作按钮,没有指派过的有“编辑”、“指派”、“删除”三个操作按钮,而指派过的只有一个“指派”按钮,因此需要给“GridView”控件添加一个“RowDataBound”事件。

编辑完成的“Label”控件和“GridView”控件对应的代码如下:

LabelID="lblQueryEmpty"runat="server"Text="没有销售机会"

Visible="False">

Label>

GridViewID="grdSaleChances"runat="server"AutoGenerateColumns="False"

CssClass="zi"

onrowdatabound="grdSaleChances_RowDataBound"PageSize="8">

BoundFieldDataField="ChanceId"HeaderText="编号"Visible="False"/>

BoundFieldDataField="ChanceCustomerName"HeaderText="客户名称"/>

BoundFieldDataField="ChanceTitle"HeaderText="概要"/>

BoundFieldDataField="ChanceLinkMan"HeaderText="联系人"/>

BoundFieldDataField="ChanceTelephone"HeaderText="联系人电话"/>

BoundFieldDataField="ChanceCreateDate"HeaderText="创建时间"

DataFormatString="{0:

yyyy-MM-dd}"SortExpression="ChanceCreateDate"/>

BoundFieldDataField="ChanceRate"HeaderText="成功机率"

SortExpression="ChanceRate"/>

TemplateFieldHeaderText="操作">

ImageButtonID="imgBtnEdit"runat="server"

CommandArgument='<%#Eval("ChanceId")%>'ImageUrl="~/Images/edit.gif"

oncommand="imgBtnEdit_Command"ToolTip="编辑销售机会"/>

ImageButtonID="imgBtnSignTo"runat="server"

CommandArgument='<%#Eval("ChanceId")%>'ImageUrl="~/Images/group.png"

oncommand="imgBtnSignTo_Command"ToolTip="指派销售机会给员工"/>

ImageButtonID="imgBtnDelete"runat="server"

CommandArgument='<%#Eval("ChanceId")%>'ImageUrl="~/Images/delete.gif"

onclientclick="JavaScript:

returnconfirm('确定要删除吗?

')"

oncommand="imgBtnDelete_Command"ToolTip="删除销售机会"/>

TemplateField>

GridView>

为了便于浏览销售机会信息,页面还添加了一个分页控件“AspNetPager.dll”,将该控件文件拷贝至“CRM\bin”目录下面,然后在“CRM”项目中添加对该控件的引用,如图5-8所示。

图5-8添加分页控件AspNetPager

要在该页面使用这个分页控件,必须在“SaleChanceManager.aspx”页面代码最上面添加如下预处理指令:

<%@RegisterAssembly="AspNetPager"Namespace="Wuqi.Webdiyer"TagPrefix="webdiyer"%>

然后在“GridView”控件的源代码下面添加如下代码:

AspNetPagerID="pager"runat="server"CssClass="zi"

FirstPageText="首页"LastPageText="尾页"NextPageText="下一页"

OnPageChanged="pager_PageChanged"PageIndexBoxType="DropDownList"

PrevPageText="上一页"ShowCustomInfoSection="Left"ShowPageIndexBox="Always">

AspNetPager>

添加完毕后切换到设计界面就可以看到该分页控件。

完整的页面代码如下:

<%@PageTitle="销售机会管理"Language="C#"MasterPageFile="~/Site.Master"AutoEventWireup="true"CodeBehind="SaleChanceManager.aspx.cs"Inherits="CRM.SaleManage.SaleChanceManager"%>

<%@RegisterAssembly="AspNetPager"Namespace="Wuqi.Webdiyer"TagPrefix="webdiyer"%>

ContentID="Content1"ContentPlaceHolderID="HeadContent"runat="server">

Content>

ContentID="Content2"ContentPlaceHolderID="MainContent"runat="server">

HyperLinkID="HyperLink1"runat="server"NavigateUrl="~/SaleManage/CreateChance.aspx">新建销售机会

HyperLink>

 

LinkButtonID="lnkQuery"runat="server"OnClick="lnkQuery_Click">查询

LinkButton>

LabelID="Label1"runat="server"Text="客户名称:

">

Label>

TextBoxID="txtClientName"runat="server"CssClass="shortTextEntry">

TextBox>

LabelID="Label2"runat="server"Text="概要:

">

Label>

TextBoxID="txtTitle"runat="server"CssClass="shortTextEntry">

TextBox>

LabelID="Label3"runat="server"Text="联系人:

">

Label>

TextBoxID="txtLinkMan"runat="server"CssClass="shortTextEntry">

TextBox>

LabelID="lblQueryEmpty"runat="server"Text="没有销售机会"Visible="False">

Label>

GridViewID="grdSaleChances"runat="server"AutoGenerateColumns="False"

CssClass="zi"

onrowdatabound="grdSaleChances_RowDataBound"PageSize="8">

BoundFieldDataField="ChanceId"HeaderText="编号"Visible="False"/>

BoundFieldDataField="ChanceCustomerName"HeaderText="客户名称"/>

BoundFieldDataField="ChanceTitle"HeaderText="概要"/>

BoundFieldDataField="ChanceLinkMan"HeaderText="联系人"/>

BoundFieldDataField="ChanceTelephone"HeaderText="联系人电话"/>

BoundFieldDataField="ChanceCreateDate"HeaderText="创建时间"

DataFormatString="{0:

yyyy-MM-dd}"SortExpression="ChanceCreateDate"/>

BoundFieldDataField="ChanceRate"HeaderText="成功机率"

SortExpression="ChanceRate"/>

TemplateFieldHeaderText="操作">

ImageButtonID="imgBtnEdit"runat="server"

CommandArgument='<%#Eval("ChanceId")%>'ImageUrl="~/Images/edit.gif"

oncommand="imgBtnEdit_Command"ToolTip="编辑销售机会"/>

ImageButtonID="imgBtnSignTo"runat="server"

CommandArgument='<%#Eval("ChanceId")%>'ImageUrl="~/Images/group.png"

oncommand="imgBtnSignTo_Command"ToolTip="指派销售机会给员工"/>

ImageButtonID="imgBtnDelete"runat="server"

CommandArgument='<%#Eval("ChanceId")%>'ImageUrl="~/Images/delete.gif"

onclientclick="JavaScript:

returnconfirm('确定要删除吗?

')"

oncommand="imgBtnDelete_Command"ToolTip="删除销售机会"/>

TemplateField>

GridView>

AspNetPagerID="pager"runat="server"CssClass="zi"

FirstPageText="首页"LastPageText="尾页"NextPageText="下一页"

OnPageChanged="pager_PageChanged"PageIndexBoxType="DropDownList"

PrevPageText="上一页"ShowCustomInfoSection="Left"ShowPageIndexBox="Always">

AspNetPager>

Content>

二、功能编码

1.数据访问层DAL功能设计

打开“解决方案资源管理器”,在程序集目录“DAL”下打开类文件“SaleChanceRepository.cs”,添加一个方法GetPaged()用于从数据库表“SaleChance”获取分页显示的销售机会记录。

该方法实现代码如下:

publicDataTableGetPaged(intpageIndex,intpageSize,stringorderBy,stringwhereClause,outinttotalRowCount)

{

SqlDataAdapterda=newSqlDataAdapter();

SqlCommandselectCommand=newSqlCommand();

selectCommand.CommandText="SaleChance_GetPaged";

selectCommand.Connection=Connection;

selectCommand.CommandType=CommandType.StoredProcedure;

SqlParameterprmPageIndex=newSqlParameter("@PageIndex",pageIndex);

selectCommand.Parameters.Add(prmPageIndex);

SqlParameterprmPageSize=newSqlParameter("@PageSize",pageSize);

selectCommand.Parameters.Add(prmPageSize);

SqlParameterprmOrderBy=newSqlParameter("@OrderBy",orderBy.Trim());

selectCommand.Parameters.Add(prmOrderBy);

SqlParameterprmWhereClause=newSqlParameter("@WhereClause",whereClause.Trim());

selectCommand.Parameters.Add(prmWhereClause);

da.SelectCommand=selectCommand;

DataTabledtSaleChances=null;

totalRowCount=0;

DataSetds=newDataSet();

try

{

Connection.Open();

da.Fill(ds);

dtSaleChances=ds.Tables[0];

totalRowCount=Convert.ToInt32(ds.Tables[1].Rows[0][0]);

}

catch(Exceptionex)

{

dtSaleChances=null;

}

finally

{

Connection.Close();

}

returndtSaleChances;

}

打开“解决方案资源管理器”,在程序集目录“DAL”下打开类文件“SaleChanceRepository.cs”,添加一个方法Delete()用于从数据库表“SaleChance”删除销售机会记录。

该方法实现代码如下:

publicboolDelete(intchanceId)

{

SqlCommandcmd=newSqlCommand("SaleChance_Delete",Connection);

cmd.CommandType=CommandType.StoredProcedure;

SqlParameterprmChanceId=newSqlParameter("@ChanceId",SqlDbType.Int);

prmChanceId.Value=chanceId;

cmd.Parameters.Add(prmChanceId);

intdeletedRowCount=0;

try

{

Connection.Open();

deletedRowCount=cmd.ExecuteNonQuery();

}

catch(Exceptionex)

{

}

finally

{

Connection.Close();

}

returndeletedRowCount>0;

}

2.业务逻辑层BLL功能设计

打开“解决方案资源管理器”,在程序集目录“BLL”下打开类文件“SaleChanceService.cs”,添加对应的逻辑处理方法GetPaged()用于分页显示未指派人员和已指派人员的销售机会,该方法代码如下:

publicDataTableGetPaged(intpageIndex,intpageSize,stringorderBy,stringwhereClause,outinttotalRowCount)

{

if((whereClause==null)||(whereClause.Trim().Length<1))

{

whereClause="ChanceStatus<>"

+Convert.ToInt32(SALECHANCESTATUSVALUE.SUSPENDED).ToString()

+"ANDChanceStatus<>"

+Convert.ToI

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1