📄 dlgproductorinput2.cpp
字号:
// if (!CurrentRowIsNull()) //当前行不为空
if (list.row == counts-1)//当前行为最后一行
{
list.InsertItem(100,"");
list.row+=1;
list.SetItemText(list.row,5,"1.0");
//list.SetFocus();
list.col = 0;
//list.SetHotItem(1);
list.ShowEdit();
}
else
{
list.row+=1;
list.col = 0;
list.ShowEdit();
}
}
void CDlgProductorInput2::EditChage()
{
CString str;
list.edit.GetWindowText(str);
CString sql = "";
switch (list.col)
{
case 1 :
{
if (!str.IsEmpty())
sql.Format("select * from tb_merchandiseinfo where id like '%s%%' or shortname like '%s%%' ",str,str);
break;
}
case 2 :
{
if (!str.IsEmpty())
sql.Format("select * from tb_merchandiseinfo where name like '%s%%' or shortname like '%s%%'",str,str);
break;
}
case 3:
{
CString c_price,c_num,c_rebate,c_money;
float f_price,f_num,f_rebate,f_money;
c_price = str;
c_num = list.GetItemText(list.row,4);
c_rebate = list.GetItemText(list.row,5);
if (c_price.IsEmpty()||c_num.IsEmpty()||c_rebate.IsEmpty())
{
//如果单价\数量\折扣为空,金额将为空
list.SetItemText(list.row,6,"");
}
else
{
f_price = atof(c_price);
f_num = atof(c_num);
f_rebate = atof(c_rebate);
f_money = f_price*f_num*f_rebate;
c_money.Format("%10.2f",f_money);
list.SetItemText(list.row,6,c_money);
}
str.Format("%10.2f",CalculateMoney());
str.TrimLeft();
totalmoney.SetWindowText(str);
break;
}
case 4:
{
CString c_price,c_num,c_rebate,c_money;
float f_price,f_num,f_rebate,f_money;
c_price = list.GetItemText(list.row,3);
c_num = str;
c_rebate = list.GetItemText(list.row,5);
if (c_price.IsEmpty()||c_num.IsEmpty()||c_rebate.IsEmpty())
{
//如果单价\数量\折扣为空,金额将为空
list.SetItemText(list.row,6,"");
}
else
{
f_price = atof(c_price);
f_num = atof(c_num);
f_rebate = atof(c_rebate);
f_money = f_price*f_num*f_rebate;
c_money.Format("%10.2f",f_money);
list.SetItemText(list.row,6,c_money);
}
str.Format("%10.2f",CalculateMoney());
str.TrimLeft();
totalmoney.SetWindowText(str);
break;
}
case 5:
{
CString c_price,c_num,c_rebate,c_money;
float f_price,f_num,f_rebate,f_money;
c_price = list.GetItemText(list.row,3);
c_num = list.GetItemText(list.row,4);
c_rebate = str;
if (c_price.IsEmpty()||c_num.IsEmpty()||c_rebate.IsEmpty())
{
//如果单价\数量\折扣为空,金额将为空
list.SetItemText(list.row,6,"");
}
else
{
f_price = atof(c_price);
f_num = atof(c_num);
f_rebate = atof(c_rebate);
f_money = f_price*f_num*f_rebate;
c_money.Format("%10.2f",f_money);
list.SetItemText(list.row,6,c_money);
}
str.Format("%10.2f",CalculateMoney());
str.TrimLeft();
totalmoney.SetWindowText(str);
break;
}
default:
break;
}
if (! sql.IsEmpty())
{
m_pRs->raw_Close();
m_pRs->Open((_bstr_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
if (m_pRs->RecordCount>0)
{
listinfo.DeleteAllItems();
int i=0;
while(! m_pRs->adoEOF)
{
listinfo.InsertItem(100,"");
for (int m = 0;m<5;m++)
listinfo.SetItemText(i,m,(TCHAR*)(_bstr_t)m_pRs->GetFields()->GetItem((long)m)->Value);
m_pRs->MoveNext();
i +=1;
}
ShowListInfo();
}
else
listinfo.ShowWindow(SW_HIDE);
}
else
listinfo.ShowWindow(SW_HIDE);
}
void CDlgProductorInput2::ShowListInfo()
{
CRect rect;
list.GetSubItemRect(list.row,list.col,LVIR_BOUNDS,rect);
listinfo.MoveWindow(rect.left,rect.bottom+1,300,150);
listinfo.ShowWindow(SW_SHOW);
}
void CDlgProductorInput2::OnKillfocusList1(NMHDR* pNMHDR, LRESULT* pResult)
{
listinfo.ShowWindow(SW_HIDE);
*pResult = 0;
}
void CDlgProductorInput2::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
{
int row = listinfo.GetSelectionMark();
if (row!=-1)
{
CString temp;
temp = listinfo.GetItemText(row,0);
//设置商品编号
list.SetItemText(list.row,1,temp);
//设置商品名称
list.SetItemText(list.row,2,listinfo.GetItemText(row,1));
//设置默认价格
list.SetItemText(list.row,3,listinfo.GetItemText(row,4));
listinfo.ShowWindow(SW_HIDE);
}
//移动编辑框
//MoveFocus();
list.col =3;
list.ShowEdit();
//*pResult = 0;
}
void CDlgProductorInput2::LimitEdit()
{
list.edit.IsNumber = false;
//在修改商品数据,价格,折扣时只允许输入数字
if ((list.col ==3)||(list.col ==4)||(list.col==5))
{
list.edit.IsNumber = true;
}
}
void CDlgProductorInput2::ShowListinfo()
{
if (listinfo.IsWindowVisible())
{
listinfo.SetFocus();
listinfo.SetSelectionMark(1);
}
}
void CDlgProductorInput2::AddStorage()
{
storage.SetRedraw(FALSE);
storage.ResetContent();//删除所有的数据
CString sql;
sql = "select distinct storagename from tb_storageinfo";
m_pRs->Close();
m_pRs->Open((_bstr_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
while (!m_pRs->adoEOF)
{
storage.AddString((TCHAR *)(_bstr_t)m_pRs->GetFields()->GetItem("storagename")->Value);
m_pRs->MoveNext();
}
storage.SetRedraw(TRUE);
storage.Invalidate();
}
void CDlgProductorInput2::ShowStorage()
{
if (list.col ==0)
if (!storage.IsWindowVisible())
{
CRect rect;
list.GetSubItemRect(list.row,list.col,LVIR_BOUNDS,rect);
storage.MoveWindow(rect.left,rect.bottom,100,80,0);
storage.ShowWindow(SW_SHOW);
storage.SetFocus();
storage.SetCurSel(0);
}
}
void CDlgProductorInput2::OnKillfocusListbox2()
{
storage.ShowWindow(SW_HIDE);
}
void CDlgProductorInput2::OnDblclkListbox2()
{
CString temp;
int index = storage.GetCurSel();
if (index != -1)
{
storage.GetText(index,temp);
if (! temp.IsEmpty())
list.SetItemText(list.row,list.col,temp);
list.SetFocus();
storage.ShowWindow(SW_HIDE);
list.col+=1;
list.ShowEdit();
}
}
float CDlgProductorInput2::CalculateMoney()
{
float money,temp;
money = 0.0;
CString c_money;
int rowcounts = list.GetItemCount();
for (int i = 0;i<rowcounts;i++)
{
c_money = list.GetItemText(i,6);
if (!c_money.IsEmpty())
{
temp = atof(c_money);
money += temp;
}
}
return money;
}
void CDlgProductorInput2::OnChangeRebate()
{
CString c_totalmoney,c_rebate,c_paymoney;
float f_totalmoney,f_rebate,f_paymoney;
totalmoney.GetWindowText(c_totalmoney);
rebate.GetWindowText(c_rebate);
if(!c_totalmoney.IsEmpty()&&!c_rebate.IsEmpty())
{
f_totalmoney = atof(c_totalmoney);
f_rebate = atof(c_rebate);
f_paymoney = f_totalmoney *f_rebate;
c_paymoney.Format("%10.2f",f_paymoney);
c_paymoney.TrimLeft();
paymoney.SetWindowText(c_paymoney);
}
else
{
paymoney.SetWindowText("");
}
}
void CDlgProductorInput2::OnChangeTotalmoney()
{
//调用折扣改变时的事件
OnChangeRebate();
}
void CDlgProductorInput2::DeleteCurRow()
{
int currow;
currow = list.row;
if (currow!=-1)
{
if (MessageBox("确实要删除当前行吗?","提示",MB_YESNO)==IDYES)
{
int m = list.GetItemCount();
if (m >1)
{
for (int i = currow+1;i<list.GetItemCount();i++)
{
for(int c = 0; c<7 ;c++)
{
list.SetItemText(i-1,c,list.GetItemText(i,c));
}
}
list.DeleteItem(list.GetItemCount()-1);
}
else
{
for (int i = 0;i< 7;i++)
{
list.SetItemText(0,i,"");
}
}
CString temp;
temp.Format("%10.2f",CalculateMoney());//重新统计数据
temp.TrimLeft();
totalmoney.SetWindowText(temp);
}
}
}
void CDlgProductorInput2::OnKeydownDetaillist(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_KEYDOWN* pLVKeyDow = (LV_KEYDOWN*)pNMHDR;
// TODO: Add your control notification handler code here
*pResult = 0;
}
bool CDlgProductorInput2::InputInfoIsNull()
{
CString c_provider,c_totalmoney,c_rebate,c_paymoney,c_factmoney;
providername.GetWindowText(c_provider);
totalmoney.GetWindowText(c_totalmoney);
rebate.GetWindowText(c_rebate);
paymoney.GetWindowText(c_paymoney);
factmoney.GetWindowText(c_factmoney);
if ((c_provider.IsEmpty())||(c_totalmoney.IsEmpty())||(c_rebate.IsEmpty())||(c_paymoney.IsEmpty())||(c_factmoney.IsEmpty()))
return true;
else
return false;
}
bool CDlgProductorInput2::DetailInfoIsNull()
{
int rowcount = list.GetItemCount();
if (rowcount ==-1)
return true;
for (int r = 0;r <rowcount;r++)
for (int i = 0;i<7;i++)
{
CString temp;
temp = list.GetItemText(r,i);
if (temp.IsEmpty()==true)
return true;
}
return false;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -