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

📄 report.cpp

📁 CT工作站具有打印报告、病历管理、图像处理专家词库等功能
💻 CPP
字号:
// Report.cpp : implementation file
//
 
#include "stdafx.h"
#include "bxt.h"
#include "Report.h"
#include "glbfun.h"
#include "BxtDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// Report dialog


Report::Report(CWnd* pParent /*=NULL*/)
	: CDialog(Report::IDD, pParent)
{
	//{{AFX_DATA_INIT(Report)
	m_result = _T("");
	m_doctor = _T("");
	m_illname = _T("");
	//}}AFX_DATA_INIT
}


void Report::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(Report)
	DDX_Control(pDX, IDC_RICHEDIT1, m_rich);
	DDX_Text(pDX, IDC_EDIT_RESULT, m_result);
	DDX_Text(pDX, IDC_EDIT_DOCTOR, m_doctor);
	DDX_Text(pDX, IDC_EDIT_ILLNAME, m_illname);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(Report, CDialog)
	//{{AFX_MSG_MAP(Report)
	//}}AFX_MSG_MAP
	ON_MESSAGE(WX_REPORT,ShowTemplate)
	ON_MESSAGE(WX_SETRPT,SetRpt)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Report message handlers
void Report::SetRpt( WPARAM wParm, LPARAM lParm)
{
	switch (wParm)
	{
	case 1:
		m_doctor = (char*) lParm;
		UpdateData(false);
		break;
	case 2:
		m_illname = (char*) lParm;
		UpdateData(false);
		break;
	case 3:
		m_result = (char*) lParm;
		UpdateData(false);
		break;
	case 4:
		CString xxx;
		xxx = (char*) lParm;
		EDITSTREAM es = {(DWORD)&xxx, 0, EditStreamCallBack};
		m_rich.StreamIn(SF_RTF, es);
		break;
	}	
}

void Report::ShowTemplate(WPARAM wParm, LPARAM lParm)
{
	HENV	henv;
	HDBC	hdbc;
	HSTMT	hstmt;

	SQLAllocEnv(&henv);
	SQLAllocConnect(henv,&hdbc);
	SQLConnect(hdbc,(unsigned char *)"BXT",SQL_NTS,NULL,0,NULL,0);
	SQLAllocStmt(hdbc,&hstmt);

	SQLFreeStmt(hstmt,SQL_CLOSE);
	SQLFreeStmt(hstmt,SQL_CLOSE);
	char ts[68000];
	RETCODE rt;
	SDWORD cbValue;
	sprintf(ts,"SELECT STREAM1,STREAM2,STREAM3 FROM TBLTEMPLATE WHERE ID=%d",wParm);
	rt	= SQLExecDirect(hstmt, (unsigned char *)ts, SQL_NTS);
	rt	= SQLFetch(hstmt);
	strcpy(ts,"");
	rt	= SQLGetData(hstmt,1,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
	CString xtemp;
	xtemp	= ts;

	EDITSTREAM es = {(DWORD)&xtemp, 0, EditStreamCallBack};

	m_rich.StreamIn(SF_RTF, es);

	SQLFreeStmt(hstmt,SQL_DROP);
	SQLDisconnect(hdbc);
	SQLFreeConnect(hdbc);
	SQLFreeEnv(henv);
}

void Report::SaveReport()
{
	((CBxtDlg *)AfxGetMainWnd())->geninfo->SaveInfo();
	CString id;
	id	= ((CBxtDlg *)AfxGetMainWnd())->m_currentid;

	EDITSTREAM es;
	es.dwError = 0;
	es.pfnCallback = EditStreamCallBackW;		// Set the callback
	CString rRTF = _T("");
	es.dwCookie = (DWORD) &rRTF;	// so sRTF receives the string	
	m_rich.StreamOut(SF_RTF, es);
	UpdateData(true);

	HENV	henv;
	HDBC	hdbc;
	HSTMT	hstmt;
	RETCODE rt;

	rt=SQLAllocEnv(&henv);
	rt=SQLAllocConnect(henv,&hdbc);
	rt=SQLConnect(hdbc,(unsigned char *)"BXT",SQL_NTS,NULL,0,NULL,0);
	rt=SQLAllocStmt(hdbc,&hstmt);

	char sql[20000];
	sprintf(sql,"UPDATE REPORT SET REPORT=?,RESULT=?,DOCTER=?,ILLNAME=? WHERE ID='%s'",id.GetBuffer(id.GetLength()));

	SQLINTEGER	cbPartID = 0;
	SQLRETURN	retcode;
	retcode = SQLPrepare(hstmt, (unsigned char*)sql, SQL_NTS);

	if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
	{
		// Report
		SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT,
			SQL_C_CHAR, SQL_LONGVARCHAR,
			rRTF.GetLength(), 0, rRTF.GetBuffer(rRTF.GetLength()),
			rRTF.GetLength(), NULL);

		// Result
		SQLBindParameter(hstmt, 2, SQL_PARAM_INPUT,
			SQL_C_CHAR, SQL_CHAR, 
			m_result.GetLength(), 0, m_result.GetBuffer(m_result.GetLength()),
			m_result.GetLength(), NULL);

		// Doctor
		SQLBindParameter(hstmt, 3, SQL_PARAM_INPUT,
			SQL_C_CHAR, SQL_CHAR,
			m_doctor.GetLength(), 0, m_doctor.GetBuffer(m_doctor.GetLength()),
			m_doctor.GetLength(),NULL);

		// IllName
		SQLBindParameter(hstmt, 4, SQL_PARAM_INPUT,
			SQL_C_CHAR, SQL_CHAR,
			m_illname.GetLength(), 0, m_illname.GetBuffer(m_illname.GetLength()),
			m_illname.GetLength(), NULL);

		retcode = SQLExecute(hstmt);
	}

	SQLFreeStmt(hstmt,SQL_DROP);
	SQLDisconnect(hdbc);
	SQLFreeConnect(hdbc);
	SQLFreeEnv(henv);
}


void Report::NewRecord()
{
	m_doctor	= "";
	m_illname	= "";
	m_result	= "";

	UpdateData(false);

	CString richtext;

	richtext	= "";
	EDITSTREAM es = {(DWORD)&richtext, 0, EditStreamCallBack};
	m_rich.StreamIn(SF_RTF, es);
}

⌨️ 快捷键说明

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