📄 physicsetdlg.cpp
字号:
// PhysicSetDlg.cpp : implementation file
//
#include "stdafx.h"
#include "PhysicM.h"
#include "PhysicSetDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPhysicSetDlg dialog
CPhysicSetDlg::CPhysicSetDlg(CWnd* pParent /*=NULL*/)
: CDialog(CPhysicSetDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CPhysicSetDlg)
m_demo = _T("");
m_pjc = _T("");
m_pn = _T("");
m_price = 0.0;
//}}AFX_DATA_INIT
}
void CPhysicSetDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPhysicSetDlg)
DDX_Control(pDX, IDC_PROVIDER_COMBO, m_ProviderComb);
DDX_Control(pDX, IDC_PHYSIC_LIST, m_PhysicInfoList);
DDX_Text(pDX, IDC_DEMO_EDIT, m_demo);
DDX_Text(pDX, IDC_PHYSIC_JC, m_pjc);
DDX_Text(pDX, IDC_PHYSIC_NAME, m_pn);
DDX_Text(pDX, IDC_PHYSIC_PRICE, m_price);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPhysicSetDlg, CDialog)
//{{AFX_MSG_MAP(CPhysicSetDlg)
ON_BN_CLICKED(IDC_ADD_BUTTON, OnAddButton)
ON_BN_CLICKED(IDC_DELETE_BUTTON,OnDelBtn)
ON_WM_CREATE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPhysicSetDlg message handlers
void CPhysicSetDlg::OnAddButton()
{
UpdateData();
m_pn.TrimLeft();
m_pn.TrimRight();
if(m_pn.IsEmpty())
{
((CPhysicMApp *)AfxGetApp())->pMainFrm->AddErr("药品名称不能为空,请输入");
return;
}
CString provider;
m_ProviderComb.GetWindowText(provider);
if(provider.IsEmpty())
{
((CPhysicMApp *)AfxGetApp())->pMainFrm->AddErr("供应商不能为空,请选择");
return;
}
if(m_price <0.00 || m_price >10000.00)
{
((CPhysicMApp *)AfxGetApp())->pMainFrm->AddErr("单价太大或太小,请重输");
return;
}
AddInfo(m_pn,m_pjc,m_price,provider,m_demo);
}
int CPhysicSetDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
return 0;
}
BOOL CPhysicSetDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_PhysicInfoList.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
char *head[]={"序 号","药品名称","药品简称","单价","供应商","药品ID","备注"};
int i;
for (i=0;i<7;i++)
m_PhysicInfoList.InsertColumn(i,head[i],(i==3)? LVCFMT_RIGHT : LVCFMT_LEFT,(i==1) ? 150 : 100,i);
ImageList=new CImageList();
ImageList->Create(16,16,TRUE | ILC_COLOR32,2,0);
ImageList->Add(AfxGetApp()->LoadIcon(IDI_ICONUSER));
ImageList->Add(AfxGetApp()->LoadIcon(IDR_MENUVIEW_TMPL));
m_PhysicInfoList.SetImageList(ImageList,LVSIL_SMALL);// LVSIL_NORMAL);
Init();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CPhysicSetDlg::Init()
{
DBLibrary DB(((CPhysicMApp *)AfxGetApp())->DBSession);
try{
DB.Open("SELECT provider_id,provider_name provider_name from provider order by provider_id");
int id=0;
char pname[40],tmp[50];
memset(pname,0,40);
while(!DB.isEof())
{
id=DB.GetValue("provider_id");
DB.GetValue("provider_name",pname);
sprintf(tmp,"[%03d]%s",id,pname);
m_ProviderComb.AddString((LPCTSTR)tmp);
DB.Next();
}
DB.Open("SELECT a.physic_id pid,a.physic_name pn,a.physic_jc pj,price,b.provider_name prn,a.demo dm FROM Physic a,provider b where a.provider_id=b.provider_id order by a.physic_id");
int no=0;
double price=0.00;
while(!DB.isEof())
{
sprintf(tmp,"%03d",no+1);
m_PhysicInfoList.InsertItem(no,tmp,0);
DB.GetValue("pn",pname);
m_PhysicInfoList.SetItemText(no,1,(LPCTSTR)pname);
DB.GetValue("pj",pname);
m_PhysicInfoList.SetItemText(no,2,(LPCTSTR)pname);
DB.GetValue("price",&price);
sprintf(tmp,"%.2f",price);
m_PhysicInfoList.SetItemText(no,3,(LPCTSTR)tmp);
DB.GetValue("prn",pname);
m_PhysicInfoList.SetItemText(no,4,(LPCTSTR)pname);
id=DB.GetValue("pid");
sprintf(pname,"%03d",id);
m_PhysicInfoList.SetItemText(no,5,(LPCTSTR)pname);
memset(pname,0,40);
DB.GetValue("dm",pname);
m_PhysicInfoList.SetItemText(no,6,(LPCTSTR)pname);
no++;
DB.Next();
}
}catch (DBErr &err)
{
char *str;
int code;
err.GetLastErr(code,&str);
((CPhysicMApp *)AfxGetApp())->pMainFrm->AddErr("%s(%d)",str,code);
}
catch (...)
{
((CPhysicMApp *)AfxGetApp())->pMainFrm->AddErr("unknow err(%d)",-1);
}
}
void CPhysicSetDlg::AddInfo(CString m_pname,CString m_pj,double price,CString m_prid,CString m_dm)
{
DBLibrary DB(((CPhysicMApp *)AfxGetApp())->DBSession);
int max_id=0;
CString provider_id=m_prid.Mid(1,3);
try{
DB.Open("select IDENT_CURRENT('physic') did "
" from INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='physic' ");
double id=0;
DB.GetValue("did",&id);
max_id=(int)id+1;
DB.ExecSQL("INSERT INTO physic (physic_name,physic_jc,provider_id,price,demo) "
"VALUES('%s','%s',%s,%.2f,'%s')",m_pname,m_pj,provider_id,price,m_dm);
((CPhysicMApp *)AfxGetApp())->pMainFrm->AddLog("新增药品:%s",m_pname);
char no[4],tmp[20];
int icount=m_PhysicInfoList.GetItemCount();
memset(no,0,4);
sprintf(no,"%03d",icount+1);
m_PhysicInfoList.InsertItem(m_PhysicInfoList.GetItemCount(),no,0);
m_PhysicInfoList.SetItemText(icount,1,(LPCTSTR)m_pname);
m_PhysicInfoList.SetItemText(icount,2,(LPCTSTR)m_pj);
sprintf(tmp,"%.2f",price);
m_PhysicInfoList.SetItemText(icount,3,(LPCTSTR)tmp);
m_PhysicInfoList.SetItemText(icount,4,(LPCTSTR)m_prid);
sprintf(no,"%03d",max_id);
m_PhysicInfoList.SetItemText(icount,5,(LPCTSTR)no);
m_PhysicInfoList.SetItemText(icount,6,(LPCTSTR)m_dm);
}
catch (DBErr &err)
{
char *str;
int code;
err.GetLastErr(code,&str);
((CPhysicMApp *)AfxGetApp())->pMainFrm->AddErr("%s(%d)",str,code);
}
catch(...)
{
((CPhysicMApp *)AfxGetApp())->pMainFrm->AddErr("unknow err(%d)",-1);
}
}
BOOL CPhysicSetDlg::DestroyWindow()
{
// TODO: Add your specialized code here and/or call the base class
if(ImageList)
delete ImageList;
return CDialog::DestroyWindow();
}
void CPhysicSetDlg::OnOK()
{
// TODO: Add extra validation here
// CDialog::OnOK();
}
void CPhysicSetDlg::OnDelBtn()
{
((CPhysicMApp *)AfxGetApp())->Delete("Physic","Physic_id",&m_PhysicInfoList,5);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -