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

📄 laborageview.cpp

📁 it s a Menagement System of salary,the codes contain the instruction for the design,and it is rutini
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// LaborageView.cpp : implementation of the CLaborageView class
//

#include "stdafx.h"
#include "Laborage.h"

#include "LaborageDoc.h"
#include "LaborageView.h"
#include "MainFrm.h"
#include "record.h"
#include "manage.h"
#include "node.h"


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

/////////////////////////////////////////////////////////////////////////////
// CLaborageView

IMPLEMENT_DYNCREATE(CLaborageView, CListView)

BEGIN_MESSAGE_MAP(CLaborageView, CListView)
	//{{AFX_MSG_MAP(CLaborageView)
	ON_NOTIFY_REFLECT(LVN_COLUMNCLICK, OnColumnclick)
	ON_COMMAND(IDM_FIND, OnFind)
	ON_COMMAND(IDM_DELETE, OnDelete)
	ON_COMMAND(IDM_SHOW, OnShow)
	ON_COMMAND(IDM_ADD, OnAdd)
	ON_COMMAND(IDM_MODIFY, OnModify)
	ON_COMMAND(IDM_MANAGE, OnManage)
	//}}AFX_MSG_MAP
    ON_MESSAGE(WM_BEGINFIND,OnBeginFind)
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CListView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CListView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CListView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CLaborageView construction/destruction

CLaborageView::CLaborageView()
{
	// TODO: add construction code here
    m_RecordCounts=0;
	m_find=new CFind();
}

CLaborageView::~CLaborageView()
{
}

BOOL CLaborageView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CListView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CLaborageView drawing

void CLaborageView::OnDraw(CDC* pDC)
{
	CLaborageDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
}

void CLaborageView::OnInitialUpdate()
{
   CListView::OnInitialUpdate();
   m_bIsAsc=FALSE;

   CListCtrl& theCtrl = GetListCtrl();
   theCtrl.ModifyStyle(0,LVS_REPORT); 
   theCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT);
   theCtrl.SetColumnWidth(0, LVSCW_AUTOSIZE_USEHEADER);
   theCtrl.SetColumnWidth(1, LVSCW_AUTOSIZE_USEHEADER);

   LV_COLUMN lvColumn;
   lvColumn.mask=LVCF_FMT|LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH;
   lvColumn.fmt=LVCFMT_CENTER;
   
   lvColumn.cx=40;
   lvColumn.iSubItem=0;
   lvColumn.pszText="编号";
   theCtrl.InsertColumn(0,&lvColumn);
   lvColumn.cx=60;
   lvColumn.iSubItem=1;
   lvColumn.pszText="姓名";
   theCtrl.InsertColumn(1,&lvColumn);
   lvColumn.cx=40;
   lvColumn.iSubItem=2;
   lvColumn.pszText="性别";
   theCtrl.InsertColumn(2,&lvColumn);
   lvColumn.cx=40;
   lvColumn.iSubItem=3;
   lvColumn.pszText="年龄";
   theCtrl.InsertColumn(3,&lvColumn);
   lvColumn.cx=90;
   lvColumn.iSubItem=4;
   lvColumn.pszText="电话";
   theCtrl.InsertColumn(4,&lvColumn);
   lvColumn.cx=70;
   lvColumn.iSubItem=5;
   lvColumn.pszText="职称";
   theCtrl.InsertColumn(5,&lvColumn);
   lvColumn.cx=60;
   lvColumn.iSubItem=6;
   lvColumn.pszText="待遇";
   theCtrl.InsertColumn(6,&lvColumn);
   lvColumn.cx=50;
   lvColumn.iSubItem=7;
   lvColumn.pszText="总天数";
   theCtrl.InsertColumn(7,&lvColumn);
   lvColumn.cx=50;
   lvColumn.iSubItem=8;
   lvColumn.pszText="起始日期";
   theCtrl.InsertColumn(8,&lvColumn);
   lvColumn.cx=40;
   lvColumn.iSubItem=9;
   lvColumn.pszText="请假天数";
   theCtrl.InsertColumn(9,&lvColumn);
   lvColumn.cx=40;
   lvColumn.iSubItem=10;
   lvColumn.pszText="有效天数";
   theCtrl.InsertColumn(10,&lvColumn);
   lvColumn.cx=40;
   lvColumn.iSubItem=11;
   lvColumn.pszText="发放天数";
   theCtrl.InsertColumn(11,&lvColumn);
   lvColumn.cx=40;
   lvColumn.iSubItem=12;
   lvColumn.pszText="剩余天数";
   theCtrl.InsertColumn(12,&lvColumn);
   lvColumn.cx=70;
   lvColumn.iSubItem=13;
   lvColumn.pszText="奖罚金额";
   theCtrl.InsertColumn(13,&lvColumn);
   lvColumn.cx=70;
   lvColumn.iSubItem=14;
   lvColumn.pszText="总金额";
   theCtrl.InsertColumn(14,&lvColumn);

   Show();
	// TODO: You may populate your ListView with items by directly accessing
	//  its list control through a call to GetListCtrl().
}

/////////////////////////////////////////////////////////////////////////////
// CLaborageView printing

BOOL CLaborageView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CLaborageView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CLaborageView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CLaborageView diagnostics

#ifdef _DEBUG
void CLaborageView::AssertValid() const
{
	CListView::AssertValid();
}

void CLaborageView::Dump(CDumpContext& dc) const
{
	CListView::Dump(dc);
}

CLaborageDoc* CLaborageView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CLaborageDoc)));
	return (CLaborageDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CLaborageView message handlers
void CLaborageView::Show()
{
  static BOOL firstshow=TRUE;
  
  CListCtrl& m_ListCtrlx = GetListCtrl();
  m_ListCtrlx.DeleteAllItems();
  int i=0;
  m_Set.Open();
  if(m_Set.IsEOF())
  {
    m_Set.Close();
    return;
  }
  m_Set.MoveFirst();
  do
  {  
  CString s;
  s.Format("%d",m_Set.m_column1);
  m_ListCtrlx.InsertItem(i,s,0);//职员编号
  m_ListCtrlx.SetItemText(i,1,m_Set.m_column2);//姓名
  if(m_Set.m_column3==0)
  m_ListCtrlx.SetItemText(i,2,"男");//性别
  else
  m_ListCtrlx.SetItemText(i,2,"女");
  s.Format("%d",CTime::GetCurrentTime().GetYear()-m_Set.m_column4);
  m_ListCtrlx.SetItemText(i,3,s);//年龄
  m_ListCtrlx.SetItemText(i,4,m_Set.m_column5);//电话
  m_ListCtrlx.SetItemText(i,5,m_Set.m_column6);//职称
  s.Format("%d元/天",m_Set.m_column7);
  m_ListCtrlx.SetItemText(i,6,s);//待遇
  s.Format("%d-%d-%d",m_Set.m_column8.GetYear(),m_Set.m_column8.GetMonth(),m_Set.m_column8.GetDay());
  m_ListCtrlx.SetItemText(i,8,s);//起始日期
  s.Format("%.1f",m_Set.m_column9);
  m_ListCtrlx.SetItemText(i,9,s);//请假天数
  s.Format("%.1f",m_Set.m_column10);
  m_ListCtrlx.SetItemText(i,11,s);//发放天数
  s.Format("%.1f元",m_Set.m_column11);
  m_ListCtrlx.SetItemText(i,13,s);//奖罚金额
 
  CTime time=CTime::GetCurrentTime();
  int total=(time.GetYear()-m_Set.m_column8.GetYear())*366+(time.GetMonth()-m_Set.m_column8.GetMonth())*31+time.GetDay()-m_Set.m_column8.GetDay();
  s.Format("%d",total);
  m_ListCtrlx.SetItemText(i,7,s);//总天数
  s.Format("%.1f",total-m_Set.m_column9);
  m_ListCtrlx.SetItemText(i,10,s);//有效天数
  s.Format("%.1f",total-m_Set.m_column9-m_Set.m_column10);
  m_ListCtrlx.SetItemText(i,12,s);//剩余天数
  s.Format("%.1f元",(total-m_Set.m_column9-m_Set.m_column10)*m_Set.m_column7+m_Set.m_column11);
  m_ListCtrlx.SetItemText(i,14,s);//总金额

  i++;
  m_Set.MoveNext();

  if(firstshow) m_RecordCounts++;
  }  while(!m_Set.IsEOF());
  m_Set.Close();

  if(firstshow) 
  {
	  firstshow=FALSE;
	  CMainFrame *frame=(CMainFrame*)AfxGetApp()->m_pMainWnd;
	  char inf[255];
	  sprintf(inf,"记录总数:  %d ",m_RecordCounts);
	  frame->m_wndStatusBar.SetPaneText(1,inf);
  }
}

void CLaborageView::Sort(BOOL isAsc,int secol)
{   
	if(m_Set.IsOpen()) m_Set.Close();
    m_Set.Open();
	CODBCFieldInfo fieldInfo;
	m_Set.GetODBCFieldInfo(secol,fieldInfo);
	if(isAsc)
	{
		m_Set.m_strSort=fieldInfo.m_strName+" ASC";
        m_bIsAsc=TRUE;
	}
	else
	{
		m_Set.m_strSort=fieldInfo.m_strName+" DESC";
		m_bIsAsc=FALSE;
	}
	m_Set.Requery();
	m_Set.Close();
}



void CLaborageView::OnColumnclick(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here

	int k= pNMListView->iSubItem;
    switch(k)
	{
	case 14:k=-1;break;
	case 13:k=10;break;
	case 12:k=-1;break;
	case 11:k=9;break;
	case 10:k=-1;break;
	case 9:k=8;break;
	case 8:k=7;break;
	case 7:k=-1;break;
	default:break;
	}

⌨️ 快捷键说明

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