📄 dbworkrep.cpp
字号:
#include "DBWorkRep.h"
#include "WorkRepContent.h"
#include "SysClock.h"
#include "FormDoDialog.h"
//set the number of static member
SHORT DBWorkRep::m_iDraftNum = -1;
SHORT DBWorkRep::m_iSendNum = -1;
DBWorkRep::DBWorkRep (BOOLEAN bIsDraft):
m_bIsDraft (bIsDraft)
{
}
Err DBWorkRep::DelRec(
//##Documentation
//## 记录ID号
SHORT iRecID)
{
if (SUC == DBOpersBase::DelRec (iRecID))
{
if (m_bIsDraft)
{
--m_iDraftNum;
}
else
{
--m_iSendNum;
}
return SUC;
}
return ERR_DB;
}
CHAR* DBWorkRep::GetTableName()
{
return (CHAR*)"DBWorkRep";
}
UWORD DBWorkRep::GetFieldCnt()
{
return DBWORKREP_FIELD_COUNT;
}
//##ModelId=3D65F2C702A2
SHORT DBWorkRep::AddWorkRepRec(WorkRepContent *pContent)
{
if (PopupDialog (m_bIsDraft))
{
return -1;
}
EMDB_RECORD Fields[DBWORKREP_FIELD_COUNT];
for (UWORD i = 0; i < DBWORKREP_FIELD_COUNT; i++)
Fields[i].FieldIndex = i;
SysTime EditTime;
SysClock::GetInstance()->GetLocalTime(&EditTime);
Fields[0].val.bl = (UBYTE) m_bIsDraft;
Fields[1].val.c = (CHAR*) &EditTime;
Fields[2].val.c = pContent->m_strContent;
SHORT idNewRec = GetRecCnt();
if (SUC == AddRec((EMDB_RECORD*)&Fields))
{
if (m_bIsDraft)
{
++m_iDraftNum;
}
else
{
++m_iSendNum;
}
return idNewRec;
}
else
return -1;
}
Err DBWorkRep::ModifyContent(SHORT iRecID, WorkRepContent *pContent)
{
EMDB_RECORD Fields[2];
Fields[0].FieldIndex = 1;
Fields[1].FieldIndex = 2;
SysTime EditTime;
SysClock::GetInstance()->GetLocalTime(&EditTime);
Fields[0].val.c = (CHAR*) &EditTime;
Fields[1].val.c = pContent->m_strContent;
return SetFields(iRecID, (EMDB_RECORD*)&Fields, 2);
}
//##ModelId=3D65F2CE032E
Err DBWorkRep::GetContent(SHORT iRecID, WorkRepContent *pRecContent)
{
EMDB_RECORD FieldContent;
FieldContent.FieldIndex = 2;
FieldContent.val.c = (CHAR*)pRecContent->m_strContent;
return GetField(iRecID, &FieldContent);
}
//##ModelId=3D6990B50051
Err DBWorkRep::GetEditTime(SHORT iRecID, CHAR* pszTime)
{
EMDB_RECORD FieldEditTime;
SysTime EditTime;
FieldEditTime.FieldIndex = 1;
FieldEditTime.val.c = (CHAR*) &EditTime;
Err RetVal = GetField(iRecID, &FieldEditTime);
EditTime.ToString(pszTime);
return RetVal;
}
//##ModelId=3D6990BE01A8
Err DBWorkRep::GetIsDraftFlg(SHORT iRecID, BOOLEAN* isDraft)
{
EMDB_RECORD FieldIsDraft;
Err Result;
FieldIsDraft.FieldIndex = 0;
Result = GetField(iRecID, &FieldIsDraft);
if (SUC == Result)
{
*isDraft = (BOOLEAN) FieldIsDraft.val.bl;
}
return Result;
}
Err DBWorkRep::SetIsDraftFlg(SHORT iRecID, BOOLEAN isDraft)
{
if (PopupDialog (isDraft))
{
return ERR_DB;
}
EMDB_RECORD FieldIsDraft;
FieldIsDraft.FieldIndex = 0;
FieldIsDraft.val.bl = (UBYTE)isDraft;
if (SUC == SetFields(iRecID, &FieldIsDraft, 1))
{
if (isDraft)
{
++m_iDraftNum;
--m_iSendNum;
}
else
{
++m_iSendNum;
--m_iDraftNum;
}
return SUC;
}
return ERR_DB;
}
//##ModelId=3D6990000083
SHORT DBWorkRep::GetDraftRecCnt()
{
SHORT i;
SHORT iDraftCount = 0;
//SHORT iSendCount = 0;
BOOLEAN isDraft = FALSE;
if (-1 == m_iDraftNum)
{
for (i = 0; i < DBOpersBase::GetRecCnt(); ++i)
{
GetIsDraftFlg(i, &isDraft);
if (TRUE == isDraft)
{
++iDraftCount;
}
}
m_iDraftNum = iDraftCount;
}
return m_iDraftNum;
}
SHORT DBWorkRep::GetSendRecCnt()
{
SHORT i;
//SHORT iDraftCount = 0;
SHORT iSendCount = 0;
BOOLEAN isDraft = FALSE;
if (-1 == m_iSendNum)
{
for (i = 0; i < DBOpersBase::GetRecCnt(); ++i)
{
GetIsDraftFlg(i, &isDraft);
if (TRUE != isDraft)
{
++iSendCount;
}
}
m_iSendNum = iSendCount;
}
return m_iSendNum;
}
BOOLEAN DBWorkRep::GetIsDBDraftFlag ()
{
return m_bIsDraft;
}
//##ModelId=3D6990010188
BOOLEAN DBWorkRep::IsFull()
{
SHORT Count = 0;
if (m_bIsDraft)
{
Count = GetDraftRecCnt ();
}
else
{
Count = GetSendRecCnt ();
}
if (Count >= DBWORKREP_COUNT)
{
return TRUE;
}
else
{
return FALSE;
}
}
//##ModelId=3D6F11750355
void DBWorkRep::SetIsDBDraftFlag(BOOLEAN isDraft)
{
m_bIsDraft = isDraft;
return;
}
//通过当前的数据库的信息条数,弹出不同的Dialog
BOOLEAN DBWorkRep::PopupDialog (BOOLEAN isDraft)
{
SHORT i = 0;
if (isDraft)
{
i = GetDraftRecCnt ();
}
else
{
i = GetSendRecCnt ();
}
if (DBWORKREP_COUNT-1 == i)
{
DialogPopupEmbedded (ERR_DATABATE_WILL_FULL);
return FALSE;
}
else if (DBWORKREP_COUNT <= i)
{
if (isDraft)
{
DialogPopupString (NULL, (BYTE*)"此条信息无法保存到草稿箱");
}
else
{
DialogPopupString (NULL, (BYTE*)"此条信息无法保存到发件箱");
}
//DialogPopupEmbedded (ERR_DATABATE_FULL);
return TRUE;
}
return FALSE;
}
//获取最近一条发件箱中ID号
SHORT DBWorkRep::GetFirstSendRec ()
{
SHORT i;
BOOLEAN isDraft = TRUE;
for (i = 0; i < DBOpersBase::GetRecCnt(); ++i)
{
GetIsDraftFlg(i, &isDraft);
if (FALSE == isDraft)
{
return i;
}
}
return -1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -