📄 report.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 + -