⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlgxsth.cpp

📁 进销存管理系统介绍了企业的现状以及进销存数据管理系统的特点、功能和使用对象
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// 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 + -