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

📄 mzgldlg.cpp

📁 门诊部药房药库盘点/进药计划的PPC程序 应用环境WINCE2003SE/640*480屏幕
💻 CPP
📖 第 1 页 / 共 2 页
字号:

void CMZGLDlg::OnJy() 
{
	CJyDlg dlg;
	dlg.DoModal();
}
/////////////////////////////////////////////////////////////////////////////
// CJyDlg dialog


CJyDlg::CJyDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CJyDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CJyDlg)
	m_time = 0;
	m_time1 = 0;
	m_yplb = _T("");
	//}}AFX_DATA_INIT
}


void CJyDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CJyDlg)
	DDX_Control(pDX, IDC_IN_LIST, m_lc);
	DDX_DateTimeCtrl(pDX, IDC_DATETIME, m_time);
	DDX_DateTimeCtrl(pDX, IDC_DATETIME1, m_time1);
	DDX_CBString(pDX, IDC_YPLB, m_yplb);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CJyDlg, CDialog)
	//{{AFX_MSG_MAP(CJyDlg)
	ON_BN_CLICKED(IDC_FIND, OnFind)
	ON_NOTIFY(LVN_COLUMNCLICK, IDC_IN_LIST, OnColumnclickInList)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CJyDlg message handlers

void CJyDlg::OnFind() 
{
	UpdateData();
	m_lc.SetRedraw(FALSE);
	m_lc.DeleteAllItems();
	CFile yd,ykc,hjsf;
	yd.Open(_T("\\sd\\sf\\yd.dat"),CFile::modeRead,NULL);
	ykc.Open(_T("\\sd\\sf\\ykc.dat"),CFile::modeRead,NULL);
	hjsf.Open(_T("\\sd\\sf\\hjsf.dat"),CFile::modeRead,NULL);
	YPINFO yi;
	TABKC kc;
	int nID=0;
	int nItem=0;
	CString mm;
	int size = yd.GetLength()/sizeof yi;
	double *kcs1=new double[size],*kcs2=new double[size],*kcs3=new double[size],*kcs4=new double[size];
	ZeroMemory(kcs1,size*sizeof (double));
	ZeroMemory(kcs2,size*sizeof (double));
	ZeroMemory(kcs3,size*sizeof (double));
	ZeroMemory(kcs4,size*sizeof (double));
	while(ykc.Read(&kc,sizeof kc))
	{
		if(kc.ckh==0)
			kcs3[kc.yp_id]+=kc.sl;
	}
	ykc.SeekToBegin();
	while(ykc.Read(&kc,sizeof kc))
	{
		kcs2[kc.yp_id]+=kc.sl;
	}
	OSFF sf;
	HJFT ht;
	FYSL fl;
	double date=(double)m_time.GetYear()*10000000000;
	date+=(double)m_time.GetMonth()*100000000;
	date+=(double)m_time.GetDay()*1000000;
	while(hjsf.Read(&ht,sizeof ht))
	{
		if(ht.hjrq>=date&&ht.issf==TRUE&&ht.isdel!=TRUE)
		{
			hjsf.Read(&sf,sizeof sf);
			while(ht.dwsize!=hjsf.GetPosition())
			{
				hjsf.Read(&fl,sizeof fl);
				kcs1[fl.yp_id]+=fl.sl;
			}
		}
		hjsf.Seek(ht.dwsize,CFile::begin);
	}
	hjsf.SeekToBegin();
	date=(double)m_time1.GetYear()*10000000000;
	date+=(double)m_time1.GetMonth()*100000000;
	date+=(double)m_time1.GetDay()*1000000;
	while(hjsf.Read(&ht,sizeof ht))
	{
		if(ht.hjrq>=date&&ht.issf==TRUE&&ht.isdel!=TRUE)
		{
			hjsf.Read(&sf,sizeof sf);
			while(ht.dwsize!=hjsf.GetPosition())
			{
				hjsf.Read(&fl,sizeof fl);
				kcs4[fl.yp_id]+=fl.sl;
			}
		}
		hjsf.Seek(ht.dwsize,CFile::begin);
	}
	int ypid=0;
	while(yd.Read(&yi,sizeof yi))
	{
		if((m_yplb==""||yi.ypdl==m_yplb)&&yi.del!=TRUE)
		{
			int nSub=1;
			mm.Format(_T("%d"),ypid);
			nItem=m_lc.InsertItem(nItem,mm);
			mm=yi.ypname;
			mm+=yi.guige;
			m_lc.SetItemText(nItem,nSub++,mm);
			mm.Format(_T("%.2f"),yi.lsj);
			m_lc.SetItemText(nItem,nSub++,mm);
			if(kcs1[ypid]!=0)
			{
				mm.Format(_T("%.2f"),kcs1[ypid]);
				m_lc.SetItemText(nItem,nSub,mm);
			}
			nSub++;
			if(kcs2[ypid]!=0)
			{
				mm.Format(_T("%.2f"),kcs2[ypid]);
				m_lc.SetItemText(nItem,nSub,mm);
			}
			nSub++;
			double jy=kcs1[ypid]-kcs2[ypid];
			if(jy>0)
			{
				mm.Format(_T("%.2f"),jy);
				m_lc.SetItemText(nItem,nSub,mm);
			}
			nSub++;
			jy=kcs4[ypid]-kcs3[ypid];
			if(jy>0)
			{
				mm.Format(_T("%.2f"),jy);
				m_lc.SetItemText(nItem,nSub++,mm);
			}
			nItem++;
		}
		ypid++;
	}
	yd.Close();
	ykc.Close();
	hjsf.Close();
	delete kcs1;
	delete kcs2;
	delete kcs3;
	delete kcs4;
	m_lc.SetRedraw();	
}

BOOL CJyDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	m_lc.SetExtendedStyle(LVS_EX_FULLROWSELECT);

	int nItem = 0;
	TCHAR *he[]={_T("编号"),_T("药名"),_T("售价"),_T("销量"),_T("存量"),_T("进量"),_T("药房应存")};
	int le[]={0,145,45,45,45,45,45};
	for(int l=0;l<2;l++)
	{
		m_lc.InsertColumn(nItem++, he[l], LVCFMT_LEFT,le[l]);
	}
	for(;l<7;l++)
	{
		m_lc.InsertColumn(nItem++, he[l], LVCFMT_RIGHT,le[l]);
	}
	
	m_time=CTime::GetCurrentTime();
	m_time1=CTime::GetCurrentTime();

	UpdateData(FALSE);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CJyDlg::OnColumnclickInList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	m_sortc =pNMListView->iSubItem;
	for(int i=0;i<m_lc.GetItemCount();i++)
		m_lc.SetItemData(i,i);

	m_lc.SortItems(ListCompare,(DWORD)&this->m_lc);
	m_Ac=!m_Ac;
	*pResult = 0;
}
/////////////////////////////////////////////////////////////////////////////
// CNewYdDlg dialog


CNewYdDlg::CNewYdDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CNewYdDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CNewYdDlg)
	m_danwei = _T("");
	m_fplb = _T("");
	m_guige = _T("");
	m_jinjia = 0.0;
	m_pijia = 0.0;
	m_sj = 0.0;
	m_time = 0;
	m_yfbl = 0;
	m_ypdl = _T("");
	m_ypjx = _T("");
	m_ypname = _T("");
	m_ypxl = _T("");
	m_ypzyl = _T("");
	//}}AFX_DATA_INIT
}


void CNewYdDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CNewYdDlg)
	DDX_Control(pDX, IDC_YPNAME, m_cypname);
	DDX_CBString(pDX, IDC_DANWEI, m_danwei);
	DDX_CBString(pDX, IDC_FPLB, m_fplb);
	DDX_Text(pDX, IDC_GUIGE, m_guige);
	DDX_Text(pDX, IDC_JINJIA, m_jinjia);
	DDX_Text(pDX, IDC_PIJIA, m_pijia);
	DDX_Text(pDX, IDC_SJ, m_sj);
	DDX_DateTimeCtrl(pDX, IDC_TIME, m_time);
	DDX_Text(pDX, IDC_YFBL, m_yfbl);
	DDX_CBString(pDX, IDC_YPDL, m_ypdl);
	DDX_Text(pDX, IDC_YPJX, m_ypjx);
	DDX_Text(pDX, IDC_YPNAME, m_ypname);
	DDX_CBString(pDX, IDC_YPXL, m_ypxl);
	DDX_CBString(pDX, IDC_YPZYL, m_ypzyl);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CNewYdDlg, CDialog)
	//{{AFX_MSG_MAP(CNewYdDlg)
	ON_BN_CLICKED(IDC_ADD, OnAdd)
	ON_WM_DESTROY()
	ON_BN_CLICKED(IDC_OVR, OnOvr)
	ON_BN_CLICKED(IDC_CYNAME, OnCyname)
	ON_EN_KILLFOCUS(IDC_YPNAME, OnKillfocusYpname)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CNewYdDlg message handlers

void CMZGLDlg::OnNewYd() 
{
	CNewYdDlg dlg;
	dlg.DoModal();
}

void CNewYdDlg::OnAdd() 
{
	UpdateData();
	CFile yd;
	YPINFO yi;
	ZeroMemory(&yi,sizeof yi);
	yd.Open(_T("\\sd\\sf\\yd.dat"),CFile::modeReadWrite,NULL);
	yi.yp_id=yd.SeekToEnd()/sizeof yi;
	::WideCharToMultiByte(CP_ACP, 0,m_ypname, -1,yi.ypname,sizeof yi.ypname, NULL, NULL);
	::WideCharToMultiByte(CP_ACP, 0,m_ypjx, -1,yi.ypjc,sizeof yi.ypjc, NULL, NULL);
	::WideCharToMultiByte(CP_ACP, 0,m_guige, -1,yi.guige,sizeof yi.guige, NULL, NULL);
	::WideCharToMultiByte(CP_ACP, 0,m_danwei, -1,yi.danwei,sizeof yi.danwei, NULL, NULL);
	::WideCharToMultiByte(CP_ACP, 0,m_ypdl, -1,yi.ypdl,sizeof yi.ypdl, NULL, NULL);
	::WideCharToMultiByte(CP_ACP, 0,m_ypxl, -1,yi.ypxl,sizeof yi.ypxl, NULL, NULL);
	::WideCharToMultiByte(CP_ACP, 0,m_ypzyl, -1,yi.ypzyl,sizeof yi.ypzyl, NULL, NULL);
	::WideCharToMultiByte(CP_ACP, 0,m_fplb, -1,yi.fpfylb,sizeof yi.fpfylb, NULL, NULL);
	yi.yfdw=m_yfbl;
	yi.yxx=(double)m_time.GetYear()*10000;
	yi.yxx+=(double)m_time.GetMonth()*100;
	yi.yxx+=(double)m_time.GetDay();
	yi.jinjia=m_jinjia;
	yi.pifajia=m_pijia;
	yi.lsj=m_sj;
	yd.Write(&yi,sizeof yi);
	yd.Close();
	m_ypjx=m_guige=_T("");
	m_jinjia=m_pijia=m_sj=0;
	m_cypname.SetFocus();
	m_cypname.SetSel(0,-1);
}

BOOL CNewYdDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	CFile gbk;
	gbk.Open(_T("\\sd\\sf\\gbk.dat"),CFile::modeRead,NULL);
	gbk.Read(m_gbk.GetBufferSetLength(gbk.GetLength()),gbk.GetLength());
	gbk.Close();
	yd = new CYdDlg();
	yd->Create(IDD_YD_DIALOG);
	yd->nyw=this;
	m_time=CTime::GetCurrentTime();
	UpdateData(FALSE);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CYdDlg::OnNew() 
{
	CNewYdDlg dlg;
	dlg.DoModal();
}

void CYdDlg::OnClose() 
{
	this->ShowWindow(SW_HIDE);
}

void CNewYdDlg::OnDestroy() 
{
	CDialog::OnDestroy();
	
	delete yd;	
}

void CNewYdDlg::OnOvr() 
{
	UpdateData();
	CFile yd;
	YPINFO yi;
	ZeroMemory(&yi,sizeof yi);
	yd.Open(_T("\\sd\\sf\\yd.dat"),CFile::modeReadWrite,NULL);
	yd.Seek(m_ypid*sizeof yi,CFile::begin);
	::WideCharToMultiByte(CP_ACP, 0,m_ypname, -1,yi.ypname,sizeof yi.ypname, NULL, NULL);
	::WideCharToMultiByte(CP_ACP, 0,m_ypjx, -1,yi.ypjc,sizeof yi.ypjc, NULL, NULL);
	::WideCharToMultiByte(CP_ACP, 0,m_guige, -1,yi.guige,sizeof yi.guige, NULL, NULL);
	::WideCharToMultiByte(CP_ACP, 0,m_danwei, -1,yi.danwei,sizeof yi.danwei, NULL, NULL);
	::WideCharToMultiByte(CP_ACP, 0,m_ypdl, -1,yi.ypdl,sizeof yi.ypdl, NULL, NULL);
	::WideCharToMultiByte(CP_ACP, 0,m_ypxl, -1,yi.ypxl,sizeof yi.ypxl, NULL, NULL);
	::WideCharToMultiByte(CP_ACP, 0,m_ypzyl, -1,yi.ypzyl,sizeof yi.ypzyl, NULL, NULL);
	::WideCharToMultiByte(CP_ACP, 0,m_fplb, -1,yi.fpfylb,sizeof yi.fpfylb, NULL, NULL);
	yi.yfdw=m_yfbl;
	yi.yxx=(double)m_time.GetYear()*10000;
	yi.yxx+=(double)m_time.GetMonth()*100;
	yi.yxx+=(double)m_time.GetDay();
	yi.jinjia=m_jinjia;
	yi.pifajia=m_pijia;
	yi.lsj=m_sj;
	yd.Write(&yi,sizeof yi);
	yd.Close();
	m_ypjx=m_guige=_T("");
	m_jinjia=m_pijia=m_sj=0;
	m_cypname.SetFocus();
	m_cypname.SetSel(0,-1);
}

void CNewYdDlg::OnCyname() 
{
	yd->ShowWindow(SW_SHOW);
	yd->m_cyname.SetFocus();
}

CString CNewYdDlg::GetPin(CString name)
{
	int pz[]={198,1081,2415,3400,3577,4192,5034,6082,0,7699,8260,9826,10643,11119,11157,11776,
		12811,13138,14452,15351,0,0,15978,17299,19249,20947};
	CString re;
	re=_T("");
	int i=name.GetLength();
	i--;
	while(i>=0)
	{
		TCHAR lll;
		TCHAR m=name.GetAt(i);
		int ll=m_gbk.Find(m,0);
		lll=m;
		if(m!=TCHAR('!')&&ll!=-1)
		{
			lll=TCHAR('a');
			for(int l = 0;l<26;l++)
			{
				if(ll<pz[l])
				{
					break;
				}
				lll++;
			}
		}
		re=lll+re;
		i--;
	}
	return re;
}

void CNewYdDlg::OnKillfocusYpname() 
{
	UpdateData();
	m_ypjx=this->GetPin(m_ypname);
	UpdateData(FALSE);
}

⌨️ 快捷键说明

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