?? query.cpp
字號(hào):
// Query.cpp : implementation file
//
#include "stdafx.h"
#include "bxt.h"
#include "Query.h"
#include "SelPic.h"
#include "Pic.h"
#include "BxtDlg.h"
#include "Direct.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include "glbfun.h"
/////////////////////////////////////////////////////////////////////////////
// Query dialog
Query::Query(CWnd* pParent /*=NULL*/)
: CDialog(Query::IDD, pParent)
{
//{{AFX_DATA_INIT(Query)
m_doctor = _T("");
m_illname = _T("");
m_result = _T("");
//}}AFX_DATA_INIT
}
void Query::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(Query)
DDX_Control(pDX, IDC_RICHEDIT_REPORT, m_rich);
DDX_Control(pDX, IDC_MSFLEXGRID1, m_grd);
DDX_Text(pDX, IDC_EDIT_DOCTOR, m_doctor);
DDX_Text(pDX, IDC_EDIT_ILLNAME, m_illname);
DDX_Text(pDX, IDC_EDIT_RESULT, m_result);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(Query, CDialog)
//{{AFX_MSG_MAP(Query)
ON_BN_CLICKED(IDC_BUTTON_DELETERECORD, OnButtonDeleterecord)
ON_BN_CLICKED(IDC_BUTTON_PRINT_REPORT, OnButtonPrintReport)
ON_BN_CLICKED(IDC_BUTTON_PRINT_REPORT2, OnButtonPrintReport2)
ON_BN_CLICKED(IDC_BUTTON_DEAL_WITH_IMAGE, OnButtonDealWithImage)
ON_BN_CLICKED(IDC_BUTTON5, OnButton5)
ON_BN_CLICKED(IDC_BUTTON14, OnButton14)
//}}AFX_MSG_MAP
ON_MESSAGE(WX_QUERY,QueryRun)
ON_MESSAGE(WX_SETRECORDID,SetRecordID)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// Query message handlers
BOOL Query::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_grd.SetRows(1);
m_grd.SetCols(9);
m_grd.SetRow(0);
m_grd.SetCol(1); m_grd.SetText( "超聲號(hào)" );
m_grd.SetCol(2); m_grd.SetText( "姓名" );
m_grd.SetCol(3); m_grd.SetText( "性別" );
m_grd.SetCol(4); m_grd.SetText( "年齡" );
m_grd.SetCol(5); m_grd.SetText( "科別" );
m_grd.SetCol(6); m_grd.SetText( "確診疾病" );
m_grd.SetCol(7); m_grd.SetText( "檢查部位" );
m_grd.SetCol(8); m_grd.SetText( "檢查日期" );
m_grd.SetColWidth(0,200);
m_grd.SetColWidth(1,1450);
m_grd.SetColWidth(2,1200);
m_grd.SetColWidth(3,600);
m_grd.SetColWidth(4,600);
m_grd.SetColWidth(5,1500);
m_grd.SetColWidth(6,1500);
m_grd.SetColWidth(7,1000);
m_grd.SetColWidth(8,2900);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void
Query::QueryRun(WPARAM wParm,LPARAM lParm)
{
HENV henv;
HDBC hdbc;
HSTMT hstmt;
SQLAllocEnv(&henv);
SQLAllocConnect(henv,&hdbc);
SQLConnect(hdbc,(unsigned char *)"BXX",SQL_NTS,NULL,0,NULL,0);
SQLAllocStmt(hdbc,&hstmt);
SQLFreeStmt(hstmt,SQL_CLOSE);
SQLFreeStmt(hstmt,SQL_CLOSE);
char ts[68000];
RETCODE rt;
SDWORD cbValue;
if ((char *)lParm == NULL)
{
strcpy(ts,"SELECT ID,NAME,SEX,AGE,CLASS,ILLNAME,CHECKPOS,CHECKDATE FROM REPORT ORDER BY ID");
}
else
{
strcpy(ts,(char *)lParm);
}
rt = SQLExecDirect(hstmt, (unsigned char *)ts, SQL_NTS);
m_grd.SetRedraw(FALSE);
m_grd.SetRows(1);
CString field;
for (int row = 2;; row++)
{
rt = SQLFetch(hstmt);
if (rt != SQL_SUCCESS && rt != SQL_SUCCESS_WITH_INFO) break;
m_grd.SetRows(row);
m_grd.SetRow(row-1);
for (int i = 1; i <= 8; i++)
{
m_grd.SetCol(i);
if (i != 4)
{
memset(ts,0,sizeof(ts));
rt = SQLGetData(hstmt,i,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
field = ts;
field.TrimLeft();
field.TrimRight();
m_grd.SetText(field);
}
else
{
int age;
char buf[10];
rt = SQLGetData(hstmt,i,SQL_C_SLONG,&age,sizeof(int),&cbValue);
m_grd.SetText(itoa(age,buf,10));
}
}
}
m_grd.SetRedraw(TRUE);
m_grd.Invalidate(TRUE);
SQLFreeStmt(hstmt,SQL_DROP);
SQLDisconnect(hdbc);
SQLFreeConnect(hdbc);
SQLFreeEnv(henv);
ShowCurrentRecordInfo();
/*
if (row > 2)
{
}
else
{
m_doctor = "";
m_illname = "";
m_result = "";
CString richtext = "";
EDITSTREAM es = {(DWORD)&richtext, 0, EditStreamCallBack};
m_rich.StreamIn(SF_RTF, es);
}
*/
UpdateData(false);
/*
if(rs.IsOpen())
{
rs.Close();
m_grd.SetRows(1);
}
rs.Open(AFX_DAO_USE_DEFAULT_TYPE,(LPCTSTR)lParm);
//rs.Open(AFX_DAO_USE_DEFAULT_TYPE,"select * from report");
rs.MoveFirst();
char xage[10];
while(! rs.IsEOF())
{
m_grd.SetRows(m_grd.GetRows() + 1);
m_grd.SetRow(m_grd.GetRows() - 1);
m_grd.SetCol(1); m_grd.SetText(rs.m_ID);
m_grd.SetCol(2); m_grd.SetText(rs.m_NAME);
m_grd.SetCol(3); m_grd.SetText(rs.m_SEX);
//if(rs.m_AGE
if(rs.m_AGE > 200) rs.m_AGE =0;
if(rs.m_AGE < 0) rs.m_AGE =0;
sprintf(xage,"%d",rs.m_AGE );
m_grd.SetCol(4); m_grd.SetText(xage);
m_grd.SetCol(5); m_grd.SetText(rs.m_CLASS);
m_grd.SetCol(6); m_grd.SetText(rs.m_ILLNAME);
m_grd.SetCol(7); m_grd.SetText(rs.m_CHECKPOS);
m_grd.SetCol(8); m_grd.SetText(rs.m_CHECKDATE);
rs.MoveNext();
}
*/
}
BEGIN_EVENTSINK_MAP(Query, CDialog)
//{{AFX_EVENTSINK_MAP(Query)
ON_EVENT(Query, IDC_MSFLEXGRID1, -600 /* Click */, OnClickMsflexgrid1, VTS_NONE)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
void Query::OnOK()
{
// CDialog::OnOK();
}
void Query::OnCancel()
{
// CDialog::OnCancel();
}
void Query::OnButtonDeleterecord()
{
char sql[2000];
CString id;
id = m_grd.GetTextMatrix(m_grd.GetRow(),1);
if (id.IsEmpty())
{
AfxMessageBox("請(qǐng)選擇超聲編號(hào)!");
return;
}
if (id == m_currentid)
{
AfxMessageBox("禁止刪除當(dāng)前記錄!");
return;
}
sprintf(sql,"DELETE FROM REPORT WHERE ID='%s'",id.GetBuffer(id.GetLength()));
HENV henv;
HDBC hdbc;
HSTMT hstmt;
SQLAllocEnv(&henv);
SQLAllocConnect(henv,&hdbc);
SQLConnect(hdbc,(unsigned char *)"BXX",SQL_NTS,NULL,0,NULL,0);
SQLAllocStmt(hdbc,&hstmt);
RETCODE rt;
SQLFreeStmt(hstmt,SQL_CLOSE);
rt = SQLExecDirect(hstmt, (unsigned char*)sql, SQL_NTS);
SQLFreeStmt(hstmt,SQL_DROP);
SQLDisconnect(hdbc);
SQLFreeConnect(hdbc);
SQLFreeEnv(henv);
QueryRun(0,0);
CString path;
path = ((CBxtDlg *)AfxGetMainWnd())->m_imagepath;
path += id;
DeleteDir(path.GetBuffer(path.GetLength()));
}
void Query::OnClickMsflexgrid1()
{
ShowCurrentRecordInfo();
}
void Query::SetRecordID(WPARAM wParm, LPARAM lParm)
{
strcpy(m_currentid,(char *)lParm);
}
void Query::OnButtonPrintReport()
{
((CBxtDlg *)AfxGetMainWnd())->PrintReport(false,2);
}
void Query::OnButtonPrintReport2()
{
((CBxtDlg *)AfxGetMainWnd())->PrintReport(false,4);
}
BOOL Query::DeleteDir(char *path)
{
CFileFind tt;
BOOL FindSuccess;
char fn[1000];
sprintf(fn,"%s\\*.*",path);
FindSuccess = tt.FindFile(fn);
while(FindSuccess)
{
FindSuccess = tt.FindNextFile();
if (!tt.IsDirectory())
DeleteFile(tt.GetFilePath());
}
tt.Close();
RemoveDirectory(path);
return true;
}
void Query::OnButtonDealWithImage()
{
CString picpath;
picpath = ((CBxtDlg *)AfxGetMainWnd())->m_imagepath;
picpath += m_id;
picpath += "\\";
((CBxtDlg *)AfxGetMainWnd())->imgpcs->ReFresh(picpath.GetBuffer(picpath.GetLength()));
((CBxtDlg *)AfxGetMainWnd())->m_m.SelectTab(1);
((CBxtDlg *)AfxGetMainWnd())->TabSelChange(IDC_TAB1,0);
}
void Query::ShowCurrentRecordInfo()
{
m_id = m_grd.GetTextMatrix(m_grd.GetRow(),1);
//if (m_id.GetLength() != 13) return;
HENV henv;
HDBC hdbc;
HSTMT hstmt;
SQLAllocEnv(&henv);
SQLAllocConnect(henv,&hdbc);
SQLConnect(hdbc,(unsigned char *)"BXX",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 REPORT,RESULT,DOCTER,ILLNAME,HOSPID,BEDID,CLASS,NAME,SEX,AGE,DEVICE,CHECKSTYLE,CHECKPOS,CHECKDATE FROM REPORT WHERE ID='%s'",m_grd.GetTextMatrix(m_grd.GetRow(),1));
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);
rt = SQLGetData(hstmt,2,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
m_result = ts;
rt = SQLGetData(hstmt,3,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
m_doctor = ts;
rt = SQLGetData(hstmt,4,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
m_illname = ts;
rt = SQLGetData(hstmt,5,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
m_hospid = ts;
rt = SQLGetData(hstmt,6,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
m_bedid = ts;
rt = SQLGetData(hstmt,7,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
m_class = ts;
rt = SQLGetData(hstmt,8,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
m_name = ts;
rt = SQLGetData(hstmt,9,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
m_sex = ts;
rt = SQLGetData(hstmt,10,SQL_C_SLONG,&m_age,sizeof(m_age),&cbValue);
// m_age = ts;
rt = SQLGetData(hstmt,11,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
m_device = ts;
rt = SQLGetData(hstmt,12,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
m_checkstyle= ts;
rt = SQLGetData(hstmt,13,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
m_checkpos = ts;
rt = SQLGetData(hstmt,14,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
m_checkdate = ts;
SQLFreeStmt(hstmt,SQL_DROP);
SQLDisconnect(hdbc);
SQLFreeConnect(hdbc);
SQLFreeEnv(henv);
UpdateData(false);
}
void Query::OnButton5()
{
((CBxtDlg *)AfxGetMainWnd())->PrintReport(false,3);
}
void Query::OnButton14()
{
((CBxtDlg *)AfxGetMainWnd())->PrintReport(false,5);
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -