📄 dlgwlz.cpp
字号:
sql.Format("select tabrkjz.fk_ph,tabrkjz.je,tabrkjz.rq from tabrkjz,tabrkph where tabrkph.rk_ph = tabrkjz.rk_ph and tabrkjz.rq>='%s' and tabrkjz.rq<='%s' and tabrkph.gys_id ='%s' order by tabrkjz.rq asc",
this->m_strRqDown,this->m_strRqUp,this->m_strId);
if(!this->m_runsql.CheckSQLResult(sql)) return i--;
this->m_list.InsertItem(i,"入库结帐票号");
this->m_list.SetItemText(i,1,"金额");
this->m_list.SetItemText(i,4,"日期");
this->m_list.SetItemText(i,5,"入库结帐登记");
_variant_t value;
i++;
while(!m_runsql.m_recordset->adoEOF)
{
value=m_runsql.m_recordset->GetCollect("fk_ph");
if(value.vt!=VT_NULL)
m_list.InsertItem(i,(char*)(_bstr_t)value);
value=m_runsql.m_recordset->GetCollect("je");
if(value.vt!=VT_NULL)
m_list.SetItemText(i,1,(char*)(_bstr_t)value);
value=m_runsql.m_recordset->GetCollect("rq");
if(value.vt!=VT_NULL)
m_list.SetItemText(i,4,(char*)(_bstr_t)value);
m_list.SetItemText(i,5,"入库结帐登记");
i++;
m_runsql.m_recordset->MoveNext();
}
// i++;
return i;
}
int CDlgWLZ::RefreshRKTHList(int i)
{
CString sql;
sql.Format("select tabrkthph.rkth_ph,tabrkthph.ys,\
tabrkthph.ss,tabrkthph.ws,tabrkthph.rq from \
tabrkthph,tabrkph \
where tabrkph.rk_ph = tabrkthph.rk_ph and\
tabrkthph.rq>='%s' and tabrkthph.rq<='%s' and\
tabrkph.gys_id ='%s' order by tabrkthph.rq asc",
this->m_strRqDown,this->m_strRqUp,this->m_strId);
if(!this->m_runsql.CheckSQLResult(sql)) return i;
this->m_list.InsertItem(i,"入库退货票号");
this->m_list.SetItemText(i,1,"应收");
this->m_list.SetItemText(i,2,"已收");
this->m_list.SetItemText(i,3,"未收");
this->m_list.SetItemText(i,4,"日期");
this->m_list.SetItemText(i,5,"入库退货登记");
_variant_t value;
double ys=0,ss=0;m_drkth_ws=0;i++;
while(!m_runsql.m_recordset->adoEOF)
{
value=m_runsql.m_recordset->GetCollect("rkth_ph");
if(value.vt!=VT_NULL)
m_list.InsertItem(i,(char*)(_bstr_t)value);
value=m_runsql.m_recordset->GetCollect("ys");
if(value.vt!=VT_NULL)
ys=ys+value.dblVal;
m_list.SetItemText(i,1,(char*)(_bstr_t)value);
value=m_runsql.m_recordset->GetCollect("ss");
if(value.vt!=VT_NULL)
ss=ss+value.dblVal;
m_list.SetItemText(i,2,(char*)(_bstr_t)value);
value=m_runsql.m_recordset->GetCollect("ws");
if(value.vt!=VT_NULL)
this->m_drkth_ws=m_dxsth_wf+value.dblVal;
m_list.SetItemText(i,3,(char*)(_bstr_t)value);
value=m_runsql.m_recordset->GetCollect("rq");
if(value.vt!=VT_NULL)
m_list.SetItemText(i,4,(char*)(_bstr_t)value);
m_list.SetItemText(i,5,"入库退货登记");
m_runsql.m_recordset->MoveNext();
i++;
}
m_list.InsertItem(i,"");
CString a;
m_list.SetItemText(i,0,"合计:");
a.Format("%0.2f",ys);a+="元";
m_list.SetItemText(i,1,a);
a.Format("%0.2f",ss);a+="元";
m_list.SetItemText(i,2,a);
a.Format("%0.2f",this->m_drkth_ws);a+="元";
m_list.SetItemText(i,3,a);
i++;
return i;
}
int CDlgWLZ::RefreshRKTHJZList(int i)
{
CString sql;
sql.Format("select tabrkthjz.sk_ph,tabrkthjz.je,\
tabrkthjz.rq from tabrkthjz,tabrkthph,tabrkph \
where tabrkthph.rkth_ph = tabrkthjz.rkth_ph and\
tabrkthph.rk_ph = tabrkph.rk_ph and\
tabrkthjz.rq>='%s' and tabrkthjz.rq<='%s' and\
tabrkph.gys_id ='%s' order by tabrkthjz.rq asc",
this->m_strRqDown,this->m_strRqUp,this->m_strId);
if(!this->m_runsql.CheckSQLResult(sql)) return i--;
this->m_list.InsertItem(i,"入库退货结帐票号");
this->m_list.SetItemText(i,1,"金额");
this->m_list.SetItemText(i,4,"日期");
this->m_list.SetItemText(i,5,"入库退货结帐登记");
_variant_t value;
i++;
while(!m_runsql.m_recordset->adoEOF)
{
value=m_runsql.m_recordset->GetCollect("sk_ph");
if(value.vt!=VT_NULL)
m_list.InsertItem(i,(char*)(_bstr_t)value);
value=m_runsql.m_recordset->GetCollect("je");
if(value.vt!=VT_NULL)
m_list.SetItemText(i,1,(char*)(_bstr_t)value);
value=m_runsql.m_recordset->GetCollect("rq");
if(value.vt!=VT_NULL)
m_list.SetItemText(i,4,(char*)(_bstr_t)value);
this->m_list.SetItemText(i,5,"入库退货结帐登记");
i++;
m_runsql.m_recordset->MoveNext();
}
return i;
}
BOOL CDlgWLZ::OnInitDialog()
{
CDialog::OnInitDialog();
InitBaseInfo();
InitListView();
m_editId.SetFocus();
// ::PostMessage(m_editId.GetSafeHwnd(),WM_ACTIVATE ,WA_CLICKACTIVE,0);
return false; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
bool CDlgWLZ::InitStringList()
{
CString sql;
_variant_t value;
m_strlist=new CStringList[2];
if(this->m_bKh)
{
m_strlist[0].AddTail("客户编号");
m_strlist[1].AddTail("客户全称");
sql.Format("select DISTINCT kh_id,kh_name from tabkh order by kh_id asc");
if(!this->m_runsql.CheckSQLResult(sql))return false;
while(!m_runsql.m_recordset->adoEOF)
{
value=m_runsql.m_recordset->GetCollect("kh_id");
if(value.vt!=VT_NULL)
{
this->m_strlist[0].AddTail((char*)(_bstr_t)value);
}
value=m_runsql.m_recordset->GetCollect("kh_name");
if(value.vt!=VT_NULL)
{
this->m_strlist[1].AddTail((char*)(_bstr_t)value);
}
m_runsql.m_recordset->MoveNext();
}
}
else
{
m_strlist[0].AddTail("供应商编号");
m_strlist[1].AddTail("供应商全称");
sql.Format("select DISTINCT gys_id,gys_name from tabgys order by gys_id asc");
if(!this->m_runsql.CheckSQLResult(sql))return false;
while(!m_runsql.m_recordset->adoEOF)
{
value=m_runsql.m_recordset->GetCollect("gys_id");
if(value.vt!=VT_NULL)
{
this->m_strlist[0].AddTail((char*)(_bstr_t)value);
}
value=m_runsql.m_recordset->GetCollect("gys_name");
if(value.vt!=VT_NULL)
{
this->m_strlist[1].AddTail((char*)(_bstr_t)value);
}
m_runsql.m_recordset->MoveNext();
}
}
this->m_popList.Create(this);
m_popList.SelectStringList(2,this->m_strlist);
this->m_editId.SelectPopList(&m_popList);
this->m_editName.SelectPopList(&m_popList);
return true;
}
void CDlgWLZ::SetTheFocus()
{
HWND hwnd=::GetFocus();
int iID=::GetDlgCtrlID(hwnd);
switch(iID)
{
case IDC_EDIT_KHID:
{
this->m_editName.SetFocus();
m_editName.SetSel(0,-1);
break;
}
case IDC_EDIT_KHNAME:
{
this->m_tcRqDown.SetFocus();
break;
}
case IDC_DATETIMEPICKER1:
{
this->m_tcRqUp.SetFocus();
break;
}
case IDC_DATETIMEPICKER2:
{
this->m_btnQuery.SetFocus();
break;
}
case IDOK:
{
this->m_editId.SetFocus();
this->m_editId.SetSel(0,-1);
break;
}
case IDC_LIST1:
{
this->m_editId.SetFocus();
this->m_editId.SetSel(0,-1);
}
}
}
BOOL CDlgWLZ::PreTranslateMessage(MSG* pMsg)
{ CString str;
const HWND hwnd=(pMsg!=NULL)?pMsg->hwnd:NULL;
if(hwnd==NULL)
{
goto a;
}
if(pMsg->message==WM_KEYDOWN&&(pMsg->wParam==13||pMsg->wParam==VK_TAB))
{
if(hwnd==this->m_btnQuery.GetSafeHwnd())
{
if(pMsg->wParam==13)
::PostMessage(this->GetSafeHwnd(),
WM_COMMAND,IDC_BUTTON_QUERY,(UINT)hwnd);
pMsg->wParam=VK_CONTROL;
}
else
{
this->SetTheFocus();
pMsg->wParam=VK_CONTROL;
}
}
if(pMsg->message==WM_LBUTTONUP&&hwnd==this->m_btnQuery.GetSafeHwnd())
{
if(m_btnQuery.GetState()&0x0004)
::PostMessage(this->GetSafeHwnd(),
WM_COMMAND,IDC_BUTTON_QUERY,(UINT)hwnd);
str.Format("%d\n",pMsg->message);
TRACE(str);
}
a:
return CDialog::PreTranslateMessage(pMsg);
}
bool CDlgWLZ::CalculateAndShowResult()
{
if(this->m_bKh)
{
double ysfk=this->m_dxs_ys;
double qk=this->m_dxs_ws-this->m_dxsth_wf;
this->m_strYsfk.Format("应收款:%0.2f",ysfk);
this->m_strQk.Format("欠款:%0.2f",qk);
}
else
{
double ysfk=this->m_drk_yf;
double qk=this->m_drk_wf-this->m_drkth_ws;
this->m_strYsfk.Format("应付款:%0.2f",ysfk);
this->m_strQk.Format("欠款:%0.2f",qk);
}
this->m_editQk.SetWindowText(m_strQk);
this->m_editYsfk.SetWindowText(m_strYsfk);
if(this->m_bKh)
{
m_dxs_ys=0;
this->m_dxs_ws=0;
this->m_dxsth_wf=0;
}
else
{
m_drk_yf=0;
m_drk_wf=0;
this->m_drkth_ws=0;
}
return true;
}
//////////////////////////////////////////////////////////////////////
// CDrawWLZ Class
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CDrawWLZ::CDrawWLZ(CDlgWLZ* dlg):CDrawDlg()
{
parent=dlg;
m_nColumns=6;
m_iHaveColumnsTitle=0;
m_nSmallTilte=3;
m_piCharsColumns=new int[m_nColumns];
m_piWidthColumns=new int[m_nColumns]; //每列宽度
}
CDrawWLZ::~CDrawWLZ()
{
}
void CDrawWLZ::PrintDlg(CDC* pDC, CPrintInfo* pInfo)
{
m_pOldFont = (CFont*) (pDC->SelectObject(m_pGeneralFont));
//根据页数,计算要显示内容
//0页要显示3行基本数据,其他页只显示列表数据
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/4);//开始写字的起始坐标
ptRightCurPos.Offset(0,this->m_iLineHeight/4);
CString str,down,up;
CSize size;
this->parent->m_tcRqDown.GetWindowText(down);
this->parent->m_tcRqUp.GetWindowText(up);
str="日期: "+down+"--"+up;
pDC->TextOut(ptLeftCurPos.x,ptLeftCurPos.y,str);
ptLeftCurPos.Offset(0,this->m_iLineHeight);
CString mc="客户";
if(!parent->m_bKh)mc="供应商";
pDC->TextOut(ptLeftCurPos.x,ptLeftCurPos.y,mc+"编号:");
this->parent->m_editId.GetWindowText(str);
pDC->TextOut(m_iLineHeight*4,ptLeftCurPos.y,str);
ptLeftCurPos.Offset(0,this->m_iLineHeight);
pDC->TextOut(ptLeftCurPos.x,ptLeftCurPos.y,mc+"名称:");
this->parent->m_editName.GetWindowText(str);
pDC->TextOut(m_iLineHeight*4,ptLeftCurPos.y,str);
this->parent->m_editYsfk.GetWindowText(str);
size=pDC->GetTextExtent(str);
pDC->TextOut(ptRightCurPos.x-size.cx,ptRightCurPos.y,str);
ptRightCurPos.Offset(0,m_iLineHeight);
this->parent->m_editQk.GetWindowText(str);
pDC->TextOut(ptRightCurPos.x-size.cx,ptRightCurPos.y,str);
ptLeftCurPos.Offset(0,m_iLineHeight*3/4);
ptRightCurPos.Offset(0,m_iLineHeight*7/4);
}
if(this->parent->m_list.GetItemCount()<=0)return;
this->DrawListItems(pDC,iCurPage,ptLeftCurPos,ptRightCurPos,&parent->m_list);
pDC->SelectObject(m_pOldFont);
}
void CDrawWLZ::PrintPageHeader(CDC* pDC, CPrintInfo* pInfo)
{
CString str;
if(parent->m_bKh)
str="客户往来帐";
else
str="供应商往来帐";
CDrawDlg::PrintPageHeader(pDC,pInfo,str);
}
void CDlgWLZ::OnButtonPrint()
{
for(int i=m_list.GetItemCount()-1;i>=0;i--)
if(m_list.GetItemText(i,2)==""&&m_list.GetItemText(i,3)==""&&m_list.GetItemText(i,4)=="")
{
m_list.DeleteItem(i);
}
if(!::OpenPrintFrame(this,m_draw))
{
MessageBox("打开打印框架错误","错误!");
}
}
void CDlgWLZ::OnButtonQuery()
{
this->m_tcRqDown.GetWindowText(this->m_strRqDown);
this->m_tcRqUp.GetWindowText(this->m_strRqUp);
this->m_editId.GetWindowText(m_strId);
if(this->m_strlist->Find(m_strId)==NULL)
{
MessageBox("请输入正确的编号","错误");
m_editId.SetFocus();
return ;
}
//if(m_strRqUp==this->m_strOldRqUp&&m_strRqDown==this->m_strOldRqDown&&this->m_strOldId==this->m_strId)
// return ;
// else
{
this->m_strOldRqUp=m_strRqUp;
this->m_strOldRqDown=m_strRqDown;
this->m_strOldId=this->m_strId;
}
this->RefreshListView();
this->m_list.SetFocus();
}
void CDlgWLZ::OnCancel()
{
// TODO: Add extra cleanup here
CDialog::OnCancel();
}
CListCtrl* CDrawWLZ::GetListCtrl()
{
return &this->parent->m_list;
}
BOOL CDlgWLZ::DestroyWindow()
{
// TODO: Add your specialized code here and/or call the base class
delete [] m_strlist;
m_strlist=NULL;
delete m_draw;
m_draw=NULL;
return CDialog::DestroyWindow();
}
void CDlgWLZ::OnMove(int x, int y)
{
CDialog::OnMove(x, y);
::PostMessage(this->m_editId.GetSafeHwnd(),MYMESSAGE_EDIT_KHID_MOVED,0,0);
::PostMessage(this->m_editName.GetSafeHwnd(),MYMESSAGE_EDIT_KHID_MOVED,0,0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -