📄 geninfo.cpp
字号:
{
ADD();
return;
/*
UpdateData();
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);
RETCODE rt;
SDWORD cbValue;
char ts[4000];
while(m_id.GetLength()<10)
m_id = "0" + m_id;
sprintf(ts,"SELECT NAME,SEX,AGE,CLASS,BEDID,HOSPID,CHECKSTYLE,CHECKPOS,ADDRESS,POSTCODE,TELPHONE,DOCTER,ILLNAME,RESULT,REPORT,CHECKDATE FROM REPORT where ID='%s'",m_id);
rt = SQLExecDirect(hStmt, (unsigned char *)ts, SQL_NTS);
CString sField;
rt = SQLFetch(hStmt);
if (!(rt != SQL_SUCCESS && rt != SQL_SUCCESS_WITH_INFO) )
{
memset(ts,0,sizeof(ts));
rt = SQLGetData(hStmt,1,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
sField = ts;
sField.TrimLeft();
sField.TrimRight();
m_name=sField;
//UpdateData(false);
memset(ts,0,sizeof(ts));
rt = SQLGetData(hStmt,2,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
sField = ts;
sField.TrimLeft();
sField.TrimRight();
m_sex=sField;
//UpdateData(false);
memset(ts,0,sizeof(ts));
rt = SQLGetData(hStmt,3,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
sField = ts;
sField.TrimLeft();
sField.TrimRight();
m_age=atoi(sField);
//UpdateData(false);
memset(ts,0,sizeof(ts));
rt = SQLGetData(hStmt,4,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
sField = ts;
sField.TrimLeft();
sField.TrimRight();
m_class=sField;
//UpdateData(false);
memset(ts,0,sizeof(ts));
rt = SQLGetData(hStmt,5,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
sField = ts;
sField.TrimLeft();
sField.TrimRight();
m_bedid=sField;
//UpdateData(false);
memset(ts,0,sizeof(ts));
rt = SQLGetData(hStmt,6,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
sField = ts;
sField.TrimLeft();
sField.TrimRight();
m_hospid=sField;
//UpdateData(false);
memset(ts,0,sizeof(ts));
rt = SQLGetData(hStmt,7,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
sField = ts;
sField.TrimLeft();
sField.TrimRight();
m_checkstyle=sField;
//UpdateData(false);
memset(ts,0,sizeof(ts));
rt = SQLGetData(hStmt,8,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
sField = ts;
sField.TrimLeft();
sField.TrimRight();
m_checkpos=sField;
//UpdateData(false);
memset(ts,0,sizeof(ts));
rt = SQLGetData(hStmt,9,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
sField = ts;
sField.TrimLeft();
sField.TrimRight();
m_address=sField;
//UpdateData(false);
memset(ts,0,sizeof(ts));
rt = SQLGetData(hStmt,10,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
sField = ts;
sField.TrimLeft();
sField.TrimRight();
m_postcode=sField;
//UpdateData(false);
memset(ts,0,sizeof(ts));
rt = SQLGetData(hStmt,11,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
sField = ts;
sField.TrimLeft();
sField.TrimRight();
m_telphone=sField;
//UpdateData(false);
memset(ts,0,sizeof(ts));
rt = SQLGetData(hStmt,12,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
sField = ts;
sField.TrimLeft();
sField.TrimRight();
((CBxtDlg*)AfxGetMainWnd())->report->SendMessage(WX_SETRPT,1,(long)sField.GetBuffer(6000));
//m_telphone=sField;
//UpdateData(false);
memset(ts,0,sizeof(ts));
rt = SQLGetData(hStmt,13,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
sField = ts;
sField.TrimLeft();
sField.TrimRight();
((CBxtDlg*)AfxGetMainWnd())->report->SendMessage(WX_SETRPT,2,(long)sField.GetBuffer(6000));
//m_telphone=sField;
//UpdateData(false);
memset(ts,0,sizeof(ts));
rt = SQLGetData(hStmt,14,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
sField = ts;
sField.TrimLeft();
sField.TrimRight();
((CBxtDlg*)AfxGetMainWnd())->report->SendMessage(WX_SETRPT,3,(long)sField.GetBuffer(6000));
//m_telphone=sField;
//UpdateData(false);
memset(ts,0,sizeof(ts));
rt = SQLGetData(hStmt,15,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
sField = ts;
sField.TrimLeft();
sField.TrimRight();
//m_telphone=sField;
((CBxtDlg*)AfxGetMainWnd())->report->SendMessage(WX_SETRPT,4,(long)sField.GetBuffer(6000));
memset(ts,0,sizeof(ts));
rt = SQLGetData(hStmt,16,SQL_C_CHAR,ts,sizeof(ts),&cbValue);
sField = ts;
sField.TrimLeft();
sField.TrimRight();
m_date = sField.Left(14);
m_time = sField.Right(12);
UpdateData(false);
m_isnew = false;
CString path;
path = ((CBxtDlg *)AfxGetMainWnd())->m_imagepath;
path += m_id;
//_mkdir(path.GetBuffer(path.GetLength()));
((CBxtDlg *)AfxGetMainWnd())->m_workingpath = path;
//char id[20];
//strcpy(id,m_id);
((CBxtDlg *)AfxGetMainWnd())->m_currentid = m_id;
int imgNum=1;
char xfilename[300];
while(true)
{
sprintf(xfilename,"%s\\%d.jpg",path.GetBuffer(200),imgNum);
FILE *fp;
fp = fopen(xfilename,"rb");
if (fp != NULL)
{
fclose(fp);
imgNum++;
}
else
{
break;
}
}
((CBxtDlg *)AfxGetMainWnd())->rec->CapturedNum = imgNum;
}
else
{
//AfxMessageBox("没有该编号的记录!");
}
SQLFreeStmt(hStmt,SQL_DROP);
SQLDisconnect(hdbc);
SQLFreeConnect(hdbc);
SQLFreeEnv(henv);
*/
}
BOOL GenInfo::ADD()
{
HENV henv; // ODBC
HDBC hdbc; // ODBC
HSTMT hStmt; // ODBC
CString sBaseID; // CT Base ID
CString sID; // CT ID
INT i;
UpdateData(TRUE);
sBaseID = m_id;
GetBaseID(sBaseID);
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);
sID = sBaseID;
if (!RecordExist(hStmt, sID.GetBuffer(sID.GetLength())))
{
FillNewRecord(sID);
m_isnew = TRUE;
}
else
{
for (i = 0; i < 26; i++)
{
sID = sBaseID + (CHAR)('A' + i);
if (!RecordExist(hStmt, sID.GetBuffer(sID.GetLength())))
{
GetRecordInfo(hStmt, sBaseID.GetBuffer(sBaseID.GetLength()));
m_id = sID;
m_isnew = TRUE;
UpdateData(FALSE);
break;
}
}
}
SQLFreeStmt(hStmt, SQL_DROP);
SQLDisconnect(hdbc);
SQLFreeConnect(hdbc);
SQLFreeEnv(henv);
return (TRUE);
}
BOOL
GenInfo::RecordExist(HSTMT hStmt, CHAR *sID)
{
RETCODE rt; // Return Code
CHAR sql[1000];
INT iCount;
LONG cbValue;
sprintf(sql, "SELECT COUNT(*) FROM REPORT WHERE ID='%s'", sID);
SQLExecDirect(hStmt, (unsigned char *)(sql), SQL_NTS);
rt = SQLFetch(hStmt);
rt = SQLGetData(hStmt, 1, SQL_C_LONG, &iCount, sizeof(INT), &cbValue);
::SQLFreeStmt(hStmt, SQL_CLOSE);
return (0 == iCount) ? (FALSE) : (TRUE);
}
BOOL
GenInfo::GetBaseID(CString &sID)
{
CString sLastChar;
CString sChar;
INT iIDLen;
INT i;
sID.MakeUpper();
sLastChar = sID.Right(1);
if (sLastChar >= "A" && sLastChar <= "Z")
{
sID = sID.Left(sID.GetLength() - 1);
}
else
{
sLastChar = "";
}
iIDLen = sID.GetLength();
if (iIDLen > 10) return (FALSE);
for (i = 0; i < iIDLen; i++)
{
sChar = sID.Mid(i, 1);
if (sChar < "0" || sChar > "9") return (FALSE);
}
while (sID.GetLength() < 10) sID = "0" + sID;
return (TRUE);
}
BOOL
GenInfo::FillNewRecord(CString sID)
{
m_id = sID;
m_name = "";
m_sex = "男";
m_age = 0;
m_class = "";
m_bedid = "";
m_hospid = "";
m_checkstyle= "";
m_checkpos = "";
m_telphone = "";
m_address = "";
m_postcode = "0";
m_date = "";
m_time = "";
UpdateData(FALSE);
return (TRUE);
}
BOOL
GenInfo::GetRecordInfo(HSTMT hStmt, CHAR *sBaseID)
{
RETCODE rt; // Return Code
CHAR sql[1000];
LONG cbValue;
CHAR sBuf[1000];
CString sField;
INT i;
CString *svp[] = {NULL, // 0
&m_name, // 1
&m_sex, // 2
NULL, // 3
&m_class, // 4
&m_bedid, // 5
&m_hospid, // 6
&m_checkstyle, // 7
&m_checkpos, // 8
NULL, // &m_address, // 9
NULL, // 10
NULL, // &m_telphone, // 11
NULL, // &m_postcode, // 12
NULL, //
NULL,
NULL,
NULL,
NULL,
NULL};
sprintf(sql, "SELECT NAME,SEX,AGE,CLASS,BEDID,HOSPID,CHECKSTYLE,CHECKPOS,ADDRESS,POSTCODE,TELPHONE,DOCTER,ILLNAME,RESULT,REPORT,CHECKDATE FROM REPORT WHERE ID='%s'", sBaseID);
rt = SQLExecDirect(hStmt, (unsigned char *)sql, SQL_NTS);
rt = SQLFetch(hStmt);
if (rt != SQL_SUCCESS && rt != SQL_SUCCESS_WITH_INFO) return (FALSE);
for (i = 1; i <= 16; i++)
{
memset(sBuf, 0, sizeof(sBuf));
rt = SQLGetData(hStmt, i, SQL_C_CHAR, sBuf, sizeof(sBuf), &cbValue);
sField = sBuf;
sField.TrimLeft();
sField.TrimRight();
if (3 == i) m_age = atoi(sField);
else if (NULL != svp[i]) *svp[i] = sField;
}
::SQLFreeStmt(hStmt, SQL_CLOSE);
return (TRUE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -