📄 dlgxsth.cpp
字号:
// DlgXSTH.cpp : implementation file
//
#include "stdafx.h"
#include "a1.h"
#include "DlgXSTH.h"
#include "DlgXSINFO.h"
#include "DlgXSTHINFO.h"
#include "ScrollPrintView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgXSTH dialog
CDlgXSTH::CDlgXSTH(bool isxsth,CWnd* pParent /*=NULL*/)
: CDialog(CDlgXSTH::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgXSTH)
m_tRq = 0;
m_iJsr = -1;
m_iJsfs = -1;
//}}AFX_DATA_INIT
m_bXsth=isxsth;
m_plistTH=NULL;
m_draw=new CDrawTH(this);
}
void CDlgXSTH::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgXSTH)
DDX_Control(pDX, IDC_BUTTON_OK, m_btnOk);
DDX_Control(pDX, IDCANCEL, m_btnCancel);
DDX_Control(pDX, IDC_BUTTON_DEL, m_btnDel);
DDX_Control(pDX, IDC_DATETIMEPICKER1, m_tcRq);
DDX_Control(pDX, IDC_EDIT2, m_editThPh);
DDX_Control(pDX, IDC_EDIT1, m_editDjPh);
DDX_Control(pDX, IDC_COMBO2, m_comboJsfs);
DDX_Control(pDX, IDC_COMBO1, m_comboJsr);
DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER1, m_tRq);
DDX_CBIndex(pDX, IDC_COMBO1, m_iJsr);
DDX_CBIndex(pDX, IDC_COMBO2, m_iJsfs);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgXSTH, CDialog)
//{{AFX_MSG_MAP(CDlgXSTH)
ON_BN_CLICKED(IDC_BUTTON_OK, OnButtonOk)
ON_WM_MOVE()
ON_BN_CLICKED(IDC_BUTTON_DEL, OnButtonDel)
ON_BN_CLICKED(IDC_BUTTON_PRINT, OnButtonPrint)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgXSTH message handlers
void CDlgXSTH::OnOK()
{
// TODO: Add extra validation here
//CDialog::OnOK();
}
BOOL CDlgXSTH::OnInitDialog()
{
if(this->m_bXsth)
{
CDlgXSINFO dlg;
while(dlg.xs_ph=="")
{
if(MessageBox("要进行销售退货,必须先选择销售票号!","注意!",
MB_YESNO)!=IDYES)
{
this->EndDialog(0);
return true;
}
dlg.DoModal();
}
m_strPh=dlg.xs_ph;
}
else
{
CDlgXSTHINFO dlg(15,RK);
while(dlg.ph=="")
{
if(MessageBox("要进行入库退货,必须先选择入库票号!","注意!",
MB_YESNO)!=IDYES)
{
this->EndDialog(0);
return true;
} dlg.DoModal();
}
m_strPh=dlg.ph;
}
CDialog::OnInitDialog();
InitBaseInfo();
InitnListTH();
::PostMessage(this->m_tcRq.GetSafeHwnd(),WM_ACTIVATE ,WA_CLICKACTIVE,0);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
bool CDlgXSTH::InitnListTH()
{
CRect rect_nlist(10,300,700,650);
this->GetClientRect(&rect_nlist);
rect_nlist.top=150;
rect_nlist.left+=10;
rect_nlist.right-=10;
rect_nlist.bottom=330;
this->m_plistTH=new CListXSTH(m_bXsth,this->m_strPh);
m_plistTH->Create(WS_CHILD|WS_VISIBLE|LVS_REPORT|
WS_BORDER,rect_nlist,this,ID_NEWLISTLSXSDJ);
//this->m_plistTH->OnParentMoved();
this->m_plistTH->ModifyStyle(LVS_EDITLABELS, 0L); //禁止标题编辑
m_plistTH->ModifyStyle(0L, LVS_REPORT); //设为Report类型
m_plistTH->ModifyStyle(0L, LVS_SHOWSELALWAYS); //始终高亮度被选中的表项
m_plistTH->ModifyStyle(0L, LVS_NOSORTHEADER);
// m_plistTH->SetBkColor(RGB(0,200,200));
// m_plistTH->SetTextBkColor(RGB(0,200,200));
m_plistTH->ModifyStyle( LVS_OWNERDRAWFIXED,0L);
m_plistTH->SetExtendedStyle( LVS_EX_FULLROWSELECT | //允许整行选中
// LVS_EX_HEADERDRAGDROP | //允许整列拖动
LVS_EX_GRIDLINES | //画出网格线
// LVS_EX_ONECLICKACTIVATE | //单击选中表项
LVS_EX_FLATSB //扁平风格的滚动条
// LVS_EX_UNDERLINEHOT
);
CString str;
// 1、先产生numTitle列
// m_plistTH->SetItemCount(20);
int i=0;
m_plistTH->InsertColumn( i, "药品编号" );
m_plistTH->InsertColumn( 1, "药品名称" );
m_plistTH->InsertColumn( 2, "仓库名称" );
m_plistTH->InsertColumn( 4, "数量" );
m_plistTH->InsertColumn( 5, "金额" );
if(this->m_bXsth)
{
m_plistTH->InsertColumn( 3, "单价" );
}
else
{
m_plistTH->InsertColumn( 3, "进价" );
}
// 2、插入1行
m_plistTH->InsertItem(0,"");
// 3、调整列宽
RECT rect2;
m_plistTH->GetWindowRect(&rect2);
int wid = rect2.right - rect2.left;
for( i=0; i<6; i++ )
{
m_plistTH->SetItemText(0,i,"");
m_plistTH->SetColumnWidth( i, wid/6 );
}
m_plistTH->SetSubItemCanEdited(0);
m_plistTH->SetSubItemCanEdited(1);
m_plistTH->SetSubItemCanEdited(2);
m_plistTH->SetSubItemCanEdited(3);
m_plistTH->SetSubItemCanEdited(4);
m_plistTH->SetSubItemCanEdited(5);
m_plistTH->Invalidate(false);
return true;
}
bool CDlgXSTH::InitBaseInfo()
{
m_font.CreateFont(-12, 0, 0, 0, 400, FALSE, FALSE,
0,GB2312_CHARSET , OUT_DEFAULT_PRECIS,//ANSI_CHARSET
CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
VARIABLE_PITCH | FF_SCRIPT, "楷体_GB2312");//DEFAULT_PITCH FF_MODERN
m_headfont.CreateFont(-24, 0, 0, 0, 400, FALSE, FALSE,
0,GB2312_CHARSET , OUT_DEFAULT_PRECIS,//ANSI_CHARSET
CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
VARIABLE_PITCH | FF_SCRIPT, "楷体_GB2312");//DEFAULT_PITCH FF_MODERN
if(!m_bXsth)
{
this->SetWindowText("入库退货");
this->GetDlgItem(IDC_STATIC_THPH)->SetWindowText("入库退货票号:");
this->GetDlgItem(IDC_STATIC_DJPH)->SetWindowText("入库票号:");
this->GetDlgItem(IDC_STATIC_TITLE)->SetWindowText("入库退货登记");
this->SetDlgItemText(IDC_STATIC_SS,"应收");
GetDlgItem(IDC_STATIC_TITLE)->SetFont(&m_headfont,true);
}
CRect rect;
this->GetClientRect(&rect);
rect.left+=10;
rect.right-=320;
rect.top+=10;
rect.bottom=120;
m_wt.Create("",WS_CHILD|WS_VISIBLE,rect,this,700);
int top=40;
rect=CRect(15,20,100,40);
this->m_wfRq.Create("日期:",WS_CHILD|WS_VISIBLE,rect,&m_wt);
rect.OffsetRect(0,25);
m_wfRq.SetFont(&m_font,true);
this->m_wfJsfs.Create("经手人:",WS_CHILD|WS_VISIBLE,rect,&m_wt);
rect.OffsetRect(0,25);
m_wfJsfs.SetFont(&m_font,true);
this->m_wfJsr.Create("结算方式:",WS_CHILD|WS_VISIBLE,rect,&m_wt);
rect.OffsetRect(0,25);
m_wfJsr.SetFont(&m_font,true);
this->m_comboJsfs.SetParent(&m_wt);
this->m_comboJsr.SetParent(&m_wt);
this->m_tcRq.SetParent(&m_wt);
this->m_comboJsfs.SetFont(&m_font,true);
this->m_comboJsr.SetFont(&m_font,true);
this->m_tcRq.SetFont(&m_font,true);
CTime m_dateRq = CTime::GetCurrentTime();
this->m_tcRq.SetTime(&m_dateRq);
//init jsr;
CString sql;
sql.Format("select yg_name from tabyginfo");
if(!m_runsql.CheckSQLResult(sql))return false;
_variant_t value;
while(!m_runsql.m_recordset->adoEOF)
{
value=m_runsql.m_recordset->GetCollect("yg_name");
this->m_comboJsr.AddString((char*)(_bstr_t)value);
m_runsql.m_recordset->MoveNext();
}
//init jsfs;
sql.Format("select jsfs from tabjsfs");
this->m_runsql.RunSQL(sql);
while(!m_runsql.m_recordset->adoEOF)
{
value=m_runsql.m_recordset->GetCollect("jsfs");
this->m_comboJsfs.AddString((char*)(_bstr_t)value);
m_runsql.m_recordset->MoveNext();
}
this->m_comboJsfs.SetCurSel(0);
this->m_comboJsr.SetCurSel(0);
this->m_editDjPh.SetWindowText(this->m_strPh);
this->m_editThPh.SetWindowText(this->ChanShengPh());
return true;
}
CString CDlgXSTH::ChanShengPh()
{
CString sql;
_bstr_t sql_;
_variant_t value;
CString s_value;
CString s_date;
CString ph;
this->m_tcRq.GetWindowText(s_date);
this->m_tcRq.GetTime(m_tRq);
CString y_date,m_date,d_date;
y_date=this->m_tRq.Format("%Y");
m_date.Format("%d",this->m_tRq.GetMonth());
d_date.Format("%d",m_tRq.GetDay());
if(m_date.GetLength()==1)
m_date=CString("0")+m_date;
if(d_date.GetLength()==1)
d_date=CString("0")+d_date;
ph=y_date+"-"+m_date+"-"+d_date;
if(this->m_bXsth)
{
ph=ph+"THD";
sql.Format("select xsth_ph from tabxsthph where rq='%s' order by xsth_ph desc",s_date);
if(m_runsql.CheckSQLResult(sql))
{
value=m_runsql.m_recordset->GetCollect("xsth_ph");
if(value.vt!=NULL)
{
s_value=(char*)(_bstr_t)value;
s_value=s_value.Mid(s_value.GetLength()-4,4);
}
}
else
{
s_value="0";
}
}
else
{
ph=ph+"rkt";
sql.Format("select rkth_ph from tabrkthph where rq='%s' order by rkth_ph desc",s_date);
if(m_runsql.CheckSQLResult(sql))
{
value=m_runsql.m_recordset->GetCollect("rkth_ph");
if(value.vt!=NULL)
{
s_value=(char*)(_bstr_t)value;
s_value=s_value.Mid(s_value.GetLength()-4,4);
}
}
else
{
s_value="0";
}
}
long l_value=atoi(s_value)+1;
s_value.Format("%d",l_value);
for(int i=s_value.GetLength();i<4;i++)
{
s_value="0"+s_value;
}
ph=ph+s_value;
return ph;
}
bool CDlgXSTH::SetTheFocus()
{
HWND hwnd=::GetFocus();
int iID=::GetDlgCtrlID(hwnd);
switch(iID)
{
case IDC_DATETIMEPICKER1:
{
this->m_comboJsr.SetFocus();
return true;
}
case IDC_COMBO1:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -