按2025规则,修改了新的激励政策显示模式

This commit is contained in:
lujiang 2025-01-22 16:08:06 +08:00
parent 5cfa8892ad
commit eea6842cf7
15 changed files with 538 additions and 86 deletions

View File

@ -14,9 +14,10 @@ IMPLEMENT_DYNAMIC(DLG_GZMsg_JL, CDialogEx)
DLG_GZMsg_JL::DLG_GZMsg_JL(CWnd* pParent /*=nullptr*/) DLG_GZMsg_JL::DLG_GZMsg_JL(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_K_GZMSG_JL, pParent) : CDialogEx(IDD_K_GZMSG_JL, pParent)
{ {
m_pMainFrame=NULL; m_pMainFrame = NULL;
m_lYWYID=0; m_lYWYID = 0;
m_pYWYData = NULL; m_pYWYData = NULL;
m_lShowType = 0;
} }
DLG_GZMsg_JL::~DLG_GZMsg_JL() DLG_GZMsg_JL::~DLG_GZMsg_JL()
@ -50,7 +51,7 @@ END_MESSAGE_MAP()
void DLG_GZMsg_JL::OnBnClickedKGzmsgJlQuery() void DLG_GZMsg_JL::OnBnClickedKGzmsgJlQuery()
{ {
REQ_GZMsg_JL * pJL = new REQ_GZMsg_JL; memset(pJL, 0, sizeof(REQ_GZMsg_JL)); REQ_GZMsg_JL* pJL = new REQ_GZMsg_JL; memset(pJL, 0, sizeof(REQ_GZMsg_JL));
pJL->lType = m_wndType.GetCurSel(); pJL->lType = m_wndType.GetCurSel();
CString strMon; CString strMon;
m_wndMon.GetWindowText(strMon); m_wndMon.GetWindowText(strMon);
@ -63,11 +64,11 @@ void DLG_GZMsg_JL::OnBnClickedKGzmsgJlQuery()
{ {
if (pJL->lPK1 == pJL->lPK2) if (pJL->lPK1 == pJL->lPK2)
{ {
MessageBox(_T("挑战者与被挑战者不能相同!"), _T("错误"), MB_ICONWARNING); MessageBox(_T("挑战者与战者不能相同!"), _T("错误"), MB_ICONWARNING);
m_wndPK1.SetFocus(); m_wndPK1.SetFocus();
return; return;
} }
if (pJL->lPK1>= 500000 && pJL->lPK2< 500000) if (pJL->lPK1 >= 500000 && pJL->lPK2 < 500000)
{ {
MessageBox(_T("部门与个人不能互相挑战!"), _T("错误"), MB_ICONWARNING); MessageBox(_T("部门与个人不能互相挑战!"), _T("错误"), MB_ICONWARNING);
m_wndPK1.SetFocus(); m_wndPK1.SetFocus();
@ -89,17 +90,13 @@ void DLG_GZMsg_JL::OnBnClickedKGzmsgJlQuery()
m_wndList.SetHeadings(_T("序号,50; 挑战者,150;被挑战者,150;挑战目标,100;挑战结果,150; 赢方,150;挑战者-业绩差,200;被挑战者-业绩差,200;")); m_wndList.SetHeadings(_T("序号,50; 挑战者,150;被挑战者,150;挑战目标,100;挑战结果,150; 赢方,150;挑战者-业绩差,200;被挑战者-业绩差,200;"));
} }
}
else
{
} }
m_pMainFrame->SendFrame(SMSFUNC_GZMSG_JL, (BYTE*)pJL, sizeof(REQ_GZMsg_JL)); m_pMainFrame->SendFrame(SMSFUNC_GZMSG_JL, (BYTE*)pJL, sizeof(REQ_GZMsg_JL));
} }
BOOL DLG_GZMsg_JL::ProcessSocket(Socket_Head_Add *pHead, BYTE* pFrame) BOOL DLG_GZMsg_JL::ProcessSocket(Socket_Head_Add* pHead, BYTE* pFrame)
{ {
CString str; CString str;
@ -110,9 +107,9 @@ BOOL DLG_GZMsg_JL::ProcessSocket(Socket_Head_Add *pHead, BYTE* pFrame)
} }
if (pHead->lFuncType == SMSFUNC_GZMSG_JL) if (pHead->lFuncType == SMSFUNC_GZMSG_JL)
{ {
ANS_GZMsg_JL * pJL = (ANS_GZMsg_JL *)pFrame; ANS_GZMsg_JL* pJL = (ANS_GZMsg_JL*)pFrame;
ANS_GZMsg_JL_Data * pJLData = (ANS_GZMsg_JL_Data *)(pFrame + sizeof(ANS_GZMsg_JL)); ANS_GZMsg_JL_Data* pJLData = (ANS_GZMsg_JL_Data*)(pFrame + sizeof(ANS_GZMsg_JL));
ANS_GZMsg_JL_Data2 * pJLData2 = (ANS_GZMsg_JL_Data2 *)(pFrame + sizeof(ANS_GZMsg_JL)); ANS_GZMsg_JL_Data2* pJLData2 = (ANS_GZMsg_JL_Data2*)(pFrame + sizeof(ANS_GZMsg_JL));
if (!pJL->bOK) //权限不足,返回错误 if (!pJL->bOK) //权限不足,返回错误
{ {
@ -121,11 +118,15 @@ BOOL DLG_GZMsg_JL::ProcessSocket(Socket_Head_Add *pHead, BYTE* pFrame)
if (pJL->lType == 0) if (pJL->lType == 0)
{ {
CString str;
m_wndList.DeleteAllItems(); m_wndList.DeleteAllItems();
m_wndList.DeleteAllColumns(); m_wndList.DeleteAllColumns();
m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 上月,100; 上月A值,100; 上月B值,100; 上月C值,100;上月总分,100; 本月,100; 本月A值,100; 本月B值,100; 本月C值,100;本月总分,100; 平均分,100;")); //2025年新的评比规则
if (m_lShowType == 1)
m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 月份,120; 么么哒,80; A值,80; B值,80;本月得分,100; 备注,120;"));
else
m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 月份,120; 业绩,120; 么么哒,80; A值,80; B值,80;本月得分,100; 备注,120;"));
CString str;
for (int i = 0; i < pJL->lCount; i++) for (int i = 0; i < pJL->lCount; i++)
{ {
str.Format(_T("%d"), i + 1); str.Format(_T("%d"), i + 1);
@ -133,33 +134,37 @@ BOOL DLG_GZMsg_JL::ProcessSocket(Socket_Head_Add *pHead, BYTE* pFrame)
int iTemp = 1; int iTemp = 1;
m_wndList.SetItemText(i, iTemp++, pJLData->szGroupName); m_wndList.SetItemText(i, iTemp++, pJLData->szGroupName);
m_wndList.SetItemText(i, iTemp++, pJLData->szYWYName); m_wndList.SetItemText(i, iTemp++, pJLData->szYWYName);
str.Format(_T("%04d年%02d月"), pJLData->tMon2.wYear, pJLData->tMon2.wMonth);
m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%10.2f"), pJLData->fA2);
m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%10.2f"), pJLData->fB2);
m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%10.2f"), pJLData->fC2);
m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%10.2f"), pJLData->fT2);
m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%04d年%02d月"), pJLData->tMon1.wYear, pJLData->tMon1.wMonth); str.Format(_T("%04d年%02d月"), pJLData->tMon1.wYear, pJLData->tMon1.wMonth);
m_wndList.SetItemText(i, iTemp++, str); m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%10.2f"), pJLData->fA1); if (m_lShowType != 1)
{
str.Format(_T("%10.2f"), pJLData->fYZ1);
m_wndList.SetItemText(i, iTemp++, str); m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%10.2f"), pJLData->fB1); }
m_wndList.SetItemText(i, iTemp++, str); str.Format(_T("%8d"), pJLData->lMMDCount);
str.Format(_T("%10.2f"), pJLData->fC1);
m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%10.2f"), pJLData->fT1);
m_wndList.SetItemText(i, iTemp++, str); m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%10.2f"), pJLData->fAvg); str.Format(_T("%8.2f"), pJLData->fA1);
m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%8.2f"), pJLData->fB1);
m_wndList.SetItemText(i, iTemp++, str); m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%9.2f"), pJLData->fAvg);
m_wndList.SetItemText(i, iTemp++, str);
if (pJLData->bUnconfirmed)
{
m_wndList.SetItemText(i, iTemp++, _T("含未确认业绩"));
}
else
{
if (pJLData->fAvg < 50.0f)
{
m_wndList.SetItemText(i, iTemp++, _T("进步空间巨大"));
}
}
pJLData++; pJLData++;
} }
} }
@ -200,6 +205,355 @@ BOOL DLG_GZMsg_JL::ProcessSocket(Socket_Head_Add *pHead, BYTE* pFrame)
m_wndList.SetItemText(lItem, iTemp++, str); m_wndList.SetItemText(lItem, iTemp++, str);
} }
else else
{
m_wndList.DeleteAllItems();
m_wndList.DeleteAllColumns();
m_wndList.SetHeadings(_T("项目,200; 内容,450;"));
CString str;
int iTemp = 0;
m_wndList.InsertItem(iTemp++, _T(""), 1);
str.Format(_T(" %s PK结果"), pJL->szMon);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T(""), 1);
m_wndList.InsertItem(iTemp++, _T(""), 1);
if (pJLData2->bPK1Unconfirmed)
m_wndList.InsertItem(iTemp++, _T("挑战队(含未确认业绩)"), 1);
else
m_wndList.InsertItem(iTemp++, _T("挑战队"), 1);
m_wndList.SetItemText(iTemp - 1, 1, pJLData2->szPK1);
if (pJLData2->bPK1Unconfirmed)
m_wndList.InsertItem(iTemp++, _T("应战队(含未确认业绩)"), 1);
else
m_wndList.InsertItem(iTemp++, _T("应战队"), 1);
m_wndList.SetItemText(iTemp - 1, 1, pJLData2->szPK2);
m_wndList.InsertItem(iTemp++, _T(""), 1); //空行
m_wndList.InsertItem(iTemp++, _T("挑战目标"), 1);
str.Format(_T("%10.0f%%"), pJLData2->fAddRatio * 100.0f);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T(""), 1); //空行
if (m_lShowType != 1)
{
m_wndList.InsertItem(iTemp++, _T("挑战队平均业绩"), 1);
str.Format(_T("%10.2f"), pJLData2->fPK1Pre3);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T("应战队平均业绩"), 1);
str.Format(_T("%10.2f"), pJLData2->fPK2Pre3);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T(""), 1); //空行
m_wndList.InsertItem(iTemp++, _T("挑战队平均么么哒"), 1);
str.Format(_T("%10.2f"), pJLData2->fPK1MMDCount);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T("应战队平均么么哒"), 1);
str.Format(_T("%10.2f"), pJLData2->fPK2MMDCount);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T(""), 1); //空行
}
m_wndList.InsertItem(iTemp++, _T("挑战队平均得分"), 1);
str.Format(_T("%10.2f"), pJLData2->fPK1Now);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T("应战队平均得分"), 1);
str.Format(_T("%10.2f"), pJLData2->fPK2Now);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T(""), 1); //空行
if (m_lShowType != 1)
{
m_wndList.InsertItem(iTemp++, _T("挑战队-分数差"), 1);
str.Format(_T("%10.2f"), pJLData2->fWin1Score);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T("应战队-分数差"), 1);
str.Format(_T("%10.2f"), pJLData2->fWin2Score);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T(""), 1); //空行
}
m_wndList.InsertItem(iTemp++, _T("挑战队-业绩差"), 1);
str.Format(_T("%10.2f"), pJLData2->fWin1YZ);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T("应战队-业绩差"), 1);
str.Format(_T("%10.2f"), pJLData2->fWin2YZ);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T(""), 1); //空行
m_wndList.InsertItem(iTemp++, _T("挑战队-么么哒差"), 1);
str.Format(_T("%10.2f"), pJLData2->fWin1MMDCount);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T("应战队-么么哒差"), 1);
str.Format(_T("%10.2f"), pJLData2->fWin2MMDCount);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T(""), 1); //空行
m_wndList.InsertItem(iTemp++, _T(""), 1); //空行
if (pJLData2->bWin)
{
m_wndList.InsertItem(iTemp++, _T("挑战成功!!"), 0);
str.Format(_T("赢方:%s"), pJLData2->szPK1);
m_wndList.SetItemText(iTemp - 1, 1, str);
}
else
{
m_wndList.InsertItem(iTemp++, _T("挑战失败!!"), 1);
m_wndList.SetItemText(iTemp - 1, 1, _T("挑战失败!!"));
str.Format(_T("赢方:%s"), pJLData2->szPK2);
m_wndList.SetItemText(iTemp - 1, 1, str);
}
}
//旧模式,分列表显示与表格显示。
//2025年因为只有战队PK统一改成只用表格显示
/*
if (m_lShowType == 1)
{
CString str;
long lItem = m_wndList.GetItemCount();
str.Format(_T("%d"), lItem + 1);
m_wndList.InsertItem(lItem, str, 0);
int iTemp = 1;
//m_wndList.SetHeadings(_T("序号,50;月份,100; 挑战队,150; 应战队,150;挑战目标,80;挑战结果,120; 赢方,150;挑战队分数,100;应战队分数,100;挑战业绩差,100;应战业绩差,100;挑战么么哒差,100;应战么么哒差,100;"));
m_wndList.SetItemText(lItem, iTemp++, pJL->szMon);
m_wndList.SetItemText(lItem, iTemp++, pJLData2->szPK1);
m_wndList.SetItemText(lItem, iTemp++, pJLData2->szPK2);
str.Format(_T("%6.0f%%"), pJLData2->fAddRatio*100.0f);
m_wndList.SetItemText(lItem, iTemp++, str);
CString strResult;
CString strWinner;
if (pJLData2->bWin)
{
strResult = _T("挑战成功!!");
strWinner = pJLData2->szPK1;
}
else
{
strResult = _T("挑战失败!!");
strWinner = pJLData2->szPK2;
}
m_wndList.SetItemText(lItem, iTemp++, strResult);
m_wndList.SetItemText(lItem, iTemp++, strWinner);
str.Format(_T("%10.2f"), pJLData2->fWin1Score);
m_wndList.SetItemText(lItem, iTemp++, str);
str.Format(_T("%10.2f"), pJLData2->fWin2Score);
m_wndList.SetItemText(lItem, iTemp++, str);
str.Format(_T("%10.2f"), pJLData2->fWin1YZ);
m_wndList.SetItemText(lItem, iTemp++, str);
str.Format(_T("%10.2f"), pJLData2->fWin2YZ);
m_wndList.SetItemText(lItem, iTemp++, str);
str.Format(_T("%10.2f"), pJLData2->fWin1MMDCount);
m_wndList.SetItemText(lItem, iTemp++, str);
str.Format(_T("%10.2f"), pJLData2->fWin2MMDCount);
m_wndList.SetItemText(lItem, iTemp++, str);
}
else
{
m_wndList.DeleteAllItems();
m_wndList.DeleteAllColumns();
m_wndList.SetHeadings(_T("项目,250; 内容,450;"));
CString str;
int iTemp = 0;
m_wndList.InsertItem(iTemp++, _T(""), 1);
str.Format(_T(" %s PK结果"), pJL->szMon);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T(""), 1);
m_wndList.InsertItem(iTemp++, _T(""), 1);
m_wndList.InsertItem(iTemp++, _T("挑战队"), 1);
m_wndList.SetItemText(iTemp - 1, 1, pJLData2->szPK1);
m_wndList.InsertItem(iTemp++, _T("应战队"), 1);
m_wndList.SetItemText(iTemp - 1, 1, pJLData2->szPK2);
m_wndList.InsertItem(iTemp++, _T("挑战目标"), 1);
str.Format(_T("%10.0f%%"), pJLData2->fAddRatio*100.0f);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T("挑战队平均业绩"), 1);
str.Format(_T("%10.2f"), pJLData2->fPK1Pre3);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T("应战队平均业绩"), 1);
str.Format(_T("%10.2f"), pJLData2->fPK2Pre3);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T("挑战队平均么么哒"), 1);
str.Format(_T("%10.2f"), pJLData2->fPK1MMDCount);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T("应战队平均么么哒"), 1);
str.Format(_T("%10.2f"), pJLData2->fPK2MMDCount);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T("挑战队平均得分"), 1);
str.Format(_T("%10.2f"), pJLData2->fPK1Now);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T("应战队平均得分"), 1);
str.Format(_T("%10.2f"), pJLData2->fPK2Now);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T("挑战队-分数差"), 1);
str.Format(_T("%10.2f"), pJLData2->fWin1Score);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T("应战队-分数差"), 1);
str.Format(_T("%10.2f"), pJLData2->fWin2Score);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T("挑战队-业绩差"), 1);
str.Format(_T("%10.2f"), pJLData2->fWin1YZ);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T("应战队-业绩差"), 1);
str.Format(_T("%10.2f"), pJLData2->fWin2YZ);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T("挑战队-么么哒差"), 1);
str.Format(_T("%10.2f"), pJLData2->fWin1MMDCount);
m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T("应战队-么么哒差"), 1);
str.Format(_T("%10.2f"), pJLData2->fWin2MMDCount);
m_wndList.SetItemText(iTemp - 1, 1, str);
if (pJLData2->bWin)
{
m_wndList.InsertItem(iTemp++, _T("挑战成功!!"), 0);
str.Format(_T("赢方:%s"), pJLData2->szPK1);
m_wndList.SetItemText(iTemp - 1, 1, str);
}
else
{
m_wndList.InsertItem(iTemp++, _T("挑战失败!!"), 1);
m_wndList.SetItemText(iTemp - 1, 1, _T("挑战失败!!"));
str.Format(_T("赢方:%s"), pJLData2->szPK2);
m_wndList.SetItemText(iTemp - 1, 1, str);
}
}
*/
}
/* 2024年前旧的评比规则
if (pJL->lType == 0)
{
CString str;
m_wndList.DeleteAllItems();
m_wndList.DeleteAllColumns();
if (m_lShowType == 1)
m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 上月,100;上月得分,100; 本月,100; 本月A,100; 本月B,100; 本月C,100;本月总分,100; 平均分,100;"));
else
m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 上月,100;平均业绩,100;平均客户,80;上月业绩,100;上月客户,80; 上月A,100; 上月B,100; 上月C,100;上月总分,100; 本月,100;平均业绩,100;平均客户,80;本月业绩,100;本月客户,80; 本月A,100; 本月B,100; 本月C,100;本月总分,100; 平均分,100;"));
for (int i = 0; i < pJL->lCount; i++)
{
str.Format(_T("%d"), i + 1);
m_wndList.InsertItem(i, str, 0);
int iTemp = 1;
m_wndList.SetItemText(i, iTemp++, pJLData->szGroupName);
m_wndList.SetItemText(i, iTemp++, pJLData->szYWYName);
str.Format(_T("%04d年%02d月"), pJLData->tMon2.wYear, pJLData->tMon2.wMonth);
m_wndList.SetItemText(i, iTemp++, str);
if (m_lShowType != 1)
{
str.Format(_T("%10.2f"), pJLData->fAvegYZ2);
m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%10.2f"), pJLData->fAvegKH2);
m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%10.2f"), pJLData->fYZ2);
m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%6d"), (long)pJLData->fKH2);
m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%10.2f"), pJLData->fA2);
m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%10.2f"), pJLData->fB2);
m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%10.2f"), pJLData->fC2);
m_wndList.SetItemText(i, iTemp++, str);
}
str.Format(_T("%10.2f"), pJLData->fT2);
m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%04d年%02d月"), pJLData->tMon1.wYear, pJLData->tMon1.wMonth);
m_wndList.SetItemText(i, iTemp++, str);
if (m_lShowType != 1)
{
str.Format(_T("%10.2f"), pJLData->fAvegYZ1);
m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%10.2f"), pJLData->fAvegKH1);
m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%10.2f"), pJLData->fYZ1);
m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%6d"), (long)pJLData->fKH1);
m_wndList.SetItemText(i, iTemp++, str);
}
str.Format(_T("%10.2f"), pJLData->fA1);
m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%10.2f"), pJLData->fB1);
m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%10.2f"), pJLData->fC1);
m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%10.2f"), pJLData->fT1);
m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%10.2f"), pJLData->fAvg);
m_wndList.SetItemText(i, iTemp++, str);
pJLData++;
}
}
if (pJL->lType == 1)
{
if (m_lShowType == 1)
{
CString str;
long lItem = m_wndList.GetItemCount();
str.Format(_T("%d"), lItem + 1);
m_wndList.InsertItem(lItem, str, 0);
int iTemp = 1;
//m_wndList.SetHeadings(_T("序号,50; 挑战者,150;被挑战者,150;挑战目标,100;挑战结果,150; 赢方,150;挑战者-业绩差,200;被挑战者-业绩差,200;"));
m_wndList.SetItemText(lItem, iTemp++, pJLData2->szPK1);
m_wndList.SetItemText(lItem, iTemp++, pJLData2->szPK2);
str.Format(_T("%10.0f%%"), pJLData2->fAddRatio*100.0f);
m_wndList.SetItemText(lItem, iTemp++, str);
CString strResult;
CString strWinner;
if (pJLData2->bWin)
{
strResult = _T("挑战成功!!");
strWinner = pJLData2->szPK1;
}
else
{
strResult = _T("挑战失败!!");
strWinner = pJLData2->szPK2;
}
m_wndList.SetItemText(lItem, iTemp++, strResult);
m_wndList.SetItemText(lItem, iTemp++, strWinner);
str.Format(_T("%10.2f"), pJLData2->fWin1YZ);
m_wndList.SetItemText(lItem, iTemp++, str);
str.Format(_T("%10.2f"), pJLData2->fWin2YZ);
m_wndList.SetItemText(lItem, iTemp++, str);
}
else
{ {
m_wndList.DeleteAllItems(); m_wndList.DeleteAllItems();
m_wndList.DeleteAllColumns(); m_wndList.DeleteAllColumns();
@ -217,22 +571,17 @@ BOOL DLG_GZMsg_JL::ProcessSocket(Socket_Head_Add *pHead, BYTE* pFrame)
m_wndList.SetItemText(iTemp - 1, 1, pJLData2->szPK1); m_wndList.SetItemText(iTemp - 1, 1, pJLData2->szPK1);
m_wndList.InsertItem(iTemp++, _T("被挑战者"), 1); m_wndList.InsertItem(iTemp++, _T("被挑战者"), 1);
m_wndList.SetItemText(iTemp - 1, 1, pJLData2->szPK2); m_wndList.SetItemText(iTemp - 1, 1, pJLData2->szPK2);
/*
m_wndList.InsertItem(iTemp++, _T("挑战者-前三月平均业绩"), 1); m_wndList.InsertItem(iTemp++, _T("挑战者-前三月平均业绩"), 1);
str.Format(_T("%10.2f"), pJLData2->fPK1Pre3); str.Format(_T("%10.2f"), pJLData2->fPK1Pre3);
m_wndList.SetItemText(iTemp - 1, 1, str); m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T("被挑战者-前三月平均业绩"), 1); m_wndList.InsertItem(iTemp++, _T("被挑战者-前三月平均业绩"), 1);
str.Format(_T("%10.2f"), pJLData2->fPK2Pre3); str.Format(_T("%10.2f"), pJLData2->fPK2Pre3);
m_wndList.SetItemText(iTemp - 1, 1, str); m_wndList.SetItemText(iTemp - 1, 1, str);
*/
m_wndList.InsertItem(iTemp++, _T(""), 1);
m_wndList.InsertItem(iTemp++, _T("挑战目标"), 1); m_wndList.InsertItem(iTemp++, _T("挑战目标"), 1);
str.Format(_T("%10.0f%%"), pJLData2->fAddRatio * 100.0f); str.Format(_T("%10.0f%%"), pJLData2->fAddRatio*100.0f);
m_wndList.SetItemText(iTemp - 1, 1, str); m_wndList.SetItemText(iTemp - 1, 1, str);
/*
m_wndList.InsertItem(iTemp++, _T("挑战者-当月业绩"), 1); m_wndList.InsertItem(iTemp++, _T("挑战者-当月业绩"), 1);
str.Format(_T("%10.2f"), pJLData2->fPK1Now); str.Format(_T("%10.2f"), pJLData2->fPK1Now);
m_wndList.SetItemText(iTemp - 1, 1, str); m_wndList.SetItemText(iTemp - 1, 1, str);
@ -252,9 +601,6 @@ BOOL DLG_GZMsg_JL::ProcessSocket(Socket_Head_Add *pHead, BYTE* pFrame)
m_wndList.InsertItem(iTemp++, _T("挑战者-获胜业绩"), 1); m_wndList.InsertItem(iTemp++, _T("挑战者-获胜业绩"), 1);
str.Format(_T("%10.2f"), pJLData2->fPKWinYZ); str.Format(_T("%10.2f"), pJLData2->fPKWinYZ);
m_wndList.SetItemText(iTemp - 1, 1, str); m_wndList.SetItemText(iTemp - 1, 1, str);
*/
m_wndList.InsertItem(iTemp++, _T(""), 1);
m_wndList.InsertItem(iTemp++, _T("挑战者-业绩差"), 1); m_wndList.InsertItem(iTemp++, _T("挑战者-业绩差"), 1);
str.Format(_T("%10.2f"), pJLData2->fWin1YZ); str.Format(_T("%10.2f"), pJLData2->fWin1YZ);
@ -264,9 +610,6 @@ BOOL DLG_GZMsg_JL::ProcessSocket(Socket_Head_Add *pHead, BYTE* pFrame)
str.Format(_T("%10.2f"), pJLData2->fWin2YZ); str.Format(_T("%10.2f"), pJLData2->fWin2YZ);
m_wndList.SetItemText(iTemp - 1, 1, str); m_wndList.SetItemText(iTemp - 1, 1, str);
m_wndList.InsertItem(iTemp++, _T(""), 1);
m_wndList.InsertItem(iTemp++, _T(""), 1);
if (pJLData2->bWin) if (pJLData2->bWin)
{ {
m_wndList.InsertItem(iTemp++, _T("挑战成功!!"), 0); m_wndList.InsertItem(iTemp++, _T("挑战成功!!"), 0);
@ -280,22 +623,65 @@ BOOL DLG_GZMsg_JL::ProcessSocket(Socket_Head_Add *pHead, BYTE* pFrame)
str.Format(_T("赢方:%s"), pJLData2->szPK2); str.Format(_T("赢方:%s"), pJLData2->szPK2);
m_wndList.SetItemText(iTemp - 1, 1, str); m_wndList.SetItemText(iTemp - 1, 1, str);
} }
}
}
*/
return true;
}
if (pHead->lFuncType == SMSFUNC_GZMSG_JL_MMDCOUNT)
{
ANS_GZMsg_JL_MMDCount* pRet = (ANS_GZMsg_JL_MMDCount*)pFrame;
ANS_GZMsg_JL_MMDCount_Data* pRetData = (ANS_GZMsg_JL_MMDCount_Data*)(pFrame + sizeof(ANS_GZMsg_JL_MMDCount));
if (pRet->lErrCode != 0)
{
str.Format(_T("设置么么哒数据失败:%d - %s"), pRet->lErrCode, pRet->szErrMsg);
MessageBox(str, _T("错误"), MB_ICONERROR);
return true;
}
//生成显示的数据
CString strShowText;
long lShowTextCount = 0;
for (int i = 0; i < pRet->lCount && i < 16; i++)
{
str.Format(_T("%-10s%6d"), pRetData[i].szYWYName, pRetData[i].lMMDCount);
if (lShowTextCount <= 0)
{
strShowText += str;
lShowTextCount++;
}
else
{
if (lShowTextCount >= 2)
{
strShowText = strShowText + _T(" | ") + str;
strShowText.Append(_T("\r\n"));
lShowTextCount = 0;
}
else
{
strShowText = strShowText + _T(" | ") + str;
lShowTextCount++;
}
} }
} }
str.Format(_T("已导入%s的么么哒数据共导入%d个数据\r\n\r\n%s"), pRet->szMon, pRet->lCount, strShowText);
MessageBox(str, _T("信息"), MB_ICONINFORMATION);
return true; return true;
} }
return false; return false;
} }
void DLG_GZMsg_JL::SetParam(CMainFrame * pFrame, long lYWYID, CString strName,BYTE * pYWYData) void DLG_GZMsg_JL::SetParam(CMainFrame* pFrame, long lYWYID, CString strName, BYTE* pYWYData, long lShowType)
{ {
m_lYWYID = lYWYID; m_lYWYID = lYWYID;
m_strName = strName; m_strName = strName;
m_pMainFrame = pFrame; m_pMainFrame = pFrame;
m_pYWYData = pYWYData; m_pYWYData = pYWYData;
m_lShowType = lShowType;
} }
@ -313,19 +699,35 @@ BOOL DLG_GZMsg_JL::OnInitDialog()
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_SWTSQ)); m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_SWTSQ));
m_wndList.SubClassWindow2(); m_wndList.SubClassWindow2();
//2025年新的评比规则
if (m_lShowType == 1)
m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 月份,100;么么哒,80; A值,100; B值,100; 本月得分,100;"));
else
m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 月份,100; 业绩,100;么么哒,80; A值,100; B值,100; 本月得分,100;"));
/* 2024年前旧的评比规则
if (m_lShowType == 1)
m_wndList.SetHeadings(_T("序号,50; 挑战者,150;被挑战者,150;挑战目标,100;挑战结果,150; 赢方,150;挑战者-业绩差,200;被挑战者-业绩差,200;"));
else
m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 上月,100; 上月A,100; 上月B,100; 上月C,100;上月总分,100; 本月,100; 本月A,100; 本月B,100; 本月C,100;本月总分,100; 平均分,100;")); m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 上月,100; 上月A,100; 上月B,100; 上月C,100;上月总分,100; 本月,100; 本月A,100; 本月B,100; 本月C,100;本月总分,100; 平均分,100;"));
*/
m_wndList.SetGridLines(true); m_wndList.SetGridLines(true);
m_wndList.SetImageList(&m_Image, LVSIL_SMALL); m_wndList.SetImageList(&m_Image, LVSIL_SMALL);
ANS_GZMsg_JL_PARA * pPara = (ANS_GZMsg_JL_PARA *)m_pYWYData; ANS_GZMsg_JL_PARA* pPara = (ANS_GZMsg_JL_PARA*)m_pYWYData;
ANS_GZMsg_JL_PARA_DATE * pData = (ANS_GZMsg_JL_PARA_DATE *)(m_pYWYData + sizeof(ANS_GZMsg_JL_PARA)); ANS_GZMsg_JL_PARA_DATE* pData = (ANS_GZMsg_JL_PARA_DATE*)(m_pYWYData + sizeof(ANS_GZMsg_JL_PARA));
if (pPara->lErrCode != 0) //权限不足,返回错误 if (pPara->lErrCode != 0) //权限不足,返回错误
{ {
return true; return true;
} }
if (m_lShowType == 1)
m_wndType.SetCurSel(1);
else
m_wndType.SetCurSel(0); m_wndType.SetCurSel(0);
ANS_GZMsg_JL_PARA_DATE * pMon = pData;
ANS_GZMsg_JL_PARA_DATE* pMon = pData;
for (int i = 0; i < pPara->lMonCount; i++) for (int i = 0; i < pPara->lMonCount; i++)
{ {
m_wndMon.AddString(pMon[i].szName); m_wndMon.AddString(pMon[i].szName);
@ -333,7 +735,7 @@ BOOL DLG_GZMsg_JL::OnInitDialog()
m_wndMon.SetCurSel(0); m_wndMon.SetCurSel(0);
pData += pPara->lMonCount; pData += pPara->lMonCount;
ANS_GZMsg_JL_PARA_DATE * pPkRatio = pData; ANS_GZMsg_JL_PARA_DATE* pPkRatio = pData;
for (int i = 0; i < pPara->lPKRatioCount; i++) for (int i = 0; i < pPara->lPKRatioCount; i++)
{ {
m_wndPKRatio.AddString(pPkRatio[i].szName); m_wndPKRatio.AddString(pPkRatio[i].szName);
@ -341,18 +743,47 @@ BOOL DLG_GZMsg_JL::OnInitDialog()
m_wndPKRatio.SetCurSel(0); m_wndPKRatio.SetCurSel(0);
pData += pPara->lPKRatioCount; pData += pPara->lPKRatioCount;
ANS_GZMsg_JL_PARA_DATE * pYWY = pData; //以下为添加PK的队员信息并且自动匹配选择对手
ANS_GZMsg_JL_PARA_DATE* pYWY = pData;
int iPK1Sel = 0;
int iPK2Sel = 0;
int iPK1SelID = 0;
int iPK2SelID = 0;
for (int i = 0; i < pPara->lYWYCount; i++) for (int i = 0; i < pPara->lYWYCount; i++)
{ {
int iItem = m_wndPK1.AddString(pYWY[i].szName); int iItem = m_wndPK1.AddString(pYWY[i].szName);
m_wndPK1.SetItemData(iItem, pYWY[i].lYWYID); m_wndPK1.SetItemData(iItem, pYWY[i].lYWYID);
iItem = m_wndPK2.AddString(pYWY[i].szName); iItem = m_wndPK2.AddString(pYWY[i].szName);
m_wndPK2.SetItemData(iItem, pYWY[i].lYWYID); m_wndPK2.SetItemData(iItem, pYWY[i].lYWYID);
}
m_wndPK1.SetCurSel(0);
m_wndPK2.SetCurSel(0);
if (i == 0)
{
iPK1SelID = pYWY[i].lYWYID;
iPK1Sel = 0;
}
else
{
if (iPK2Sel <= 0 && iPK1SelID < 500000 && pYWY[i].lYWYID < 500000) //同类型的
{
iPK2Sel = i;
}
if (iPK2Sel <= 0 && iPK1SelID >= 500000 && pYWY[i].lYWYID >= 500000) //同类型的
{
iPK2Sel = i;
}
}
}
m_wndPK1.SetCurSel(iPK1Sel);
m_wndPK2.SetCurSel(iPK2Sel);
OnSelchangeIddKGzmsgJlType();
/*
if (m_lShowType != 1)
{
//默认为查询月度之星,隐藏相关参数 //默认为查询月度之星,隐藏相关参数
m_wndPK1.ShowWindow(SW_HIDE); m_wndPK1.ShowWindow(SW_HIDE);
m_wndPK2.ShowWindow(SW_HIDE); m_wndPK2.ShowWindow(SW_HIDE);
@ -361,14 +792,15 @@ BOOL DLG_GZMsg_JL::OnInitDialog()
GetDlgItem(IDD_K_GZMSG_JL_PK1_S)->ShowWindow(SW_HIDE); GetDlgItem(IDD_K_GZMSG_JL_PK1_S)->ShowWindow(SW_HIDE);
GetDlgItem(IDD_K_GZMSG_JL_PK2_S)->ShowWindow(SW_HIDE); GetDlgItem(IDD_K_GZMSG_JL_PK2_S)->ShowWindow(SW_HIDE);
GetDlgItem(IDD_K_GZMSG_JL_PKRATIO_S)->ShowWindow(SW_HIDE); GetDlgItem(IDD_K_GZMSG_JL_PKRATIO_S)->ShowWindow(SW_HIDE);
}
*/
return TRUE; // return TRUE unless you set the focus to a control return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE // 异常: OCX 属性页应返回 FALSE
} }
void DLG_GZMsg_JL::OnRclickGzmsgJlList(NMHDR *pNMHDR, LRESULT *pResult) void DLG_GZMsg_JL::OnRclickGzmsgJlList(NMHDR* pNMHDR, LRESULT* pResult)
{ {
LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR); LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码 // TODO: 在此添加控件通知处理程序代码
@ -384,11 +816,7 @@ void DLG_GZMsg_JL::ShowRMenu()
menu.CreatePopupMenu(); menu.CreatePopupMenu();
menu.AppendMenu(MF_STRING, MENU_GZMSG_JL_COPY, _T(" 复 制 ")); menu.AppendMenu(MF_STRING, MENU_GZMSG_JL_COPY, _T(" 复 制 "));
if (m_wndType.GetCurSel() == 1)
{
menu.AppendMenu(MF_STRING, MENU_GZMSG_JL_DEL, _T(" 删 除 ")); menu.AppendMenu(MF_STRING, MENU_GZMSG_JL_DEL, _T(" 删 除 "));
}
//显示菜单 //显示菜单
POINT pt; POINT pt;
::GetCursorPos(&pt); ::GetCursorPos(&pt);
@ -409,7 +837,6 @@ void DLG_GZMsg_JL::On_GZMsg_Del()
m_wndList.DeleteItem(iItem); m_wndList.DeleteItem(iItem);
} }
void DLG_GZMsg_JL::OnSelchangeIddKGzmsgJlType() void DLG_GZMsg_JL::OnSelchangeIddKGzmsgJlType()
{ {
if (m_wndType.GetCurSel() == 0) if (m_wndType.GetCurSel() == 0)
@ -423,6 +850,23 @@ void DLG_GZMsg_JL::OnSelchangeIddKGzmsgJlType()
GetDlgItem(IDD_K_GZMSG_JL_PK2_S)->ShowWindow(SW_HIDE); GetDlgItem(IDD_K_GZMSG_JL_PK2_S)->ShowWindow(SW_HIDE);
GetDlgItem(IDD_K_GZMSG_JL_PKRATIO_S)->ShowWindow(SW_HIDE); GetDlgItem(IDD_K_GZMSG_JL_PKRATIO_S)->ShowWindow(SW_HIDE);
m_wndList.DeleteAllItems();
m_wndList.DeleteAllColumns();
//2025年新的评比规则
if (m_lShowType == 1)
m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 月份,100;么么哒,80; A值,100; B值,100; 本月得分,100;"));
else
m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 月份,100; 业绩,100;么么哒,80; A值,100; B值,100; 本月得分,100;"));
/* 2024年前旧的评比规则
if (m_lShowType == 1)
m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 上月,100;上月得分,100; 本月,100; 本月A,100; 本月B,100; 本月C,100;本月总分,100; 平均分,100;"));
else
m_wndList.SetHeadings(_T("序号,50; 部门,100; 客户经理,100; 上月,100;平均业绩,100;平均客户,80;上月业绩,100;上月客户,80; 上月A,100; 上月B,100; 上月C,100;上月总分,100; 本月,100;平均业绩,100;平均客户,80;本月业绩,100;本月客户,80; 本月A,100; 本月B,100; 本月C,100;本月总分,100; 平均分,100;"));
*/
} }
else else
{ {
@ -434,5 +878,13 @@ void DLG_GZMsg_JL::OnSelchangeIddKGzmsgJlType()
GetDlgItem(IDD_K_GZMSG_JL_PK1_S)->ShowWindow(SW_SHOW); GetDlgItem(IDD_K_GZMSG_JL_PK1_S)->ShowWindow(SW_SHOW);
GetDlgItem(IDD_K_GZMSG_JL_PK2_S)->ShowWindow(SW_SHOW); GetDlgItem(IDD_K_GZMSG_JL_PK2_S)->ShowWindow(SW_SHOW);
GetDlgItem(IDD_K_GZMSG_JL_PKRATIO_S)->ShowWindow(SW_SHOW); GetDlgItem(IDD_K_GZMSG_JL_PKRATIO_S)->ShowWindow(SW_SHOW);
m_wndList.DeleteAllItems();
m_wndList.DeleteAllColumns();
if (m_lShowType == 1)
m_wndList.SetHeadings(_T("序号,50; 月份,100; 挑战队,150; 应战队,150;挑战目标,80;挑战结果,120; 赢方,150;挑战队分数,100;应战队分数,100;挑战业绩差,120;应战业绩差,120;挑战么么哒差,120;应战么么哒差,120;"));
else
m_wndList.SetHeadings(_T("项目,250; 内容,450;"));
} }
} }

View File

@ -14,20 +14,20 @@ class DLG_GZMsg_JL : public CDialogEx
DECLARE_DYNAMIC(DLG_GZMsg_JL) DECLARE_DYNAMIC(DLG_GZMsg_JL)
public: public:
CMainFrame * m_pMainFrame; CMainFrame* m_pMainFrame;
long m_lYWYID; long m_lYWYID;
CString m_strName; CString m_strName;
BYTE * m_pYWYData; BYTE* m_pYWYData;
CImageList m_Image; CImageList m_Image;
long m_lShowType;
public: public:
void ShowRMenu(); void ShowRMenu();
void SetParam(CMainFrame * pFrame, long lYWYID, CString strName,BYTE * pYWYData); void SetParam(CMainFrame* pFrame, long lYWYID, CString strName, BYTE* pYWYData, long lShowType = 0);
BOOL ProcessSocket(Socket_Head_Add *pHead, BYTE* pFrame); BOOL ProcessSocket(Socket_Head_Add* pHead, BYTE* pFrame);
DLG_GZMsg_JL(CWnd* pParent = nullptr); // 标准构造函数 DLG_GZMsg_JL(CWnd* pParent = nullptr); // 标准构造函数
virtual ~DLG_GZMsg_JL(); virtual ~DLG_GZMsg_JL();
// 对话框数据 // 对话框数据
#ifdef AFX_DESIGN_TIME #ifdef AFX_DESIGN_TIME
enum { IDD = IDD_K_GZMSG_JL }; enum { IDD = IDD_K_GZMSG_JL };
#endif #endif
@ -47,9 +47,9 @@ public:
CComboBox m_wndPK2; CComboBox m_wndPK2;
CComboBox m_wndPKRatio; CComboBox m_wndPKRatio;
CComboBox m_wndType; CComboBox m_wndType;
CButton m_B_AddList;
virtual BOOL OnInitDialog(); virtual BOOL OnInitDialog();
afx_msg void OnRclickGzmsgJlList(NMHDR *pNMHDR, LRESULT *pResult); afx_msg void OnRclickGzmsgJlList(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnSelchangeIddKGzmsgJlType(); afx_msg void OnSelchangeIddKGzmsgJlType();
afx_msg void OnBnClickedKGzmsgJlInportmmdcount();
CButton m_B_AddList;
}; };

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -870,7 +870,7 @@ if (pHead->lFuncType == SMSFUNC_GZMSG_JL_PARA)
DLG_GZMsg_JL dlg(this); DLG_GZMsg_JL dlg(this);
BYTE* pData = new BYTE[pHead->lFrameLen]; BYTE* pData = new BYTE[pHead->lFrameLen];
memcpy(pData, pFrame, pHead->lFrameLen); memcpy(pData, pFrame, pHead->lFrameLen);
dlg.SetParam(this->m_pMainFrame, m_pMainFrame->m_lUserID, _T(""), pData); dlg.SetParam(this->m_pMainFrame, m_pMainFrame->m_lUserID, _T(""), pData,1);
this->m_pDlgJL = &dlg; this->m_pDlgJL = &dlg;
dlg.DoModal(); dlg.DoModal();
delete pData; delete pData;

Binary file not shown.