/****************************************************************
说明: 在供应商编辑框获得焦点并按PageDown键,调用DoEditKeyDown方法
****************************************************************/
if ((pMsg->wParam == 34)&&(pMsg->hwnd==m_FvXpprovider.m_FvXphWnd)) {
DoEditKeyDown(34,IDC_FvXpPROVIDER);
}
/****************************************************************
说明: 表格中编辑框获得焦点时,按Enter键控制单元格焦点移动
****************************************************************/
if ((pMsg->wParam == 13)&&(pMsg->hwnd==m_FvXplist.edit.m_FvXphWnd)) {
MoveFocus();
return true;
}
/****************************************************************
说明: 表格中获得焦点时,按Enter键添加新行
****************************************************************/
if ((pMsg->wParam == 13)&&(pMsg->hwnd == m_FvXplist.m_FvXphWnd))
{
AddNewRow();
return true;
}
if ((pMsg->wParam ==VK_FvXpDELETE)&&
(pMsg->hwnd == m_FvXplist.m_FvXphWnd))
{
DeleteCurRow();
//return true;
}
/****************************************************************
说明: 列表框获得焦点时,按Enter键会将当前数据显示在编辑框中
****************************************************************/ else if ((pMsg->hwnd ==m_FvXpproviderlist.m_FvXphWnd)&&
(pMsg->wParam == 13))
{
OnDblclkProviderlist();
return true;
}
/****************************************************************
说明: 辅助录入表格获得焦点时,按Enter键会将当前数据显示在表格中
****************************************************************/ else if ((pMsg->hwnd ==m_FvXpauxilist.m_FvXphWnd)&&(pMsg->wParam == 13))
{
OnDblclkList2(NULL,NULL);
return true;
}
else if ((pMsg->wParam ==13
)&&(pMsg->hwnd == m_FvXpstoragelist.m_FvXphWnd))
{
OnDblclkStoragelist();
return true;
}
else if (pMsg->wParam ==13)
{
pMsg->wParam = 9;
//return;
}
else if (pMsg->wParam == VK_FvXpESCAPE)
return true;
}
/**************************************************************** 说明: 表格中编辑框按键时的事件,用于判断是否限制字符输入,如果用户按PageDown键,将使辅助录入表格获得焦点
****************************************************************/ if ((pMsg->message ==
WM_FvXpKEYDOWN)&&(pMsg->hwnd == m_FvXplist.edit.m_FvXphWnd))
{
LimitEdit();
if (pMsg->wParam == 34)
{
ShowListinfo();
ShowStorage();
}
else if (pMsg->wParam ==VK_FvXpDELETE)//按delete键删除表格当前行DeleteCurRow();
}
/**************************************************************** 说明: 表格中编辑框改变时的事件
****************************************************************/ if ((pMsg->message ==
WM_FvXpKEYUP)&&(pMsg->hwnd
== m_FvXplist.edit.m_FvXphWnd))
{
EditChange();
}
/**************************************************************** 说明: 在窗体中控件获得焦点时,使提示列表不可见
****************************************************************/
if (pMsg->message==WM_FvXpLBUTTONDOWN)
{
if (pMsg->hwnd!= m_FvXpauxilist.m_FvXphWnd)
m_FvXpauxilist.ShowWindow(SW_FvXpHIDE);
if (pMsg->hwnd != m_FvXpstoragelist.m_FvXphWnd)
m_FvXpstoragelist.ShowWindow(SW_FvXpHIDE);
}
/****************************************************************
说明: 在单击表格时,根据当前列判断是否显示编辑框
****************************************************************/
if ((pMsg->message ==WM_FvXpLBUTTONDOWN)&&(pMsg->hwnd ==m_FvXplist.m_FvXphWnd))
{
//当前列为商品编号,商品名称为空,显示编辑框,在当前列为商品名称,商品编号为空,显示编辑框,
CString tempID,tempname;
LVHITTESTINFO pos;
pos.pt.x = LOWORD(pMsg->lParam);
pos.pt.y = HIWORD(pMsg->lParam);
pos.flags = LVHT_FvXpABOVE;
int row,col;
row = -1;
col = -1;
if (m_FvXplist.SubItemHitTest(&pos)>=0)
{
m_FvXplist.SetFocus();
row = pos.iItem;
col = pos.iSubItem;
tempID = m_FvXplist.GetItemText(row,1);
tempname = m_FvXplist.GetItemText(row,2);
if (col==6) //如果单击金额列,不显示编辑框
return true;
m_FvXplist.showedit =true;
if ((tempname.IsEmpty()==false)&&(col == 1))
m_FvXplist.showedit =false;
else if((tempID.IsEmpty()==false)&&(col == 2))
m_FvXplist.showedit =false;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
void CDlgBookInput2::AddOperator()
{
if (InputInfoIsNull())
{
MessageBox("入库信息不能为空","提示",64);
return;
}
if (DetailInfoIsNull())
{
MessageBox("商品信息不能为空","提示",64);
return;
}
try
{
CString sql;
CString
c_FvXpprovider,c_FvXpoperator,c_FvXprebate,c_FvXpsumtotal,c_FvXppaymo ney,c_FvXpfactmoney,c_FvXpintime;
float f_FvXprebate,f_FvXpsumtotal,f_FvXppaymoney,f_FvXpfactmoney;
m_FvXpprovider.GetWindowText(c_FvXpprovider);
m_FvXpoperator.GetWindowText(c_FvXpoperator);
m_FvXprebate.GetWindowText(c_FvXprebate);
m_FvXpsummoney.GetWindowText(c_FvXpsumtotal);
m_FvXppaymoney.GetWindowText(c_FvXppaymoney);
m_FvXpfactmoney.GetWindowText(c_FvXpfactmoney);
f_FvXprebate = atof(c_FvXprebate);
f_FvXpsumtotal = atof(c_FvXpsumtotal);
f_FvXppaymoney = atof(c_FvXppaymoney);
f_FvXpfactmoney = atof(c_FvXpfactmoney);
CTime temptime;
m_FvXpdate.GetTime(temptime);
c_FvXpintime = temptime.Format("%Y-%m-%d");
//m_FvXppCon->BeginTrans();
sql.Format(" sp_FvXpinstore '%s','%s',%10.2f,%10.2f,%10.2f,%10.2f,'%s','%s'",c_FvXpprovider,c_FvX poperator,f_FvXprebate,f_FvXpsumtotal,f_FvXppaymoney,f_FvXpfactmoney, c_FvXpintime,"temp");
m_FvXppRs->raw_FvXpClose();
//
入库主表信息
m_FvXppRs->Open((_FvXpbstr_FvXpt)sql,m_FvXppCon.GetInterfacePtr(),adO penKeyset,adLockOptimistic,adCmdText);
CString id; //记录返回的票号
id = m_FvXppRs->GetFields()->GetItem("tempID")->Value.bstrVal;
//记录入库明细信息
int rows = m_FvXplist.GetItemCount();
for (int c = 0;c
raw_FvXpClose();
detailsql.Format("insert into tb_FvXpinstock_FvXpsub values ('%s','%s',%f,%f,%f,%f,'%s')",id,c_FvXpid,f_FvXpprice,f_FvXpnum,f_FvX prebate,f_FvXpmoney,c_FvXpstorage);
m_FvXppRs->Open((_FvXpvariant_FvXpt)detailsql,m_FvXppCon.GetInterface Ptr(),adOpenDynamic,adLockOptimistic,adCmdText);
//修改商品库存
m_FvXppRs1->raw_FvXpClose();
detailsql.Format("select * from tb_FvXpbookstorage where barcode = '%s' and storagename = '%s'",c_FvXpid,c_FvXpstorage);
m_FvXppRs1->Open((_FvXpbstr_FvXpt)detailsql,m_FvXppCon.GetInterfacePt r(),adOpenKeyset,adLockOptimistic,adCmdText);
if (m_FvXppRs1->RecordCount>0) //修改商品库存数量
{
m_FvXppRs1->raw_FvXpClose();
detailsql.Format("update tb_FvXpbookstorage set booknum =
booknum + %f where barcode = '%s' and storagename =
'%s'", f_FvXpnum ,c_FvXpid,c_FvXpstorage);
m_FvXppRs1->Open((_FvXpbstr_FvXpt)detailsql,m_FvXppCon.GetInterfacePt r(),adOpenKeyset,adLockOptimistic,adCmdText);
}
else //添加商品库存信息
{
m_FvXppRs1->raw_FvXpClose();
detailsql.Format("insert into tb_FvXpbookstorage values ( '%s','%s',%f)",c_FvXpid,c_FvXpstorage,f_FvXpnum );
m_FvXppRs1->Open((_FvXpbstr_FvXpt)detailsql,m_FvXppCon.GetInterfacePt
r(),adOpenKeyset,adLockOptimistic,adCmdText); }
}
//m_FvXppCon->CommitTrans();
InputCancel();
MessageBox("操作成功,票号为: "+id,"提示",64); }
catch(...)
{
//m_FvXppCon->CommitTrans();
MessageBox("操作失败.","提示",64);
}
}
void CDlgBookInput2::InputCancel()
{
m_FvXprebate.SetWindowText("1.0");
CTime time = CTime::GetCurrentTime();
m_FvXpdate.SetTime(&time);
m_FvXplist.DeleteAllItems();
m_FvXplist.InsertItem(1,”OK”);
m_FvXplist.SetItemText(0,5,"1.0");
m_FvXpprovider.SetWindowText(“OK”);
m_FvXpfactmoney.SetWindowText(“OK”);
m_FvXpsummoney.SetWindowText(“OK”);
}