📄 goodsimport_imdlg.cpp
字号:
// GoodsImport_ImDlg.cpp : implementation file
//
#include "stdafx.h"
#include "库存管理系统.h"
#include "GoodsImport_ImDlg.h"
#include "EditList.h"
#include "ADD_SUP.h"
#include "ADD_IM_HEAD.h"
#include "ADD_GOOD.h"
#include "GoodsImport_2.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CGoodsImport_ImDlg dialog
CGoodsImport_ImDlg::CGoodsImport_ImDlg(CWnd* pParent /*=NULL*/)
: CDialog(CGoodsImport_ImDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CGoodsImport_ImDlg)
m_IM_NO = _T("");
m_IM_SUP = _T("");
_Conn = ((CMyApp *)AfxGetApp())->m_nConnection;
m_goodsno = _T("");
//}}AFX_DATA_INIT
}
void CGoodsImport_ImDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CGoodsImport_ImDlg)
DDX_Control(pDX, IDC_LIST2, m_list2);
DDX_Control(pDX, IDC_LIST1, m_list1);
DDX_Text(pDX, IDC_IM_NO, m_IM_NO);
DDX_Text(pDX, IDC_IM_SUP, m_IM_SUP);
DDX_Text(pDX, IDC_GOODSNO, m_goodsno);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CGoodsImport_ImDlg, CDialog)
//{{AFX_MSG_MAP(CGoodsImport_ImDlg)
ON_BN_CLICKED(IDC_BUTTON_IM_NO, OnButtonImNo)
ON_BN_CLICKED(IDC_BUTTON1_IM_SUP, OnButton1ImSup)
ON_BN_CLICKED(IDC_IM_SAVE, OnImSave)
ON_BN_CLICKED(IDC_IM_DELETE, OnImDelete)
ON_BN_CLICKED(IDC_INSERTGOOD, OnInsertgood)
ON_BN_CLICKED(IDC_IM_DELETE2, OnImDelete2)
ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
ON_BN_CLICKED(IDC_BUTTON_GOODSNO, OnButtonGoodsno)
ON_BN_CLICKED(IDC_SAVE2, OnSave2)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CGoodsImport_ImDlg message handlers
BOOL CGoodsImport_ImDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
///////设置LIST1 CONTROL属性
BuildList1(m_list1);
BuildList2(m_list2);
////////////
return TRUE;
}
void CGoodsImport_ImDlg::OnButtonImNo()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_IM_NO!=_T(""))
{QueryList1(m_list1,m_IM_NO,"进单号");
}
}
void CGoodsImport_ImDlg::BuildList1(CListCtrl &m_list)
{
DWORD dwStyle=::GetWindowLong(m_list.m_hWnd,GWL_STYLE);
SetWindowLong(m_list.m_hWnd,GWL_STYLE,dwStyle | LVS_REPORT);
DWORD ExStyle=m_list.GetExtendedStyle(); //设置为整栏选择和网格线
m_list.SetExtendedStyle(ExStyle | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_list.InsertColumn(0,"进单号"); //插入列
m_list.InsertColumn(1,"进货日期");
m_list.InsertColumn(2,"供应商号");
m_list.InsertColumn(3,"采购工号");
m_list.InsertColumn(4,"供应商名");
m_list.InsertColumn(5,"地址");
m_list.InsertColumn(6,"信誉度");
m_list.InsertColumn(7,"联系人");
m_list.InsertColumn(8,"邮编");
m_list.InsertColumn(9,"电话");
m_list.InsertColumn(10,"新客户");
m_list.InsertColumn(11,"合计金额");
CRect rect4;
m_list.GetClientRect(rect4); //获得当前客户区信息
int count=0;
for(;count<12;count++)
m_list.SetColumnWidth(count,80); //设置列的宽度。
InsertEmpty(m_list1);
}
void CGoodsImport_ImDlg::BuildList2(CEditList &m_list2)
{
DWORD dwStyle=::GetWindowLong(m_list2.m_hWnd,GWL_STYLE);
SetWindowLong(m_list2.m_hWnd,GWL_STYLE,dwStyle | LVS_REPORT);
DWORD ExStyle=m_list2.GetExtendedStyle(); //设置为整栏选择和网格线
m_list2.SetExtendedStyle(ExStyle | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_list2.InsertColumn(0,"货号"); //插入列
m_list2.InsertColumn(1,"货名");
m_list2.InsertColumn(2,"型号");
m_list2.InsertColumn(3,"规格");
m_list2.InsertColumn(4,"计量单位");
m_list2.InsertColumn(5,"进价");
m_list2.InsertColumn(6,"进货量");
m_list2.InsertColumn(7,"金额");
CRect rect4;
m_list2.GetClientRect(rect4); //获得当前客户区信息
int re=rect4.right - rect4.left ;
int count=0;
for(;count<8;count++)
m_list2.SetColumnWidth(count,re/8); //设置列的宽度。
InsertEmpty(m_list2);
}
void CGoodsImport_ImDlg::InsertEmpty(CListCtrl &m_list)
{
int num = m_list.GetItemCount();
m_list.InsertItem( num ,"");
}
void CGoodsImport_ImDlg::QueryList1(CListCtrl &m_list,CString cs,CString re)
{
CString sql;
sql.Format("select * from 进单头 where %s = '%s",re,cs);
sql+="'";
m_list.DeleteAllItems();
try
{
_RecordsetPtr p_Re;
int i=0;
p_Re.CreateInstance("ADODB.Recordset");
p_Re->Open(_variant_t(sql),_variant_t((IDispatch *)_Conn,true),
adOpenStatic,adLockPessimistic,adCmdText);
if(p_Re->GetRecordCount()==0)
{
if(MessageBox("没有该记录\n是否添加?","warning",MB_YESNO|MB_ICONWARNING) == 6)
{
CADD_IM_HEAD dlg;
dlg.m_headno=m_IM_NO;
dlg.DoModal();
return;
}
}
while(!p_Re->adoEOF)
{
m_list.InsertItem(i,(LPCTSTR)(_bstr_t)p_Re->GetCollect("进单号"));
m_list.SetItemText(i,1,(LPCTSTR)(_bstr_t)p_Re->GetCollect("进货日期"));
m_list.SetItemText(i,3,(LPCTSTR)(_bstr_t)p_Re->GetCollect("采购工号"));
CString riqi;
riqi.Format("%s",(char *)(_bstr_t)p_Re->GetCollect("供应商号"));
INSERTSUP(m_list1,riqi);
i++;
p_Re->MoveNext();
}
}
catch(_com_error &e)//捕捉异常
{
AfxMessageBox(e.ErrorMessage());
}
}
void CGoodsImport_ImDlg::QueryList2(CListCtrl &m_list,CString cs,CString re)
{
}
void CGoodsImport_ImDlg::INSERTSUP(CListCtrl &m_list,CString cs)
{
CString sql;
CString cc="否";
sql.Format("select * from 客户 where 客户号 = '%s",cs);
sql+="'";
try
{
_RecordsetPtr p_Re;
int i=0;
p_Re.CreateInstance("ADODB.Recordset");
p_Re->Open(_variant_t(sql),_variant_t((IDispatch *)_Conn,true),
adOpenStatic,adLockPessimistic,adCmdText);
if(p_Re->GetRecordCount()==0)
{
cc="新";
if(MessageBox("没有该供应商记录\n是否添加?","warning",MB_YESNO|MB_ICONWARNING) == 6)
{
CADD_SUP dlg;
dlg.m_no=m_IM_SUP;
dlg.DoModal();
p_Re->Close();
p_Re->Open(_variant_t(sql),_variant_t((IDispatch *)_Conn,true),
adOpenStatic,adLockPessimistic,adCmdText);
}
}
while(!p_Re->adoEOF)
{
m_list.SetItemText(i,2,(LPCTSTR)(_bstr_t)p_Re->GetCollect("客户号"));
m_list.SetItemText(i,4,(LPCTSTR)(_bstr_t)p_Re->GetCollect("客户名"));
m_list.SetItemText(i,5,(LPCTSTR)(_bstr_t)p_Re->GetCollect("地址"));
m_list.SetItemText(i,6,(LPCTSTR)(_bstr_t)p_Re->GetCollect("信誉度"));
m_list.SetItemText(i,7,(LPCTSTR)(_bstr_t)p_Re->GetCollect("联系人"));
m_list.SetItemText(i,8,(LPCTSTR)(_bstr_t)p_Re->GetCollect("邮编"));
m_list.SetItemText(i,9,(LPCTSTR)(_bstr_t)p_Re->GetCollect("电话"));
m_list.SetItemText(i,10,cc);
i++;
p_Re->MoveNext();
}
}
catch(_com_error &e)//捕捉异常
{
AfxMessageBox(e.ErrorMessage());
}
}
void CGoodsImport_ImDlg::OnButton1ImSup()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_IM_SUP!=_T(""))
{INSERTSUP(m_list1,m_IM_SUP);
}
}
void CGoodsImport_ImDlg::OnImSave()
{
// TODO: Add your control notification handler code here
CString m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11;
m0=m_list1.GetItemText(0,0);
m1=m_list1.GetItemText(0,1);
m2=m_list1.GetItemText(0,2);
m3=m_list1.GetItemText(0,3);
m4=m_list1.GetItemText(0,4);
m5=m_list1.GetItemText(0,5);
m6=m_list1.GetItemText(0,6);
m7=m_list1.GetItemText(0,7);
m8=m_list1.GetItemText(0,8);
m9=m_list1.GetItemText(0,9);
m10=m_list1.GetItemText(0,10);
m11=m_list1.GetItemText(0,11);
if(m0 == ""||m1==""||m2==""||m3==""||m4==""||m5==""||m6==""||m7==""||m8==""||m9==""||m10==""||m11=="")
{MessageBox("信息不完整,请填妥后再保存");
return;
}
CString sql;
sql.Format("select * from 进单头临时表 where 进单号 = '%s",m0);
sql+="'";
try
{
_RecordsetPtr p_p;
p_p.CreateInstance("ADODB.Recordset");
p_p->Open(_variant_t(sql),_variant_t((IDispatch *)_Conn,true),
adOpenStatic,adLockPessimistic,adCmdText);
if(p_p->GetRecordCount()!=0)
{ MessageBox("该进单已存在于临表中!无需再次保存!");
return;
}
else
{
_CommandPtr _Comm;
_Comm.CreateInstance("ADODB.Command");
_Comm->ActiveConnection = _Conn;
CString la;
la="insert into 进单头临时表(进单号,进货日期,供应商号,采购工号,供应商名,地址,信誉度,联系人,邮编,电话,新客户,合计金额) values ('"+m0+"','"+m1+"','"+m2+"','"+m3+"','"+m4+"','"+m5+"','"+m6+"','"+m7+"','"+m8+"','"+m9+"','"+m10+"','"+m11+"');";
_Comm->CommandText=_bstr_t(la);
_Comm->Execute(NULL,NULL,adCmdText);
MessageBox("保存成功");
}
}
catch(_com_error &e)//捕捉异常
{
AfxMessageBox(e.Description());
}
}
void CGoodsImport_ImDlg::OnImDelete()
{
// TODO: Add your control notification handler code here
int i=m_list1.GetSelectionMark();
if(i==-1)
{
MessageBox("请选择一行要删除的行");
return;
}
m_list1.DeleteItem(i);
InsertEmpty(m_list1);
}
void CGoodsImport_ImDlg::OnInsertgood()
{
// TODO: Add your control notification handler code here
InsertEmpty(m_list2);
}
void CGoodsImport_ImDlg::OnImDelete2()
{
// TODO: Add your control notification handler code here
int i=m_list2.GetSelectionMark();
if(i==-1)
{
MessageBox("请选择一行要删除的行");
return;
}
m_list2.DeleteItem(i);
InsertEmpty(m_list2);
}
void CGoodsImport_ImDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int il;
il=m_list1.GetSelectionMark();
if(il!=-1)
{
CString lhead=m_list1.GetItemText(il,0);
if(lhead!="")
{
try
{
_RecordsetPtr p1,p2;
p1.CreateInstance("ADODB.Recordset");
p2.CreateInstance("ADODB.Recordset");
CString sql1,sql2;
sql1.Format("select * from 进单明细 where 进单号 = '%s",lhead);
sql1+="'";
p1->Open(_variant_t(sql1),_variant_t((IDispatch *)_Conn,true),
adOpenStatic,adLockPessimistic,adCmdText);
if(p1->GetRecordCount()!=0)
{int i=0;
double ftol=0;
while(!p1->adoEOF)
{
CString lgood;
lgood=(char *)(_bstr_t)p1->GetCollect("所进货号");
sql2.Format("select * from 货物 where 货号 = '%s",lgood);
sql2+="'";
p2->Open(_variant_t(sql2),_variant_t((IDispatch *)_Conn,true),
adOpenStatic,adLockPessimistic,adCmdText);
m_list2.SetItemText(i,0,(LPCTSTR)(_bstr_t)p1->GetCollect("所进货号"));
m_list2.SetItemText(i,1,(LPCTSTR)(_bstr_t)p2->GetCollect("货名"));
m_list2.SetItemText(i,2,(LPCTSTR)(_bstr_t)p2->GetCollect("型号"));
m_list2.SetItemText(i,3,(LPCTSTR)(_bstr_t)p2->GetCollect("规格"));
m_list2.SetItemText(i,4,(LPCTSTR)(_bstr_t)p2->GetCollect("计量单位"));
m_list2.SetItemText(i,5,(LPCTSTR)(_bstr_t)p1->GetCollect("进价"));
m_list2.SetItemText(i,6,(LPCTSTR)(_bstr_t)p1->GetCollect("进货量"));
CString s1,s2;
s1=m_list2.GetItemText(i,5);
s2=m_list2.GetItemText(i,6);
double f1,f2;
f1=atof(s1.GetBuffer(8));
s1.ReleaseBuffer();
f2=atof(s2.GetBuffer(8));
s2.ReleaseBuffer();
f1=f1 * f2;
ftol+=f1;
s1.Format("%.2f",f1);
m_list2.SetItemText(i,7,s1);
i++;
p2->Close();
InsertEmpty(m_list2);
p1->MoveNext();
}
CString stol;
stol.Format("%.2f",ftol);
m_list1.SetItemText(il,11,stol);
}
}
catch(_com_error &e)//捕捉异常
{
AfxMessageBox(e.Description());
}
}
}
*pResult = 0;
}
void CGoodsImport_ImDlg::OnButtonGoodsno()
{
// TODO: Add your control notification handler code here
if(m_list1.GetSelectionMark() == -1)
{
MessageBox("请先选择一个进单头!");
return;
}
UpdateData(TRUE);
if(m_goodsno != "")
{
try
{
_RecordsetPtr pg;
pg.CreateInstance("ADODB.Recordset");
CString sql;
sql.Format("select * from 货物 where 货号 = '%s",m_goodsno);
sql+="'";
pg->Open(_variant_t(sql),_variant_t((IDispatch *)_Conn,true),
adOpenStatic,adLockPessimistic,adCmdText);
if(pg->GetRecordCount()==0)
{if(MessageBox("没有该货物信息,添加吗?","WARNING",MB_ICONQUESTION|MB_YESNO)==6)
{
ADD_GOOD dlg;
dlg.m_goodno=m_goodsno;
dlg.DoModal();
}
}
else
{
int i= m_list2.GetItemCount();
i--;
m_list2.SetItemText(i,0,(LPCTSTR)(_bstr_t)pg->GetCollect("货号"));
m_list2.SetItemText(i,1,(LPCTSTR)(_bstr_t)pg->GetCollect("货名"));
m_list2.SetItemText(i,2,(LPCTSTR)(_bstr_t)pg->GetCollect("型号"));
m_list2.SetItemText(i,3,(LPCTSTR)(_bstr_t)pg->GetCollect("规格"));
m_list2.SetItemText(i,4,(LPCTSTR)(_bstr_t)pg->GetCollect("计量单位"));
}
pg->Close();
}
catch(_com_error &e)//捕捉异常
{
AfxMessageBox(e.Description());
}
}
}
void CGoodsImport_ImDlg::OnSave2()
{
// TODO: Add your control notification handler code here
MessageBox("保存成功");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -