📄 providerdlg.cpp
字号:
// ProviderDlg.cpp : implementation file
//
#include "stdafx.h"
#include "PhysicM.h"
#include "ProviderDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CProviderDlg dialog
CProviderDlg::CProviderDlg(CWnd* pParent /*=NULL*/)
: CDialog(CProviderDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CProviderDlg)
m_ProviderDemo = _T("");
m_ProviderJC = _T("");
m_ProviderName = _T("");
//}}AFX_DATA_INIT
}
void CProviderDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CProviderDlg)
DDX_Control(pDX, IDC_PROVIDER_LIST, m_ProviderList);
DDX_Text(pDX, IDC_PROVIDER_DEMO, m_ProviderDemo);
DDX_Text(pDX, IDC_PROVIDER_JC, m_ProviderJC);
DDX_Text(pDX, IDC_PROVIDER_NAME, m_ProviderName);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CProviderDlg, CDialog)
//{{AFX_MSG_MAP(CProviderDlg)
ON_BN_CLICKED(IDC_DELBTN, OnDelbtn)
ON_BN_CLICKED(IDC_ADDBTN, OnAddbtn)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CProviderDlg message handlers
BOOL CProviderDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_ProviderList.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
char *head[]={"序 号","供应商名称","供应商简称","备注","供应商ID"};
int i;
for (i=0;i<5;i++)
m_ProviderList.DeleteColumn(0);
for (i=0;i<5;i++)
m_ProviderList.InsertColumn(i,head[i],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_ProviderList.SetImageList(ImageList,LVSIL_SMALL);// LVSIL_NORMAL);
ShowInfo();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CProviderDlg::ShowInfo()
{
m_ProviderList.DeleteAllItems();
DBLibrary DB(GetDB());
// DB.init();
try{
iCount=1;
DB.Open("SELECT provider_id,provider_name ,provider_jc,demo FROM provider order by provider_id");
char name[40],jc[40],demo[50],index[4];
memset(name,0,40);
memset(jc,0,40);
memset(demo,0,50);
memset(index,0,4);
while (!DB.isEof())
{
DB.GetValue("provider_name",name);
DB.GetValue("provider_jc",jc);
DB.GetValue("demo",demo);
sprintf(index,"%03d",iCount);
m_ProviderList.InsertItem(iCount-1,index,0);
m_ProviderList.SetItemText(iCount-1,1,(LPCTSTR)name);
m_ProviderList.SetItemText(iCount-1,2,(LPCTSTR)jc);
m_ProviderList.SetItemText(iCount-1,3,(LPCTSTR)demo);
sprintf(index,"%03d",DB.GetValue("provider_id"));
m_ProviderList.SetItemText(iCount-1,4,(LPCTSTR)index);
iCount++;
DB.Next();
}
}
catch (DBErr &err)
{
char *estr;
int ecode;
err.GetLastErr(ecode,&estr);
ShowErr(estr,ecode);
}
catch(...)
{
ShowErr("unknow error!",-1);
}
}
CPhysicMApp *CProviderDlg::GetApp()
{
return (CPhysicMApp *)AfxGetApp();
}
CDBSession CProviderDlg::GetDB()
{
return ((CPhysicMApp *)AfxGetApp())->DBSession;
}
void CProviderDlg::ShowErr(char *str,int code)
{
if(GetApp()->pMainFrm==NULL)
{
MessageBox(str,"错误提示",MB_OK | MB_ICONERROR);
return;
}
GetApp()->pMainFrm->AddErr("%s(errcode:%d)",str,code);
}
BOOL CProviderDlg::DestroyWindow()
{
// TODO: Add your specialized code here and/or call the base class
if (ImageList) delete ImageList;
return CDialog::DestroyWindow();
}
void CProviderDlg::OnDelbtn()
{
GetApp()->Delete("provider","provider_id",&m_ProviderList,4);
}
void CProviderDlg::OnAddbtn()
{
UpdateData();
m_ProviderName.TrimRight();
m_ProviderName.TrimLeft();
if (m_ProviderName.IsEmpty()) {
ShowErr("供应商名称不能为空",-1);
return;
}
AddInfo(m_ProviderName,m_ProviderJC,m_ProviderDemo);
}
void CProviderDlg::AddInfo(CString m_ProviderName,CString m_ProviderJC,CString m_ProviderDemo)
{
DBLibrary DB(GetDB());
int max_id=0;
try{
DB.Open("select ident_current('provider') did "
" from information_schema.tables where table_name='provider' ");
double id=0;
DB.GetValue("did",&id);
max_id=(int)id +1;
DB.ExecSQL("INSERT INTO provider (provider_name,provider_jc,demo) "
"VALUES('%s','%s','%s')",m_ProviderName,m_ProviderJC,m_ProviderDemo);
GetApp()->pMainFrm->AddLog("新增供应商:%s",m_ProviderName);
char no[4];
int icount=m_ProviderList.GetItemCount();
memset(no,0,4);
sprintf(no,"%03d",icount+1);
m_ProviderList.InsertItem(m_ProviderList.GetItemCount(),no,0);
m_ProviderList.SetItemText(icount,1,m_ProviderName);
m_ProviderList.SetItemText(icount,2,m_ProviderJC);
m_ProviderList.SetItemText(icount,3,m_ProviderDemo);
sprintf(no,"%03d",max_id);
m_ProviderList.SetItemText(icount,4,no);
}
catch (DBErr &err)
{
char *estr;
int ecode;
err.GetLastErr(ecode,&estr);
ShowErr(estr,ecode);
}
catch(...)
{
ShowErr("unknow error!",-1);
}
}
void CProviderDlg::OnOK()
{
// TODO: Add extra validation here
// CDialog::OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -