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

📄 mzgldlg.cpp

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

#include "stdafx.h"
#include "MZGL.h"
#include "MZGLDlg.h"

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

int m_sortc;
int m_Ac;
int CALLBACK ListCompare(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
	char stmp[256];
	CListCtrl* cd = (CListCtrl*)lParamSort;
	CString mm=cd->GetItemText((int)lParam1,m_sortc);
	::WideCharToMultiByte(CP_ACP, 0,mm, -1, stmp,256, NULL, NULL);
	double s1=atof(stmp);
	mm=cd->GetItemText((int)lParam2,m_sortc);
	::WideCharToMultiByte(CP_ACP, 0,mm, -1, stmp,256, NULL, NULL);
	double s2=atof(stmp);
	int iComp;
	if(s1<s2)
		iComp=1;
	else
		iComp=-1;
	if(m_Ac)
		return iComp;
	else
		return iComp*-1;
}
/////////////////////////////////////////////////////////////////////////////
// CMZGLDlg dialog

CMZGLDlg::CMZGLDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CMZGLDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CMZGLDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CMZGLDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMZGLDlg)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CMZGLDlg, CDialog)
	//{{AFX_MSG_MAP(CMZGLDlg)
	ON_BN_CLICKED(IDC_PD, OnPd)
	ON_BN_CLICKED(IDC_JY, OnJy)
	ON_BN_CLICKED(IDC_NEW_YD, OnNewYd)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMZGLDlg message handlers

BOOL CMZGLDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	CenterWindow(GetDesktopWindow());	// center to the hpc screen
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}



void CMZGLDlg::OnPd() 
{
	CPdDlg dlg;
	dlg.DoModal();
}
/////////////////////////////////////////////////////////////////////////////
// CPdDlg dialog


CPdDlg::CPdDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CPdDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CPdDlg)
	m_sl = 0.0;
	m_yname = _T("");
	m_time = 0;
	//}}AFX_DATA_INIT
}


void CPdDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPdDlg)
	DDX_Control(pDX, IDC_SL, m_csl);
	DDX_Control(pDX, IDC_IN_LIST, m_lc);
	DDX_Text(pDX, IDC_SL, m_sl);
	DDX_Text(pDX, IDC_YNAME, m_yname);
	DDX_DateTimeCtrl(pDX, IDC_DATETIME, m_time);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPdDlg, CDialog)
	//{{AFX_MSG_MAP(CPdDlg)
	ON_BN_CLICKED(IDC_CYNAME, OnCyname)
	ON_BN_CLICKED(IDC_ADD, OnAdd)
	ON_WM_DESTROY()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPdDlg message handlers

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

void CPdDlg::OnAdd() 
{
	UpdateData();
	CFile ydf;
	ydf.Open(_T("\\sd\\sf\\yd.dat"),CFile::modeRead,NULL);
	YPINFO yi;
	ydf.Seek(sizeof yi*m_ypid,CFile::begin);
	ydf.Read(&yi,sizeof yi);
	CString mm;
	mm.Format(_T("%d"),m_ypid);
	int nSub=1;
	m_lc.InsertItem(0,mm);
	mm=yi.ypname;
	m_lc.SetItemText(0,nSub++,mm);
	mm=yi.guige;
	m_lc.SetItemText(0,nSub++,mm);
	mm.Format(_T("%.2f"),yi.lsj);
	m_lc.SetItemText(0,nSub++,mm);
	mm.Format(_T("%.2f"),m_sl);
	m_lc.SetItemText(0,nSub++,mm);
	mm.Format(_T("%d"),m_time.GetYear());
	mm.Format(mm+_T("%d"),m_time.GetMonth());
	mm.Format(mm+_T("%d"),m_time.GetDay());
	m_lc.SetItemText(0,nSub++,mm);
	ydf.Close();
	OnCyname();
}

BOOL CPdDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	m_time=CTime::GetCurrentTime();
	UpdateData(FALSE);
	m_lc.SetExtendedStyle(LVS_EX_FULLROWSELECT);

	int nItem = 0;
	TCHAR *he[]={_T("编号"),_T("药名"),_T("规格"),_T("售价"),_T("数量"),_T("有效期")};
	int le[]={0,90,50,40,40,40,0};
	for(int l=0;l<3;l++)
	{
		m_lc.InsertColumn(nItem++, he[l], LVCFMT_LEFT,le[l]);
	}
	for(;l<6;l++)
	{
		m_lc.InsertColumn(nItem++, he[l], LVCFMT_RIGHT,le[l]);
	}
	yd = new CYdDlg();
	yd->Create(IDD_YD_DIALOG);
	yd->pdw=this;
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
/////////////////////////////////////////////////////////////////////////////
// CYdDlg dialog


CYdDlg::CYdDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CYdDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CYdDlg)
	m_yname = _T("");
	m_ypdl = _T("");
	nyw=FALSE;
	pdw=FALSE;
	//}}AFX_DATA_INIT
}


void CYdDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CYdDlg)
	DDX_Control(pDX, IDC_YNAME, m_cyname);
	DDX_Control(pDX, IDC_OUT_LIST, m_lc);
	DDX_Text(pDX, IDC_YNAME, m_yname);
	DDX_CBString(pDX, IDC_YPDL, m_ypdl);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CYdDlg, CDialog)
	//{{AFX_MSG_MAP(CYdDlg)
	ON_EN_CHANGE(IDC_YNAME, OnChangeYname)
	ON_NOTIFY(NM_CLICK, IDC_OUT_LIST, OnClickOutList)
	ON_WM_DESTROY()
	ON_BN_CLICKED(IDC_NEW, OnNew)
	ON_WM_CLOSE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CYdDlg message handlers

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

	int nItem = 0;
	TCHAR *he[]={_T("编号"),_T("药名"),_T("进价"),_T("售价")};
	int le[]={0,145,40,45};
	for(int l=0;l<2;l++)
	{
		m_lc.InsertColumn(nItem++, he[l], LVCFMT_LEFT,le[l]);
	}
	for(;l<4;l++)
	{
		m_lc.InsertColumn(nItem++, he[l], LVCFMT_RIGHT,le[l]);
	}
	
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CYdDlg::FindYD(CString yname,CString ypdl,BOOL isall)
{
	CPdDlg *pd=(CPdDlg*)pdw;
	m_lc.SetRedraw(FALSE);
	m_lc.DeleteAllItems();
	if(yname==_T(""))
	{
		m_lc.SetRedraw();
		return;
	}
	CFile yd;
	if(yd.Open(_T("\\sd\\sf\\yd.dat"),CFile::modeRead,NULL))
	{
		int nItem=0;
		int id=0;
		YPINFO yi;
		yname.MakeLower();
		while(yd.Read(&yi,sizeof yi))
		{
			CString l1,l2;
			l1=yi.ypname;
			l2=yi.ypjc;
			l1.MakeLower();
			l2.MakeLower();
			if(l1.Find(yname)!=-1||l2.Find(yname)!=-1)
			{
				l1=yi.ypdl;
				if((l1==ypdl&&isall==FALSE)||isall==TRUE)
				{
					int nSub=1;
					if(yi.del!=TRUE)
					{
						CString mm;
						mm.Format(_T("%d"),id);
						nItem=m_lc.InsertItem(nItem,mm);
						mm=yi.ypname;
						mm+=yi.guige;
						m_lc.SetItemText(nItem,nSub++,mm);
						mm.Format(_T("%.2f"),yi.jinjia);
						m_lc.SetItemText(nItem,nSub++,mm);
						mm.Format(_T("%.2f"),yi.lsj);
						m_lc.SetItemText(nItem,nSub++,mm);
						nItem++;
					}
				}
			}
			id++;
		}
		yd.Close();
	}
	m_lc.SetRedraw();
}

void CYdDlg::OnChangeYname() 
{
	UpdateData();
	if(m_ypdl!=_T(""))
		FindYD(m_yname,m_ypdl,FALSE);
	else
		FindYD(m_yname,m_ypdl,TRUE);
}

void CYdDlg::OnClickOutList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	CPdDlg *pd=(CPdDlg*)pdw;
	CNewYdDlg *ny=(CNewYdDlg*)nyw;
	this->ShowWindow(SW_HIDE);
	m_yname=(_T(""));
	UpdateData(FALSE);
	char stmp[256];
	int nItem=m_lc.GetNextItem(-1,LVNI_FOCUSED);
	CFile yd;
	YPINFO yi;
	yd.Open(_T("\\sd\\sf\\yd.dat"),CFile::modeRead,NULL);
	::WideCharToMultiByte(CP_ACP, 0,m_lc.GetItemText(nItem,0), -1, stmp,256, NULL, NULL);
	int id=atoi(stmp);
	yd.Seek(sizeof yi*id,CFile::begin);
	yd.Read(&yi,sizeof yi);
	if(pd)
	{
		pd->m_ypid=id;
		pd->m_yname=yi.ypname;
		pd->UpdateData(FALSE);
		pd->SetForegroundWindow();
		pd->m_csl.SetFocus();
		pd->m_csl.SetSel(0,-1);
	}
	else if(ny)
	{
		ny->m_ypname=yi.ypname;
		ny->m_ypid=id;
		ny->m_danwei=yi.danwei;
		ny->m_fplb=yi.fpfylb;
		ny->m_guige=yi.guige;
		ny->m_jinjia=yi.jinjia;
		ny->m_pijia=yi.pifajia;
		ny->m_sj=yi.lsj;
		ny->m_yfbl=yi.yfdw;
		ny->m_ypdl=yi.ypdl;
		ny->m_ypjx=yi.ypjc;
		ny->m_ypxl=yi.ypxl;
		ny->m_ypzyl=yi.ypzyl;
		ny->UpdateData(FALSE);
		ny->SetForegroundWindow();
		ny->m_cypname.SetFocus();
		ny->m_cypname.SetSel(0,-1);
	}
	m_lc.DeleteAllItems();
	yd.Close();
	*pResult = 0;
}

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

void CPdDlg::OnDestroy() 
{
	CFile ykc;
	char stmp[256];
	int ckh=this->MessageBox(_T("药库、药房、取消?"),_T("提示!"),MB_YESNOCANCEL);
	TABKC kc,tkc;
	if(ckh==IDYES)
	{
		ckh=1;
	}
	else if(ckh==IDNO)
	{
		ckh=0;
	}
	else return;
	ykc.Open(_T("\\sd\\sf\\ykc.dat"),CFile::modeReadWrite|CFile::modeCreate|CFile::modeNoTruncate,NULL);
	int nItem=m_lc.GetItemCount();
	for(int i=0;i<nItem;i++)
	{
		::WideCharToMultiByte(CP_ACP, 0,m_lc.GetItemText(i,0), -1, stmp,256, NULL, NULL);
		kc.yp_id=atoi(stmp);
		::WideCharToMultiByte(CP_ACP, 0,m_lc.GetItemText(i,4), -1, stmp,256, NULL, NULL);
		kc.sl=atof(stmp);
		kc.ckh=ckh;
		::WideCharToMultiByte(CP_ACP, 0,m_lc.GetItemText(i,5), -1, stmp,256, NULL, NULL);
		kc.yxx=atof(stmp);
		ykc.SeekToBegin();
		while(ykc.Read(&tkc,sizeof tkc))
		{
			if(kc.yp_id==tkc.yp_id&&kc.ckh==tkc.ckh)
			{
				kc.sl+=tkc.sl;
				ykc.Seek(-(LONG)sizeof kc,CFile::current);
				break;
			}
		}
		ykc.Write(&kc,sizeof kc);
	}
	ykc.Close();
	CDialog::OnDestroy();
}

⌨️ 快捷键说明

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