📄 dlgxsth.cpp
字号:
{
this->m_comboJsfs.SetFocus();
return true;
}
case IDC_COMBO2:
{
this->m_plistTH->m_iEditedIndex=-1;
::PostMessage(m_plistTH->GetSafeHwnd(),WM_SETFOCUS,0,0);
::PostMessage(m_plistTH->GetSafeHwnd(),SETNEXTITEMPHFOCUS,0,0);
return true;
}
case ID_NEWLISTLSXSDJ:
{
this->GetDlgItem(IDC_EDIT_SS)->SetFocus();
return true;
}
case IDOK:
{
this->m_btnCancel.SetFocus();
return true;
}
case IDCANCEL:
{
//
this->m_tcRq.SetFocus();//mm_btnCancel.SetActiveWindow();
return true;
}
case IDC_BUTTON_DEL:
{
this->m_btnOk.SetFocus();
return true;
}
}
return false;
}
BOOL CDlgXSTH::PreTranslateMessage(MSG* pMsg)
{
const HWND hwnd=(pMsg!=NULL)?pMsg->hwnd:NULL;
if(hwnd==NULL) goto a;
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==13)
{
if(hwnd==this->m_btnOk.GetSafeHwnd()||
hwnd==this->m_btnCancel.GetSafeHwnd()||
hwnd==this->m_btnDel.GetSafeHwnd())
::PostMessage(this->GetSafeHwnd(),WM_COMMAND,::GetDlgCtrlID(hwnd),(UINT)hwnd);
else
this->SetTheFocus();
}
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_TAB)
{
if(SetTheFocus())
pMsg->wParam=VK_CONTROL;
}
a:
return CDialog::PreTranslateMessage(pMsg);
}
void CDlgXSTH::OnButtonOk()
{
if(!this->m_plistTH->CheckAll()) return;
this->BeginWaitCursor();
CString sql;
CA1App * app=(CA1App*)AfxGetApp();
CString xxth_ph;this->m_editThPh.GetWindowText(xxth_ph);
CString xx_ph=this->m_strPh; int i=0;
CString czy=app->m_sUserName;
CString jsr;this->m_comboJsr.GetWindowText(jsr);
CString rq;this->m_tcRq.GetWindowText(rq);
CString jsfs;this->m_comboJsfs.GetWindowText(jsfs);
CString yp_id,yp_name,s_sl,ck_name,s_dj,s_je;
long l_sl;
double d_dj,d_je;
double ys=0;
double ss=0;
double ws=0;
long pzs=0;
bool is_jq=false;
CString sSs;
this->GetDlgItem(IDC_EDIT_SS)->GetWindowText(sSs);
ss=atof(sSs);
CStringList slist;
int n=m_plistTH->GetItemCount();
if(n<=0)
{
MessageBox("请输入登记信息","注意");
this->m_plistTH->m_iEditedIndex=-1;
m_plistTH->InsertItem(0,"");
::PostMessage(m_plistTH->GetSafeHwnd(),WM_SETFOCUS,0,0);
::PostMessage(m_plistTH->GetSafeHwnd(),SETNEXTITEMPHFOCUS,0,0);
return ;
}
try{
m_runsql.m_recordset->Close();
LRunSql::BeginTrans();
}
catch(_com_error e)
{
MessageBox(e.ErrorMessage());
}
for(i=0;i<n;i++)
{
yp_id=this->m_plistTH->GetItemText(i,0);
yp_name=this->m_plistTH->GetItemText(i,1);
ck_name=this->m_plistTH->GetItemText(i,2);
s_dj=this->m_plistTH->GetItemText(i,3);
d_dj=atof(s_dj);
s_sl=this->m_plistTH->GetItemText(i,4);
l_sl=atoi(s_sl);
s_je=this->m_plistTH->GetItemText(i,5);
d_je=atof(s_je);
ys=d_je+ys;
// ss=ss+atof(m_plistTH->GetItemText(i,6));
//save dj;
if(slist.Find(yp_id)==NULL)slist.AddTail(yp_id);
if(m_bXsth)
sql.Format("INSERT INTO tabxsthdj(xsth_ph,yp_id,ck_name,sl,dj,je) VALUES('%s','%s','%s',%d,%f,%f)"
,xxth_ph,yp_id,ck_name,l_sl,d_dj,d_je);
else
sql.Format("INSERT INTO tabrkthdj(rkth_ph,yp_id,ck_name,sl,dj,je) VALUES('%s','%s','%s',%d,%f,%f)"
,xxth_ph,yp_id,ck_name,l_sl,d_dj,d_je);
this->m_runsql.RunSQL(sql);
//save kc;
if(m_bXsth)
sql.Format("update tabkc set kc_number = kc_number + %d where yp_id='%s' and ck_name = '%s'",l_sl,yp_id,ck_name);
else
sql.Format("update tabkc set kc_number = kc_number - %d where yp_id='%s' and ck_name = '%s'",l_sl,yp_id,ck_name);
this->m_runsql.RunSQL(sql);
}
ws=ys-ss;
if(ws<=0.0)
{
ws=0.0;
is_jq=true;
}
pzs=slist.GetCount();
if(m_bXsth)
sql.Format("INSERT INTO tabxsthph(xsth_ph,xs_ph,pzs,yf,sf,wf,is_jq,rq,czy,jsr,jsfs) VALUES('%s','%s',%d,%f,%f,%f,%d,'%s','%s','%s','%s')"
,xxth_ph,xx_ph,pzs,ys,ss,ws,is_jq,rq,czy,jsr,jsfs);
else
sql.Format("INSERT INTO tabrkthph(rkth_ph,rk_ph,pzs,ys,ss,ws,is_jq,rq,czy,jsr,jsfs) VALUES('%s','%s',%d,%f,%f,%f,%d,'%s','%s','%s','%s')"
,xxth_ph,xx_ph,pzs,ys,ss,ws,is_jq,rq,czy,jsr,jsfs);
this->m_runsql.RunSQL(sql);
this->EndWaitCursor();
if(!LRunSql::CommitTrans())
{
MessageBox("数据库事务提交错误","医药管理系统");
}
else
MessageBox("OK","医药管理系统");
this->EndDialog(0);
}
void CDlgXSTH::OnMove(int x, int y)
{
CDialog::OnMove(x, y);
if(m_plistTH!=NULL)
::PostMessage(this->m_plistTH->GetSafeHwnd(),MYMESSAGE_EDIT_MOVED,0,0);
}
void CDlgXSTH::OnButtonDel()
{
this->m_plistTH->DeleteSelected();
}
void CDlgXSTH::OnCancel()
{
if(MessageBox("确定退出退货模块?","注意",MB_YESNO)==IDYES)
{
if(MessageBox("是否保存?","注意",MB_YESNO)==IDNO)
{
CDialog::OnCancel();
}
else
this->OnButtonOk();
}
return;
}
CDrawTH::CDrawTH(CDlgXSTH* dlg)
{
this->parent=dlg;
m_nColumns=6;
m_iHaveColumnsTitle=1;
m_nSmallTilte=4;
m_piCharsColumns=new int[m_nColumns];
m_piWidthColumns=new int[m_nColumns]; //每列宽度
this->m_pstrColumnTitle=new CString[this->m_nColumns];
m_pstrColumnTitle[0]=_T("药品编号");
m_pstrColumnTitle[1]=_T("药品名称");
m_pstrColumnTitle[2]=_T("仓库名称");
m_pstrColumnTitle[3]=_T("单价");
m_pstrColumnTitle[4]=_T("数量");
if(parent->m_bXsth)
{
m_pstrColumnTitle[5]=_T("应付");
// m_pstrColumnTitle[6]=_T("实付");
}
else
{
m_pstrColumnTitle[5]=_T("应收");
// m_pstrColumnTitle[6]=_T("实收");
}
}
CDrawTH::~CDrawTH()
{
}
void CDrawTH::PrintDlg(CDC* pDC, CPrintInfo* pInfo)
{
m_pOldFont = (CFont*) (pDC->SelectObject(m_pGeneralFont));
CPoint ptLeftCurPos(pInfo->m_rectDraw.TopLeft());
CPoint ptRightCurPos(pInfo->m_rectDraw.right,pInfo->m_rectDraw.top);
ptLeftCurPos.Offset(this->m_iLeftMargin,2*this->m_iLineHeight);
ptRightCurPos.Offset(-this->m_iRightMargin,2*this->m_iLineHeight);
int iCurPage=pInfo->m_nCurPage;
if(iCurPage==pInfo->GetMinPage())
{
ptLeftCurPos.Offset(0,this->m_iLineHeight*5/4);//开始写字的起始坐标
ptRightCurPos.Offset(0,this->m_iLineHeight/4);
CString str;
CSize size;
//左边的2行:
this->parent->m_comboJsfs.GetWindowText(str);
pDC->TextOut(ptLeftCurPos.x,ptLeftCurPos.y,"结算方式:");
pDC->TextOut(m_iLineHeight*4,ptLeftCurPos.y,str+"付款");
ptLeftCurPos.Offset(0,this->m_iLineHeight);
this->parent->m_comboJsr.GetWindowText(str);
pDC->TextOut(ptLeftCurPos.x,ptLeftCurPos.y,"经手人:");
pDC->TextOut(m_iLineHeight*4,ptLeftCurPos.y,str);
//右边的3行:
//票号:
this->parent->m_editThPh.GetWindowText(str);
if(parent->m_bXsth)
str="销售退货票号: "+str;
else
str="入库退货票号: "+str;
size = pDC->GetTextExtent(str);
pDC->TextOut(ptRightCurPos.x-size.cx,ptRightCurPos.y,str);
ptRightCurPos.Offset(0,m_iLineHeight);
this->parent->m_editDjPh.GetWindowText(str);
if(parent->m_bXsth)
str="销售登记票号: "+str;
else
str="入库登记票号: "+str;
pDC->TextOut(ptRightCurPos.x-size.cx,ptRightCurPos.y,str);
//日期:
ptRightCurPos.Offset(0,m_iLineHeight);
parent->m_tcRq.GetWindowText(str);
str="日期: "+str;
pDC->TextOut(ptRightCurPos.x-size.cx,ptRightCurPos.y,str);
//总金额,应收应付
ptLeftCurPos.Offset(0,m_iLineHeight);
CString text;
str="总金额: ";
parent->GetDlgItemText(IDC_STATIC_ZJE,text);
str+=text+"元 ";
parent->GetDlgItemText(IDC_STATIC_SS,text);
str+=text;
parent->GetDlgItemText(IDC_EDIT_SS,text);
str+=text+"元 ";
pDC->TextOut(ptLeftCurPos.x,ptLeftCurPos.y,str);
ptLeftCurPos.Offset(0,m_iLineHeight*3/4);
ptRightCurPos.Offset(0,m_iLineHeight*7/4);
}
int n=this->parent->m_plistTH->GetItemCount();
if(n==0) return ;
this->DrawListItems(pDC,iCurPage,ptLeftCurPos,ptRightCurPos,parent->m_plistTH);
pDC->SelectObject(m_pOldFont);
}
void CDrawTH::PrintPageHeader(CDC* pDC, CPrintInfo* pInfo)
{
CString str="销售退货登记";
if(!this->parent->m_bXsth)
str="入库退货登记";
CDrawDlg::PrintPageHeader(pDC,pInfo,str);
}
void CDlgXSTH::OnButtonPrint()
{
for(int i=this->m_plistTH->GetItemCount()-1;i>=0;i--)
if(m_plistTH->GetItemText(i,0)==""&&
m_plistTH->GetItemText(i,1)==""&&
m_plistTH->GetItemText(i,2)=="")
{
m_plistTH->DeleteItem(i);
}
if(!::OpenPrintFrame(this,m_draw))
{
MessageBox("打开打印框架错误","错误!");
}
if(m_plistTH->GetItemCount()==0)
m_plistTH->InsertItem(0,"");
}
BOOL CDlgXSTH::DestroyWindow()
{
delete m_plistTH;
m_plistTH=NULL;
delete m_draw;
m_draw=NULL;
return CDialog::DestroyWindow();
}
CListCtrl* CDrawTH::GetListCtrl()
{
return this->parent->m_plistTH;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -