123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470 |
- // ModeDlg.cpp : implementation file
- //
- #include "stdafx.h"
- #include "ipos.h"
- #include "ModeDlg.h"
- //#include "ComboGridCtrl.h"
- #include "./public/GData.h"
- #include "./public/DitClientInfo.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- /////////////////////////////////////////////////////////////////////////////
- // CModeDlg dialog
- CModeDlg::CModeDlg(CWnd* pParent /*=NULL*/)
- : CDialog(CModeDlg::IDD, pParent)
- {
- //{{AFX_DATA_INIT(CModeDlg)
- // NOTE: the ClassWizard will add member initialization here
- //}}AFX_DATA_INIT
- strTitle = "油机授权模式";
- pTitleBmp = NULL;
- }
- void CModeDlg::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CModeDlg)
- DDX_Control(pDX, IDC_DEFAULTSETTING_BTN, m_DefaultsettingBtn);
- DDX_Control(pDX, IDCANCEL, m_CancelBtn);
- DDX_Control(pDX, IDOK, m_OkBtn);
- //}}AFX_DATA_MAP
- DDX_GridControl(pDX, IDC_CUSTOM_GRIDCTRL, m_GridCtrl);
- }
- BEGIN_MESSAGE_MAP(CModeDlg, CDialog)
- //{{AFX_MSG_MAP(CModeDlg)
- ON_WM_ERASEBKGND()
- ON_WM_CTLCOLOR()
- ON_BN_CLICKED(IDC_DEFAULTSETTING_BTN, OnDefaultsettingBtn)
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- // CModeDlg message handlers
- BOOL CModeDlg::OnInitDialog()
- {
- CDialog::OnInitDialog();
-
- // TODO: Add extra initialization here
- //*
- CFont* ptf = m_GridCtrl.GetFont(); // 得到原来的字体
- LOGFONT lf;
- ptf->GetLogFont(&lf);
- lf.lfHeight = 25; // 改变字体高度
- //strcpy (lf.lfFaceName, "宋体"); // 改变字体名称
- strcpy (lf.lfFaceName, "Arial"); // 改变字体名称
- lf.lfCharSet = DEFAULT_CHARSET; //DEFAULT_CHARSET ANSI_CHARSET GB2312_CHARSET
- //strcpy (lf.lfFaceName, "Arial Black"); // 改变字体名称
- //strcpy (lf.lfFaceName, "Arial"); // 改变字体名称
- lf.lfWeight = 700;
- m_Font.CreateFontIndirect(&lf);
- m_GridCtrl.SetFont(&m_Font); // 设置新字体
- m_GridCtrl.nParentType = 1;
- ShowTitle();
- m_DefaultsettingBtn.LoadBitmaps(_T("defaultsetting_up"), _T("defaultsetting_down"), _T("defaultsetting_up"), _T("defaultsetting_gray") );
- m_OkBtn.LoadBitmaps(_T("OK_up"), _T("OK_down"), _T("ok_up"), _T("OK_gray") );
- m_CancelBtn.LoadBitmaps(_T("cancel_up"), _T("cancel_down"), _T("cancel_up"), _T("cancel_gray") );
- //排序
- int i, j;
- for( i=0; i<pModeInfoes.GetSize(); i++ )
- {
- MODE_INFO *pMI_1 = pModeInfoes[i];
- for( j=i+1; j<pModeInfoes.GetSize(); j++ )
- {
- MODE_INFO *pMI_2 = pModeInfoes[j];
- if( pMI_1->nNozzleNum > pMI_2->nNozzleNum )
- {
- pModeInfoes.RemoveAt( j );
- pModeInfoes.RemoveAt( i );
- pModeInfoes.InsertAt( i, pMI_2 );
- pModeInfoes.InsertAt( j, pMI_1 );
- pMI_1 = pMI_2;
- }
- }
- }
- IniGridCtrlInfo( );
- SetGridCtrlColumnInfo( );
- InsertAllItem( );
- m_GridCtrl.SetComboBoxStyle( CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP );
- return TRUE; // return TRUE unless you set the focus to a control
- // EXCEPTION: OCX Property Pages should return FALSE
- }
- void CModeDlg::IniGridCtrlInfo( )
- {
- while( m_GridCtrl.GetRowCount() > 1 )
- m_GridCtrl.DeleteRow( 1 );
- while( m_GridCtrl.GetColumnCount() > 0 )
- m_GridCtrl.DeleteColumn( 0 );
- m_GridCtrl.SetFixedRowCount(1);
- m_GridCtrl.SetFixedColumnCount(2);
- m_GridCtrl.SetRowResize(false);
- m_GridCtrl.SetColumnResize(false);
- ////////////////////////////////////////////////////
- ////////////////////////////////////////////////////
- m_GridCtrl.SetColumnCount( 4 );
- for(int j=0;j<m_GridCtrl.m_comStrArray.GetSize();j++)
- delete m_GridCtrl.m_comStrArray.GetAt(j).comStr;
- m_GridCtrl.m_comStrArray.RemoveAll();
- CStringArray col2;
- col2.Add( "用卡自助" );
- col2.Add( "后台自动授权" );
- col2.Add( "后台手动授权" );
- col2.Add( "后台现金预付" );
- // col2.Add( "脱机" );
- m_GridCtrl.AddComboColumn( 2, col2 );
- CStringArray col3;
- col3.Add( "POS收银" );
- col3.Add( "室外收银" );
- m_GridCtrl.AddComboColumn( 3, col3 );
- for (int col = 0; col < m_GridCtrl.GetColumnCount(); col++)
- {
- GV_ITEM Item;
- Item.mask = GVIF_TEXT|GVIF_FORMAT;
- Item.row = 0;
- Item.col = col;
- Item.nFormat = DT_LEFT|DT_WORDBREAK;
- if( col == 0 )
- Item.szText.Format(_T("枪号") );
- else if( col == 1 )
- Item.szText.Format(_T("当前模式") );
- else if( col == 2 )
- Item.szText.Format(_T("新选择模式") );
- else if( col == 3 )
- Item.szText.Format(_T("收银方式") );
- m_GridCtrl.SetItem(&Item);
- }
- }
- void CModeDlg::SetGridCtrlColumnInfo( )
- {
- CRect rect;
- CWnd* pWnd = GetDlgItem( IDC_CUSTOM_GRIDCTRL );
- pWnd->GetWindowRect(&rect);
- ScreenToClient(rect);
- if( m_GridCtrl.GetColumnCount() >= 1 )
- {
- m_GridCtrl.SetColumnWidth( 0, 140 );
- m_GridCtrl.SetColumnWidth( 1, 260 );
- m_GridCtrl.SetColumnWidth( 2, 280 );
- m_GridCtrl.SetColumnWidth( 3, 280 );
- }
- }
- void CModeDlg::InsertAllItem( )
- {
- IniGridCtrlInfo( );
- SetGridCtrlColumnInfo( );
- int i;
- CString strItem;
- for( i=0; i<pModeInfoes.GetSize(); i++ )
- {
- MODE_INFO* pMI = pModeInfoes[ i ];
- strItem.Format( "%d", pMI->nNozzleNum );
- m_GridCtrl.InsertRow( strItem, m_GridCtrl.GetRowCount() );
- InsertItem( m_GridCtrl.GetRowCount()-1, pMI );
- }
- }
- void CModeDlg::InsertItem( int nIndex, MODE_INFO* pItem )
- {
- CString strItem;
- strItem.Format( "%d", pItem->nNozzleNum );
- m_GridCtrl.SetItemText( nIndex, 0, strItem );
- if( pItem->nCurMode == WOKRMODE_CARD_SELFHELP )
- strItem = "用卡自助";
- else if( pItem->nCurMode == WOKRMODE_HOST_AUTO )
- strItem = "后台自动授权";
- else if( pItem->nCurMode == WOKRMODE_HOST_MANUAL )
- strItem = "后台手动授权";
- else if( pItem->nCurMode == WOKRMODE_HOST_ACTIVE )
- strItem = "后台现金预付";
- // else if( pItem->nCurMode == WOKRMODE_OFFLINE )
- // strItem = "脱机";
- else
- strItem = "用卡自助";
- m_GridCtrl.SetItemText( nIndex, 1, strItem );
- m_GridCtrl.SetItemText( nIndex, 2, strItem );
- if( pItem->nCheckoutMode == CHECKOUT_POS )
- strItem = "POS收银";
- else if( pItem->nCheckoutMode == CHECKOUT_MANUAL )
- strItem = "室外收银";
- else
- strItem = "POS收银";
- m_GridCtrl.SetItemText( nIndex, 3, strItem );
- }
- HBRUSH CModeDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
- {
- HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
-
- // TODO: Change any attributes of the DC here
-
- // TODO: Return a different brush if the default is not desired
- return hbr;
- }
- void CModeDlg::OnOK()
- {
- if( pTitleBmp)
- {
- pTitleBmp->DeleteObject();
- delete pTitleBmp;
- pTitleBmp = NULL;
- }
-
- m_Font.DeleteObject();
- CDialog::OnOK();
- }
- void CModeDlg::OnCancel()
- {
- if( pTitleBmp)
- {
- pTitleBmp->DeleteObject();
- delete pTitleBmp;
- pTitleBmp = NULL;
- }
-
- m_Font.DeleteObject();
- CDialog::OnCancel();
- }
- BOOL CModeDlg::OnEraseBkgnd(CDC* pDC)
- {
- CBitmap bmp;
- bmp.LoadBitmap( "FillingBK" );
- BITMAP bm;
- bmp.GetBitmap(&bm);
- CDC dcMemory;
- dcMemory.CreateCompatibleDC(pDC);
- CBitmap *ptrBmpOld=dcMemory.SelectObject(&bmp);
- pDC->BitBlt( 0, 0, bm.bmWidth, bm.bmHeight, &dcMemory, 0, 0, SRCCOPY );
- dcMemory.SelectObject(ptrBmpOld);
- dcMemory.DeleteDC();
- bmp.DeleteObject();
- return true;
- }
- void CModeDlg::ShowTitle()
- {
- CDC* pDC = GetDC();
- if( pTitleBmp)
- {
- pTitleBmp->DeleteObject();
- delete pTitleBmp;
- pTitleBmp = NULL;
- }
- CDC dcTmpMem;
- if( dcTmpMem.CreateCompatibleDC(pDC) )
- {
- CBitmap BkBmp;
- BkBmp.LoadBitmap( IDB_TITLE );
- CBitmap* pTmpOldBitmap = dcTmpMem.SelectObject( &BkBmp );
- BITMAP BkBitMap;
- BkBmp.GetBitmap( &BkBitMap );
- pTitleBmp = new CBitmap;
- pTitleBmp->CreateCompatibleBitmap(pDC,BkBitMap.bmWidth, BkBitMap.bmHeight);
- ASSERT(pTitleBmp->m_hObject != NULL);
- CDC dcMem;
- dcMem.CreateCompatibleDC(pDC);
- CBitmap* pOldBitmap = dcMem.SelectObject(pTitleBmp);
- dcMem.BitBlt( 0, 0, BkBitMap.bmWidth, BkBitMap.bmHeight, &dcTmpMem, 0, 0, SRCCOPY);
- dcMem.SetBkMode( TRANSPARENT );
- dcMem.SetTextColor( RGB(255,255,255) );
- CFont ItemFold;
- CFont *pOldFont = NULL;
- if( 0 != ItemFold.CreateFont( 30, 0,0,0, FW_BOLD ,0,0,0,DEFAULT_CHARSET,
- OUT_STROKE_PRECIS,CLIP_STROKE_PRECIS,DRAFT_QUALITY,
- VARIABLE_PITCH|FF_SWISS, _T("Arial") ) )
- {
- pOldFont = dcMem.SelectObject(&ItemFold);
- }
- dcMem.TextOut( 0, 0, strTitle );
- if( pOldFont != NULL )
- dcMem.SelectObject(pOldFont);
- ItemFold.DeleteObject();
- dcMem.SelectObject(pOldBitmap);
- dcMem.DeleteDC();
- BkBmp.DeleteObject();
- dcTmpMem.SelectObject(pTmpOldBitmap);
- dcTmpMem.DeleteDC();
- HBITMAP handle = ((CStatic*)GetDlgItem(IDC_TITLEBMP))->SetBitmap( pTitleBmp->operator HBITMAP() );
- DeleteObject(handle);
- }
- ReleaseDC( pDC );
- }
- //每次编辑完成时调用此函数进行内容合法性的检查并更新有关项的内容值
- void CModeDlg::GridVerifyData( )
- {
- GData* pGData = &(singleton<GData>::instance());
- CString strItem;
- CCellID CellID = m_GridCtrl.GetFocusCell();
- if( (CellID.row-1)<pModeInfoes.GetSize() && (CellID.row-1)>=0 )
- {
- MODE_INFO* pMI = pModeInfoes[CellID.row-1];
- DIT_CLIENT_INFO *pDit = pGData->m_ditMgr.findDITInfoByPumpNo(pMI->nNozzleNum);
- strItem = m_GridCtrl.GetItemText( CellID.row, CellID.col );
- if( CellID.col == 0 )//枪号
- {
- }
- else if( CellID.col == 1 )//当前模式
- {
- }
- else if( CellID.col == 2 )//新选择模式
- {
- CString strPreItem = "";
- if( pDit != NULL )
- {
- if( pDit->m_ProtocolType==PROTOCOL_HENGSHAN || pDit->m_ProtocolType==PROTOCOL_NEWHENGSHAN
- || pDit->m_ProtocolType == PROTOCOL_HENGSHAN_HSC )
- {
- if( strItem == "用卡自助" )
- {
- if( pMI->nNewMode == WOKRMODE_HOST_AUTO )
- strPreItem = "后台自动授权";
- else if( pMI->nNewMode == WOKRMODE_HOST_MANUAL )
- strPreItem = "后台手动授权";
- else if( pMI->nNewMode == WOKRMODE_HOST_ACTIVE )
- strPreItem = "后台现金预付";
- else
- strPreItem = "后台自动授权";
- }
- }
- }
- if( strPreItem != "" )
- {
- m_GridCtrl.SetItemText( CellID.row, CellID.col, strPreItem );
- }
- else
- {
- if( strItem == "用卡自助" )
- pMI->nNewMode = WOKRMODE_CARD_SELFHELP;
- else if( strItem == "后台自动授权" )
- pMI->nNewMode = WOKRMODE_HOST_AUTO;
- else if( strItem == "后台手动授权" )
- pMI->nNewMode = WOKRMODE_HOST_MANUAL;
- else if( strItem == "后台现金预付" )
- pMI->nNewMode = WOKRMODE_HOST_ACTIVE;
- // else if( strItem == "脱机" )
- // pMI->nNewMode = WOKRMODE_OFFLINE;
- else
- pMI->nNewMode = WOKRMODE_NULL;
- }
- }
- else if( CellID.col == 3 )//收银方式
- {
- if( strItem == "POS收银" )
- pMI->nCheckoutMode = CHECKOUT_POS;
- else if( strItem == "室外收银" )
- pMI->nCheckoutMode = CHECKOUT_MANUAL;
- }
- }
- }
- void CModeDlg::OnDefaultsettingBtn()
- {
- GData* pGData = &(singleton<GData>::instance());
- for(int i=0; i<pModeInfoes.GetSize(); i++ )
- {
- MODE_INFO *pItem = pModeInfoes[i];
- PUMP_CONFIG *pPumpCfg = pGData->m_pumpsMgr.findPumpCfgByNozzleNo(pItem->nNozzleNum);
- if( pPumpCfg != NULL )
- {
- CString strItem;
- pItem->nNewMode = pPumpCfg->nWorkMode;
- pItem->nCheckoutMode = pPumpCfg->nCheckoutMode;
- if( pItem->nNewMode == WOKRMODE_CARD_SELFHELP )
- strItem = "用卡自助";
- else if( pItem->nNewMode == WOKRMODE_HOST_AUTO )
- strItem = "后台自动授权";
- else if( pItem->nNewMode == WOKRMODE_HOST_MANUAL )
- strItem = "后台手动授权";
- else if( pItem->nNewMode == WOKRMODE_HOST_ACTIVE )
- strItem = "后台现金预付";
- // else if( pItem->nNewMode == WOKRMODE_OFFLINE )
- // strItem = "脱机";
- else
- strItem = "用卡自助";
- m_GridCtrl.SetItemText( i+1, 2, strItem );
- if( pItem->nCheckoutMode == CHECKOUT_POS )
- strItem = "POS收银";
- else if( pItem->nCheckoutMode == CHECKOUT_MANUAL )
- strItem = "室外收银";
- else
- strItem = "POS收银";
- m_GridCtrl.SetItemText( i+1, 3, strItem );
- }
- }
-
- m_GridCtrl.Invalidate();
- }
|