📄 fvquery.cpp
字号:
// 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 + -