📄 uiprbsolvcontainer.cpp
字号:
#include "UIPrbSolvContainer.h"
#include "ProbSolvContent.h"
#include "UI_Button.h"
#include "UI_String.h"
#include "UI_CheckBox.h"
#include "DBProbSolv.h"
#include "UICallCenterSend.h"
#include "applay.h"
enum {
ID_PROBSOLVCONTAIN_BASE = ID_XXX_BASE + 200,
ID_PROBSOLVCONTAIN_DELETE = ID_PROBSOLVCONTAIN_BASE+1,
ID_PROBSOLVCONTAIN_RETURN = ID_PROBSOLVCONTAIN_BASE+2,
ID_PROBSOLVCONTAIN_STRING_S = ID_PROBSOLVCONTAIN_BASE+3,
ID_PROBSOLVCONTAIN_CHECK_S = ID_PROBSOLVCONTAIN_BASE+4,
};
UIPrbSolvContainer::UIPrbSolvContainer(BOOLEAN isDraft, SHORT iRecID)
:m_bIsDraft(isDraft), m_iRecId (iRecID)
{
}
//##ModelId=3D65F00F0201
void UIPrbSolvContainer::Show()
{
m_UIProbSolvContent.Show();
if (m_bIsDraft)
{
ControlDrawControl(ID_PROBSOLVCONTAIN_CHECK_S);
StringDrawString (ID_PROBSOLVCONTAIN_STRING_S);
}
ControlDrawControl(ID_PROBSOLVCONTAIN_DELETE);
DrawReturnButton ();
}
/*
//##ModelId=3D65F01500BF
Err UIPrbSolvContainer::Exit()
{
return 1;
}
*/
void UIPrbSolvContainer::SaveContent()
{
ProbSolvContent ContentOld, ContentNew;
DBProbSolv theDBProbSolv(m_bIsDraft);
theDBProbSolv.OpenTable(EMDB_RDONLY);
theDBProbSolv.GetContent(m_iRecId, &ContentOld);
theDBProbSolv.CloseTable();
m_UIProbSolvContent.GetContent(&ContentNew);
if (0 != memcmp(ContentOld.m_strContent, ContentNew.m_strContent, ProbSolvContent::CONTENT_LEN))
{
theDBProbSolv.OpenTable(EMDB_RDWR);
theDBProbSolv.ModifyContent(m_iRecId, &ContentNew);
theDBProbSolv.CloseTable();
}
}
//##ModelId=3D55D36D022E
Err UIPrbSolvContainer::OnReturnBtn()
{
//SaveContent();
OnReturnClick();
return SUC;//Not Finished
}
//##ModelId=3D65EDEC00E2
Err UIPrbSolvContainer::OnDeleteBtn()
{
ObjectID control_id;
if (m_bIsDraft &&
(TRUE == ControlGetCheckedCheckbox (PDAXWT_FORM, ID_PROBSOLVCONTAIN_CHECK_S, &control_id)))
{
SaveContent();
DBProbSolv theDBS(m_bIsDraft);
theDBS.OpenTable(EMDB_RDWR);
Err bSet = theDBS.SetIsDraftFlg(m_iRecId, FALSE);
theDBS.CloseTable();
//db is full, no continue to delete
if (bSet != SUC)
{
return SUC;
}
}
else
{
DBProbSolv theDBS(m_bIsDraft);
theDBS.OpenTable(EMDB_RDWR);
theDBS.DelRec(m_iRecId);
theDBS.CloseTable();
}
//return to previous view
//Add by cao 11.15
//不能调用OnReturnClick。
//UIInfoBackBase::OnReturnClick ();
UIInfoBackBase::Exit ();
this->pPrev->Enter ();
delete this;
return SUC;
}
/*
//##ModelId=3D55D1DE0157
Err UIPrbSolvContainer::OnSendBtn()
{
SaveContent ();
if (m_bIsDraft)
{
DBProbSolv theDBProbSolv(m_bIsDraft);
theDBProbSolv.OpenTable(EMDB_RDWR);
Err bSet = theDBProbSolv.SetIsDraftFlg(m_iRecId, FALSE);
theDBProbSolv.CloseTable();
//db is full, no go to
if (bSet != SUC)
{
return SUC;
}
}
//Exit ();
//SaveContent();
this->DestroyWindow();
UICallCenterSend *pUICallCenter = new UICallCenterSend;
pUICallCenter->Enter(this);
//CommProxy->Send(??, m_iRecId);
CallCenterSendProbSolv(m_iRecId);
return SUC;
}
*/
//##ModelId=3D6E3381010D
BOOLEAN UIPrbSolvContainer::HandleEvent(EvtType* pEvent)
{
BOOLEAN bHandled = FALSE;
switch (pEvent->eventType)
{
case EVT_CONTROL_SELECT:
switch (pEvent->eventID)
{
case ID_PROBSOLVCONTAIN_DELETE:
OnDeleteBtn();
bHandled = TRUE;
break;
case ID_MAIN_RETURN:
OnReturnBtn();//derived from UISectionCenter
bHandled = TRUE;
break;
}
}
if (!bHandled)
{
bHandled = m_UIProbSolvContent.HandleEvent(pEvent);
}
return bHandled;
}
//##ModelId=3D65EDEE0077
Err UIPrbSolvContainer::Initialize()
{
DBProbSolv theDBS(m_bIsDraft);
ProbSolvContent content;
ObjectID form_id = PDAXWT_FORM;
//create content area
theDBS.OpenTable(EMDB_RDONLY);
theDBS.GetContent(m_iRecId, &content);
theDBS.CloseTable();
m_UIProbSolvContent.SetContent(&content);
m_UIProbSolvContent.Initialize();
if (m_bIsDraft)
{
UI_StringInit(ID_PROBSOLVCONTAIN_STRING_S,
10, 125,//x,y
15, 30,//height,width
(BYTE*)"发件箱", form_id);
StringSetAttribute(ID_PROBSOLVCONTAIN_STRING_S, TRUE, TRUE);
UI_CheckBoxInit(ID_PROBSOLVCONTAIN_CHECK_S,
52, 127,//x,y
ID_PROBSOLVCONTAIN_CHECK_S, form_id);
ControlSetAttributes(ID_PROBSOLVCONTAIN_CHECK_S, TRUE, FALSE, FALSE, TRUE, TRUE);
//UI_CheckBoxSetControlValue(ID_WORKREP_CHECK_D, TRUE);
}
/*
UI_ButtonInit(ID_PROBSOLVCONTAIN_SEND,
54, 125,//x,y
15, 30,//height,width
(BYTE*)"发送",//name
form_id);
*/
UI_ButtonInit(ID_PROBSOLVCONTAIN_DELETE,
87, 125,//x,y
15, 30,//height,width
(BYTE*)"删除",//name
form_id);
//ControlSetAttributes(ID_PROBSOLVCONTAIN_SEND, TRUE,FALSE,FALSE,TRUE,TRUE);
ControlSetAttributes(ID_PROBSOLVCONTAIN_DELETE, TRUE,FALSE,FALSE,TRUE,TRUE);
//create return button
UISectionCenter::CreateUIObjects();
return SUC;
}
//##ModelId=3D65F053005A
Err UIPrbSolvContainer::DestroyWindow()
{
SHORT num = 0;
SHORT i = 0;
ObjectID form_id = PDAXWT_FORM;
//delete content area
m_UIProbSolvContent.DestroyWindow();
if (m_bIsDraft)
{
UI_FormDeleteObject (ID_PROBSOLVCONTAIN_STRING_S, form_id);
UI_FormDeleteObject (ID_PROBSOLVCONTAIN_CHECK_S, form_id);
}
//UI_FormDeleteObject (ID_PROBSOLVCONTAIN_SEND, form_id);
UI_FormDeleteObject (ID_PROBSOLVCONTAIN_DELETE, form_id);
//delete return button
UISectionCenter::DestroyUIObjects();
return SUC;
}
Err UIPrbSolvContainer::Exit()
{
ObjectID control_id;
if (m_bIsDraft &&
(TRUE == ControlGetCheckedCheckbox (PDAXWT_FORM, ID_PROBSOLVCONTAIN_CHECK_S, &control_id)))
{
ProbSolvContent ContentNew;
memset(ContentNew.m_strContent, 0, sizeof(ContentNew.m_strContent));
DBProbSolv tDB(FALSE);
m_UIProbSolvContent.GetContent(&ContentNew);
tDB.OpenTable(EMDB_RDWR);
tDB.AddProbSolvRec(&ContentNew);
tDB.CloseTable();
SaveContent ();
}
else
{
SaveContent ();
}
return UIInfoNagvBase::Exit ();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -