📄 uiworkreplist.cpp
字号:
#include "UIWorkRepList.h"
#include "UI_Button.h"
#include "UI_String.h"
#include "UI_Scrollbar.h"
#include "UI_Form.h"
#include "UIWorkRepContainer.h"
#define WORKREPLIST_NUM 5//必须要和button数保持一致
#define ID_WORKREPLIST_BASE ID_XXX_BASE+60
#define ID_WORKREPLIST_BJSJ ID_WORKREPLIST_BASE //编辑时间
#define ID_WORKREPLIST_BUTTON1 (ID_WORKREPLIST_BASE+1) //Button List
#define ID_WORKREPLIST_BUTTON2 (ID_WORKREPLIST_BASE+2)
#define ID_WORKREPLIST_BUTTON3 (ID_WORKREPLIST_BASE+3)
#define ID_WORKREPLIST_BUTTON4 (ID_WORKREPLIST_BASE+4)
#define ID_WORKREPLIST_BUTTON5 (ID_WORKREPLIST_BASE+5)
#define ID_WORKREPLIST_SCROLLBAR ID_WORKREPLIST_BASE+10 //Scrollbar
#define ID_WORKREPLIST_RETURN ID_WORKREPLIST_BASE+11 //Return Button
UIWorkRepList::UIWorkRepList (BOOLEAN isDraft)
:m_bIsDraft (isDraft),m_IndexTop (0)
{
}
//##ModelId=3D636567036F
BOOLEAN UIWorkRepList::HandleEvent(EvtType* event)
{
switch (event->eventType)
{
case EVT_CONTROL_SELECT:
switch(event->eventID)
{
case ID_MAIN_RETURN:
OnReturnClick();
return TRUE;
break;
case ID_WORKREPLIST_BUTTON1:
case ID_WORKREPLIST_BUTTON2:
case ID_WORKREPLIST_BUTTON3:
case ID_WORKREPLIST_BUTTON4:
case ID_WORKREPLIST_BUTTON5:
OnListItemClick (event->eventID-ID_WORKREPLIST_BUTTON1);
return TRUE;
break;
default:
return FALSE;
}
return FALSE;
break;
case EVT_SCROLLBAR_REPEAT:
ScrollbarDrawScrollbar (ID_WORKREPLIST_SCROLLBAR);
return TRUE;
break;
case EVT_SCROLLBAR_SELECT:
m_IndexTop = (SHORT)event->para2;//current scrollbar value
OnScrollbarClick();
return TRUE;
break;
default: return FALSE;
}
return FALSE;
}
//##ModelId=3D625BFB027D
Err UIWorkRepList::Initialize()
{
Err result = ERR_UNKOWN;
ObjectID form_id = PDAXWT_FORM;
//BYTE temp[10];
SHORT num = 0;
SHORT i = 0;
SHORT j = 0;
BOOLEAN isDraft;
DBWorkRep DBS(m_bIsDraft);
DBS.OpenTable(EMDB_RDONLY);
if (m_bIsDraft)
{
m_Count = DBS.GetDraftRecCnt ();
}
else
{
m_Count = DBS.GetSendRecCnt ();
}
for (i=0,j=0; i<DBS.GetRecCnt(); ++i)
{
DBS.GetIsDraftFlg(i, &isDraft);
if (m_bIsDraft == isDraft)
{
m_iDBListIndex[j] = i;
DBS.GetEditTime (i, m_strEditTime[j]);
++j;
}
}
DBS.CloseTable();
//create scrollbar
if (m_IndexTop + WORKREPLIST_NUM > m_Count)
{
if (WORKREPLIST_NUM >= m_Count)
{
m_IndexTop = 0;
}
else
{
m_IndexTop = m_Count - WORKREPLIST_NUM;
}
}
if (m_Count > WORKREPLIST_NUM)
{
UI_ScrollBarInit(ID_WORKREPLIST_SCROLLBAR,
151, SECTIONUP_HEIGHT + 25, 75, form_id);
ScrollbarSetScrollbar(ID_WORKREPLIST_SCROLLBAR,
m_IndexTop,//value
m_Count - WORKREPLIST_NUM,//max
0,// min value
WORKREPLIST_NUM, //page_size
m_Count);//total_num_lines
ScrollbarSetScrollbarDrawPagesize(ID_WORKREPLIST_SCROLLBAR, WORKREPLIST_NUM);
ScrollbarSetScrollbarVisible(ID_WORKREPLIST_SCROLLBAR, TRUE);
}
UI_StringInit (ID_WORKREPLIST_BJSJ, 25, SECTIONUP_HEIGHT+5,
15, 55,(BYTE*)"编辑时间", form_id);
if (m_Count - m_IndexTop < WORKREPLIST_NUM)
{
num = m_Count - m_IndexTop;
}
else
{
num = WORKREPLIST_NUM;
}
for (i=0; i<num; ++i)
{
UI_ButtonInit2 (ID_WORKREPLIST_BUTTON1+i, 15,
SECTIONUP_HEIGHT + 25 + 15*i,
15, 95,(BYTE*)m_strEditTime[m_IndexTop+i], form_id);
UI_ButtonSetAlign(ID_WORKREPLIST_BUTTON1+i, LEFT_ALIGN);
ControlSetAttributes(ID_WORKREPLIST_BUTTON1+i, TRUE,FALSE,FALSE,TRUE,TRUE);
}
StringSetAttribute (ID_WORKREPLIST_BJSJ, FALSE, TRUE);
//create return button
UISectionCenter::CreateUIObjects();
result = SUC;
return result;
}
void UIWorkRepList::OnScrollbarClick (void)
{
SHORT num = 0;
SHORT i = 0;
if (m_Count - m_IndexTop < WORKREPLIST_NUM)
{
num = m_Count - m_IndexTop;
}
else
{
num = WORKREPLIST_NUM;
}
for (i=0; i<num; ++i)
{
ControlEraseControl(ID_WORKREPLIST_BUTTON1+i);
ControlSetLabel(ID_WORKREPLIST_BUTTON1+i,
(BYTE*)m_strEditTime[m_IndexTop + i]);
ControlDrawControl (ID_WORKREPLIST_BUTTON1+i);
}
//
}
void UIWorkRepList::Show()
{
SHORT num = 0;
SHORT i = 0;
StringDrawString (ID_WORKREPLIST_BJSJ);
if (m_Count - m_IndexTop < WORKREPLIST_NUM)
{
num = m_Count - m_IndexTop;
}
else
{
num = WORKREPLIST_NUM;
ScrollbarDrawScrollbar (ID_WORKREPLIST_SCROLLBAR);
}
for (i=0; i<num; ++i)
{
ControlSetLabel(ID_WORKREPLIST_BUTTON1+i,
(BYTE*)m_strEditTime[m_IndexTop + i]);
ControlDrawControl (ID_WORKREPLIST_BUTTON1+i);
}
DrawReturnButton ();
}
//##ModelId=3D643ED10084
Err UIWorkRepList::DestroyWindow()
{
SHORT num = 0;
SHORT i = 0;
ObjectID form_id = PDAXWT_FORM;
UI_FormDeleteObject (ID_WORKREPLIST_BJSJ, form_id);
if (m_Count - m_IndexTop < WORKREPLIST_NUM)
{
num = m_Count - m_IndexTop;
}
else
{
num = WORKREPLIST_NUM;
}
for (i=0; i<num; ++i)
{
UI_FormDeleteObject (ID_WORKREPLIST_BUTTON1+i, form_id);
}
if (m_Count > WORKREPLIST_NUM)
{
UI_FormDeleteObject (ID_WORKREPLIST_SCROLLBAR, form_id);
}
//删除返回按键
UISectionCenter::DestroyUIObjects();
return SUC;
}
Err UIWorkRepList::OnListItemClick (SHORT ItemIndex)
{
SHORT iRecID = m_iDBListIndex[m_IndexTop + ItemIndex];
UIWorkRepContainer *pUIWorkRepContainer = new UIWorkRepContainer(m_bIsDraft,iRecID);
DestroyWindow();
if(!VERIFY_OK(pUIWorkRepContainer->Enter(this)))
{
this->Initialize();
this->Show();
}
return SUC;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -