4.3 销售模块的实现
(1)药品销售系统的药品销售功能模块实现药品销售的相关操作,如图4.3所示,为药品销售界面。药品销售功能模块由药名、类别、数量、价格、总价、销售列表和销售详情组成,此对话框由七个静态文本框、四个可编辑文本框、列表和四个按钮构成,实现销售药品的功能,分为售出、查询、修改和退出等功能,在药品采购完之后,从库存里售出相应的药品,如果库存里没有相应药品的采购,则无法进行销售。
图4.3 药品销售界面
(2)各控件的说明如下:
药品:输入销售的药品名,为字符型变量,否则出错;
类别:输入销售的药品类别,为字符型变量。
数量:输入销售的药品数量,为整形变量,其值不能小于0,大于采购的数量,否则库存不够,无法进行销售。
价格:输入销售的药品价格,为整形变量,其值大于0。
总价:在输入完药品名、类别、数量和价格之后,进行相应的操作时,总价会显示总的价格。
销售列表:在输入完药品名、类别、数量和价格,售出药品之后,销售列表会显示当前销售的药品名。
销售详单:在售出药品之后,在销售列表中有相应的药品名,而对应的销售记录在销售详单里,通过列表显示出来。
售出:在输入完药品名、类别、数量和价格,点击售出,则将相应的药品名和记录添加到销售列表和销售详单里。
查询:点击查询按钮之后,销售列表里会显示售出的药品名进行查询,通过销售详单显示相应的记录。
修改:只能对销售的数量进行修改,修改成功后将记录添加到销售列表和销售详单里。
退出:点击该按钮即实现退出销售界面。
(3)核心代码:
bool Check(CString &m_Numberx) //检查是否含不是数字的项
{
for(int i = 0;i <m_Numberx.GetLength();i++)
{
if(!isdigit(m_Numberx[i]))
return false;
}
return true;
}
void Sell::OnTotal()
{
UpdateData(true);
int Index1,JiShu;
bool Jin=true,Kcheck=true;
CMedManageApp *app = (CMedManageApp *)AfxGetApp();
if(m_Name.IsEmpty()) //若药名栏为空
{
MessageBox("请输入药名!");
}
else if(m_Kind.IsEmpty()) //若类别栏为空
{
MessageBox("请输入药品类别!");
}
else if(!Check(m_Number)) //若类别栏中含非法字符
{
MessageBox("数据栏含非法字符!");
}
else if(!Check(m_Price)) //若类别栏中含非法字符
{
MessageBox("价格栏含非法字符!");
}
else
{
Index1=app->single.GetYaoNum(1);
if(Index1)
{ while(Index1--)
{
if(m_Name==app->single.GetYao(Index1,1)->YName)
{
if(atoi(app->single.GetYao(Index1,1)->YNumber)<atoi(m_Number))
{MessageBox("库存不够");Kcheck=false;}
else
JiShu=Index1;
Kcheck=true;
break;
}
else
Kcheck=false;
}
if(Kcheck==true)
{
Index1=app->single.GetYaoNum(2);
while(Index1--)
{
if(app->single.GetYao(Index1,2)->YName==m_Name)
{
MessageBox("列表中已经有该项了");
Jin=false;
}
}
if(Jin==true)
{
app->single.AddYao(m_Name,m_Kind,m_Number,m_Price,2);
int temp=atoi(app->single.GetYao(JiShu,1)->YNumber)-atoi(m_Number);
app->single.GetYao(JiShu,1)->YNumber.Format("%d",temp);
m_Total.Format("%d",atoi(m_Number)*atoi(m_Price));
UpdateData(false);
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页