⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlgdl.cpp

📁 我自己整理的一些VC源代码
💻 CPP
字号:
// DlgDL.cpp : implementation file
//

#include "stdafx.h"
#include "SellMan.h"
#include "DlgDL.h"

#include "TabXC.h"
#include "TabDL.h"
#include "TabSJ.h"
#include "TabCS.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDlgDL dialog

extern _ConnectionPtr connection;
extern BOOL bConnected;

CDlgDL::CDlgDL(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgDL::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgDL)
	m_ck_xuanchuan = FALSE;
	//}}AFX_DATA_INIT
	m_nOperType = MODE_APPEND;
}


void CDlgDL::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgDL)
	DDX_Control(pDX, IDC_ED_XCBH, m_ed_xcbh);
	DDX_Control(pDX, IDC_CB_XCTZKH, m_cb_xctzkh);
	DDX_Control(pDX, IDC_ED_DLYHZH, m_ed_dlyhzh);
	DDX_Control(pDX, IDC_ED_DLJHJE, m_ed_dljhje);
	DDX_Control(pDX, IDC_ED_DLFZRM, m_ed_dlfzrm);
	DDX_Control(pDX, IDC_ED_DLDLMC, m_ed_dldlmc);
	DDX_Control(pDX, IDC_ED_DLDLDH, m_ed_dldldh);
	DDX_Control(pDX, IDC_ED_DLDLBH, m_ed_dldlbh);
	DDX_Control(pDX, IDC_ED_DLBZXX, m_ed_dlbzxx);
	DDX_Control(pDX, IDC_DT_DLJRRQ, m_dt_dljrrq);
	DDX_Control(pDX, IDC_CB_DLTJRH, m_cb_dltjrh);
	DDX_Control(pDX, IDC_CB_DLSJDL, m_cb_dlsjdl);
	DDX_Control(pDX, IDC_CB_DLKHYH, m_cb_dlkhyh);
	DDX_Control(pDX, IDC_CB_DLDLZG, m_cb_dldlzg);
	DDX_Control(pDX, IDC_CB_DLDLJB, m_cb_dldljb);
	DDX_Control(pDX, IDC_CB_DLDLCH, m_cb_dldlch);
	DDX_Check(pDX, IDC_CK_XUANCHUAN, m_ck_xuanchuan);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgDL, CDialog)
	//{{AFX_MSG_MAP(CDlgDL)
	ON_BN_CLICKED(IDC_BT_NEXT, OnBtNext)
	ON_BN_CLICKED(IDC_CK_XUANCHUAN, OnCkXuanchuan)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgDL message handlers

BOOL CDlgDL::OnInitDialog() 
{
	CDialog::OnInitDialog();

	CTabXC tabxc;
	CTabDL tabdl;
	CTabSJ tabsj;
	CTabCS tabcs;
	CString strtzkm;

	try
	{
		tabxc.Open();
		while( tabxc.IsOpen() && !tabxc.IsEOF() )
		{
			m_cb_dldlzg.SetItemData( m_cb_dldlzg.AddString( tabxc.XCYGMC.GetValue() ), atol( tabxc.XCYGID.GetValue() ) );
			m_cb_dltjrh.SetItemData( m_cb_dltjrh.AddString( tabxc.XCYGMC.GetValue() ), atol( tabxc.XCYGID.GetValue() ) );
			tabxc.MoveNext();
		}
		m_cb_dldlzg.SetItemData( m_cb_dldlzg.AddString( "请选择" ), -1 );
		m_cb_dltjrh.SetItemData( m_cb_dltjrh.AddString( "请选择" ), -1 );

		/*
		tabdl.Open();
		while( tabdl.IsOpen() && !tabdl.IsEOF() )
		{
			m_cb_dlsjdl.SetItemData( m_cb_dlsjdl.AddString( tabdl.DLDLMC.GetValue() ), atol( tabdl.DLDLID.GetValue() ) );
			tabdl.MoveNext();
		}
		*/
		
		tabsj.Open();
		while( tabsj.IsOpen() && !tabsj.IsEOF() )
		{
			m_cb_dldlch.SetItemData( m_cb_dldlch.AddString( tabsj.SJDLCM.GetValue() ), atol( tabsj.SJDLCH.GetValue() ) );
			tabsj.MoveNext();
		}

		tabcs.Open( "where csbmbm = 'XC' and cszdmc = 'XCTZKH'" );
		while( tabcs.IsOpen() && !tabcs.IsEOF() )
		{
			m_cb_xctzkh.SetItemData( m_cb_xctzkh.AddString( tabcs.CSQZMS.GetValue() ), (DWORD)atol( tabcs.CSZFQZ.GetValue() ) );
			if( tabcs.CSZFQZ.GetValue() == strxctzkh )
			{
				strtzkm = tabcs.CSQZMS.strValue;
			}
			tabcs.MoveNext();
		}

		tabcs.Open( "where csbmbm = 'XC' and cszdmc = 'XCKHYH'" );
		while( tabcs.IsOpen() && !tabcs.IsEOF() )
		{
			m_cb_dlkhyh.SetItemData( m_cb_dlkhyh.AddString( tabcs.CSQZMS.GetValue() ), (DWORD)atol( tabcs.CSZFQZ.GetValue() ) );
			tabcs.MoveNext();
		}

		tabcs.Open( "where csbmbm = 'DL' and cszdmc = 'DLDLJB'" );
		while( tabcs.IsOpen() && !tabcs.IsEOF() )
		{
			m_cb_dldljb.SetItemData( m_cb_dldljb.AddString( tabcs.CSQZMS.GetValue() ), (DWORD)atol( tabcs.CSZFQZ.GetValue() ) );
			tabcs.MoveNext();
		}

		tabdl.Open( "WHERE DLJLZT <> 0" );
		while( tabdl.IsOpen() && !tabdl.IsEOF() )
		{
			m_cb_dlsjdl.SetItemData( m_cb_dlsjdl.AddString( tabdl.DLDLMC.GetValue() ), atol( tabdl.DLDLID.GetValue() ) );
			tabdl.MoveNext();
		}
		m_cb_dlsjdl.SetItemData( m_cb_dlsjdl.AddString( "请选择" ), -1 );


		if( m_nOperType == MODE_MODIFY )
		{
			m_ed_dlyhzh.SetWindowText( strdlyhzh );
			m_ed_dljhje.SetWindowText( strdljhje );
			m_ed_dlfzrm.SetWindowText( strdlfzrm );
			m_ed_dldlmc.SetWindowText( strdldlmc );
			m_ed_dldldh.SetWindowText( strdldldh );
			m_ed_dldlbh.SetWindowText( strdldlbh );
			m_ed_dlbzxx.SetWindowText( strdlbzxx );
			m_dt_dljrrq.SetWindowText( strdljhje );
			m_cb_dltjrh.SelectString( -1, strdltjrh );
			m_cb_dlsjdl.SelectString( -1, strdlsjdl );
			m_cb_dlkhyh.SelectString( -1, strdlkhyh );
			m_cb_dldlzg.SelectString( -1, strdldlzg );
			m_cb_dldljb.SelectString( -1, strdldljb );
			m_cb_dldlch.SelectString( -1, strdldlch );
			
			if( m_ck_xuanchuan )
			{
				m_ed_xcbh.SetWindowText( strxcygbh );
				GetDlgItem( IDC_CK_XUANCHUAN )->EnableWindow( FALSE );
				m_cb_xctzkh.SelectString( -1, strtzkm );
			}
		}
		else
		{
			m_cb_dldlzg.SetCurSel( m_cb_dldlzg.GetCount()-1 );
			m_cb_dltjrh.SetCurSel( m_cb_dltjrh.GetCount()-1 );
			m_cb_dlsjdl.SetCurSel( m_cb_dlsjdl.GetCount()-1 );
			m_cb_dldlch.SetCurSel( 0 );
			m_cb_dldljb.SetCurSel( 0 );
			m_cb_dlkhyh.SetCurSel( 0 );
			m_cb_xctzkh.SetCurSel( 0 );
		}
	}
	catch( _com_error &e )
	{
		AfxMessageBox( e.ErrorMessage() );
	}
	catch( ... )
	{
	}
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDlgDL::OnOK() 
{
	BOOL		bRet = FALSE;
	CTabDL		tabdl;
	CTabXC		tabxc;
	CString		strTmp;
	SYSTEMTIME	sysTime;
	char		szSQL[250];
	int nIndex = 0,nCount = 0;

	m_ed_dlyhzh.GetWindowText( strdlyhzh );
	m_ed_dljhje.GetWindowText( strdljhje );
	m_ed_dlfzrm.GetWindowText( strdlfzrm );
	m_ed_dldlmc.GetWindowText( strdldlmc );
	m_ed_dldldh.GetWindowText( strdldldh );
	m_ed_dldlbh.GetWindowText( strdldlbh );
	m_ed_dlbzxx.GetWindowText( strdlbzxx );
	m_ed_xcbh.GetWindowText( strxcygbh );
	strdltjrh.Format( "%d", (long)m_cb_dltjrh.GetItemData( m_cb_dltjrh.GetCurSel() ) );
	strdlsjdl.Format( "%d", (long)m_cb_dlsjdl.GetItemData( m_cb_dlsjdl.GetCurSel() ) );
	strdlkhyh.Format( "%d", (long)m_cb_dlkhyh.GetItemData( m_cb_dlkhyh.GetCurSel() ) );
	strdldlzg.Format( "%d", (long)m_cb_dldlzg.GetItemData( m_cb_dldlzg.GetCurSel() ) );
	strdldljb.Format( "%d", (long)m_cb_dldljb.GetItemData( m_cb_dldljb.GetCurSel() ) );
	strdldlch.Format( "%d", (long)m_cb_dldlch.GetItemData( m_cb_dldlch.GetCurSel() ) );
	strxctzkh.Format( "%d", (long)m_cb_xctzkh.GetItemData( m_cb_xctzkh.GetCurSel() ) );

	memset( &sysTime, 0, sizeof( SYSTEMTIME ) );
	m_dt_dljrrq.GetTime( &sysTime );
	strdljrrq.Format( "%04d%02d%02d", sysTime.wYear, sysTime.wMonth, sysTime.wDay );

	if( strdldlbh.IsEmpty() )
	{
		AfxMessageBox( "编号不能为空!" );
		m_ed_dldlbh.SetFocus();
		return;
	}

	if( strdldlmc.IsEmpty() )
	{
		AfxMessageBox( "代理商名称不能为空!" );
		m_ed_dldlmc.SetFocus();
		return;
	}

	if( strdljhje.IsEmpty() )
	{
		AfxMessageBox( "首次进货金额不能为空!" );
		m_ed_dljhje.SetFocus();
		return;
	}
	
	if( strdldlzg == "-1" )
	{
		AfxMessageBox( "请选择代理主管。" );
		return;
	}
	
	if( strdltjrh == "-1" )
	{
		AfxMessageBox( "请选择推荐人。" );
		return;
	}
	

	try
	{
		if( m_nOperType == MODE_APPEND )
		{
			if( m_ck_xuanchuan )
			{
				//如果是代理商又是宣传员,则两个的编号都一样
				sprintf( szSQL,"WHERE XCYGBH = %s",strdldlbh );
				tabxc.Open( szSQL );
				if( tabxc.IsOpen() && !tabxc.IsEOF() )
				{
					AfxMessageBox( "宣传员编号重复了!" );
					m_ed_xcbh.SetFocus();
					bRet = FALSE;
					return;
				}
				tabxc.Close();
				
				sprintf( szSQL, "WHERE XCYGZG = %s", strdldlzg );
				tabxc.Open( szSQL );
				while( tabxc.IsOpen() && !tabxc.IsEOF() )
				{
					nIndex ++;
					if( nIndex >= 2 )
					{
						AfxMessageBox( "该主管已经有两个宣传员,不能再给该主管添加宣传员了!" );
						bRet = FALSE;
						return;
					}
					tabxc.MoveNext();
				}
				tabxc.Close();
				
				strxcygid.Format( "%ld", tabxc.GetNextID( "XCYGID" ) );
				tabxc.XCYGID.strValue = strxcygid;
				tabxc.XCYGBH.strValue = strdldlbh;
				tabxc.XCYGMC.strValue = strdldlmc;
				tabxc.XCYGDH.strValue = strdldldh;
				tabxc.XCKHYH.strValue = strdlkhyh;
				tabxc.XCYHZH.strValue = strdlyhzh;
				tabxc.XCTZKH.strValue = strxctzkh;
				tabxc.XCJRRQ.strValue = strdljrrq;
				tabxc.XCDLMC.strValue = strdldlid;
				tabxc.XCDLCH.strValue = strdldlch;
				tabxc.XCYGZT.strValue = "1";
				tabxc.XCYBYE.strValue = "0";
				tabxc.XCEBYE.strValue = "0";
				tabxc.XCJSRQ.strValue = "19700101";
				
				tabxc.XCYGZG.strValue = strdldlzg;
				
				tabxc.XCTJRH.strValue = strdltjrh;
				tabxc.XCJSBZ.strValue = "0";
				tabxc.XCJLZT.strValue = "1";
				tabxc.XCBZXX.strValue = " ";
				tabxc.AppendRecord();
				bRet = TRUE;
			}

			connection->BeginTrans();
			strdldlid.Format( "%ld", tabdl.GetNextID( "DLDLID" ) );
			tabdl.DLDLID.strValue = strdldlid;
			tabdl.DLDLBH.strValue = strdldlbh;
			tabdl.DLDLMC.strValue = strdldlmc;
			tabdl.DLDLDH.strValue = strdldldh;
			tabdl.DLKHYH.strValue = strdlkhyh;
			tabdl.DLYHZH.strValue = strdlyhzh;
			tabdl.DLJRRQ.strValue = strdljrrq;
			tabdl.DLFZRM.strValue = strdlfzrm;
			tabdl.DLDLJB.strValue = strdldljb;
			tabdl.DLJHJE.strValue = strdljhje;
			tabdl.DLDLZT.strValue = "1";
			tabdl.DLDLZG.strValue = strdldlzg;
			tabdl.DLTJRH.strValue = strdltjrh;
			tabdl.DLSJDL.strValue = strdlsjdl;
			tabdl.DLDLCH.strValue = strdldlch;
			tabdl.DLJLZT.strValue = "1";
			tabdl.DLBZXX.strValue = strdlbzxx;
			tabdl.AppendRecord();
			bRet = TRUE;

		}
		else
		{
			if( m_ck_xuanchuan )
			{				
				sprintf( szSQL, "WHERE XCYGZG = %s", strdldlzg );
				tabxc.Open( szSQL );
				while( tabxc.IsOpen() && !tabxc.IsEOF() )
				{
					nIndex ++;
					tabxc.MoveNext();
				}
				tabxc.Close();

				sprintf( szSQL, "WHERE XCYGBH = '%s' AND XCDLMC <> %s" , strdldlbh, strdldlid );
				tabxc.Open( szSQL );
				if( tabxc.IsOpen() && !tabxc.IsEOF() )
				{
					AfxMessageBox( "宣传员编号重复了!" );
					return;
				}
				tabxc.Close();

				sprintf( szSQL, "WHERE XCDLMC = %s", strdldlid );
				if( tabxc.Open( szSQL ) && !tabxc.IsEOF() && bFlag ) //宣传员已经存在则更新
				{
					tabxc.XCYGBH.strValue = strdldlbh;
					tabxc.XCYGMC.strValue = strdldlmc;
					tabxc.XCYGDH.strValue = strdldldh;
					tabxc.XCKHYH.strValue = strdlkhyh;
					tabxc.XCYHZH.strValue = strdlyhzh;
					tabxc.XCTZKH.strValue = strxctzkh;
					tabxc.XCJRRQ.strValue = strdljrrq;
					tabxc.XCDLMC.strValue = strdldlid;
					tabxc.XCDLCH.strValue = strdldlch;
					tabxc.XCYGZG.strValue = strdldlzg;
					tabxc.XCTJRH.strValue = strdltjrh;
					tabxc.UpdateRecord();
				}
				else if( nIndex < 2 && !bFlag ) //只有小于两个宣传员才给添加新的宣传员
				{
					tabxc.Open();
					strxcygid.Format( "%ld", tabxc.GetNextID( "XCYGID" ) );
					tabxc.XCYGID.strValue = strxcygid;
					tabxc.XCYGBH.strValue = strdldlbh;
					tabxc.XCYGMC.strValue = strdldlmc;
					tabxc.XCYGDH.strValue = strdldldh;
					tabxc.XCKHYH.strValue = strdlkhyh;
					tabxc.XCYHZH.strValue = strdlyhzh;
					tabxc.XCTZKH.strValue = strxctzkh;
					tabxc.XCJRRQ.strValue = strdljrrq;
					tabxc.XCDLMC.strValue = strdldlid;
					tabxc.XCDLCH.strValue = strdldlch;
					tabxc.XCYGZG.strValue = strdldlzg;
					tabxc.XCTJRH.strValue = strdltjrh;
					tabxc.AppendRecord();
				}
				else if( !bFlag && nIndex == 2 ) //主管下面的宣传员已经为两个
				{
					AfxMessageBox( "不能给主管添加两个以上的宣传员!" );
					return;
				}
			}

			sprintf( szSQL, "WHERE DLDLID = %s ", strdldlid );
			if( tabdl.Open( szSQL ) )
			{
				connection->BeginTrans();
				tabdl.DLDLBH.strValue = strdldlbh;
				tabdl.DLDLMC.strValue = strdldlmc;
				tabdl.DLDLDH.strValue = strdldldh;
				tabdl.DLKHYH.strValue = strdlkhyh;
				tabdl.DLYHZH.strValue = strdlyhzh;
				tabdl.DLJRRQ.strValue = strdljrrq;
				tabdl.DLFZRM.strValue = strdlfzrm;
				tabdl.DLDLJB.strValue = strdldljb;
				tabdl.DLJHJE.strValue = strdljhje;
				tabdl.DLDLZG.strValue = strdldlzg;
				tabdl.DLTJRH.strValue = strdltjrh;
				tabdl.DLSJDL.strValue = strdlsjdl;
				tabdl.DLDLCH.strValue = strdldlch;
				tabdl.DLBZXX.strValue = strdlbzxx;
				tabdl.UpdateRecord();
			}
		}
		
		connection->CommitTrans();
		bRet = TRUE;
	}
	catch( _com_error &e )
	{
		connection->RollbackTrans();
		AfxMessageBox( e.ErrorMessage() );
	}
	catch( ... )
	{
		connection->RollbackTrans();
	}
	
	if( bRet ) CDialog::OnOK();
	else CDialog::OnCancel();
}

void CDlgDL::OnBtNext() 
{
	NextDlgCtrl();
}


void CDlgDL::OnCkXuanchuan() 
{
	UpdateData();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -