【VC开源代码栏目提醒】:以下是网学会员为您推荐的VC开源代码-ListXSTH.cpp,希望本篇文章对您学习有所帮助。
// ListXSTH.cpp: implementation of the CListXSTH class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "a1.h"
#include "ListXSTH.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CListXSTH::CListXSTH(bool isxsth,CString djph)
{
this->m_bXsth=isxsth;
this->m_strDjPh=djph;
this->m_pstrlistThYp=new CStringList[6];
for(int i=0;i<100;i++)
{
m_iTheItemState[i]=NONE;
this->m_iYpKcSelected[i]=-1;
}
this->InitValuesFromDB();
}
CListXSTH::~CListXSTH()
{
delete [] this->m_pstrlistThYp;
}
bool CListXSTH::InitValuesFromDB()
{
LRunSql m_runsql;
CString sql,yp_id;
long sl;long l_temp;
_variant_t value;
m_pstrlistThYp[0].AddTail("药品编号");
m_pstrlistThYp[1].AddTail("药品名称");
m_pstrlistThYp[2].AddTail("仓库");
m_pstrlistThYp[4].AddTail("登记数量");
m_pstrlistThYp[5].AddTail("该药品可退货数量");
if(m_bXsth)
{
m_pstrlistThYp[3].AddTail("单价");
sql.Format("select tabxsdj.yp_id,sum(tabxsdj.sl) as sl,tabxsdj.ck_name,\
tabypinfo.yp_name,tabxsdj.dj from tabxsdj,tabypinfo \
where tabxsdj.yp_id=tabypinfo.yp_id and tabxsdj.xs_ph = '%s' \
group by tabxsdj.yp_id,tabxsdj.ck_name,\
tabypinfo.yp_name,tabxsdj.dj",
this->m_strDjPh);
}
else
{
m_pstrlistThYp[3].AddTail("进价");
sql.Format("select tabrkdj.yp_id,sum(tabrkdj.sl) as sl,tabrkdj.ck_name,\
tabypinfo.yp_name,tabrkdj.dj from tabrkdj,tabypinfo \
where tabrkdj.yp_id=tabypinfo.yp_id and tabrkdj.rk_ph = '%s'\
group by tabrkdj.yp_id,tabrkdj.ck_name,\
tabypinfo.yp_name,tabrkdj.dj",
this->m_strDjPh);
}
m_runsql.CheckSQLResult(sql);
while(!m_runsql.m_recordset->adoEOF)
{
value=m_runsql.m_recordset->GetCollect("yp_id");
if(value.vt!=VT_NULL)
m_pstrlistThYp[0].AddTail((char*)(_bstr_t)value);
yp_id=(char*)(_bstr_t)value;
value=m_runsql.m_recordset->GetCollect("yp_name");
if(value.vt!=VT_NULL)
m_pstrlistThYp[1].AddTail((char*)(_bstr_t)value);
value=m_runsql.m_recordset->GetCollect("ck_name");
if(value.vt!=VT_NULL)
m_pstrlistThYp[2].AddTail((char*)(_bstr_t)value);
value=m_runsql.m_recordset->GetCollect("dj");
if(value.vt!=VT_NULL)
m_pstrlistThYp[3].AddTail((char*)(_bstr_t)value);
value=m_runsql.m_recordset->GetCollect("sl");
if(value.vt!=VT_NULL)
m_pstrlistThYp[4].AddTail((char*)(_bstr_t)value);
sl=value.dblVal;
m_pstrlistThYp[5].AddTail("0");
//累加可退货药品数量;
if(m_strtolongYpIdToSl.Lookup(yp_id,l_temp))
this->m_strtolongYpIdToSl.SetAt(yp_id,sl+l_temp);
else
this->m_strtolongYpIdToSl.SetAt(yp_id,sl);
m_runsql.m_recordset->MoveNext();
}
if(m_bXsth)
{
sql.Format("select tabxsthdj.yp_id,sum(tabxsthdj.sl) as sl from tabxsthdj,tabxsthph where tabxsthph.xsth_ph = tabxsthdj.xsth_ph and tabxsthph.xs_ph = '%s' group by yp_id",this->m_strDjPh);
}
else
{
sql.Format("select tabrkthdj.yp_id,sum(tabrkthdj.sl) as sl from tabrkthdj,tabrkthph where tabrkthph.rkth_ph = tabrkthdj.rkth_ph and tabrkthph.rk_ph = '%s' group by yp_id",this->m_strDjPh);
}
m_runsql.CheckSQLResult(sql);
while(!m_runsql.m_recordset->adoEOF)
{
value=m_runsql.m_recordset->GetCollect("yp_id");
if(value.vt!=VT_NULL)
yp_id=(char*)(_bstr_t)value;
value=m_runsql.m_recordset->GetCollect("sl");
if(value.vt!=VT_NULL)
sl=value.dblVal;
if(m_strtolongYpIdToSl.Lookup(yp_id,l_temp))
this->m_strtolongYpIdToSl.SetAt(yp_id,l_temp-sl);
else
MessageBox("登记时没有的药品,退货登记却有!","问题");
m_runsql.m_recordset->MoveNext();
}
this->SetLeftNumber();
return true;
}
bool CListXSTH::Create(DWORD dwStyle, const RECT &rect, CWnd *pParentWnd, UINT nID)
{
bool b=CBaseList::Create(dwStyle,rect,pParentWnd,nID);
m_poplist->SelectStringList(6,this->m_pstrlistThYp);
return b;
}
void CListXSTH::OnEditKillFocus(const int& item,const int& subitem)
{
TRACE("void CListXSDJ::OnEditKillFocus()\n");
CString str;
m_edit.GetWindowText(str);
switch(subitem)
{
// case 0:
// case 1:
case 2:
{
str.MakeUpper();
this->SetValueUnChange(str);
break;
}
case 4:
{
CString id=this->GetItemText(item,0);
long l_left=0;
l_left=this->m_edit.kc_number-atoi(str)+m_edit.m_dSetFocusValue;//- cur show number + setfocus value= left
m_strtolongYpIdToSl.SetAt(id,l_left);
this->SetLeftNumber();
this->m_poplist->SelectStringList(6,this->m_pstrlistThYp);
break;
}
}
CBaseList::OnEditKillFocus(item,subitem);
if(subitem==5)
this->SetZje();
}
bool CListXSTH::OnEditReturn(const int& item,const int& subitem)
{
CString str;
m_edit.GetWindowText(str);
switch(subitem)
{
case 0:
{
if(this->m_poplist->IsWindowVisible()&&this->m_poplist->GetSelectedMark()>=0)
{
this->SetValueUnChange(m_poplist->GetListCtrlSel(0));
this->SetItemText(m_nItem,0,this->m_poplist->GetListCtrlSel(0));
this->SetItemText(m_nItem,1,this->m_poplist->GetListCtrlSel(1));
this->SetItemText(m_nItem,3,this->m_poplist->GetListCtrlSel(3));
// this->InitListYpCk(item,m_poplist->GetListCtrlSel(0));
m_iTheItemState[item]=NONE;
m_iTheItemState[item]&=NOCK;
m_iTheItemState[item]|=YPTRUE;
}
else
SetValueUnChange("");
break;
}
case 1:
{
if(this->m_poplist->IsWindowVisible()&&this->m_poplist->GetSelectedMark()>=0)
{
SetValueUnChange(m_poplist->GetListCtrlSel(1));
this->SetItemText(m_nItem,0,this->m_poplist->GetListCtrlSel(0));
this->SetItemText(m_nItem,1,this->m_poplist->GetListCtrlSel(1));
this->SetItemText(m_nItem,3,this->m_poplist->GetListCtrlSel(3));
// this->InitListYpCk(item,m_poplist->GetListCtrlSel(0));
m_iTheItemState[item]=NONE;
m_iTheItemState[item]&=NOCK;
m_iTheItemState[item]|=YPTRUE;
}
else
SetValueUnChange("");
break;
}
case 2:
{
if(this->m_poplist->IsWindowVisible()&&this->m_poplist->GetSelectedMark()>=0)
{
SetValueUnChange(m_poplist->GetListCtrlSel(2));
this->SetItemText(m_nItem,2,this->m_poplist->GetListCtrlSel(2));
m_iTheItemState[item]=CKTRUE;
}
else
SetValueUnChange("");
break;
}
}
CBaseList::OnEditReturn(item,subitem);
return true;
}
void CListXSTH::OnEditSetFocus(const int& item,const int& subitem)
{
CStrin
上一篇:
ListXSDJ.cpp
下一篇:
最新参考文献中的标点符号