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

📄 fvsupplieracc.cpp

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

#include "stdafx.h"
#include "SellMan.h"
#include "FVSupplierAcc.h"

#include "TabDL.h"
#include "TabCS.h"
#include "TabSP.h"
#include "TabYJ.h"

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

/////////////////////////////////////////////////////////////////////////////
// CFVSupplierAcc

extern _ConnectionPtr connection;
extern BOOL bConnected;

IMPLEMENT_DYNCREATE(CFVSupplierAcc, CFormView)

CFVSupplierAcc::CFVSupplierAcc()
	: CFormView(CFVSupplierAcc::IDD)
{
	//{{AFX_DATA_INIT(CFVSupplierAcc)
	//}}AFX_DATA_INIT
	lima.Create(IDB_ARANLIST, 16, 0, RGB(255,0,255));
	limah.Create(IDB_ARANCOL, 11, 0, RGB(255,0,255));

	ftTimes.CreatePointFont(90, "Times New Roman");

	iSelBmp = -1;
}

CFVSupplierAcc::~CFVSupplierAcc()
{
}

void CFVSupplierAcc::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFVSupplierAcc)
	DDX_Control(pDX, IDC_BT_PRINT_PREVIEW, m_bt_printpreview);
	DDX_Control(pDX, IDC_BT_PRINTRP, m_bt_printrp);
	DDX_Control(pDX, IDC_DT_TIMEEND, m_dt_timeend);
	DDX_Control(pDX, IDC_ED_SUPNO, m_ed_supno);
	DDX_Control(pDX, IDC_DT_TIME, m_dt_time);
	DDX_Control(pDX, IDC_CB_SELLTYPE, m_cb_selltype);
	DDX_Control(pDX, IDC_CB_QUERYTYPE, m_cb_querytype);
	DDX_Control(pDX, IDC_BT_SAVE, m_bt_save);
	DDX_Control(pDX, IDC_BT_DELETE, m_bt_delete);
	DDX_Control(pDX, IDC_BT_CLOSE, m_bt_close);
	DDX_Control(pDX, IDC_BT_ADD, m_bt_add);
	DDX_Control(pDX, IDC_LIST_CHILD, m_list_child);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CFVSupplierAcc, CFormView)
	//{{AFX_MSG_MAP(CFVSupplierAcc)
	ON_WM_SIZE()
	ON_NOTIFY(NM_CLICK, IDC_LIST_CHILD, OnClickListChild)
	ON_BN_CLICKED(IDC_BT_ADD, OnBtAdd)
	ON_BN_CLICKED(IDC_BT_SAVE, OnBtSave)
	ON_BN_CLICKED(IDC_BT_DELETE, OnBtDelete)
	ON_BN_CLICKED(IDC_BT_CLOSE, OnBtClose)
	ON_WM_DESTROY()
	ON_CBN_SELCHANGE(IDC_CB_QUERYTYPE, OnSelchangeCbQuerytype)
	ON_BN_CLICKED(IDC_BT_QUERY, OnBtQuery)
	ON_BN_CLICKED(IDC_BT_PRINT_PREVIEW, OnBtPrintPreview)
	ON_BN_CLICKED(IDC_BT_PRINTRP, OnBtPrintrp)
	//}}AFX_MSG_MAP
	ON_COMMAND( ID_FILE_PRINT, OnFilePrint )
	ON_COMMAND( ID_FILE_PRINT_PREVIEW, OnFilePrintPreview )
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFVSupplierAcc diagnostics

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

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

/////////////////////////////////////////////////////////////////////////////
// CFVSupplierAcc message handlers

void CFVSupplierAcc::OnInitialUpdate() 
{
	CFormView::OnInitialUpdate();

	SetScrollSizes( MM_LOMETRIC, CSize( 0, 0 ) );

	m_bt_add.SetIcon( IDI_NEW );
	m_bt_save.SetIcon( IDI_IMPORTCHECK );
	m_bt_delete.SetIcon( IDI_INVALID );
	m_bt_printpreview.SetIcon( IDI_PRINT_PREVIEW );
	m_bt_printrp.SetIcon( IDI_PRINT );
	m_bt_close.SetIcon( IDI_EXIT16 );
	
	m_listImage.Create( IDB_ARANLIST, 16, 0, GetSysColor( COLOR_BACKGROUND ) );
	m_list_child.ModifyStyle( 0, LVS_SHOWSELALWAYS );
	m_list_child.SetExtendedStyle( LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES );
	m_list_child.SetImageList( &m_listImage, LVSIL_NORMAL );
	m_list_child.SetItemHeight(17);
	m_list_child.OnInit();
	m_list_child.SetCategoryCallback((void (CWnd::*)(CGfxCategoryManager * , long &))CategoryCallBack);
	//m_list_child.SetGetTextCallback((void (CWnd::*)(int , int, long, CString &)) GetTextCallback);
	m_list_child.SetExInfoCallback((long (CWnd::*)(LXHDREX *))GetExInfoCallback);
	m_list_child.SetTextColor( RGB( 0, 0, 162 ) );
	
	int _DEFCOLS[] = { 0,1,2,3,4,5,6,7,8,9 };
	
	CGfxColumnManager * pManager = m_list_child.CreateColumnManager();
	
	pManager->DefineColumn(0, "销售代理商", NULL, LVCFMT_LEFT, 120, fhComboBoxEx|fhSortAble);
	pManager->DefineColumn(1, "进货代理商", NULL, LVCFMT_LEFT, 120, fhComboBoxEx|fhSortAble);
	pManager->DefineColumn(2, "产品", NULL, LVCFMT_LEFT, 150, fhComboBoxEx|fhSortAble);
	pManager->DefineColumn(3, "时间", NULL, LVCFMT_LEFT, 70, fhEdit|fhSortAble);
	pManager->DefineColumn(4, "数量", NULL, LVCFMT_LEFT, 70, fhEdit|fhSortAble);
	pManager->DefineColumn(5, "价格", NULL, LVCFMT_LEFT, 70, fhEdit|fhSortAble);
	pManager->DefineColumn(6, "金额", NULL, LVCFMT_LEFT, 70, fhEdit|fhSortAble);
	pManager->DefineColumn(7, "卡号", NULL, LVCFMT_LEFT, 80, fhComboBoxEx|fhSortAble);
	pManager->DefineColumn(8, "销售方式", NULL, LVCFMT_LEFT, 80, fhComboBoxEx|fhSortAble);
	pManager->DefineColumn(9, "备注", NULL, LVCFMT_LEFT, 150, fhEdit|fhSortAble);
	
	pManager->DefineDefaultColumns(sizeof(_DEFCOLS)/sizeof(int), _DEFCOLS);
	
	pManager->ReadFromProfile("TheMainList");
	m_list_child.SetItemImageList(&lima);
	m_list_child.SetHeaderImageList(&limah);
	m_list_child.ModifyFlag(0,fHighRowSelect|fVertGrid|fHorizGrid|fAutoSort,0);
	m_list_child.SetupColumnData();

	m_list_child.InsertItem( 0, "" );
	m_list_child.SetItemData( 0, 0 );
	
	m_cb_querytype.SetItemData( m_cb_querytype.AddString( "按销售代理商" ), 0 );
	m_cb_querytype.SetItemData( m_cb_querytype.AddString( "按进货代理商" ), 1 );
	m_cb_querytype.SetItemData( m_cb_querytype.AddString( "按销售日期" ), 2 );
	m_cb_querytype.SetItemData( m_cb_querytype.AddString( "按销售方式" ), 3 );
	m_cb_querytype.SetItemData( m_cb_querytype.AddString( "所有" ), 4 );
	m_cb_querytype.SetItemData( m_cb_querytype.AddString( ">>" ), 5 );
	m_cb_querytype.SetCurSel( 0 );

	m_cb_selltype.SetItemData( m_cb_selltype.AddString( "批货" ), 0 );
	m_cb_selltype.SetItemData( m_cb_selltype.AddString( "零售" ), 1 );
	m_cb_selltype.SetItemData( m_cb_selltype.AddString( "所有" ), 2 );
	m_cb_selltype.SetCurSel( 0 );
}

void CFVSupplierAcc::GetTextCallback(int iIndex, int iSubItem, long lCode, CString &cs)
{
	cs = "";
	int rc = m_list_child.GetColumnIndex(iSubItem);
	if (rc == 4) cs = "1";
	else if (rc == 5) cs = "2";
	else if (rc == 6) cs = "3";
	else if (rc == 2) cs.Format("%d", lCode);
	else if (rc == 3) cs.Format("ma perche' non funziona ? non riesco a capire, porcaccia miseria %d", lCode);
	else cs.Format("%d, %d", lCode, rc);
}

void CFVSupplierAcc::CategoryCallBack(CGfxCategoryManager * pCatMan, long & lData)
{
	long value = lData;

	int iCat = pCatMan->FindCategory(value);
	if (iCat < 0)
	{
		CString cs;
		long val1 = value / 20;
		val1 *= 20;
		long val2 = val1 + 20;

		cs.Format("%d - %d", val1, val2);
		iCat = pCatMan->AddCategory(cs, val1, val2);
	}
	if (iCat >= 0)
	{
		pCatMan->AddItemToCategory(iCat, value);
	}
	if (lData > 310)
	{
		pCatMan->AddItemToCategory(0, value);
	}
}	

long CFVSupplierAcc::GetExInfoCallback(LXHDREX * pLx)
{
	ASSERT(pLx);

	switch(pLx->iNotifyCode)
	{
	case NTEX_ITEMINFO:
		//if (pLx->dwItemData < 25 || (pLx->dwItemData > 200 && pLx->dwItemData % 2 == 0))
		//	pLx->dwFlag |= LXHDREX::exBold;

		/*if (pLx->iSubItem == 7) pLx->dwFlag |= LXHDREX::exUnderline;
		if (pLx->iSubItem == 2)
		{
			pLx->hfText = (HFONT) ftTimes.GetSafeHandle();
			pLx->dwFlag |= LXHDREX::exHFont;
		}
		if (pLx->iSubItem == 3) 
		{
			pLx->dwFlag |= LXHDREX::exTextColor;
			pLx->crText = RGB(255,0,0);
		}
		if (pLx->iSubItem == 8) 
		{
			pLx->dwFlag |= LXHDREX::exTextColor;
			pLx->crText = RGB(255,0,128);
		}*/
		pLx->dwFlag |= LXHDREX::exTextColor;
		pLx->crText = RGB(0,0,162);
		return 1;
		break;
	case NTEX_COMBOREQUEST:
		{
			pLx->pComboArray->Add(CString(""));
			/*pLx->pComboArray->Add(CString(""));
			pLx->pComboArray->Add(pLx->csText);
			pLx->pComboArray->Add(CString("Provincia"));
			pLx->pComboArray->Add(CString("Anas"));
			pLx->pComboArray->Add(CString("Comune"));*/
			CListCtrl *pList = (CListCtrl *)pLx->pComboList;
			if( pList->GetSafeHwnd() )
			{
				InitColumnList( pList, pLx->iSubItem );
			}
			return 1;
		}
		break;
	case NTEX_SETTEXT:
		return 1;
	case NTEX_AUTOPREVIEW:
		{
			if (pLx->dwItemData % 2 == 0) return 0;

			LXHDREX_DIV * pLxEx = (LXHDREX_DIV *) pLx;

			COLORREF ocr = pLxEx->pDC->SetTextColor(RGB(0,0,255));
			CString cs;
			cs.Format("TpLxEx->pDC->his is a test about item autopreview. We are writing some trash here. The autopreview is obtained handling the NTEX_AUTOPREVIEW subcode in the exinfo callback/message and the height of autopreview pane have to be fixed for all items and can be set by the SetAutoPreviewHeight(height) function and retrieved by the GetAutoPreviewHeight function.");
			pLxEx->pDC->DrawText(cs, pLxEx->rcItem, DT_END_ELLIPSIS|DT_WORDBREAK);
			pLxEx->pDC->SetTextColor(ocr);
			return 0;
		}
	};

	return 0L;
}

void CFVSupplierAcc::SetListItemCallBack(CString strName, CListCtrl *pList, int nItem)
{
	
}

void CFVSupplierAcc::ComboBoxCallBack(CString strName, CComboBox *pComboBox)
{
	
}

void CFVSupplierAcc::ListSubItemCallBack(CString strName, CListCtrl *pList, int nSubItem)
{
	
}

void CFVSupplierAcc::OnSize(UINT nType, int cx, int cy) 
{
	CFormView::OnSize(nType, cx, cy);
	
	if( m_bt_add.GetSafeHwnd() )
	{
		m_list_child.SetWindowPos( 0, 0, 30, cx, cy - 75, SWP_NOZORDER );
		m_bt_add.SetWindowPos( 0, 10, cy - 40, 100, 35, SWP_NOZORDER );
		m_bt_save.SetWindowPos( 0, 115, cy - 40, 100, 35, SWP_NOZORDER );
		m_bt_delete.SetWindowPos( 0, 220, cy - 40, 100, 35, SWP_NOZORDER );
		m_bt_printpreview.SetWindowPos( 0, 325, cy - 40, 100, 35, SWP_NOZORDER );
		m_bt_printrp.SetWindowPos( 0, 430, cy - 40, 100, 35, SWP_NOZORDER );
		m_bt_close.SetWindowPos( 0, 535, cy - 40, 100, 35, SWP_NOZORDER );
	}
}

void CFVSupplierAcc::InitColumnList( CListCtrl *pList, int iSubItem )
{
	int i = 0;
	CTabDL tabdl;
	CTabCS tabcs;
	CTabSP tabsp;

	try
	{
		switch( iSubItem )
		{
		case 0://
		case 1://
			pList->InsertColumn( 0, "序号", LVCFMT_LEFT, 30 );
			pList->InsertColumn( 1, "名称", LVCFMT_LEFT, 100 );
			pList->InsertColumn( 2, "编号", LVCFMT_LEFT, 70 );
			tabdl.Open( "where dljlzt <> 0" );
			while( tabdl.IsOpen() && !tabdl.IsEOF() )
			{
				pList->InsertItem( i, tabdl.DLDLID.GetValue() );
				pList->SetItemText( i , 1, tabdl.DLDLMC.GetValue() );
				pList->SetItemText( i ++, 2, tabdl.DLDLBH.GetValue() );
				tabdl.MoveNext();
			}
			break;
		case 2://
			pList->InsertColumn( 0, "序号", LVCFMT_LEFT, 30 );
			pList->InsertColumn( 1, "名称", LVCFMT_LEFT, 100 );
			pList->InsertColumn( 2, "编号", LVCFMT_LEFT, 70 );
			tabsp.Open( "where spjlzt <> 0" );
			while( tabsp.IsOpen() && !tabsp.IsEOF() )
			{
				pList->InsertItem( i, tabsp.SPSPID.GetValue() );
				pList->SetItemText( i , 1, tabsp.SPSPMC.GetValue() );
				pList->SetItemText( i ++, 2, tabsp.SPSPHM.GetValue() );
				tabsp.MoveNext();
			}
			break;
		case 3:
			break;
		case 4:
			break;
		case 5:
			break;
		case 6:
			break;
		case 7://
			pList->InsertColumn( 0, "序号", LVCFMT_LEFT, 30 );
			pList->InsertColumn( 1, "", LVCFMT_LEFT, 100 );
			pList->InsertItem( 0, "1" );
			pList->SetItemText( 0, 1, "金卡" );
			pList->InsertItem( 1, "2" );
			pList->SetItemText( 1, 1, "银卡" );
			pList->InsertItem( 2, "3" );
			pList->SetItemText( 2, 1, "优惠卡" );
			break;
		case 8://
			pList->InsertColumn( 0, "序号", LVCFMT_LEFT, 30 );
			pList->InsertColumn( 1, "名称", LVCFMT_LEFT, 100 );
			pList->InsertItem( 0, "0" );
			pList->SetItemText( 0, 1, "批货" );
			pList->InsertItem( 1, "1" );
			pList->SetItemText( 1, 1, "零售" );
			break;
		case 9:
			break;
		}
	}
	catch( _com_error &e )
	{
		AfxMessageBox( e.ErrorMessage() );
	}
}

⌨️ 快捷键说明

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