📄 income.cpp
字号:
// Income.cpp : implementation file
//
#include "stdafx.h"
#include "Income.h"
#include "AddIncome.h"
#include "exportexcel.h"
#include "afx.h"
#include "myprint.h"
#include "verify.h"
#include "printsendlist.h"
#include "MySqlConnect.h"
extern MySqlConnect sqlconnect;
extern bool bIncome;
extern int iClass;
//extern _ConnectionPtr pMyConnect;
CString str_select_outcomebillno = _T("");
CString str_select_outcomebrand = _T("");
CString str_select_outcomemode = _T("");
CString str_select_outcomenumber = _T("");
CString str_select_outcomecompany = _T("");
CString str_select_typesn = _T("");
CString str_printsendlist_billno[PRINT_SEND_LIST];
int iPrintsendlist_number = 0;
// CIncome dialog
IMPLEMENT_DYNAMIC(CIncome, CDialog)
CIncome::CIncome(CWnd* pParent /*=NULL*/)
: CDialog(CIncome::IDD, pParent)
{
}
CIncome::~CIncome()
{
}
void CIncome::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LIST_INOUT, m_list_inout);
}
BEGIN_MESSAGE_MAP(CIncome, CDialog)
ON_CBN_SELCHANGE(IDC_COMBO_BRAND, &CIncome::OnCbnSelchangeComboBrand)
ON_BN_CLICKED(IDC_BUTTON_REPORT, &CIncome::OnBnClickedButtonReport)
ON_CBN_SELCHANGE(IDC_COMBO_MODE, &CIncome::OnCbnSelchangeComboMode)
ON_NOTIFY(NM_CLICK, IDC_LIST_INOUT, &CIncome::OnNMClickListInout)
ON_BN_CLICKED(IDC_BUTTON_ADD, &CIncome::OnBnClickedButtonAdd)
ON_BN_CLICKED(IDC_BUTTON_EXPORT, &CIncome::OnBnClickedButtonExport)
ON_BN_CLICKED(IDC_BUTTON_PRINT, &CIncome::OnBnClickedButtonPrint)
ON_BN_CLICKED(IDC_BUTTON_VERIFY, &CIncome::OnBnClickedButtonVerify)
ON_BN_CLICKED(IDC_BUTTON_PRINTSENDLIST, &CIncome::OnBnClickedButtonPrintsendlist)
END_MESSAGE_MAP()
// CIncome message handlers
BOOL CIncome::OnInitDialog()
{
CDialog::OnInitDialog();
int number = 0;
CComboBox* pWnd;
_RecordsetPtr m_pRs;
CString m_strSql;
pWnd = (CComboBox*)GetDlgItem(IDC_COMBO_TYPE);
pWnd->ResetContent();
m_strSql.Format(_T("select NAME from IMS_STORAGE_TYPE where ( SN > 0)") );
m_pRs = sqlconnect.GetRecordSet( m_strSql );
if ( m_pRs->GetRecordCount() > 0 )
{
_variant_t TheValue;
_bstr_t tmp;
m_pRs->MoveFirst();
while(m_pRs->adoEOF==VARIANT_FALSE)
{
//Retrieve column's value:
TheValue = m_pRs->Fields->GetItem(_variant_t("NAME"))->Value;
if( TheValue.vt != VT_NULL )
{
tmp=(_bstr_t)TheValue;
CString str_tmp1 = tmp;
pWnd->InsertString(number,str_tmp1);
number++;
}
//Do something what you want to do: ......
m_pRs->MoveNext();
}
}
/*m_strSql.Format(_T("select NAME from IMS_STORAGE_TYPE where ( SN > 0)") );
m_pRs.CreateInstance( __uuidof(Recordset) );
try
{
m_pRs->Open( _bstr_t(m_strSql), _variant_t((IDispatch *)pMyConnect,true), adOpenKeyset, adLockOptimistic, adCmdText);
if ( m_pRs->GetRecordCount() > 0 )
{
_variant_t TheValue;
_bstr_t tmp;
m_pRs->MoveFirst();
while(m_pRs->adoEOF==VARIANT_FALSE)
{
//Retrieve column's value:
TheValue = m_pRs->Fields->GetItem(_variant_t("NAME"))->Value;
if( TheValue.vt != VT_NULL )
{
tmp=(_bstr_t)TheValue;
CString str_tmp1 = tmp;
pWnd->InsertString(number,str_tmp1);
number++;
}
//Do something what you want to do: ......
m_pRs->MoveNext();
}
}
}
catch (_com_error &e)
{
::MessageBox(NULL,e.Description(),(LPCTSTR)(_T("警告")),MB_OK);
}
m_pRs->Close(); */
number = 0;
pWnd = (CComboBox*)GetDlgItem(IDC_COMBO_BRAND);
pWnd->ResetContent();
pWnd->InsertString(number,_T("全部"));
number++;
m_strSql.Format(_T("select SN,BRAND from BRAND_TABLE where ( SN > 0)") );
m_pRs = sqlconnect.GetRecordSet( m_strSql );
if ( m_pRs->GetRecordCount() > 0 )
{
_variant_t TheValue;
_bstr_t tmp;
m_pRs->MoveFirst();
while(m_pRs->adoEOF==VARIANT_FALSE)
{
//Retrieve column's value:
TheValue = m_pRs->Fields->GetItem(_variant_t("SN"))->Value;
if( TheValue.vt != VT_NULL )
{
tmp=(_bstr_t)TheValue;
CString str_tmp0 = tmp;
//str_brand[number][0] = str_tmp0;
}
TheValue = m_pRs->Fields->GetItem(_variant_t("BRAND"))->Value;
if( TheValue.vt != VT_NULL )
{
tmp=(_bstr_t)TheValue;
CString str_tmp1 = tmp;
//str_brand[number][1] = str_tmp1;
pWnd->InsertString(number,str_tmp1);
number++;
}
//Do something what you want to do: ......
m_pRs->MoveNext();
}
}
/*m_strSql.Format(_T("select SN,BRAND from BRAND_TABLE where ( SN > 0)") );
m_pRs.CreateInstance( __uuidof(Recordset) );
try
{
m_pRs->Open( _bstr_t(m_strSql), _variant_t((IDispatch *)pMyConnect,true), adOpenKeyset, adLockOptimistic, adCmdText);
if ( m_pRs->GetRecordCount() > 0 )
{
_variant_t TheValue;
_bstr_t tmp;
m_pRs->MoveFirst();
while(m_pRs->adoEOF==VARIANT_FALSE)
{
//Retrieve column's value:
TheValue = m_pRs->Fields->GetItem(_variant_t("SN"))->Value;
if( TheValue.vt != VT_NULL )
{
tmp=(_bstr_t)TheValue;
CString str_tmp0 = tmp;
//str_brand[number][0] = str_tmp0;
}
TheValue = m_pRs->Fields->GetItem(_variant_t("BRAND"))->Value;
if( TheValue.vt != VT_NULL )
{
tmp=(_bstr_t)TheValue;
CString str_tmp1 = tmp;
//str_brand[number][1] = str_tmp1;
pWnd->InsertString(number,str_tmp1);
number++;
}
//Do something what you want to do: ......
m_pRs->MoveNext();
}
}
}
catch (_com_error &e)
{
::MessageBox(NULL,e.Description(),(LPCTSTR)(_T("警告")),MB_OK);
}
m_pRs->Close(); */
m_list_inout.SetExtendedStyle( LVS_EX_GRIDLINES );
m_list_inout.InsertColumn(0,_T("序号")); //插入列
m_list_inout.InsertColumn(1,_T("状态"));
m_list_inout.InsertColumn(2,_T("单号"));
m_list_inout.InsertColumn(3,_T("型号"));
m_list_inout.InsertColumn(4,_T("品牌"));
m_list_inout.InsertColumn(5,_T("数量"));
m_list_inout.InsertColumn(6,_T("时间"));
if(bIncome)
{
m_list_inout.InsertColumn(7,_T("入库单位"));
}
else
{
m_list_inout.InsertColumn(7,_T("出库单位"));
}
m_list_inout.InsertColumn(8,_T("经办人"));
m_list_inout.InsertColumn(9,_T("操作员"));
m_list_inout.InsertColumn(10,_T("类型"));
m_list_inout.InsertColumn(11,_T("备注"));
CRect rect4;
m_list_inout.GetClientRect(rect4); //获得当前客户区信息
m_list_inout.SetColumnWidth(0,rect4.Width()/20); //设置列的宽度。
m_list_inout.SetColumnWidth(1,rect4.Width()/15);
m_list_inout.SetColumnWidth(2,rect4.Width()/6);
m_list_inout.SetColumnWidth(3,rect4.Width()/6);
m_list_inout.SetColumnWidth(4,rect4.Width()/10);
m_list_inout.SetColumnWidth(5,rect4.Width()/15);
m_list_inout.SetColumnWidth(6,rect4.Width()/10);
m_list_inout.SetColumnWidth(7,rect4.Width()/6);
m_list_inout.SetColumnWidth(8,rect4.Width()/8);
m_list_inout.SetColumnWidth(9,rect4.Width()/12);
m_list_inout.SetColumnWidth(10,rect4.Width()/12);
m_list_inout.SetColumnWidth(11,rect4.Width()/6);
CWnd* pTemp;
pTemp = GetDlgItem(IDC_BUTTON_ADD);
if (bIncome)
{
SetWindowText(_T("入库操作"));
pTemp->SetWindowText(_T("入库"));
}
else
{
SetWindowText(_T("出库操作"));
pTemp->SetWindowText(_T("出库"));
}
pTemp = GetDlgItem(IDC_BUTTON_VERIFY);
if( bIncome )
{
pTemp->EnableWindow(FALSE);
}
else
{
pTemp->EnableWindow(TRUE);
}
pTemp = GetDlgItem(IDC_BUTTON_PRINTSENDLIST);
if( bIncome )
{
pTemp->EnableWindow(FALSE);
}
else
{
pTemp->EnableWindow(TRUE);
}
ResetTimeCtrl();
return FALSE;// 将焦点设置到控件,否则返回 TRUE
}
void CIncome::ResetTimeCtrl()
{
CTime t1(1999, 3, 10, 22, 15, 0); // 10:15 PM March 19, 1999
CTime t2(1999, 3, 20, 22, 15, 0); // 10:15 PM March 20, 1999
CTimeSpan ts = t2 - t1;
CDateTimeCtrl* pCtrl1 = (CDateTimeCtrl*) GetDlgItem(IDC_DATETIMEPICKER_START);
ASSERT(pCtrl1 != NULL);
pCtrl1->SetFormat(_T("yyyy-MM-dd HH:mm:ss"));
CDateTimeCtrl* pCtrl2 = (CDateTimeCtrl*) GetDlgItem(IDC_DATETIMEPICKER_END);
ASSERT(pCtrl2 != NULL);
pCtrl2->SetFormat(_T("yyyy-MM-dd HH:mm:ss"));
CTime CurrentTime = CTime::GetCurrentTime();
CTime StartTime = CurrentTime - ts;
pCtrl1->SetTime(&StartTime);
pCtrl2->SetTime(&CurrentTime);
}
void CIncome::OnCbnSelchangeComboBrand()
{
// TODO: Add your control notification handler code here
//int iPos=((CComboBox*)GetDlgItem(IDC_COMBO_BRAND))->GetCurSel();//当前选中的行。
//str_brandchoose = str_brand[iPos][1];
CString str0;
CComboBox* pTemp;
pTemp = (CComboBox*)GetDlgItem(IDC_COMBO_BRAND);
int iPos=pTemp ->GetCurSel();//当前选中的行。
int n = pTemp->GetLBTextLen( iPos );
pTemp->GetLBText( iPos, str0.GetBuffer(n) );
str0.ReleaseBuffer();
m_list_inout.DeleteAllItems();
int number = 0;
_RecordsetPtr m_pRs;
CString m_strSql;
CComboBox* pWnd;
pWnd = (CComboBox*)GetDlgItem(IDC_COMBO_MODE);
pWnd->ResetContent();
pWnd->InsertString(number,_T("全部"));
number++;
m_strSql.Format(_T("select SN,MODE from MODE_TABLE where ( BRAND='") +str0+ _T("')"));
m_pRs = sqlconnect.GetRecordSet( m_strSql );
if ( m_pRs->GetRecordCount() > 0 )
{
_variant_t TheValue;
_bstr_t tmp;
m_pRs->MoveFirst();
while(m_pRs->adoEOF==VARIANT_FALSE)
{
//Retrieve column's value:
TheValue = m_pRs->Fields->GetItem(_variant_t("SN"))->Value;
if( TheValue.vt != VT_NULL )
{
tmp=(_bstr_t)TheValue;
CString str_tmp0 = tmp;
//str_mode[number][0] = str_tmp0;
}
TheValue = m_pRs->Fields->GetItem(_variant_t("MODE"))->Value;
if( TheValue.vt != VT_NULL )
{
tmp=(_bstr_t)TheValue;
CString str_tmp1 = tmp;
//str_mode[number][1] = str_tmp1;
pWnd->InsertString(number,str_tmp1);
number++;
}
//Do something what you want to do: ......
m_pRs->MoveNext();
}
}
/*m_strSql.Format(_T("select SN,MODE from MODE_TABLE where ( BRAND='") +str0+ _T("')"));
m_pRs.CreateInstance( __uuidof(Recordset) );
try
{
m_pRs->Open( _bstr_t(m_strSql), _variant_t((IDispatch *)pMyConnect,true), adOpenKeyset, adLockOptimistic, adCmdText);
if ( m_pRs->GetRecordCount() > 0 )
{
_variant_t TheValue;
_bstr_t tmp;
m_pRs->MoveFirst();
while(m_pRs->adoEOF==VARIANT_FALSE)
{
//Retrieve column's value:
TheValue = m_pRs->Fields->GetItem(_variant_t("SN"))->Value;
if( TheValue.vt != VT_NULL )
{
tmp=(_bstr_t)TheValue;
CString str_tmp0 = tmp;
//str_mode[number][0] = str_tmp0;
}
TheValue = m_pRs->Fields->GetItem(_variant_t("MODE"))->Value;
if( TheValue.vt != VT_NULL )
{
tmp=(_bstr_t)TheValue;
CString str_tmp1 = tmp;
//str_mode[number][1] = str_tmp1;
pWnd->InsertString(number,str_tmp1);
number++;
}
//Do something what you want to do: ......
m_pRs->MoveNext();
}
}
}
catch (_com_error &e)
{
::MessageBox(NULL,e.Description(),(LPCTSTR)(_T("警告")),MB_OK);
}
m_pRs->Close(); */
}
void CIncome::OnBnClickedButtonReport()
{
// TODO: Add your control notification handler code here
CString str0;
CString str1;
CString str2;
CString str3;
CString str_type;
CWnd* pWnd;
//TYPE
pWnd = GetDlgItem(IDC_COMBO_TYPE);
pWnd->GetWindowText(str_type);
if ( str_type.GetLength() == 0 )
{
AfxMessageBox(_T("请选择操作类型!"));
return;
}
CString str_type_sn = GetSTORAGETYPESN( str_type );
str_select_typesn = str_type_sn;
//BRAND
pWnd = GetDlgItem(IDC_COMBO_BRAND);
pWnd->GetWindowText(str0);
if ( str0.GetLength() == 0 )
{
AfxMessageBox(_T("请选择品牌!"));
return;
}
//MODE
pWnd = GetDlgItem(IDC_COMBO_MODE);
pWnd->GetWindowText(str1);
if ( str1.GetLength() == 0 )
{
AfxMessageBox(_T("请选择型号!"));
return;
}
//START TIME
pWnd = GetDlgItem(IDC_DATETIMEPICKER_START);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -