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

📄 fvquery.cpp

📁 我自己整理的一些VC源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// FVQuery.cpp : implementation file
//

#include "stdafx.h"
#include "SellMan.h"
#include "FVQuery.h"
#include "DlgQueryConf.h"
#include "AdoSet.h"
#include "TabCS.h"

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

/////////////////////////////////////////////////////////////////////////////
// CFVQuery
extern _ConnectionPtr connection;
extern BOOL bConnected;

IMPLEMENT_DYNCREATE(CFVQuery, CFormView)

CFVQuery::CFVQuery()
	: CFormView(CFVQuery::IDD)
{
	//{{AFX_DATA_INIT(CFVQuery)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	m_ftTitle.CreatePointFont( 150, "宋体" );
	m_ftContent.CreatePointFont( 90, "宋体" );
}

CFVQuery::~CFVQuery()
{
}

void CFVQuery::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFVQuery)
	DDX_Control(pDX, IDC_STATIC_ATITLE, m_static_atitle);
	DDX_Control(pDX, IDC_STATIC_TITLE, m_static_title);
	DDX_Control(pDX, IDC_LIST_MSG, m_list_msg);
	DDX_Control(pDX, IDC_BT_QUERY, m_bt_query);
	DDX_Control(pDX, IDC_BT_PRINT, m_bt_print);
	DDX_Control(pDX, IDC_BT_CLOSE, m_bt_close);
	DDX_Control(pDX, IDC_BT_PREVIEW, m_bt_preview);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CFVQuery, CFormView)
	//{{AFX_MSG_MAP(CFVQuery)
	ON_WM_SIZE()
	ON_BN_CLICKED(IDC_BT_CLOSE, OnBtClose)
	ON_WM_DESTROY()
	ON_BN_CLICKED(IDC_BT_PRINT, OnBtPrint)
	ON_BN_CLICKED(IDC_BT_QUERY, OnBtQuery)
	ON_BN_CLICKED(IDC_BT_PREVIEW, OnBtPreview)
	//}}AFX_MSG_MAP
	ON_COMMAND( ID_FILE_PRINT, CFormView::OnFilePrint )
	ON_COMMAND( ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview )
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFVQuery diagnostics

#ifdef _DEBUG
void CFVQuery::AssertValid() const
{
	CFormView::AssertValid();
}

void CFVQuery::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CFVQuery message handlers

void CFVQuery::OnSize(UINT nType, int cx, int cy) 
{
	CFormView::OnSize(nType, cx, cy);
	if( m_bt_query.GetSafeHwnd() )
	{
		CString strTmp;
		m_static_title.GetWindowText( strTmp );
		CDC *pDC  = m_static_title.GetDC();
		CFont *pFont = pDC->SelectObject( &ftTitle );
		CSize size = pDC->GetTextExtent( strTmp );
		pDC->SelectObject( pFont );
		m_static_title.SetWindowPos( 0, (cy - size.cx) / 2, 15, size.cx, size.cy, SWP_NOZORDER );
		m_static_atitle.SetWindowPos( 0, 10 , 40, cx, 12 , SWP_NOZORDER );
		m_static_title.ReleaseDC( pDC );
		
		m_list_msg.SetWindowPos( 0, 0, 55, cx, cy - 100, SWP_NOZORDER );
		m_bt_query.SetWindowPos( 0, 10, cy - 40, 100, 35, SWP_NOZORDER );
		m_bt_preview.SetWindowPos( 0, 115, cy - 40, 100, 35, SWP_NOZORDER );
		m_bt_print.SetWindowPos( 0, 220, cy - 40, 100, 35, SWP_NOZORDER );
		m_bt_close.SetWindowPos( 0, 335, cy - 40, 100, 35, SWP_NOZORDER );
	}
}

void CFVQuery::OnInitialUpdate() 
{
	CFormView::OnInitialUpdate();
	
	SetScrollSizes( MM_LOMETRIC, CSize( 0, 0 ) );

	m_bt_print.SetIcon( IDI_PRINT );
	m_bt_query.SetIcon( IDI_RQINVINFO );
	m_bt_close.SetIcon( IDI_EXIT16 );
	m_bt_preview.SetIcon( IDI_PRINT_PREVIEW );

	//m_imgList.Create( IDB_USEFULL, 16, 0, GetSysColor( COLOR_BACKGROUND ) );
	
	HICON hIcon;
	m_imgList.Create (16, 16, true, 2, 1);
	hIcon= AfxGetApp()->LoadIcon ( IDI_MAN );
	m_imgList.Add (hIcon);
	m_list_msg.SetImageList( &m_imgList, LVSIL_SMALL );
	m_list_msg.SetExtendedStyle( LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES  );
	m_list_msg.SetTextColor( RGB( 0, 0, 128 ) );
	m_static_title.SetFont( &ftTitle );
}

void CFVQuery::OnBtClose() 
{
	// TODO: Add your control notification handler code here
	GetParentFrame()->SendMessage( WM_CLOSE );
}

void CFVQuery::Title( CString strTitle )
{
	CString strTmp;
	CDC *pDC;
	CSize size;
	CRect rcClient;
	GetClientRect( &rcClient );
	m_static_title.SetWindowText( strTitle );
	m_static_title.GetWindowText( strTmp );
	pDC  = m_static_title.GetDC();
	CFont *pFont = pDC->SelectObject( &ftTitle );
	size = pDC->GetTextExtent( strTmp );
	pDC->SelectObject( pFont );
	m_static_title.SetWindowPos( 0, (rcClient.Width() - size.cx) / 2, 15,size.cx, size.cy, SWP_NOZORDER );
	m_static_title.ReleaseDC( pDC );
}

void CFVQuery::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView) 
{
	AfxGetApp()->GetMainWnd()->SendMessage( WM_VIEW_ACTIVE, (WPARAM)this, (LPARAM)this );
	
	CFormView::OnActivateView(bActivate, pActivateView, pDeactiveView);
}

void CFVQuery::OnDestroy() 
{
	CFormView::OnDestroy();

	AfxGetApp()->GetMainWnd()->SendMessage( WM_VIEW_CLOSE, (WPARAM)this, (LPARAM)this );
}

void CFVQuery::InitCppf()
{
	if ( m_nListMode != ID_RP_CPPF )
	{
		int ncount = m_list_msg.GetHeaderCtrl()->GetItemCount();
		for( ; ncount >=0; ncount--) m_list_msg.DeleteColumn( ncount );
		m_nListMode = ID_RP_CPPF;
		m_nLinePerPage = 50;
		Title( "南国春系列产品批发汇总表" );
		
		m_list_msg.InsertColumn( 0, "日期", LVCFMT_LEFT, 70 ); 
		m_list_msg.InsertColumn( 1, "代理商品", LVCFMT_LEFT, 140 ); 
		m_list_msg.InsertColumn( 2, "代理商编号", LVCFMT_LEFT, 140 ); 
		m_list_msg.InsertColumn( 3, "产品代码", LVCFMT_LEFT, 140 ); 
		m_list_msg.InsertColumn( 4, "数量", LVCFMT_LEFT, 100 ); 
		m_list_msg.InsertColumn( 5, "单价", LVCFMT_LEFT, 100 ); 
		m_list_msg.InsertColumn( 6, "小计", LVCFMT_LEFT, 100 ); 
		m_list_msg.InsertColumn( 7, "备注", LVCFMT_LEFT, 200 ); 

	}
}

void CFVQuery::OnBtPrint() 
{
	CFormView::OnFilePrint();	
}

void CFVQuery::OnBtPreview()
{
	OnFilePrintPreview();
}

void CFVQuery::OnBtQuery() 
{
	SelectQuery();
}

void CFVQuery::QueryCppf()
{
	CDlgQueryConf dlg;
	char		  szSQL[500];
	CMyField field[11];
	CString strTmp;
	int     nindex = 0, i = 0;
	CAdoSet adoSet;
	
	dlg.m_nListMode = m_nListMode;
	if (dlg.DoModal() == IDOK )
	{
		memset( szSQL, 0, 500 );
		sprintf( szSQL, "SELECT SJCSBM, SJDLCM, YJJHSJ, SJFZRH,  DLDLMC, " 
			"DLDLBH, YJSPID, YJJHSL, YJJHJG, YJJHJE, YJBZXX FROM SJ, DL, YJ WHERE " 
			" YJJDID = DLDLID AND SJDLCH = DLDLID AND YJLSPH = 0" );
		strcat( szSQL, dlg.strSQL );
		ClearList();
		try
		{
			
			adoSet.Query( szSQL, field, 11 );
			while( adoSet.IsOpen() && !adoSet.IsEOF() )
			{
				if (!i) 
				{
					strTmp.Format( "代理处名称:%s   代理处编号:%s  上级代理处编号:%s",
					field[1].GetValue(), field[0].GetValue(),
					field[3].GetValue() );
					m_static_atitle.SetWindowText( strTmp.GetBuffer( 0 ) );
				}
				i++;
				m_list_msg.InsertItem( nindex, field[2].GetValue() );
				m_list_msg.SetItemText( nindex, 1, field[4].GetValue() );
				m_list_msg.SetItemText( nindex, 2, field[5].GetValue() );
				m_list_msg.SetItemText( nindex, 3, field[6].GetValue() );
				m_list_msg.SetItemText( nindex, 4, field[7].GetValue() );
				//m_list_msg.SetItemText( nindex, 5, field[8].GetValue() );
				strTmp.Format( "%.2f", atof(field[8].GetValue() ) );
				m_list_msg.SetItemText( nindex, 5, strTmp );
				strTmp.Format( "%.2f", atof(field[9].GetValue() ) );
				m_list_msg.SetItemText( nindex, 6, strTmp );
				//m_list_msg.SetItemText( nindex, 6, field[9].GetValue() );
				m_list_msg.SetItemText( nindex, 7, field[10].GetValue() );
				adoSet.MoveNext();
			}
		
		}
		catch( _com_error &e )
		{
			AfxMessageBox( e.ErrorMessage() );
		}
	}
}

void CFVQuery::SelectQuery()
{
	switch ( m_nListMode )
	{
	case ID_RP_CPPF:
		QueryCppf();
		break;
	case ID_RP_MINGXI:
		QueryMingXi();
		break;
	case ID_RP_SPLS:
		QueryCpls();
		break;

	}
}

void CFVQuery::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo) 
{
	// TODO: Add your specialized code here and/or call the base class
	
//	CFormView::OnBeginPrinting(pDC, pInfo);
	pInfo->SetMaxPage( m_list_msg.GetItemCount() / 30 + 1 );
}

void CFVQuery::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo) 
{
	// TODO: Add your specialized code here and/or call the base class
	
	CFormView::OnEndPrinting(pDC, pInfo);
}

void CFVQuery::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo) 
{
	// TODO: Add your specialized code here and/or call the base class
	
	CFormView::OnPrepareDC(pDC, pInfo);
}

BOOL CFVQuery::OnPreparePrinting(CPrintInfo* pInfo) 
{
	// TODO: call DoPreparePrinting to invoke the Print dialog box
	
	return DoPreparePrinting(pInfo);
}

void CFVQuery::OnPrint(CDC* pDC, CPrintInfo* pInfo) 
{
	CString strTmp;
	int iSavedPageStart = pInfo->m_rectDraw.top;
    pDC->SetWindowOrg( 0,  0 );
    pDC->SetViewportOrg( pInfo->m_rectDraw.left,  -iSavedPageStart );

    // Print the Page
	// Get the View-DC
	CDC* pViewDC = GetDC();
	
	// Set the Mappingmode
	pDC->SetMapMode(MM_ANISOTROPIC);
	
	// Define the Originmapping of the viewport and 
	// the window for Treeoutput
	pDC->SetWindowOrg( 0,  0 );
	pDC->SetViewportOrg( pInfo->m_rectDraw.left,  pInfo->m_rectDraw.top - iSavedPageStart );
	
	// Define the Extentmapping of the viewport and the Window
	pDC->SetViewportExt( pDC->GetDeviceCaps(LOGPIXELSX)
		,pDC->GetDeviceCaps(LOGPIXELSY) );
	
	pDC->SetWindowExt( pViewDC->GetDeviceCaps(LOGPIXELSX)
		,pViewDC->GetDeviceCaps(LOGPIXELSY) );
	
	// Release the View-DC
	ReleaseDC(pViewDC);

	int obk = pDC->SetBkMode( 0 );
	CFont *pOldFont = pDC->SelectObject( &m_ftTitle );
	m_static_title.GetWindowText( strTmp );
	if ( m_nListMode == ID_RP_MINGXI )
	{
		pDC->TextOut( 390  , 20, strTmp );
		pDC->SelectObject( &m_ftContent );
		m_static_atitle.GetWindowText( strTmp );
		pDC->TextOut( 760, 50, strTmp );
		MingXiRowTextOut( 80, 70, pDC, -1 );
	}
	else
	{
		pDC->TextOut( 240  , 20, strTmp );
		pDC->SelectObject( &m_ftContent );
		m_static_atitle.GetWindowText( strTmp );
		pDC->TextOut( 20, 50, strTmp );
		CppfRowTextOut( 20, 70, pDC, -1 );
	}
	int nCount = m_list_msg.GetItemCount();
	int nCurPage = pInfo->m_nCurPage;
	int nFromLine = (nCurPage - 1) * m_nLinePerPage;
	int nToLine   = nCurPage * m_nLinePerPage;
	int ncy = 70;
	for( int i = nFromLine; i < nToLine && i < nCount; i ++ )
	{
		ncy = ncy + 20;
		if ( m_nListMode == ID_RP_MINGXI )
			MingXiRowTextOut( 80, ncy, pDC, i );
		else
			CppfRowTextOut( 20, ncy, pDC, i );
		
	}

    if ( m_nListMode == ID_RP_MINGXI )
	{
		pDC->TextOut( 80, 700, "合计金额:" );
		pDC->TextOut( 400, 700, "制定表人:" );
		pDC->TextOut( 600, 700, "公司经办人:" );
		pDC->TextOut( 800, 700, "日期:" );

	}
	else
	{
		pDC->TextOut( 20, 1050, "合计金额:" );
		pDC->TextOut( 100, 1050, "代理处负责人:" );
		pDC->TextOut( 300, 1050, "公司经办人:" );
		pDC->TextOut( 400, 1050, "编号:" );	
		pDC->TextOut( 500, 1050, "制表人:" );
		pDC->TextOut( 600, 1050, "公司经办人:" );
		pDC->TextOut( 700, 1050, "日期:" );
		
	}
	pDC->SelectObject( pOldFont );
	pDC->SetBkMode( obk );
	
	//CFormView::OnPrint(pDC, pInfo);
}

void CFVQuery::ClearList()
{
	m_list_msg.DeleteAllItems();
}

void CFVQuery::InitMingXi()
{
	if ( m_nListMode != ID_RP_MINGXI )
	{
		int ncount = m_list_msg.GetHeaderCtrl()->GetItemCount();
		for( ; ncount >=0; ncount--) m_list_msg.DeleteColumn( ncount );
		m_nLinePerPage = 30;
		m_nListMode = ID_RP_MINGXI;
		Title( "南国春宣传推广明细表(第   期)" );
		m_static_atitle.SetWindowText( "2004年  月  日报单    月   日发放" );
		m_list_msg.InsertColumn( 0, "序号", LVCFMT_LEFT, 40 ); 
		m_list_msg.InsertColumn( 1, "领款人", LVCFMT_LEFT, 80 ); 
		m_list_msg.InsertColumn( 2, "卡类", LVCFMT_LEFT, 50 ); 
		m_list_msg.InsertColumn( 3, "编号", LVCFMT_LEFT, 100 ); 
		m_list_msg.InsertColumn( 4, "一部合作经费", LVCFMT_LEFT, 100 ); 
		m_list_msg.InsertColumn( 5, "二部合作经费", LVCFMT_LEFT, 100 ); 
		m_list_msg.InsertColumn( 6, "单位", LVCFMT_LEFT, 40 ); 
		m_list_msg.InsertColumn( 7, "广告费", LVCFMT_LEFT, 80 ); 
		m_list_msg.InsertColumn( 8, "推广费", LVCFMT_LEFT, 80 ); 
		m_list_msg.InsertColumn( 9, "一部余合作经费", LVCFMT_LEFT, 150 ); 
		m_list_msg.InsertColumn( 10, "二部余合作经费", LVCFMT_LEFT, 150 ); 
		m_list_msg.InsertColumn( 11, "税前应发", LVCFMT_LEFT, 150 ); 
		m_list_msg.InsertColumn( 12, "税金", LVCFMT_LEFT, 80 ); 
		m_list_msg.InsertColumn( 13, "税前应发", LVCFMT_LEFT, 150 ); 
		m_list_msg.InsertColumn( 14, "备注", LVCFMT_LEFT, 200 ); 
	}

}

⌨️ 快捷键说明

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