#include "syInc.h"
#ifdef 窗口交易點
/*****************************
點擊事件
******************************/
class CPosUiTypeAddBtnClickListener:public CSyViewClickListener{
public:
// 構造
CPosUiTypeAddBtnClickListener(CPosUiTypeAddDlg * lpclObj){
m_lpclOuterDlg = lpclObj;
}
virtual ~CPosUiTypeAddBtnClickListener(){
}
// 點擊
syMsgRetE onClick(CSyView * lpclView){
CPosUiTypeAddDlg * lpclDlg = m_lpclOuterDlg;
if(NULL != lpclView && NULL != lpclDlg){
switch(lpclView->getID()){
// 功能選擇
case(CPosUiTypeAddDlg::CTRL_ID_FUNCTION):{
lpclDlg->clickFunction();
break;
}
// 管理主頁
case(CPosUiTypeAddDlg::CTRL_ID_ADMIN_INDEX):{
lpclDlg->clickAdminIndex();
break;
}
// 商店管理
case(CPosUiTypeAddDlg::CTRL_ID_STORE_ADMIN):{
lpclDlg->clickStoreAdmin();
break;
}
// 商品類別
case(CPosUiTypeAddDlg::CTRL_ID_GOODS_TYPE):{
lpclDlg->clickGoodsType();
break;
}
// 重置按鈕
case(CPosUiTypeAddDlg::CTRL_ID_RESET):{
lpclDlg->clickReset();
break;
}
// 退格按鈕
case(CPosUiTypeAddDlg::CTRL_ID_BACKSPACE):{
lpclDlg->clickBackspace();
break;
}
// 保存按鈕
case(CPosUiTypeAddDlg::CTRL_ID_SAVE):{
lpclDlg->clickSave();
break;
}
// 返回按鈕
case(CPosUiTypeAddDlg::CTRL_ID_RETURN):{
lpclDlg->clickReturn();
break;
}
// 關閉按鈕
case(CPosUiTypeAddDlg::CTRL_ID_CLOSE):{
lpclDlg->clickClose();
break;
}
// 類別顯示框
case(CPosUiTypeAddDlg::CTRL_ID_TYPE_SHOW_FRAME):{
lpclDlg->clickTypeShowFrame();
break;
}
// 類別編輯框
case(CPosUiTypeAddDlg::CTRL_ID_TYPE_EDIT_FRAME):{
lpclDlg->clickEditFrame(lpclView);
break;
}
// 是否啓用按鈕
case(CPosUiTypeAddDlg::CTRL_ID_IS_ENABLE):{
lpclDlg->clickIsEnable(lpclView);
break;
}
default:
break;
}
}
return SY_MSG_RET_PROC_OK;
}
private:
CPosUiTypeAddDlg * m_lpclOuterDlg;
};
/*****************************
構造
******************************/
CPosUiTypeAddDlgInstanceState::CPosUiTypeAddDlgInstanceState(){
m_bIsFocusShowed = CPosUiGoodsTypeDlg::FOCUS_SHOW_FLG_VALUE_ERR_NOT_EXIST;
m_bTypeFlg = CPosUiGoodsTypeDlg::GOODS_TYPE_VALUE_ERR_NOT_EXIST;
m_bTypeValue = CPosUiGoodsTypeDlg::TYPE_VALUE_ERR_NOT_EXIST;
m_bGoodsTypeFirstGradeFocusViewItemCnt = 0;
m_bGoodsTypeFirstGradeFocusPage = 0;
m_bCurrentFocusID = 0;
m_bCurrentParentedFocusID = 0;
m_bGoodsTypeLastViewItemCnt = 0;
m_bGoodsTypeLastPage = 0;
}
/*****************************
析構
******************************/
CPosUiTypeAddDlgInstanceState::~CPosUiTypeAddDlgInstanceState(){
}
/*****************************
構造
******************************/
CPosUiTypeAddDlg::CPosUiTypeAddDlg(CSyViewCtx * lpclCtx):CSyViewDlg(lpclCtx){
m_bStatusValue = ENABLE_VALUE;
}
/*****************************
析構
******************************/
CPosUiTypeAddDlg::~CPosUiTypeAddDlg(){
}
/*****************************
獲得返回信息實例狀態
******************************/
CSyViewDlgInstanceState * CPosUiTypeAddDlg::obtainBackInfoInstanceState(){
CPosUiTypeAddDlgInstanceState * lpclState = new CPosUiTypeAddDlgInstanceState();
if(NULL != lpclState){
CPosUiTypeAddDlgInstanceState * lpclTypeAddState = dynamic_cast<CPosUiTypeAddDlgInstanceState*>(getInstanceState());
if(NULL != lpclTypeAddState){
// 類別值
syDbgMsg("m_bTypeValue = %d\n", lpclTypeAddState->getTypeValue());
lpclState->setTypeValue(lpclTypeAddState->getTypeValue());
// 顯示標誌
syDbgMsg("m_bIsFocusShowed = %d\n", lpclTypeAddState->getFocusShowFlg());
lpclState->setFocusShowFlg(lpclTypeAddState->getFocusShowFlg());
if(CPosUiGoodsTypeDlg::FIRST_GRADE_FOCUS_SHOW_FLG_ENABLE_VALUE == lpclState->getFocusShowFlg()
|| CPosUiGoodsTypeDlg::SECOND_GRADE_FOCUS_SHOW_FLG_ENABLE_VALUE == lpclState->getFocusShowFlg()){
lpclState->setCurrentFocusID(lpclTypeAddState->getCurrentFocusID());
}
if(CPosUiGoodsTypeDlg::SECOND_GRADE_FOCUS_SHOW_FLG_UNABLE_VALUE == lpclState->getFocusShowFlg()){
lpclState->setCurrentParentedFocusID(lpclTypeAddState->getCurrentParentedFocusID());
}
if(CPosUiGoodsTypeDlg::FIRST_GRADE_FOCUS_SHOW_FLG_UNABLE_VALUE == lpclState->getFocusShowFlg()
|| CPosUiGoodsTypeDlg::SECOND_GRADE_FOCUS_SHOW_FLG_UNABLE_VALUE == lpclState->getFocusShowFlg()){
lpclState->setGoodsTypeLastPage(lpclTypeAddState->getGoodsTypeLastPage());
lpclState->setGoodsTypeLastViewItemCnt(lpclTypeAddState->getGoodsTypeLastViewItemCnt());
}
}
// 類別顯示框
CSyViewText* lpclTypeShowFrameText = dynamic_cast<CSyViewText*>(this->getChildByID(CPosUiTypeAddDlg::CTRL_ID_TYPE_SHOW_FRAME));
if(NULL != lpclTypeShowFrameText){
lpclState->m_clstrTypeShowFrame.setStr(lpclTypeShowFrameText->getString());
}
// 類別名稱編輯區
CSyViewText* lpclTypeEditFrameText = dynamic_cast<CSyViewText*>(this->getChildByID(CPosUiTypeAddDlg::CTRL_ID_TYPE_EDIT_FRAME));
if(NULL != lpclTypeEditFrameText){
lpclState->m_clstrTypeEditFrame.setStr(lpclTypeEditFrameText->getString());
}
}
return lpclState;
}
/*****************************
獲得實例狀態
******************************/
CPosUiTypeAddDlgInstanceState * CPosUiTypeAddDlg::obtainInstanceState(){
CPosUiTypeAddDlgInstanceState * lpclState = new CPosUiTypeAddDlgInstanceState();
return lpclState;
}
/*****************************
創建資源
******************************/
void CPosUiTypeAddDlg::onCreateRes(CSyViewDlgInstanceState * lpclInstanceState){
// 超類
CSyViewDlg::onCreateRes(lpclInstanceState);
// TODO ...
// 設定DLG尺寸
CPosUiTypeAddDlgBuildParam * lpclBuildPara = getAppCtx()->getSkin()->getUiTypeAddDlgBuildParam();
if(NULL != lpclBuildPara){
lpclBuildPara->initDlgPara(this);
lpclBuildPara->createView(this);
// 創建解碼數據,提高操作性能.
createImgDecodeData();
// 點擊監聽器
CSyView * lpclBtn = getFstChild();
while(NULL != lpclBtn){
lpclBtn->setClickListener(new CPosUiTypeAddBtnClickListener(this));
lpclBtn = lpclBtn->getNextBrother();
}
// 獲得分類添加界面變量實例狀態
getTypeAddInstanceState(lpclInstanceState);
}
}
/*****************************
釋放資源
******************************/
void CPosUiTypeAddDlg::onReleaseRes(){
// 超類
CSyViewDlg::onReleaseRes();
// TODO ...
// 釋放解碼數據
releaseImgDecodeData();
}
/*****************************
打開完成
******************************/
void CPosUiTypeAddDlg::onOpenComplete(CSyViewDlgInstanceState * lpclInstanceState){
// 超類
CSyViewDlg::onOpenComplete(lpclInstanceState);
// TODO ...
// 類別編輯框獲得焦點
CSyView * lpclFocusView = this->getChildByID(CPosUiTypeAddDlg::CTRL_ID_TYPE_EDIT_FRAME);
this->focusChildAndRedrawShow(lpclFocusView);
CSyViewEdit* lpViewTypeEditFrame= dynamic_cast<CSyViewEdit *>(lpclFocusView);
lpViewTypeEditFrame->createCaretTimer();
this->postSwitchToNumberDlgWhenUnopened();
}
/*****************************
創建圖片解碼數據
******************************/
void CPosUiTypeAddDlg::createImgDecodeData(){
this->createBgImgDecSurface(SY_TRUE, SY_TRUE, SY_FALSE);
}
/*****************************
釋放圖片解碼數據
******************************/
void CPosUiTypeAddDlg::releaseImgDecodeData(){
this->deleteBgImgDecSurfaceWhenHasOtherSrc(SY_TRUE, SY_TRUE, SY_TRUE);
}
/*****************************
點擊功能選擇按鈕
******************************/
void CPosUiTypeAddDlg::clickFunction(){
// 點擊返回按鈕切換到功能選擇頁面
// 頁面管理器
CSyViewDlgMgr * lpclDlgMgr = this->getViewDlgMgr();
// 目的頁面
CPosUiFunctionDlg * lpclDstDlg = dynamic_cast<CPosUiFunctionDlg *>(lpclDlgMgr->obtainDlgInstanceByID(CSyViewDlg::ID_UI_FUNCTION));
if(NULL == lpclDstDlg){
return ;
}
// 切換窗口
CPosUiFunctionDlgInstanceState * lpclState = lpclDstDlg->obtainInstanceState();
lpclState->m_enOpenMode = CSyViewDlg::OPEN_MODE_ENTER;
this->postSwitchDlg(this, lpclDstDlg, lpclState);
lpclDlgMgr->delDlgReturnInfo(CSyViewDlg::ID_UI_FUNCTION);
lpclDlgMgr->delDlgReturnInfo(CSyViewDlg::ID_UI_ADMIN_INDEX);
lpclDlgMgr->delDlgReturnInfo(CSyViewDlg::ID_UI_STORE_ADMIN);
lpclDlgMgr->delDlgReturnInfo(CSyViewDlg::ID_UI_GOODS_TYPE);
this->closeInputInterfaceWhenOpened();
}
/*****************************
點擊管理主頁按鈕
******************************/
void CPosUiTypeAddDlg::clickAdminIndex(){
// 點擊管理主頁按鈕切換到管理主頁頁面
// 頁面管理器
CSyViewDlgMgr * lpclDlgMgr = this->getViewDlgMgr();
// 目的頁面
CPosUiAdminIndexDlg * lpclDstDlg = dynamic_cast<CPosUiAdminIndexDlg *>(lpclDlgMgr->obtainDlgInstanceByID(CSyViewDlg::ID_UI_ADMIN_INDEX));
if(NULL == lpclDstDlg){
return ;
}
// 切換窗口
CPosUiAdminIndexDlgInstanceState * lpclState = lpclDstDlg->obtainInstanceState();
lpclState->m_enOpenMode = CSyViewDlg::OPEN_MODE_ENTER;
this->postSwitchDlg(this, lpclDstDlg, lpclState);
lpclDlgMgr->delDlgReturnInfo(CSyViewDlg::ID_UI_ADMIN_INDEX);
lpclDlgMgr->delDlgReturnInfo(CSyViewDlg::ID_UI_STORE_ADMIN);
lpclDlgMgr->delDlgReturnInfo(CSyViewDlg::ID_UI_GOODS_TYPE);
this->closeInputInterfaceWhenOpened();
}
/*****************************
點擊商店管理按鈕
******************************/
void CPosUiTypeAddDlg::clickStoreAdmin(){
// 點擊商店管理按鈕切換到商店管理頁面
// 頁面管理器
CSyViewDlgMgr * lpclDlgMgr = this->getViewDlgMgr();
// 目的頁面
CPosUiStoreAdminDlg * lpclDstDlg = dynamic_cast<CPosUiStoreAdminDlg *>(lpclDlgMgr->obtainDlgInstanceByID(CSyViewDlg::ID_UI_STORE_ADMIN));
if(NULL == lpclDstDlg){
return ;
}
// 切換窗口
CPosUiStoreAdminDlgInstanceState * lpclState = lpclDstDlg->obtainInstanceState();
lpclState->m_enOpenMode = CSyViewDlg::OPEN_MODE_ENTER;
this->postSwitchDlg(this, lpclDstDlg, lpclState);
lpclDlgMgr->delDlgReturnInfo(CSyViewDlg::ID_UI_STORE_ADMIN);
lpclDlgMgr->delDlgReturnInfo(CSyViewDlg::ID_UI_GOODS_TYPE);
this->closeInputInterfaceWhenOpened();
}
/*****************************
點擊商品類型按鈕
******************************/
void CPosUiTypeAddDlg::clickGoodsType(){
this->postSwitchDlgBackAndCloseInputInterface();
}
/*****************************
點擊重置按鈕
******************************/
void CPosUiTypeAddDlg::clickReset(){
CSyViewEdit * lpclFocusView = dynamic_cast<CSyViewEdit *>(getFocusChild());
if(NULL != lpclFocusView){
// 清空
lpclFocusView->setText(NULL);
// 重畫
lpclFocusView->reDraw();
// 顯示到屏幕
showViewToScrn(lpclFocusView);
}
}
/*****************************
點擊退格按鈕
******************************/
void CPosUiTypeAddDlg::clickBackspace(){
CSyViewEdit * lpclFocusView = dynamic_cast<CSyViewEdit *>(getFocusChild());
if(NULL != lpclFocusView){
CSyString * lpclDstStr = lpclFocusView->getString();
// 退格
lpclDstStr->backSpace();
// 重畫
lpclFocusView->reDraw();
// 顯示到屏幕
showViewToScrn(lpclFocusView);
}
}
/*****************************
點擊保存按鈕
******************************/
void CPosUiTypeAddDlg::clickSave(){
syUpdateFileCategoryDatabaseRecordT stCategoryRecord;
syZero(&stCategoryRecord, sizeof(syUpdateFileCategoryDatabaseRecordT));
//獲取輸入的商品類別名稱
CSyViewEdit* lpViewTypeEditFrame = dynamic_cast<CSyViewEdit *>(this->getChildByID(CPosUiTypeAddDlg::CTRL_ID_TYPE_EDIT_FRAME));
CSyString clUtf8TypeEditFrame;
clUtf8TypeEditFrame.chgCharset(SY_CHARSET_UTF8);
clUtf8TypeEditFrame.setStr(lpViewTypeEditFrame->getString());
syDbgMsg("TypeEditFrame is :%s\n", clUtf8TypeEditFrame.getchStr());
stCategoryRecord.lpCategoryName = clUtf8TypeEditFrame.getchStr();
stCategoryRecord.iIsEnable = m_bStatusValue;
INT32 isFocusShowFlg = this->getInstanceStateFocusShowFlg();
if( CPosUiGoodsTypeDlg::FIRST_GRADE_FOCUS_SHOW_FLG_UNABLE_VALUE == isFocusShowFlg ){
stCategoryRecord.iParentedId = 0;
}
if( CPosUiGoodsTypeDlg::SECOND_GRADE_FOCUS_SHOW_FLG_UNABLE_VALUE == isFocusShowFlg ){
CPosUiTypeAddDlgInstanceState * lpclState = dynamic_cast<CPosUiTypeAddDlgInstanceState*>(getInstanceState());
INT32 iGoodsTypeFirstGradeCurrentFocusID = lpclState->getCurrentParentedFocusID();
stCategoryRecord.iParentedId = iGoodsTypeFirstGradeCurrentFocusID;
}
if( CPosUiGoodsTypeDlg::FIRST_GRADE_FOCUS_SHOW_FLG_ENABLE_VALUE == isFocusShowFlg
|| CPosUiGoodsTypeDlg::SECOND_GRADE_FOCUS_SHOW_FLG_ENABLE_VALUE == isFocusShowFlg ){
this->UpdateGoodsType(&stCategoryRecord, isFocusShowFlg);
}
if( CPosUiGoodsTypeDlg::FIRST_GRADE_FOCUS_SHOW_FLG_UNABLE_VALUE == isFocusShowFlg
|| CPosUiGoodsTypeDlg::SECOND_GRADE_FOCUS_SHOW_FLG_UNABLE_VALUE == isFocusShowFlg ){
this->InsertIntoGoodsType(&stCategoryRecord, isFocusShowFlg);
}
}
/*****************************
點擊返回按鈕
******************************/
void CPosUiTypeAddDlg::clickReturn(){
this->postSwitchDlgBackAndCloseInputInterface();
}
/*****************************
點擊關閉按鈕
******************************/
void CPosUiTypeAddDlg::clickClose(){
this->postSwitchDlgBackAndCloseInputInterface();
}
/*****************************
點擊功能選擇按鈕
******************************/
void CPosUiTypeAddDlg::clickTypeShowFrame(){
}
// 點擊編輯框的相應操作
void CPosUiTypeAddDlg::clickEditFrame(CSyView * lpclView){
this->focusChildAndRedrawShow(lpclView);
CSyViewEdit* lpclViewEdit = dynamic_cast<CSyViewEdit *>(lpclView);
lpclViewEdit->createCaretTimer();
this->postSwitchToNumberDlgWhenUnopened();
}
//是否啓用
void CPosUiTypeAddDlg::clickIsEnable(CSyView * lpclView){
SY_BOOL bIsSelected = lpclView->getSelected();
bIsSelected = (SY_TRUE == bIsSelected)?SY_FALSE:SY_TRUE;
if( SY_TRUE == bIsSelected ){
m_bStatusValue = UNABLE_VALUE;
}
if( SY_FALSE == bIsSelected ){
m_bStatusValue = ENABLE_VALUE;
}
lpclView->setSelectedReDraw(bIsSelected);
lpclView->showSelfToScrn();
syDbgMsg("m_bStatusValue = %d\n\n", m_bStatusValue);
}
/***********************************************
添加獲得焦點行的工號到收銀員增加界面的工號框內
***********************************************/
void CPosUiTypeAddDlg::addTypeShowFrameText(CSyLangRes::LangItemIdxE iItemIdx){
CSyViewText* lpclTypeShowFrameText = dynamic_cast<CSyViewText*>(this->getChildByID(CPosUiTypeAddDlg::CTRL_ID_TYPE_SHOW_FRAME));
if(NULL != lpclTypeShowFrameText){
// 選擇語言
CSyLangRes * lpclLangRes = lpclTypeShowFrameText->getAppCtx()->getLangRes();
if(NULL != lpclLangRes){
//lpclTipsText->setText("是否刪除 ?", sizeof("是否刪除 ?"), SY_CHARSET_UTF8);
if( NULL != lpclLangRes->getStrByItemIdx(iItemIdx) ){
lpclTypeShowFrameText->setText(
lpclLangRes->getStrByItemIdx(iItemIdx),
lpclLangRes->getStrSizeByItemIdx(iItemIdx),
lpclLangRes->getCharsetByItemIdx(iItemIdx)
);
}
else{
lpclTypeShowFrameText->setText(NULL);
}
}
//對齊方式爲居中顯示
lpclTypeShowFrameText->setAlign(SY_TEXT_ALIGN_CENTER);
// 重畫
lpclTypeShowFrameText->reDraw();
// 顯示到屏幕
showViewToScrn(lpclTypeShowFrameText);
}
}
/***********************************************
添加獲得焦點行的密碼到收銀員增加界面的密碼框內
***********************************************/
void CPosUiTypeAddDlg::addTypeEditFrameText(const char * lpchStr){
CSyViewText* lpclTypeEditFrameText = dynamic_cast<CSyViewText*>(this->getChildByID(CPosUiTypeAddDlg::CTRL_ID_TYPE_EDIT_FRAME));
if(NULL != lpclTypeEditFrameText){
if(NULL != lpchStr){
lpclTypeEditFrameText->setText(lpchStr, syChStrLen(lpchStr), SY_CHARSET_UTF8);
}
else{
lpclTypeEditFrameText->setText(NULL);
}
}
}
// 獲得分類添加界面變量實例狀態
void CPosUiTypeAddDlg::getTypeAddInstanceState(CSyViewDlgInstanceState * lpclInstanceState){
CPosUiTypeAddDlgInstanceState * lpclState = dynamic_cast<CPosUiTypeAddDlgInstanceState*>(lpclInstanceState);
if(NULL != lpclState){
// 獲取類別顯示框和類別編輯區實例
CSyViewText* lpclTypeShowFrameText = dynamic_cast<CSyViewText*>(this->getChildByID(CPosUiTypeAddDlg::CTRL_ID_TYPE_SHOW_FRAME));
if(NULL != lpclTypeShowFrameText){
lpclTypeShowFrameText->setText(&(lpclState->m_clstrTypeShowFrame));
}
CSyViewText* lpclTypeEditFrameText = dynamic_cast<CSyViewText*>(this->getChildByID(CPosUiTypeAddDlg::CTRL_ID_TYPE_EDIT_FRAME));
if(NULL != lpclTypeEditFrameText){
lpclTypeEditFrameText->setText(&(lpclState->m_clstrTypeEditFrame));
}
// 依據類別值獲取類別顯示區的顯示內容
syDbgMsg("m_bTypeFlg = %d.\n", lpclState->getTypeFlg());
if(lpclState->getTypeFlg() == CPosUiGoodsTypeDlg::FIRST_GRADE_VALUE){
this->addTypeShowFrameText(CSyLangRes::lang_posFirstGradeGoodsType);
}
if(lpclState->getTypeFlg() == CPosUiGoodsTypeDlg::SECOND_GRADE_VALUE){
this->addTypeShowFrameText(CSyLangRes::lang_posSecondGradeGoodsType);
}
// 依據顯示標誌值獲取類別名稱編輯框的顯示內容
INT32 currentFocusID = lpclState->getCurrentFocusID();
syDbgMsg("currentFocusID = %d.\n", currentFocusID);
INT32 isFocusShowFlg = lpclState->getFocusShowFlg();
syDbgMsg("isFocusShowFlg = %d\n", isFocusShowFlg);
if( CPosUiGoodsTypeDlg::FIRST_GRADE_FOCUS_SHOW_FLG_ENABLE_VALUE == isFocusShowFlg ){
this->showGoodsTypeFirstGradeFocusItemInformation(currentFocusID);
}
if( CPosUiGoodsTypeDlg::SECOND_GRADE_FOCUS_SHOW_FLG_ENABLE_VALUE == isFocusShowFlg ){
this->showGoodsTypeSecondGradeFocusItemInformation(currentFocusID);
}
}
}
/*********************************************
獲取獲得一級分類焦點行的信息並顯示出來
*********************************************/
void CPosUiTypeAddDlg::showGoodsTypeFirstGradeFocusItemInformation(INT32 currentFocusID){
// 頁面管理器
CSyViewDlgMgr * lpclDlgMgr = this->getViewDlgMgr();
if(NULL != lpclDlgMgr){
// 商品類別目的頁面
CPosUiGoodsTypeDlg * lpclDstDlg = dynamic_cast<CPosUiGoodsTypeDlg *>(lpclDlgMgr->obtainDlgInstanceByID(CSyViewDlg::ID_UI_GOODS_TYPE));
if(NULL == lpclDstDlg){
return ;
}
CPosUiTypeAddDlgInstanceState * lpclState = dynamic_cast<CPosUiTypeAddDlgInstanceState*>(getInstanceState());
if(NULL != lpclState){
INT32 isTypeValue = lpclState->getTypeValue();
if( isTypeValue == CPosUiGoodsTypeDlg::TYPE_VALUE
|| isTypeValue == CPosUiGoodsTypeDlg::TYPE_UNABLE_VALUE ){
lpclDstDlg->getGoodsTypeFirstGradeByID(currentFocusID);
}
if( isTypeValue == CPosUiGoodsTypeDlg::SUPPLIER_VALUE
|| isTypeValue == CPosUiGoodsTypeDlg::SUPPLIER_UNABLE_VALUE ){
lpclDstDlg->getGoodsTypeFirstGradeSupplierByID(currentFocusID);
}
syDbgMsg("goodsTypeResTab[1] = %s.\n", lpclDstDlg->getGoodsTypeResTab(1));
this->addTypeEditFrameText(lpclDstDlg->getGoodsTypeResTab(1));
syDbgMsg("goodsTypeResTab[3] = %s.\n", lpclDstDlg->getGoodsTypeResTab(3));
if( syAtoi(lpclDstDlg->getGoodsTypeResTab(3)) == CPosUiTypeAddDlg::UNABLE_VALUE ){
// 男性複選框
CSyView * lpclIsEnableView = this->getChildByID(CPosUiTypeAddDlg::CTRL_ID_IS_ENABLE);
if(NULL != lpclIsEnableView){
clickIsEnable(lpclIsEnableView);
}
}
}
}
}
/*********************************************
獲取獲得二級分類焦點行的信息並顯示出來
*********************************************/
void CPosUiTypeAddDlg::showGoodsTypeSecondGradeFocusItemInformation(INT32 currentFocusID){
// 頁面管理器
CSyViewDlgMgr * lpclDlgMgr = this->getViewDlgMgr();
if(NULL != lpclDlgMgr){
// 商品類別目的頁面
CPosUiGoodsTypeDlg * lpclDstDlg = dynamic_cast<CPosUiGoodsTypeDlg *>(lpclDlgMgr->obtainDlgInstanceByID(CSyViewDlg::ID_UI_GOODS_TYPE));
if(NULL == lpclDstDlg){
return ;
}
CPosUiTypeAddDlgInstanceState * lpclState = dynamic_cast<CPosUiTypeAddDlgInstanceState*>(getInstanceState());
if(NULL != lpclState){
INT32 isTypeValue = lpclState->getTypeValue();
if( isTypeValue == CPosUiGoodsTypeDlg::TYPE_VALUE
|| isTypeValue == CPosUiGoodsTypeDlg::TYPE_UNABLE_VALUE ){
lpclDstDlg->getGoodsTypeSecondGradeByID(currentFocusID);
}
if( isTypeValue == CPosUiGoodsTypeDlg::SUPPLIER_VALUE
|| isTypeValue == CPosUiGoodsTypeDlg::SUPPLIER_UNABLE_VALUE ){
lpclDstDlg->getGoodsTypeSecondGradeSupplierByID(currentFocusID);
}
syDbgMsg("goodsTypeResTab[1] = %s.\n", lpclDstDlg->getGoodsTypeResTab(1));
this->addTypeEditFrameText(lpclDstDlg->getGoodsTypeResTab(1));
syDbgMsg("goodsTypeResTab[3] = %s.\n", lpclDstDlg->getGoodsTypeResTab(3));
if( syAtoi(lpclDstDlg->getGoodsTypeResTab(3)) == CPosUiTypeAddDlg::UNABLE_VALUE ){
// 男性複選框
CSyView * lpclIsEnableView = this->getChildByID(CPosUiTypeAddDlg::CTRL_ID_IS_ENABLE);
if(NULL != lpclIsEnableView){
clickIsEnable(lpclIsEnableView);
}
}
}
}
}
// 更新修改獲得焦點條項
void CPosUiTypeAddDlg::UpdateGoodsType(syUpdateFileCategoryDatabaseRecordT * lpstRecord, INT32 isFocusShowFlg){
if( CPosUiGoodsTypeDlg::FIRST_GRADE_FOCUS_SHOW_FLG_ENABLE_VALUE == isFocusShowFlg ){
UpdateGoodsTypeFirstGrade(lpstRecord);
}
if( CPosUiGoodsTypeDlg::SECOND_GRADE_FOCUS_SHOW_FLG_ENABLE_VALUE == isFocusShowFlg ){
UpdateGoodsTypeSecondGrade(lpstRecord);
}
this->postSwitchDlgBackAndCloseInputInterface();
}
// 更新修改一級分類中獲得焦點條項
INT32 CPosUiTypeAddDlg::UpdateGoodsTypeFirstGrade(syUpdateFileCategoryDatabaseRecordT * lpstRecord){
CPosUiTypeAddDlgInstanceState * lpclState = dynamic_cast<CPosUiTypeAddDlgInstanceState*>(getInstanceState());
// 獲取獲得焦點行的ID
INT32 currentFocusID = lpclState->getCurrentFocusID();
syDbgMsg("currentFocusID = %d.\n",currentFocusID);
if( lpclState->getTypeValue() == CPosUiGoodsTypeDlg::TYPE_VALUE
|| lpclState->getTypeValue() == CPosUiGoodsTypeDlg::TYPE_UNABLE_VALUE ){
this->UpdateGoodsTypeFirstGradeByID(lpstRecord, currentFocusID);
this->UpdateGoodsTypeSecondGradeByParentedID(lpstRecord,currentFocusID);
this->UpdateGoodsByParentedFirstGradeCategoryID(lpstRecord,currentFocusID);
}
if( lpclState->getTypeValue() == CPosUiGoodsTypeDlg::SUPPLIER_VALUE
|| lpclState->getTypeValue() == CPosUiGoodsTypeDlg::SUPPLIER_UNABLE_VALUE ){
this->UpdateGoodsTypeFirstGradeSupplierByID(lpstRecord, currentFocusID);
this->UpdateGoodsTypeSecondGradeSupplierByParentedID(lpstRecord, currentFocusID);
this->UpdateGoodsByParentedFirstGradeSupplierID(lpstRecord, currentFocusID);
}
return SY_TRUE;
}
// 更新修改二級分類中獲得焦點條項
INT32 CPosUiTypeAddDlg::UpdateGoodsTypeSecondGrade(syUpdateFileCategoryDatabaseRecordT * lpstRecord){
CPosUiTypeAddDlgInstanceState * lpclState = dynamic_cast<CPosUiTypeAddDlgInstanceState*>(getInstanceState());
// 獲取獲得焦點行的ID
INT32 currentFocusID = lpclState->getCurrentFocusID();
syDbgMsg("currentFocusID = %d.\n",currentFocusID);
if( lpclState->getTypeValue() == CPosUiGoodsTypeDlg::TYPE_VALUE
|| lpclState->getTypeValue() == CPosUiGoodsTypeDlg::TYPE_UNABLE_VALUE ){
this->UpdateGoodsTypeSecondGradeByID(lpstRecord, currentFocusID);
this->UpdateGoodsByParentedSecondGradeCategoryID(lpstRecord, currentFocusID);
}
if( lpclState->getTypeValue() == CPosUiGoodsTypeDlg::SUPPLIER_VALUE
|| lpclState->getTypeValue() == CPosUiGoodsTypeDlg::SUPPLIER_UNABLE_VALUE ){
this->UpdateGoodsTypeSecondGradeSupplierByID(lpstRecord, currentFocusID);
this->UpdateGoodsByParentedSecondGradeSupplierID(lpstRecord, currentFocusID);
}
return SY_TRUE;
}
// 調用數據庫,修改獲得焦點條項對應數據庫表項
INT32 CPosUiTypeAddDlg::UpdateGoodsTypeFirstGradeByID(syUpdateFileCategoryDatabaseRecordT * lpstRecord, int categoryID){
// 創建SQL
CPosSqlApp * lpPosSql = new CPosSqlApp();
if(NULL != lpPosSql){
// 修改數據庫表中獲取指定ID 的一級類型
if(SY_FALSE == lpPosSql->UpdateGoodsTypeFirstGradeByID(lpstRecord, categoryID)){
syDbgMsg("UpdateGoodsTypeFirstGradeByID function Failed.\n");
return SY_FALSE;
}
delete lpPosSql;
lpPosSql = NULL;
}
return SY_TRUE;
}
// 依據獲得的二級分類父焦點ID刷新對應的二級分類
INT32 CPosUiTypeAddDlg::UpdateGoodsTypeSecondGradeByParentedID(syUpdateFileCategoryDatabaseRecordT * lpstRecord, int categoryID){
// 創建SQL
CPosSqlApp * lpPosSql = new CPosSqlApp();
if(NULL != lpPosSql){
// 依據所屬父類別ID刷新對應的二級類別
if(SY_FALSE == lpPosSql->UpdateGoodsTypeSecondGradeByParentedID(lpstRecord, categoryID)){
syDbgMsg("UpdateGoodsTypeSecondGradeByParentedID function Failed.\n");
return SY_FALSE;
}
delete lpPosSql;
lpPosSql = NULL;
}
return SY_TRUE;
}
// 依據獲得的商品父一級分類焦點ID刷新對應的商品表項
INT32 CPosUiTypeAddDlg::UpdateGoodsByParentedFirstGradeCategoryID(syUpdateFileCategoryDatabaseRecordT * lpstRecord, int categoryID){
// 創建SQL
CPosSqlApp * lpPosSql = new CPosSqlApp();
if(NULL != lpPosSql){
// 依據所屬父一級分類ID刷新對應的商品表項
if(SY_FALSE == lpPosSql->UpdateGoodsByParentedFirstGradeCategoryID(lpstRecord, categoryID)){
syDbgMsg("UpdateGoodsByParentedFirstGradeCategoryID function Failed.\n");
return SY_FALSE;
}
delete lpPosSql;
lpPosSql = NULL;
}
return SY_TRUE;
}
// 調用數據庫,修改獲得焦點條項對應數據庫表項
INT32 CPosUiTypeAddDlg::UpdateGoodsTypeSecondGradeByID(syUpdateFileCategoryDatabaseRecordT * lpstRecord, int categoryID){
// 創建SQL
CPosSqlApp * lpPosSql = new CPosSqlApp();
if(NULL != lpPosSql){
syDbgMsg("m_bStatusValue = %d.\n", m_bStatusValue);
// 修改數據庫表中獲取指定ID 的二級類型
if(SY_FALSE == lpPosSql->UpdateGoodsTypeSecondGradeByID(lpstRecord, categoryID)){
syDbgMsg("UpdateGoodsTypeSecondGradeByID function Failed.\n");
return SY_FALSE;
}
delete lpPosSql;
lpPosSql = NULL;
}
return SY_TRUE;
}
// 依據獲得的商品父二級分類焦點ID刷新對應的商品表項
INT32 CPosUiTypeAddDlg::UpdateGoodsByParentedSecondGradeCategoryID(syUpdateFileCategoryDatabaseRecordT * lpstRecord, int categoryID){
// 創建SQL
CPosSqlApp * lpPosSql = new CPosSqlApp();
if(NULL != lpPosSql){
// 依據所屬父二級分類ID刷新對應的商品表項
if(SY_FALSE == lpPosSql->UpdateGoodsByParentedSecondGradeCategoryID(lpstRecord, categoryID)){
syDbgMsg("UpdateGoodsByParentedSecondGradeCategoryID function Failed.\n");
return SY_FALSE;
}
delete lpPosSql;
lpPosSql = NULL;
}
return SY_TRUE;
}
// 調用數據庫,修改獲得焦點條項對應數據庫表項
INT32 CPosUiTypeAddDlg::UpdateGoodsTypeFirstGradeSupplierByID(syUpdateFileCategoryDatabaseRecordT * lpstRecord, int categoryID){
// 創建SQL
CPosSqlApp * lpPosSql = new CPosSqlApp();
if(NULL != lpPosSql){
// 修改數據庫表中獲取指定ID 的一級供應商
if(SY_FALSE == lpPosSql->UpdateGoodsTypeFirstGradeSupplierByID(lpstRecord, categoryID)){
syDbgMsg("UpdateGoodsTypeFirstGradeSupplierByID function Failed.\n");
return SY_FALSE;
}
delete lpPosSql;
lpPosSql = NULL;
}
return SY_TRUE;
}
// 依據獲得的二級供應商父焦點ID刷新對應的二級供應商
INT32 CPosUiTypeAddDlg::UpdateGoodsTypeSecondGradeSupplierByParentedID(syUpdateFileCategoryDatabaseRecordT * lpstRecord, int categoryID){
// 創建SQL
CPosSqlApp * lpPosSql = new CPosSqlApp();
if(NULL != lpPosSql){
// 依據所屬父類別ID刷新對應的二級供應商
if(SY_FALSE == lpPosSql->UpdateGoodsTypeSecondGradeSupplierByParentedID(lpstRecord, categoryID)){
syDbgMsg("UpdateGoodsTypeSecondGradeSupplierByParentedID function Failed.\n");
return SY_FALSE;
}
delete lpPosSql;
lpPosSql = NULL;
}
return SY_TRUE;
}
// 依據獲得的商品父一級供應商焦點ID刷新對應的商品表項
INT32 CPosUiTypeAddDlg::UpdateGoodsByParentedFirstGradeSupplierID(syUpdateFileCategoryDatabaseRecordT * lpstRecord, int categoryID){
// 創建SQL
CPosSqlApp * lpPosSql = new CPosSqlApp();
if(NULL != lpPosSql){
// 依據所屬父一級供應商ID刷新對應的商品表項
if(SY_FALSE == lpPosSql->UpdateGoodsByParentedFirstGradeSupplierID(lpstRecord, categoryID)){
syDbgMsg("UpdateGoodsByParentedFirstGradeSupplierID function Failed.\n");
return SY_FALSE;
}
delete lpPosSql;
lpPosSql = NULL;
}
return SY_TRUE;
}
// 調用數據庫,修改獲得焦點條項對應數據庫表項
INT32 CPosUiTypeAddDlg::UpdateGoodsTypeSecondGradeSupplierByID(syUpdateFileCategoryDatabaseRecordT * lpstRecord, int categoryID){
// 創建SQL
CPosSqlApp * lpPosSql = new CPosSqlApp();
if(NULL != lpPosSql){
// 修改數據庫表中獲取指定ID 的二級供應商
if(SY_FALSE == lpPosSql->UpdateGoodsTypeSecondGradeSupplierByID(lpstRecord, categoryID)){
syDbgMsg("UpdateGoodsTypeSecondGradeSupplierByID function Failed.\n");
return SY_FALSE;
}
delete lpPosSql;
lpPosSql = NULL;
}
return SY_TRUE;
}
// 依據獲得的商品父二級供應商焦點ID刷新對應的商品表項
INT32 CPosUiTypeAddDlg::UpdateGoodsByParentedSecondGradeSupplierID(syUpdateFileCategoryDatabaseRecordT * lpstRecord, int categoryID){
// 創建SQL
CPosSqlApp * lpPosSql = new CPosSqlApp();
if(NULL != lpPosSql){
// 依據所屬父二級供應商ID刷新對應的商品表項
if(SY_FALSE == lpPosSql->UpdateGoodsByParentedSecondGradeSupplierID(lpstRecord, categoryID)){
syDbgMsg("UpdateGoodsByParentedSecondGradeSupplierID function Failed.\n");
return SY_FALSE;
}
delete lpPosSql;
lpPosSql = NULL;
}
return SY_TRUE;
}
// 插入新的一行
void CPosUiTypeAddDlg::InsertIntoGoodsType(syUpdateFileCategoryDatabaseRecordT * lpstRecord, INT32 isFocusShowFlg){
if( CPosUiGoodsTypeDlg::FIRST_GRADE_FOCUS_SHOW_FLG_UNABLE_VALUE == isFocusShowFlg ){
InsertIntoGoodsTypeFirstGrade(lpstRecord);
}
if( CPosUiGoodsTypeDlg::SECOND_GRADE_FOCUS_SHOW_FLG_UNABLE_VALUE == isFocusShowFlg ){
InsertIntoGoodsTypeSecondGrade(lpstRecord);
}
this->getLastPosViewAndLastPage(isFocusShowFlg);
this->postSwitchToGoodsTypeDlg(isFocusShowFlg);
this->closeInputInterfaceWhenOpened();
}
// 插入一級分類中新的一行
INT32 CPosUiTypeAddDlg::InsertIntoGoodsTypeFirstGrade(syUpdateFileCategoryDatabaseRecordT * lpstRecord){
CPosUiTypeAddDlgInstanceState * lpclState = dynamic_cast<CPosUiTypeAddDlgInstanceState*>(getInstanceState());
if( lpclState->getTypeValue() == CPosUiGoodsTypeDlg::TYPE_VALUE
|| lpclState->getTypeValue() == CPosUiGoodsTypeDlg::TYPE_UNABLE_VALUE ){
this->InsertOneRowToGoodsTypeFirstGrade(lpstRecord);
}
if( lpclState->getTypeValue() == CPosUiGoodsTypeDlg::SUPPLIER_VALUE
|| lpclState->getTypeValue() == CPosUiGoodsTypeDlg::SUPPLIER_UNABLE_VALUE ){
this->InsertOneRowToGoodsTypeFirstGradeSupplier(lpstRecord);
}
return SY_TRUE;
}
// 插入二級分類中新的一行
INT32 CPosUiTypeAddDlg::InsertIntoGoodsTypeSecondGrade(syUpdateFileCategoryDatabaseRecordT * lpstRecord){
CPosUiTypeAddDlgInstanceState * lpclState = dynamic_cast<CPosUiTypeAddDlgInstanceState*>(getInstanceState());
if( lpclState->getTypeValue() == CPosUiGoodsTypeDlg::TYPE_VALUE
|| lpclState->getTypeValue() == CPosUiGoodsTypeDlg::TYPE_UNABLE_VALUE ){
this->InsertOneRowToGoodsTypeSecondGrade(lpstRecord);
}
if( lpclState->getTypeValue() == CPosUiGoodsTypeDlg::SUPPLIER_VALUE
|| lpclState->getTypeValue() == CPosUiGoodsTypeDlg::SUPPLIER_UNABLE_VALUE ){
this->InsertOneRowToGoodsTypeSecondGradeSupplier(lpstRecord);
}
return SY_TRUE;
}
// 調用數據庫,插入一行到數據庫的最後一行的下一行
INT32 CPosUiTypeAddDlg::InsertOneRowToGoodsTypeFirstGrade(syUpdateFileCategoryDatabaseRecordT * lpstRecord){
// 創建SQL
CPosSqlApp * lpPosSql = new CPosSqlApp();
if(NULL != lpPosSql){
// 插入新的一級類型
if(SY_FALSE == lpPosSql->InsertOneRowToGoodsTypeFirstGrade(lpstRecord)){
syDbgMsg("InsertOneRowToGoodsTypeFirstGrade function Failed.\n");
return SY_FALSE;
}
delete lpPosSql;
lpPosSql = NULL;
}
return SY_TRUE;
}
// 調用數據庫,插入一行到數據庫的最後一行的下一行
INT32 CPosUiTypeAddDlg::InsertOneRowToGoodsTypeSecondGrade(syUpdateFileCategoryDatabaseRecordT * lpstRecord){
// 創建SQL
CPosSqlApp * lpPosSql = new CPosSqlApp();
if(NULL != lpPosSql){
// 插入新的二級類型
if(SY_FALSE == lpPosSql->InsertOneRowToGoodsTypeSecondGrade(lpstRecord)){
syDbgMsg("InsertOneRowToGoodsTypeSecondGrade function Failed.\n");
return SY_FALSE;
}
delete lpPosSql;
lpPosSql = NULL;
}
return SY_TRUE;
}
// 調用數據庫,插入一行到數據庫的最後一行的下一行
INT32 CPosUiTypeAddDlg::InsertOneRowToGoodsTypeFirstGradeSupplier(syUpdateFileCategoryDatabaseRecordT * lpstRecord){
// 創建SQL
CPosSqlApp * lpPosSql = new CPosSqlApp();
if(NULL != lpPosSql){
// 插入新的一級供應商
if(SY_FALSE == lpPosSql->InsertOneRowToGoodsTypeFirstGradeSupplier(lpstRecord)){
syDbgMsg("InsertOneRowToGoodsTypeFirstGradeSupplier function Failed.\n");
return SY_FALSE;
}
delete lpPosSql;
lpPosSql = NULL;
}
return SY_TRUE;
}
// 調用數據庫,插入一行到數據庫的最後一行的下一行
INT32 CPosUiTypeAddDlg::InsertOneRowToGoodsTypeSecondGradeSupplier(syUpdateFileCategoryDatabaseRecordT * lpstRecord){
// 創建SQL
CPosSqlApp * lpPosSql = new CPosSqlApp();
if(NULL != lpPosSql){
// 插入新的二級供應商
if(SY_FALSE == lpPosSql->InsertOneRowToGoodsTypeSecondGradeSupplier(lpstRecord)){
syDbgMsg("InsertOneRowToGoodsTypeSecondGradeSupplier function Failed.\n");
return SY_FALSE;
}
delete lpPosSql;
lpPosSql = NULL;
}
return SY_TRUE;
}
void CPosUiTypeAddDlgInstanceState::setFocusShowFlg(INT32 iIsFocusShowed){
m_bIsFocusShowed = iIsFocusShowed;
}
INT32 CPosUiTypeAddDlgInstanceState::getFocusShowFlg(){
return m_bIsFocusShowed;
}
void CPosUiTypeAddDlgInstanceState::setTypeFlg(INT32 iTypeFlg){
m_bTypeFlg = iTypeFlg;
}
INT32 CPosUiTypeAddDlgInstanceState::getTypeFlg(){
return m_bTypeFlg;
}
void CPosUiTypeAddDlgInstanceState::setTypeValue(INT32 iTypeValue){
m_bTypeValue = iTypeValue;
}
INT32 CPosUiTypeAddDlgInstanceState::getTypeValue(){
return m_bTypeValue;
}
void CPosUiTypeAddDlgInstanceState::setGoodsTypeFirstGradeFocusViewItemCnt(INT32 iGoodsTypeFirstGradeFocusViewItemCnt){
m_bGoodsTypeFirstGradeFocusViewItemCnt = iGoodsTypeFirstGradeFocusViewItemCnt;
}
INT32 CPosUiTypeAddDlgInstanceState::getGoodsTypeFirstGradeFocusViewItemCnt(){
return m_bGoodsTypeFirstGradeFocusViewItemCnt;
}
void CPosUiTypeAddDlgInstanceState::setGoodsTypeFirstGradeFocusPage(INT32 iGoodsTypeFirstGradeFocusPage){
m_bGoodsTypeFirstGradeFocusPage = iGoodsTypeFirstGradeFocusPage;
}
INT32 CPosUiTypeAddDlgInstanceState::getGoodsTypeFirstGradeFocusPage(){
return m_bGoodsTypeFirstGradeFocusPage;
}
void CPosUiTypeAddDlgInstanceState::setCurrentFocusID(INT32 iCurrentFocusID){
m_bCurrentFocusID = iCurrentFocusID;
}
INT32 CPosUiTypeAddDlgInstanceState::getCurrentFocusID(){
return m_bCurrentFocusID;
}
void CPosUiTypeAddDlgInstanceState::setCurrentParentedFocusID(INT32 iCurrentParentedFocusID){
m_bCurrentParentedFocusID = iCurrentParentedFocusID;
}
INT32 CPosUiTypeAddDlgInstanceState::getCurrentParentedFocusID(){
return m_bCurrentParentedFocusID;
}
void CPosUiTypeAddDlgInstanceState::setGoodsTypeLastViewItemCnt(INT32 iGoodsTypeLastViewItemCnt){
m_bGoodsTypeLastViewItemCnt = iGoodsTypeLastViewItemCnt;
}
INT32 CPosUiTypeAddDlgInstanceState::getGoodsTypeLastViewItemCnt(){
return m_bGoodsTypeLastViewItemCnt;
}
void CPosUiTypeAddDlgInstanceState::setGoodsTypeLastPage(INT32 iGoodsTypeLastPage){
m_bGoodsTypeLastPage = iGoodsTypeLastPage;
}
INT32 CPosUiTypeAddDlgInstanceState::getGoodsTypeLastPage(){
return m_bGoodsTypeLastPage;
}
// 切換到商品類別列表界面
void CPosUiTypeAddDlg::postSwitchToGoodsTypeDlg(INT32 isFocusShowFlg){
// 切換到商品類別頁面
// 頁面管理器
CSyViewDlgMgr * lpclDlgMgr = this->getViewDlgMgr();
// 目的頁面
CPosUiGoodsTypeDlg * lpclDstDlg = dynamic_cast<CPosUiGoodsTypeDlg *>(lpclDlgMgr->obtainDlgInstanceByID(CSyViewDlg::ID_UI_GOODS_TYPE));
if(NULL == lpclDstDlg){
return ;
}
// 切換窗口
CPosUiGoodsTypeDlgInstanceState * lpclDstState = lpclDstDlg->obtainInstanceState();
lpclDstState->m_enOpenMode = CSyViewDlg::OPEN_MODE_ENTER;
CPosUiTypeAddDlgInstanceState * lpclState = dynamic_cast<CPosUiTypeAddDlgInstanceState*>(getInstanceState());
if( CPosUiGoodsTypeDlg::FIRST_GRADE_FOCUS_SHOW_FLG_UNABLE_VALUE == isFocusShowFlg ){
syDbgMsg("m_bGoodsTypeLastPage = %d\n", lpclState->getGoodsTypeLastPage());
lpclDstState->setGoodsTypeFirstGradeLastPage(lpclState->getGoodsTypeLastPage());
syDbgMsg("m_bGoodsTypeLastViewItemCnt = %d\n", lpclState->getGoodsTypeLastViewItemCnt());
lpclDstState->setGoodsTypeFirstGradeLastViewItemCnt(lpclState->getGoodsTypeLastViewItemCnt());
}
if( CPosUiGoodsTypeDlg::SECOND_GRADE_FOCUS_SHOW_FLG_UNABLE_VALUE == isFocusShowFlg ){
syDbgMsg("m_bGoodsTypeFirstGradeFocusPage = %d\n", lpclState->getGoodsTypeFirstGradeFocusPage());
lpclDstState->setGoodsTypeFirstGradeFocusPage(lpclState->getGoodsTypeFirstGradeFocusPage());
lpclState->setGoodsTypeFirstGradeFocusPage(0);
syDbgMsg("m_bGoodsTypeFirstGradeFocusViewItemCnt = %d\n", lpclState->getGoodsTypeFirstGradeFocusViewItemCnt());
lpclDstState->setGoodsTypeFirstGradeFocusViewItemCnt(lpclState->getGoodsTypeFirstGradeFocusViewItemCnt());
lpclState->setGoodsTypeFirstGradeFocusViewItemCnt(0);
syDbgMsg("m_bGoodsTypeLastPage = %d\n", lpclState->getGoodsTypeLastPage());
lpclDstState->setGoodsTypeSecondGradeLastPage(lpclState->getGoodsTypeLastPage());
syDbgMsg("m_bGoodsTypeLastViewItemCnt = %d\n", lpclState->getGoodsTypeLastViewItemCnt());
lpclDstState->setGoodsTypeSecondGradeLastViewItemCnt(lpclState->getGoodsTypeLastViewItemCnt());
}
syDbgMsg("m_bIsFocusShowed = %d\n", lpclState->getFocusShowFlg());
lpclDstState->setFocusShowFlg(lpclState->getFocusShowFlg());
syDbgMsg("m_bTypeValue = %d\n", lpclState->getTypeValue());
lpclDstState->setTypeValue(lpclState->getTypeValue());
this->postSwitchDlg(this, lpclDstDlg, lpclDstState);
lpclDlgMgr->delDlgReturnInfo(CSyViewDlg::ID_UI_GOODS_TYPE);
}
// 切換到數字輸入法界面
void CPosUiTypeAddDlg::postSwitchToNumberDlg(){
// 頁面管理器
CSyViewDlgMgr * lpclDlgMgr = this->getViewDlgMgr();
// 目的頁面
CPosUiNumberDlg * lpclDstDlg = dynamic_cast<CPosUiNumberDlg *>(lpclDlgMgr->obtainDlgInstanceByID(CSyViewDlg::ID_UI_NUMBER));
if(NULL == lpclDstDlg){
return ;
}
// 添加返回頁面信息
CSyDlgReturnInfo * lpclNewReturnInfo = lpclDlgMgr->obtainDlgReturnInfo();
if(NULL != lpclNewReturnInfo){
lpclNewReturnInfo->setDlgID(this->getDlgID());
lpclNewReturnInfo->setInstanceState(this->obtainBackInfoInstanceState());
lpclDlgMgr->addTailDlgReturnInfo(lpclNewReturnInfo);
}
// 切換窗口
CPosUiNumberDlgInstanceState * lpclState = lpclDstDlg->obtainInstanceState();
lpclState->m_enOpenMode = CSyViewDlg::OPEN_MODE_ENTER;
lpclState->setEditDstDlg( lpclDlgMgr->getTailReturnInfoDlg() );
//lpclState->setEditDstDlg( this );
this->postSwitchDlg(NULL, lpclDstDlg, lpclState);
}
// 當輸入法沒有打開時切換到數字輸入法界面
void CPosUiTypeAddDlg::postSwitchToNumberDlgWhenUnopened(){
INT32 iDlgID = this->getTailReturnInfoDlgID();
if( CSyViewDlg::ID_UI_NUMBER != iDlgID
&& CSyViewDlg::ID_UI_SPELL != iDlgID
&& CSyViewDlg::ID_UI_WORD != iDlgID
&& CSyViewDlg::ID_UI_HANDWRITTEN != iDlgID ){
this->postSwitchToNumberDlg();
}
}
// 關閉最後一項對應的界面
void CPosUiTypeAddDlg::postCloseTailReturnInfoDlg(){
CSyViewDlg * lpclTailDstDlg = this->getTailReturnInfoDlg();
if(NULL == lpclTailDstDlg){
return ;
}
// 刪除最後一項
this->delTailDlgReturnInfo();
// 關閉最後一行所對應的界面
lpclTailDstDlg->postSwitchDlg(lpclTailDstDlg, NULL, NULL);
}
// 當輸入法打開時關閉輸入法界面
void CPosUiTypeAddDlg::closeInputInterfaceWhenOpened(){
INT32 iDlgID = this->getTailReturnInfoDlgID();
if( CSyViewDlg::ID_UI_NUMBER == iDlgID
|| CSyViewDlg::ID_UI_SPELL == iDlgID
|| CSyViewDlg::ID_UI_WORD == iDlgID
|| CSyViewDlg::ID_UI_HANDWRITTEN == iDlgID ){
this->postCloseTailReturnInfoDlg();
}
}
// 關閉輸入法並返回上一次頁面
void CPosUiTypeAddDlg::postSwitchDlgBackAndCloseInputInterface(){
INT32 iDlgID = this->getTailReturnInfoDlgID();
if( CSyViewDlg::ID_UI_NUMBER == iDlgID
|| CSyViewDlg::ID_UI_SPELL == iDlgID
|| CSyViewDlg::ID_UI_WORD == iDlgID
|| CSyViewDlg::ID_UI_HANDWRITTEN == iDlgID ){
CSyViewDlg * lpclTailDstDlg = this->getTailReturnInfoDlg();
if(NULL == lpclTailDstDlg){
return ;
}
// 刪除最後一項
this->delTailDlgReturnInfo();
// 點擊商品列表按鈕切換到商品列表頁面
this->postSwitchDlgBack(this, SY_TRUE);
// 關閉數字輸入法界面
lpclTailDstDlg->postSwitchDlg(lpclTailDstDlg, NULL, NULL);
}
else{
// 點擊返回按鈕返回到上一次頁面
this->postSwitchDlgBack(this, SY_TRUE);
}
}
// 獲得最後一項對應的窗口
CSyViewDlg * CPosUiTypeAddDlg::getTailReturnInfoDlg(){
// 頁面管理器
CSyViewDlgMgr * lpclDlgMgr = this->getViewDlgMgr();
if( NULL == lpclDlgMgr ){
return NULL;
}
CSyViewDlg * lpclTailDstDlg = lpclDlgMgr->getTailReturnInfoDlg();
return lpclTailDstDlg;
}
// 獲得最後一項對應的窗口ID
INT32 CPosUiTypeAddDlg::getTailReturnInfoDlgID(){
CSyViewDlg * lpclTailDstDlg = this->getTailReturnInfoDlg();
if(NULL == lpclTailDstDlg){
return SY_FALSE;
}
INT32 iDlgID = lpclTailDstDlg->getDlgID();
return iDlgID;
}
// 刪除最後一項
void CPosUiTypeAddDlg::delTailDlgReturnInfo(){
// 頁面管理器
CSyViewDlgMgr * lpclDlgMgr = this->getViewDlgMgr();
if( NULL == lpclDlgMgr ){
return ;
}
// 刪除最後一項
lpclDlgMgr->delTailDlgReturnInfo();
}
// 獲得是否顯示焦點項信息的標誌值實例
INT32 CPosUiTypeAddDlg::getInstanceStateFocusShowFlg(){
CPosUiTypeAddDlgInstanceState * lpclState = dynamic_cast<CPosUiTypeAddDlgInstanceState*>(getInstanceState());
if(NULL == lpclState){
return SY_ERR_NOT_EXIST;
}
INT32 isFocusShowFlg = lpclState->getFocusShowFlg();
return isFocusShowFlg;
}
// 獲得列表視圖上的最後一行和最後一頁值
void CPosUiTypeAddDlg::getLastPosViewAndLastPage(INT32 isFocusShowFlg){
// 處理列表界面顯示的最後頁數和條項
// 設定DLG尺寸
CPosUiGoodsTypeDlgBuildParam * lpclGoodsTypeBuildParam = getAppCtx()->getSkin()->getUiGoodsTypeDlgBuildParam();
if(NULL != lpclGoodsTypeBuildParam){
INT32 iPageItemCnt = 0;
if( CPosUiGoodsTypeDlg::FIRST_GRADE_FOCUS_SHOW_FLG_UNABLE_VALUE == isFocusShowFlg ){
iPageItemCnt = lpclGoodsTypeBuildParam->getGoodsTypeFirstGradeListItemCnt();
}
if( CPosUiGoodsTypeDlg::SECOND_GRADE_FOCUS_SHOW_FLG_UNABLE_VALUE == isFocusShowFlg ){
iPageItemCnt = lpclGoodsTypeBuildParam->getGoodsTypeSecondGradeListItemCnt();
}
CPosUiTypeAddDlgInstanceState * lpclState = dynamic_cast<CPosUiTypeAddDlgInstanceState*>(getInstanceState());
if(NULL != lpclState){
if(lpclState->getGoodsTypeLastViewItemCnt() == iPageItemCnt - 1){
lpclState->setGoodsTypeLastPage(lpclState->getGoodsTypeLastPage() + 1);
lpclState->setGoodsTypeLastViewItemCnt(0);
}
else{
lpclState->setGoodsTypeLastViewItemCnt(lpclState->getGoodsTypeLastViewItemCnt() + 1);
}
syDbgMsg("m_bGoodsTypeLastPage = %d.\n",lpclState->getGoodsTypeLastPage());
syDbgMsg("m_bGoodsTypeLastViewItemCnt = %d.\n",lpclState->getGoodsTypeLastViewItemCnt());
}
}
}
#endif //#ifdef SUPPORT 小商場架構