www.gusucode.com > VC+MSSQL物资管理系统源码程序 > VC+MSSQL物资管理系统源码程序\code\Code\Material_MISView.cpp

    //Download by http://www.NewXing.com
// Material_MISView.cpp : implementation of the CMaterial_MISView class
//

#include "stdafx.h"
#include "Material_MIS.h"

#include "Material_MISDoc.h"
#include "Material_MISView.h"
#include "AddBasicInfo.h"
#include "CheckBasicInfoDLG.h"
#include "AppendInInfo.h"
#include "Search.h"
#include "AppendOutInfo.h"
#include "SearchplusInfo.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMaterial_MISView

IMPLEMENT_DYNCREATE(CMaterial_MISView, CView)

BEGIN_MESSAGE_MAP(CMaterial_MISView, CView)
	//{{AFX_MSG_MAP(CMaterial_MISView)
	ON_COMMAND(ID_MENU_ADDBASICINFO, OnMenuAddbasicinfo)
	ON_COMMAND(ID_MENU_ADDININFO, OnMenuAddininfo)
	ON_COMMAND(ID_MENU_ADDOUTINFO, OnMenuAddoutinfo)
	ON_COMMAND(ID_MENU_ALTERBASICINFO, OnMenuAlterbasicinfo)
	ON_COMMAND(ID_MENU_ALTERININFO, OnMenuAlterininfo)
	ON_COMMAND(ID_MENU_ALTEROUTINFO, OnMenuAlteroutinfo)
	ON_COMMAND(ID_MENU_DELBASICINFO, OnMenuDelbasicinfo)
	ON_COMMAND(ID_MENU_DELININFO, OnMenuDelininfo)
	ON_COMMAND(ID_MENU_DELOUTINFO, OnMenuDeloutinfo)
	ON_COMMAND(ID_MENU_SEARCHBASICINFO, OnMenuSearchbasicinfo)
	ON_COMMAND(ID_MENU_SEARCHININFO, OnMenuSearchininfo)
	ON_COMMAND(ID_MENU_SEARCHOUTINFO, OnMenuSearchoutinfo)
	ON_COMMAND(ID_MENU_SEARCHSURPLUS, OnMenuSearchsurplus)
	ON_WM_CONTEXTMENU()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMaterial_MISView construction/destruction

CMaterial_MISView::CMaterial_MISView()
{
	// TODO: add construction code here

}

CMaterial_MISView::~CMaterial_MISView()
{
}

BOOL CMaterial_MISView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CMaterial_MISView drawing

void CMaterial_MISView::OnDraw(CDC* pDC)
{
	CMaterial_MISDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
}

/////////////////////////////////////////////////////////////////////////////
// CMaterial_MISView diagnostics

#ifdef _DEBUG
void CMaterial_MISView::AssertValid() const
{
	CView::AssertValid();
}

void CMaterial_MISView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CMaterial_MISDoc* CMaterial_MISView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMaterial_MISDoc)));
	return (CMaterial_MISDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMaterial_MISView message handlers

void CMaterial_MISView::OnMenuAddbasicinfo() 
{
	// TODO: Add your command handler code here
	AddBasicInfo dlg;
    dlg.m_bAppend = true;
    dlg.DoModal();
}

void CMaterial_MISView::OnMenuAddininfo() 
{
	// TODO: Add your command handler code here
	
	CAppendInInfo dlg;
	dlg.m_bAppend = true;
	dlg.DoModal();
}

void CMaterial_MISView::OnMenuAddoutinfo() 
{
	// TODO: Add your command handler code here
	CAppendOutInfo dlg;
	dlg.m_bAppend =true;
	dlg.DoModal();
}

void CMaterial_MISView::OnMenuAlterbasicinfo() 
{
	// TODO: Add your command handler code here
	if ( m_ListCtrl && m_sCurrentList!="物资列表" )	
	{
		m_ListCtrl.DestroyWindow();
	    CreateMaterialInfo();
	    return;
	}
    if ( !m_ListCtrl )
	{
		CreateMaterialInfo();
	    return;
	}  
    
	//弹出警告对话框
	POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition();
    if (pos == NULL) AfxMessageBox(_T("没有选中记录!"), MB_ICONEXCLAMATION);
    else
	{
       AddBasicInfo dlg;
       dlg.m_bAppend = false;   
	   CString str;
	   int iItem = m_ListCtrl.GetNextSelectedItem(pos);
       //获得ID
	   dlg.m_wzID = m_ListCtrl.GetItemText(iItem, 0);
	   //获得名称
       dlg.m_wzName = m_ListCtrl.GetItemText(iItem, 1);
	   //获得规格
       dlg.m_wzSpec = m_ListCtrl.GetItemText(iItem, 2);
	   //获得类别
       dlg.m_wzKind = m_ListCtrl.GetItemText(iItem, 3);
	   //获得单位
       dlg.m_wzUnit = m_ListCtrl.GetItemText(iItem, 4);
	
	   dlg.DoModal();
	}
}

void CMaterial_MISView::OnMenuAlterininfo() 
{
	// TODO: Add your command handler code here
	_variant_t strQuery;
	
	if ( m_ListCtrl && m_sCurrentList!=_T("物资入库列表") )
	{
		m_ListCtrl.DestroyWindow();
	    strQuery = "select * from msave";
		CreateIn(strQuery);
	    
		m_sCurrentList = _T("物资入库列表");
        m_StaticCtrl.SetWindowText(m_sCurrentList);
		
		return;
	}
    if ( !m_ListCtrl )
	{
		strQuery = "select * from msave";
		CreateIn(strQuery);
	    
		m_sCurrentList = _T("物资入库列表");
    	m_StaticCtrl.SetWindowText(m_sCurrentList);
		
		return;
	}
	POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition();
    if (pos == NULL) AfxMessageBox(_T("没有选中的记录!"), MB_ICONEXCLAMATION);
    else
	{
	   CAppendInInfo dlg;
       dlg.m_bAppend = false;   
	   
	   CString str;
	   int iItem = m_ListCtrl.GetNextSelectedItem(pos);
	   dlg.m_rkNO=m_ListCtrl.GetItemText(iItem,0);
	   dlg.m_wzID=m_ListCtrl.GetItemText(iItem,1);
	   dlg.m_wzName=m_ListCtrl.GetItemText(iItem,2);
	   dlg.m_wzSpec=m_ListCtrl.GetItemText(iItem,3);
	   dlg.m_wzKind=m_ListCtrl.GetItemText(iItem,4);
	   dlg.m_wzUnit=m_ListCtrl.GetItemText(iItem,5);
	   dlg.m_sQuantity=m_ListCtrl.GetItemText(iItem,6);
	   dlg.m_sUnit=m_ListCtrl.GetItemText(iItem,7);
	   dlg.m_sMoney=m_ListCtrl.GetItemText(iItem,8);
//	   dlg.m_sTime=m_ListCtrl.GetItemText(iItem,8);
	   dlg.m_sDealPerson=m_ListCtrl.GetItemText(iItem,10);
	   dlg.m_sSavePerson=m_ListCtrl.GetItemText(iItem,11);
	   dlg.m_sStorage=m_ListCtrl.GetItemText(iItem,12);
	   dlg.m_sMemo=m_ListCtrl.GetItemText(iItem,13);

	   dlg.DoModal();
	}
}

void CMaterial_MISView::OnMenuAlteroutinfo() 
{
	// TODO: Add your command handler code here
	_variant_t strQuery;
	
	if ( m_ListCtrl && m_sCurrentList!=_T("物资出库列表") )
	{
		m_ListCtrl.DestroyWindow();
	    strQuery = "select * from muse";
		CreateOut(strQuery);
	    
		m_sCurrentList = _T("物资出库列表");
        m_StaticCtrl.SetWindowText(m_sCurrentList);
		
		return;
	}
    if ( !m_ListCtrl )
	{
		strQuery = "select * from muse";
		CreateOut(strQuery);
	    
		m_sCurrentList = _T("物资出库列表");
    	m_StaticCtrl.SetWindowText(m_sCurrentList);
		
		return;
	}
	POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition();
    if (pos == NULL) AfxMessageBox(_T("没有选中的记录!"), MB_ICONEXCLAMATION);
    else
	{
	   CAppendOutInfo dlg;
       dlg.m_bAppend = false;   
	   
	   CString str;
	   int iItem = m_ListCtrl.GetNextSelectedItem(pos);
	   dlg.m_rkNO=m_ListCtrl.GetItemText(iItem,0);
	   dlg.m_wzID=m_ListCtrl.GetItemText(iItem,1);
	   dlg.m_wzName=m_ListCtrl.GetItemText(iItem,2);
	   dlg.m_wzSpec=m_ListCtrl.GetItemText(iItem,3);
	   dlg.m_wzKind=m_ListCtrl.GetItemText(iItem,4);
	   dlg.m_wzUnit=m_ListCtrl.GetItemText(iItem,5);
	   dlg.m_sQuantity=m_ListCtrl.GetItemText(iItem,6);
	   dlg.m_sUnit=m_ListCtrl.GetItemText(iItem,7);
	   dlg.m_sMoney=m_ListCtrl.GetItemText(iItem,8);
	   dlg.m_sDealPerson=m_ListCtrl.GetItemText(iItem,10);
	   dlg.m_sSavePerson=m_ListCtrl.GetItemText(iItem,11);
	   dlg.m_sStorage=m_ListCtrl.GetItemText(iItem,12);
	   dlg.m_sMemo=m_ListCtrl.GetItemText(iItem,13);

	   dlg.DoModal();
	}
}

void CMaterial_MISView::OnMenuDelbasicinfo() 
{
	// TODO: Add your command handler code here
		if ( m_ListCtrl && m_sCurrentList!="物资列表" )	
	{
		m_ListCtrl.DestroyWindow();
	    CreateMaterialInfo();
	    return;
	}
    if ( !m_ListCtrl )
	{
		CreateMaterialInfo();
	    return;
	}
	
	//删除记录
	POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition();
    if ( pos == NULL ) 
	{
		AfxMessageBox(_T("没有选中记录!"), MB_ICONEXCLAMATION);
		return;
	}
    else
	{
        int iItem;       
		CString sID;
		_variant_t Holder, strQuery;
		while (pos)
		{
            iItem = m_ListCtrl.GetNextSelectedItem(pos);
            sID = m_ListCtrl.GetItemText(iItem, 0);
		    strQuery = "delete from material where wzid='"+sID+"'";
	        theApp.ADOExecute(theApp.m_pADOSet, strQuery);
		}
	}
	//刷新列表
	RefreshMaterial();
}

void CMaterial_MISView::OnMenuDelininfo() 
{
	// TODO: Add your command handler code here
	_variant_t Holder, strQuery;
		if ( m_ListCtrl && m_sCurrentList!="物资入库列表" )	
	{
		m_ListCtrl.DestroyWindow();
		strQuery = "select * from msave";
	    CreateIn(strQuery);

		m_sCurrentList = _T("物资入库列表");
        m_StaticCtrl.SetWindowText(m_sCurrentList);
	    return;
	}
    if ( !m_ListCtrl )
	{
		strQuery = "select * from msave";
		CreateIn(strQuery);

		m_sCurrentList = _T("物资入库列表");
        m_StaticCtrl.SetWindowText(m_sCurrentList);
	    return;
	}
	
	//删除记录
	POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition();
    if ( pos == NULL ) 
	{
		AfxMessageBox(_T("没有选中记录!"), MB_ICONEXCLAMATION);
		return;
	}
    else
	{
        int iItem;       
		CString sNO;
		CString sID;
		CString sAccount;
		CString sValue;
		CString sBase;

		
		while (pos)
		{
            iItem = m_ListCtrl.GetNextSelectedItem(pos);
            sNO = m_ListCtrl.GetItemText(iItem, 0);
			sID = m_ListCtrl.GetItemText(iItem, 1);
			sAccount = m_ListCtrl.GetItemText(iItem, 6);
			//double sfAccount=atof(sAccount);
			sValue = m_ListCtrl.GetItemText(iItem,8);
			//double sfValue=atof(sValue);
			sBase = m_ListCtrl.GetItemText(iItem,12);

		    strQuery = "delete from msave where rkno='"+sNO+"'";
	        theApp.ADOExecute(theApp.m_pADOSet, strQuery);
			
			strQuery="update msurplus set yeaccount=yeaccount-"+sAccount+",yevalue=yevalue-"\
				+sValue+" where yeid='"+sID+"'and yebase='"+sBase+"'";
			theApp.ADOExecute(theApp.m_pADOSet,strQuery); 

			strQuery="delete from msurplus where yeaccount=0";
			theApp.ADOExecute(theApp.m_pADOSet,strQuery);
	
		}
	}
	//刷新列表
	RefreshIn();
}

void CMaterial_MISView::OnMenuDeloutinfo() 
{
	// TODO: Add your command handler code here
	_variant_t Holder, strQuery;
		if ( m_ListCtrl && m_sCurrentList!="物资出库列表" )	
	{
		m_ListCtrl.DestroyWindow();
		strQuery = "select * from muse";
	    CreateOut(strQuery);

		m_sCurrentList = _T("物资出库列表");
        m_StaticCtrl.SetWindowText(m_sCurrentList);
	    return;
	}
    if ( !m_ListCtrl )
	{
		strQuery = "select * from muse";
		CreateOut(strQuery);

		m_sCurrentList = _T("物资出库列表");
        m_StaticCtrl.SetWindowText(m_sCurrentList);
	    return;
	}
	
	//删除记录
	POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition();
    if ( pos == NULL ) 
	{
		AfxMessageBox(_T("没有选中记录!"), MB_ICONEXCLAMATION);
		return;
	}
    else
	{
        int iItem;       
		CString sNO;
		CString sID;
		CString sAccount;
		CString sValue;
		CString sBase;

		
		while (pos)
		{
            iItem = m_ListCtrl.GetNextSelectedItem(pos);
            sNO = m_ListCtrl.GetItemText(iItem, 0);
			sID = m_ListCtrl.GetItemText(iItem, 1);
			sAccount = m_ListCtrl.GetItemText(iItem, 6);
			sValue = m_ListCtrl.GetItemText(iItem,8);
			sBase = m_ListCtrl.GetItemText(iItem,12);
		    strQuery = "delete from muse where lyno='"+sNO+"'";
	        theApp.ADOExecute(theApp.m_pADOSet, strQuery);
			
			strQuery="update msurplus set yeaccount=yeaccount+"+sAccount+",yevalue=yevalue+"\
				+sValue+" where yeid='"+sID+"'and yebase='"+sBase+"'";
			theApp.ADOExecute(theApp.m_pADOSet,strQuery); 

			strQuery="delete from msurplus where yeaccount=0";
			theApp.ADOExecute(theApp.m_pADOSet,strQuery);
	
		}
	}
	//刷新列表
	RefreshOut();
}

void CMaterial_MISView::OnMenuSearchbasicinfo() 
{
	// TODO: Add your command handler code here	
	_variant_t strQuery, Holder;	
	strQuery = "select wzname from material";
	theApp.ADOExecute(theApp.m_pADOSet, strQuery);
	int iCount = theApp.m_pADOSet->GetRecordCount();
	if ( 0==iCount ) 
	{
		AfxMessageBox(_T("目前没有记录!"), MB_ICONEXCLAMATION);
		return;
	}
	CCheckBasicInfoDLG dlg;
	dlg.DoModal();
}

void CMaterial_MISView::OnMenuSearchininfo() 
{
	// TODO: Add your command handler code here
	
	CSearch dlg;
	dlg.m_sType=true;
	_variant_t strQuery;
	strQuery="select * from msave";
	theApp.ADOExecute(theApp.m_pADOSet,strQuery);
	int icount=theApp.m_pADOSet->GetRecordCount();
	if(0==icount)
	{
		AfxMessageBox(_T("目前没有入库信息!"), MB_ICONEXCLAMATION);
		return;
	}
	dlg.DoModal();
}

void CMaterial_MISView::OnMenuSearchoutinfo() 
{
	// TODO: Add your command handler code here
	CSearch dlg;
	dlg.m_sType=false;
	_variant_t strQuery;
	strQuery="select * from muse";
	theApp.ADOExecute(theApp.m_pADOSet,strQuery);
	int icount=theApp.m_pADOSet->GetRecordCount();
	if(0==icount)
	{
		AfxMessageBox(_T("目前没有出库信息!"), MB_ICONEXCLAMATION);
		return;
	}
	dlg.DoModal();
}

void CMaterial_MISView::OnMenuSearchsurplus() 
{
	// TODO: Add your command handler code here
	_variant_t strQuery;
	
	m_ListCtrl.DestroyWindow();
	strQuery = "select * from msurplus";
	CreateSurplusInfo(strQuery);
	m_sCurrentList = _T("物资余额列表");
    m_StaticCtrl.SetWindowText(m_sCurrentList);

	CSearchplusInfo dlg;
	dlg.DoModal();
	return;
}


void CMaterial_MISView::RefreshMaterial()
{
	if (m_ListCtrl)	m_ListCtrl.DestroyWindow();
	
    CreateMaterialInfo();
    
	m_sCurrentList = _T("物资列表");
    m_StaticCtrl.SetWindowText(m_sCurrentList);
}

void CMaterial_MISView::CreateMaterialInfo()
{
	m_sCurrentList = _T("物资列表");
    m_StaticCtrl.SetWindowText(m_sCurrentList);
	
	CRect rect;
	GetClientRect(rect);
	rect.top += 30;

	m_ListCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT, rect, this, 1);

	m_ListCtrl.SetBkColor(RGB(177, 151, 240));
	m_ListCtrl.SetTextColor(RGB(0,0,0));
	m_ListCtrl.SetTextBkColor(RGB(177, 151, 240));
	
	// Set EX-Style
	m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP);

	// 创建标题
	m_ListCtrl.InsertColumn(0,_T("物资编号"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(1,_T("物资名称"), LVCFMT_LEFT, 100);
    m_ListCtrl.InsertColumn(2,_T("规格型号"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(3,_T("类    别"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(4,_T("计量单位"), LVCFMT_LEFT, 100);

	// 获得所有记录
	_variant_t Holder, strQuery;
    strQuery = "select * from material order by wzid";
	theApp.ADOExecute(theApp.m_pADOSet, strQuery);
    int iCount = theApp.m_pADOSet->GetRecordCount();
	if ( 0==iCount ) return;
	
    CString str;
	theApp.m_pADOSet->MoveFirst();
	for(int i=0; i<iCount; i++)
	{
		// 获得物资ID
		Holder = theApp.m_pADOSet->GetCollect("wzid");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.InsertItem(i, str);
	    // 获得物资名称
        Holder = theApp.m_pADOSet->GetCollect("wzname");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 1, str);
		// 获得物资规格型号
        Holder = theApp.m_pADOSet->GetCollect("wzspec");
		str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 2, str);
		// 获得物资类别
        Holder = theApp.m_pADOSet->GetCollect("wzkind");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 3, str);
		// 获得物资计量单位
        Holder = theApp.m_pADOSet->GetCollect("wzunit");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 4, str);		
		theApp.m_pADOSet->MoveNext();
	}
}

void CMaterial_MISView::LoadListCtrl()
{
	CRect rect;
	GetClientRect(rect);
	rect.top += 30;

	m_ListCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT,
                      rect, this, 1);

	m_ListCtrl.SetBkColor(RGB(177, 151, 240));
	m_ListCtrl.SetTextColor(RGB(0,0,0));
	m_ListCtrl.SetTextBkColor(RGB(177, 151, 240));
	
	m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP);
	m_ListCtrl.InsertColumn(0,"Node ID", LVCFMT_LEFT, 250);
	m_ListCtrl.InsertColumn(1,"2 ID", LVCFMT_LEFT, 250);
	
	CString str;
	for (int i=0; i<100; i++)
	{
		str.Format("%d", i);
		m_ListCtrl.InsertItem(i, str);
	}	
}

void CMaterial_MISView::UnLoadListCtrl()
{
	m_ListCtrl.DestroyWindow();
}

void CMaterial_MISView::OnContextMenu(CWnd* pWnd, CPoint point) 
{
	// TODO: Add your message handler code here
	if ( ""==m_sCurrentList ) return;
	
	CMenu menu;
	if ( _T("物资列表")==m_sCurrentList ) menu.LoadMenu(IDR_MENU_BASICINFO);
	else if ( _T("物资入库列表")==m_sCurrentList ) menu.LoadMenu(IDR_MENU_IN);
	else if ( _T("物资出库列表")==m_sCurrentList ) menu.LoadMenu(IDR_MENU_OUT);
	CMenu* pMenu=menu.GetSubMenu(0);
	pMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_RIGHTBUTTON,point.x,point.y,this);
	
	return;
}

void CMaterial_MISView::OnInitialUpdate() 
{
	CView::OnInitialUpdate();
	
	// TODO: Add your specialized code here and/or call the base class
	CRect rect;
	rect.left = rect.top =5;
    rect.bottom = 30;
	rect.right = 120;
	m_StaticCtrl.Create(m_sCurrentList, WS_VISIBLE, rect, this, 1);	
}

void CMaterial_MISView::RefreshMaterialWindow(_variant_t strQuery)
{
	if (m_ListCtrl)	m_ListCtrl.DestroyWindow();
	
 	CreateMaterialWindow( strQuery );
    
	m_sCurrentList = _T("物资列表");
    m_StaticCtrl.SetWindowText(m_sCurrentList);
}

