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

📄 queryorder.cpp

📁 CT工作站具有打印报告、病历管理、图像处理专家词库等功能
💻 CPP
字号:
// QueryOrder.cpp : implementation file
//

#include "stdafx.h"
#include "bxt.h"
#include "QueryOrder.h"
#include "BxtDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// QueryOrder dialog


QueryOrder::QueryOrder(CWnd* pParent /*=NULL*/)
	: CDialog(QueryOrder::IDD, pParent)
{
	//{{AFX_DATA_INIT(QueryOrder)
	m_sort1 = -1;
	m_sort2 = -1;
	m_sort3 = -1;
	m_incdec1 = -1;
	m_incdec2 = -1;
	m_incdec3 = -1;
	//}}AFX_DATA_INIT
	m_pCfg				= ((CBxtApp *)(AfxGetApp()))->GetConfig();
}

void QueryOrder::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(QueryOrder)
	DDX_Control(pDX, IDC_COMBO3, m_cmbsort3);
	DDX_Control(pDX, IDC_COMBO2, m_cmbsort2);
	DDX_Control(pDX, IDC_COMBO1, m_cmbsort1);
	DDX_CBIndex(pDX, IDC_COMBO1, m_sort1);
	DDX_CBIndex(pDX, IDC_COMBO2, m_sort2);
	DDX_CBIndex(pDX, IDC_COMBO3, m_sort3);
	DDX_Radio(pDX, IDC_RADIO5, m_incdec1);
	DDX_Radio(pDX, IDC_RADIO7, m_incdec2);
	DDX_Radio(pDX, IDC_RADIO9, m_incdec3);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(QueryOrder, CDialog)
	//{{AFX_MSG_MAP(QueryOrder)
	ON_WM_CLOSE()
	ON_BN_CLICKED(IDC_BUTTON_QUERY, OnButtonQuery)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// QueryOrder message handlers

BOOL QueryOrder::OnInitDialog() 
{
	CDialog::OnInitDialog();

	/////////////////////////////////////////////////////////////////
 
	FILE *fp = fopen("c:\\bxt\\sort.inf","r");
	//char textline[510],showname[100],truename[100];
	int j;
	CString theline;

	if (!fp)
	{
		m_fieldnum	= 0;
	}
	else
	{
		j	= 0;
		while (!feof(fp))
		{
			fscanf(fp,"%s",m_fieldname[0][j]);
			fscanf(fp,"%s",m_fieldname[1][j++]);
		}
		m_fieldnum	= j;
		fclose(fp);
	}

	m_cmbsort1.ResetContent();
	m_cmbsort2.ResetContent();
	m_cmbsort3.ResetContent();

	m_cmbsort1.AddString("");
	m_cmbsort2.AddString("");
	m_cmbsort3.AddString("");

	for (j = 0; j < m_fieldnum; j++)
	{
		m_cmbsort1.AddString(m_fieldname[0][j]);
		m_cmbsort2.AddString(m_fieldname[0][j]);
		m_cmbsort3.AddString(m_fieldname[0][j]);
	}

	m_incdec1	= 0;
	m_incdec2	= 0;
	m_incdec3	= 0;

	m_sort1		= 0;
	m_sort2		= 0;
	m_sort3		= 0;

	UpdateData(FALSE);

	m_btnQuery.SubclassDlgItem(IDC_BUTTON_QUERY, this);
	m_btnQuery.SetIcon(IDI_ICON_QUERY, 96, 32);
	m_btnQuery.SetMouseOnColor(RGB(255, 0, 255));
	m_btnQuery.SetPressColor(RGB(0, 0, 255));
	m_btnQuery.SetWindowText("");
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

CString QueryOrder::MakeSortSQL()
{
	UpdateData(true);
	CString sql;
	sql	= "";

	if (m_sort1 > 0)
	{
		sql += m_fieldname[1][m_sort1 - 1];
		if (m_incdec1 == 1)
			sql += " DESC";
		sql += ",";
	}

	if (m_sort2 > 0)
	{
		sql += m_fieldname[1][m_sort2 - 1];
		if (m_incdec2 == 1)
			sql += " DESC";
		sql += ",";
	}

	if (m_sort3 > 0)
	{
		sql += m_fieldname[1][m_sort3 - 1];
		if (m_incdec3 == 1)
			sql += " DESC";
		sql += ",";
	}

	if (sql != "") sql = sql.Left(sql.GetLength() - 1);	// Get Rid Of ","

	return sql;
}

void QueryOrder::OnClose() 
{
	AfxMessageBox("OnClose");	
	CDialog::OnClose();
}

void
QueryOrder::OnButtonQuery() 
{
	if	(m_pCfg->iUiType == UI_TYPE_SIMPLE)
	{
		SimpleQuery();
	}
	else
	{
		NormalQuery();
	}
}

BOOL
QueryOrder::NormalQuery()
{
	CString		sDateWhere	= ((CBxtDlg *)AfxGetMainWnd())->querytime->MakeDataSQL();
	CString		sWhere;
	CString		sOrder;
	INT			iBaseLen;

//	->	Make Order
	sOrder	= (((CBxtDlg *)AfxGetMainWnd())->queryorder)->MakeSortSQL();
	if (!sOrder.IsEmpty())		sOrder	= "ORDER BY " + sOrder;
//	<-	Make Order
	
//	->	Make Where
	sWhere		+=	"WHERE ";

	iBaseLen	= sWhere.GetLength();
	if (!sDateWhere.IsEmpty())
	{
		sWhere	+= sDateWhere;
		sWhere	+= " AND ";
	}
//	<-	Make Where

	if (sWhere.GetLength() == iBaseLen)	sWhere	= _T("");
	else								sWhere	= sWhere.Left(sWhere.GetLength() - 4);	// Get Rid Of "AND ";

	CWnd	*pWnd	= ((CBxtDlg*)AfxGetMainWnd())->query;

	pWnd->SendMessage(WX_SETORDER, 0, (LPARAM)(sOrder.GetBuffer(sOrder.GetLength())));
	pWnd->SendMessage(WX_SETWHERE, 0, (LPARAM)(sWhere.GetBuffer(sWhere.GetLength())));
	pWnd->SendMessage(WX_QUERY, (WPARAM)(TRUE), 0);

	return	(TRUE);
}

BOOL
QueryOrder::SimpleQuery()
{
	return	(FALSE);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -