📄 mzgldlg.cpp
字号:
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 + -