void CMaterial_MISView::CreateMaterialWindow(_variant_t strQuery)
{
	m_sCurrentList = _T("物资列表");
    m_StaticCtrl.SetWindowText(m_sCurrentList);
	
	// Get Client Rect
	CRect rect;
	GetClientRect(rect);
	rect.top += 30;

	// Create
	m_ListCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT, rect, this, 1);

	// Set Color
	m_ListCtrl.SetBkColor(RGB(177, 151, 240));
	m_ListCtrl.SetTextColor(RGB(0,0,0));
	m_ListCtrl.SetTextBkColor(RGB(177, 151, 240));
	
	// Set EX-Style
	m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP);

	// Create Header
	m_ListCtrl.InsertColumn(0,_T("物资编号"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(1,_T("物资名称"), LVCFMT_LEFT, 100);
    m_ListCtrl.InsertColumn(2,_T("规格型号"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(3,_T("类    别"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(4,_T("计量单位"), LVCFMT_LEFT, 100);

	// 获得记录集
	_variant_t Holder;
    theApp.ADOExecute(theApp.m_pADOSet, strQuery);
    int iCount = theApp.m_pADOSet->GetRecordCount();
	if ( 0==iCount ) return;
	
    CString str;
	theApp.m_pADOSet->MoveFirst();
	for(int i=0; i<iCount; i++)
	{

		Holder = theApp.m_pADOSet->GetCollect("wzid");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.InsertItem(i, str);

        Holder = theApp.m_pADOSet->GetCollect("wzname");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 1, str);
	
        Holder = theApp.m_pADOSet->GetCollect("wzspec");
	   	str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 2, str);
	
        Holder = theApp.m_pADOSet->GetCollect("wzkind");
		str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 3, str);
	
        
        Holder = theApp.m_pADOSet->GetCollect("wzunit");
		str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 4, str);
				
		theApp.m_pADOSet->MoveNext();
	}
}

void CMaterial_MISView::CreateIn(_variant_t strQuery)
{
	// Get Client Rect
	CRect rect;
	GetClientRect(rect);
	rect.top += 30;

	// Create
	m_ListCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT, rect, this, 1);

	// Set Color
	m_ListCtrl.SetBkColor(RGB(177, 151, 240));
	m_ListCtrl.SetTextColor(RGB(0,0,0));
	m_ListCtrl.SetTextBkColor(RGB(177, 151, 240));
	
	// Set EX-Style
	m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP);

	// Create Header
	m_ListCtrl.InsertColumn(0,_T("入库编号"), LVCFMT_LEFT,100);
	m_ListCtrl.InsertColumn(1,_T("物资编号"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(2,_T("物资名称"), LVCFMT_LEFT, 100);
    m_ListCtrl.InsertColumn(3,_T("规格型号"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(4,_T("类    别"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(5,_T("计量单位"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(6,_T("数    量"), LVCFMT_LEFT, 100);
    m_ListCtrl.InsertColumn(7,_T("单    价"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(8,_T("金    额"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(9,_T("入库时间"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(10,_T("经办人"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(11,_T("保管人"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(12,_T("仓    库"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(13,_T("备    注"), LVCFMT_LEFT, 100);

	// Get all records
	_variant_t Holder;
    theApp.ADOExecute(theApp.m_pADOSet, strQuery);
    int iCount = theApp.m_pADOSet->GetRecordCount();
	if ( 0==iCount ) return;
	
    CString str;
	COleDateTime time;
	theApp.m_pADOSet->MoveFirst();
	for(int i=0; i<iCount; i++)
	{
		Holder = theApp.m_pADOSet->GetCollect("rkno");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.InsertItem(i, str);
		
		Holder = theApp.m_pADOSet->GetCollect("rkid");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 1, str);
	    // Get customname
        Holder = theApp.m_pADOSet->GetCollect("rkname");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 2, str);
		// Get customID
        Holder = theApp.m_pADOSet->GetCollect("rkspec");
	   	str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 3, str);
		// Get roomno
        Holder = theApp.m_pADOSet->GetCollect("rkkind");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 4, str);
		// Get indate
		Holder = theApp.m_pADOSet->GetCollect("rkunit");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 5, str);

		Holder = theApp.m_pADOSet->GetCollect("rkaccount");
		str.Format("%.2f",  Holder.vt==VT_NULL?0:Holder.dblVal);
	    //str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 6, str);

		Holder = theApp.m_pADOSet->GetCollect("rkprice");
		str.Format("%.2f",  Holder.vt==VT_NULL?0:Holder.dblVal);
	    //str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 7, str);

		Holder = theApp.m_pADOSet->GetCollect("rkvalue");
		str.Format("%.2f",  Holder.vt==VT_NULL?0:Holder.dblVal);
	    //str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 8, str);

        Holder = theApp.m_pADOSet->GetCollect("rkdate");
	    time = Holder;
		str = time.Format("%Y-%m-%d");
		m_ListCtrl.SetItemText(i, 9, str);

		Holder = theApp.m_pADOSet->GetCollect("rkdeal_person");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 10, str);

		Holder = theApp.m_pADOSet->GetCollect("rksave_person");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 11, str);
		// Get discount
		Holder = theApp.m_pADOSet->GetCollect("rkbase");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 12, str);

		Holder = theApp.m_pADOSet->GetCollect("rkmemo");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 13, str);

		theApp.m_pADOSet->MoveNext();
	}
}

void CMaterial_MISView::RefreshIn(_variant_t strQuery)
{
	if (m_ListCtrl)	m_ListCtrl.DestroyWindow();
 	
  	CreateIn( strQuery );
 
 	m_sCurrentList = _T("物资入库列表");
    m_StaticCtrl.SetWindowText(m_sCurrentList);
}

void CMaterial_MISView::RefreshIn()
{
	if (m_ListCtrl)	m_ListCtrl.DestroyWindow();
	
	_variant_t strQuery;
	strQuery="select * from msave";
    CreateIn(strQuery);
    
	m_sCurrentList = _T("物资入库列表");
    m_StaticCtrl.SetWindowText(m_sCurrentList);
}

void CMaterial_MISView::RefreshOut(_variant_t strQuery)
{
	if (m_ListCtrl)	m_ListCtrl.DestroyWindow();
 	
  	CreateOut( strQuery );
 
 	m_sCurrentList = _T("物资出库列表");
    m_StaticCtrl.SetWindowText(m_sCurrentList);
}

void CMaterial_MISView::CreateOut(_variant_t strQuery)
{
	CRect rect;
	GetClientRect(rect);
	rect.top += 30;

	// Create
	m_ListCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT, rect, this, 1);

	// Set Color
	m_ListCtrl.SetBkColor(RGB(177, 151, 240));
	m_ListCtrl.SetTextColor(RGB(0,0,0));
	m_ListCtrl.SetTextBkColor(RGB(177, 151, 240));
	
	// Set EX-Style
	m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP);

	// Create Header
	m_ListCtrl.InsertColumn(0,_T("出库编号"), LVCFMT_LEFT,100);
	m_ListCtrl.InsertColumn(1,_T("物资编号"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(2,_T("物资名称"), LVCFMT_LEFT, 100);
    m_ListCtrl.InsertColumn(3,_T("规格型号"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(4,_T("类    别"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(5,_T("计量单位"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(6,_T("数    量"), LVCFMT_LEFT, 100);
    m_ListCtrl.InsertColumn(7,_T("单    价"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(8,_T("金    额"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(9,_T("出库时间"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(10,_T("领用人"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(11,_T("经办人"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(12,_T("仓    库"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(13,_T("备    注"), LVCFMT_LEFT, 100);

	// Get all records
	_variant_t Holder;
    theApp.ADOExecute(theApp.m_pADOSet, strQuery);
    int iCount = theApp.m_pADOSet->GetRecordCount();
	if ( 0==iCount ) return;
	
    CString str;
	COleDateTime time;
	theApp.m_pADOSet->MoveFirst();
	for(int i=0; i<iCount; i++)
	{
		Holder = theApp.m_pADOSet->GetCollect("lyno");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.InsertItem(i, str);
		
		Holder = theApp.m_pADOSet->GetCollect("lyid");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 1, str);
	    // Get customname
        Holder = theApp.m_pADOSet->GetCollect("lyname");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 2, str);
		// Get customID
        Holder = theApp.m_pADOSet->GetCollect("lyspec");
	   	str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 3, str);
		// Get roomno
        Holder = theApp.m_pADOSet->GetCollect("lykind");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 4, str);
		// Get indate
		Holder = theApp.m_pADOSet->GetCollect("lyunit");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 5, str);

		Holder = theApp.m_pADOSet->GetCollect("lyaccount");
		str.Format("%.2f",  Holder.vt==VT_NULL?0:Holder.dblVal);
	    //str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 6, str);

		Holder = theApp.m_pADOSet->GetCollect("lyprice");
		str.Format("%.2f",  Holder.vt==VT_NULL?0:Holder.dblVal);
	    //str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 7, str);

		Holder = theApp.m_pADOSet->GetCollect("lyvalue");
		str.Format("%.2f",  Holder.vt==VT_NULL?0:Holder.dblVal);
	    //str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 8, str);

        Holder = theApp.m_pADOSet->GetCollect("lydate");
	    time = Holder;
		str = time.Format("%Y-%m-%d");
		m_ListCtrl.SetItemText(i, 9, str);

		Holder = theApp.m_pADOSet->GetCollect("lyuse_person");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 10, str);

		Holder = theApp.m_pADOSet->GetCollect("lydeal_person");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 11, str);
		// Get discount
		Holder = theApp.m_pADOSet->GetCollect("lybase");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 12, str);

		Holder = theApp.m_pADOSet->GetCollect("lymemo");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 13, str);

		theApp.m_pADOSet->MoveNext();
	}
}

void CMaterial_MISView::RefreshOut()
{
	if (m_ListCtrl)	m_ListCtrl.DestroyWindow();
	
	_variant_t strQuery;
	strQuery="select * from muse";
    CreateIn(strQuery);
    
	m_sCurrentList = _T("物资出库列表");
    m_StaticCtrl.SetWindowText(m_sCurrentList);
}

void CMaterial_MISView::CreateSurplusInfo(_variant_t strQuery)
{
	CRect rect;
	GetClientRect(rect);
	rect.top += 30;

	// Create
	m_ListCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT, rect, this, 1);

	// Set Color
	m_ListCtrl.SetBkColor(RGB(177, 151, 240));
	m_ListCtrl.SetTextColor(RGB(0,0,0));
	m_ListCtrl.SetTextBkColor(RGB(177, 151, 240));
	
	// Set EX-Style
	m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP);

	// Create Header
	m_ListCtrl.InsertColumn(0,_T("物资编号"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(1,_T("物资名称"), LVCFMT_LEFT, 100);
    m_ListCtrl.InsertColumn(2,_T("规格型号"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(3,_T("类    别"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(4,_T("计量单位"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(5,_T("数    量"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(6,_T("金    额"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(7,_T("仓    库"), LVCFMT_LEFT, 100);
	m_ListCtrl.InsertColumn(8,_T("备    注"), LVCFMT_LEFT, 100);


	_variant_t Holder;

    theApp.ADOExecute(theApp.m_pADOSet, strQuery);
    int iCount = theApp.m_pADOSet->GetRecordCount();
	if ( 0==iCount ) return;
	
    CString str;
	theApp.m_pADOSet->MoveFirst();
	for(int i=0; i<iCount; i++)
	{
		Holder = theApp.m_pADOSet->GetCollect("yeid");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.InsertItem(i, str);

        Holder = theApp.m_pADOSet->GetCollect("yename");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 1, str);

        Holder = theApp.m_pADOSet->GetCollect("yespec");
	   	str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 2, str);

        Holder = theApp.m_pADOSet->GetCollect("yekind");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 3, str);

		Holder = theApp.m_pADOSet->GetCollect("yeunit");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 4, str);

		Holder = theApp.m_pADOSet->GetCollect("yeaccount");
		str.Format("%.2f",  Holder.vt==VT_NULL?0:Holder.dblVal);
	    m_ListCtrl.SetItemText(i, 5, str);

		Holder = theApp.m_pADOSet->GetCollect("yevalue");
		str.Format("%.2f",  Holder.vt==VT_NULL?0:Holder.dblVal);
	    m_ListCtrl.SetItemText(i, 6, str);

		Holder = theApp.m_pADOSet->GetCollect("yebase");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 7, str);

		Holder = theApp.m_pADOSet->GetCollect("yememo");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_ListCtrl.SetItemText(i, 8, str);

		theApp.m_pADOSet->MoveNext();
	}
}

void CMaterial_MISView::RefreshSurplus(_variant_t strQuery)
{
	if (m_ListCtrl)	m_ListCtrl.DestroyWindow();
 	
  	CreateSurplusInfo( strQuery );
 
 	m_sCurrentList = _T("物资余额列表");
    m_StaticCtrl.SetWindowText(m_sCurrentList);
}