// CC_TDSet_Signature.cpp: 实现文件 // #include "stdafx.h" #include "SmsManager.h" #include "afxdialogex.h" #include "CC_TDSet_Signature.h" #include "MainFrm.h" #include "ProcessSocket.h" #include "DLG_C_TDSet_Signature_Upload.h" // CC_TDSet_Signature 对话框 IMPLEMENT_DYNAMIC(CC_TDSet_Signature, CDialogEx) CC_TDSet_Signature::CC_TDSet_Signature(CWnd* pParent /*=nullptr*/) : CDialogEx(IDD_C_TDSET_SIGNATURE, pParent) , m_bAddTime(FALSE) , m_tAddTimeBegin(COleDateTime::GetCurrentTime()) , m_bAuditTime(FALSE) , m_tAuditTimeBegin(COleDateTime::GetCurrentTime()) , m_strKey(_T("")) , m_bModifyTime(FALSE) { m_bInit = false; m_bRefresh = false; m_pMainFrame = NULL; m_pSocket = NULL; m_pDlgUpload = NULL; } CC_TDSet_Signature::~CC_TDSet_Signature() { } void CC_TDSet_Signature::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Check(pDX, IDC_TDSET_SIGNATURE_ADDTIME, m_bAddTime); DDX_DateTimeCtrl(pDX, IDC_TDSET_SIGNATURE_ADDTIME_TBEGIN, m_tAddTimeBegin); DDX_Control(pDX, IDC_TDSET_SIGNATURE_ADDTIME_TEND, m_tAddTimeEnd); DDX_Check(pDX, IDC_TDSET_SIGNATURE_AUDITTIME, m_bAuditTime); DDX_DateTimeCtrl(pDX, IDC_TDSET_SIGNATURE_AUDITYTIME_TBEGIN, m_tAuditTimeBegin); DDX_Control(pDX, IDC_TDSET_SIGNATURE_AUDITYTIME_TEND, m_tAuditTimeEnd); DDX_Text(pDX, IDC_TDSET_SIGNATURE_KEY, m_strKey); DDV_MaxChars(pDX, m_strKey, 30); DDX_Check(pDX, IDC_TDSET_SIGNATURE_MODIFYTIME, m_bModifyTime); DDX_Control(pDX, IDC_TDSET_SIGNATURE_MODIFYTIME_TBEGIN, m_tModifyTimeBegin); DDX_Control(pDX, IDC_TDSET_SIGNATURE_MODIFYTIME_TEND, m_tModifyTimeEnd); DDX_Control(pDX, IDC_TDSET_SIGNATURE_LIST, m_wndList); DDX_Control(pDX, IDC_TDSET_SIGNATURE_OPERTYPE, m_L_OperType); DDX_Control(pDX, IDC_TDSET_SIGNATURE_STATUS, m_L_Status); DDX_Control(pDX, IDC_TDSET_SIGNATURE_TD, m_L_TD); DDX_Control(pDX, IDC_TDSET_SIGNATURE_S1, m_S_S1); } BEGIN_MESSAGE_MAP(CC_TDSet_Signature, CDialogEx) ON_WM_SIZE() ON_WM_CLOSE() ON_NOTIFY(NM_DBLCLK, IDC_TDSET_SIGNATURE_LIST, &CC_TDSet_Signature::OnDblclkTdsetSignatureList) ON_NOTIFY(NM_RCLICK, IDC_TDSET_SIGNATURE_LIST, &CC_TDSet_Signature::OnRclickTdsetSignatureList) ON_COMMAND(MENU_TDSET_SIGNATURE_SEE, On_User_See) ON_COMMAND(MENU_TDSET_SIGNATURE_ADD, On_User_Add) ON_COMMAND(MENU_TDSET_SIGNATURE_DEL, On_User_Del) ON_COMMAND(MENU_TDSET_SIGNATURE_UPLOAD, On_User_Upload) ON_COMMAND(MENU_TDSET_SIGNATURE_COPYDATA, On_User_CopyData) END_MESSAGE_MAP() BOOL CC_TDSet_Signature::ReShow(BOOL bRefresh) { ShowWindow(SW_SHOW); if (bRefresh || !m_bRefresh) { RefreshInfo(); } return true; } BOOL CC_TDSet_Signature::ReHide() { ShowWindow(SW_HIDE); return true; } BOOL CC_TDSet_Signature::RefreshInfo() { if (!m_pMainFrame->GetUserPurview(PURVIEW_LIST)) { return false; } #ifndef SMSMANAGER_KF if (!m_pMainFrame->GetUserPurview(PURVIEW_TAB)) { return false; } #endif ANS_TD2SignatureTitle_See* pSee = new ANS_TD2SignatureTitle_See; memset(pSee, 0, sizeof(ANS_TD2SignatureTitle_See)); m_pMainFrame->SendFrame(SMSFUNC_TD2SIGNATURETITLE_SEE, (BYTE*)pSee, sizeof(ANS_TD2SignatureTitle_See)); //取通道信息 return true; } void CC_TDSet_Signature::Close() { Close_TitleData(); Close_ListData(); } void CC_TDSet_Signature::Close_TitleData() { //清除队列中的内容 while (!m_TitleData.IsEmpty()) { ANS_TD2SignatureTitle_Data* pData = m_TitleData.GetHead(); m_TitleData.RemoveHead(); delete pData; } } void CC_TDSet_Signature::Close_ListData() { //清除队列中的内容 while (!m_ListData.IsEmpty()) { ANS_TD2Signature_Data* pData = m_ListData.GetHead(); m_ListData.RemoveHead(); delete pData; } } BOOL CC_TDSet_Signature::OnInitDialog() { CDialogEx::OnInitDialog(); //取得共用参数 //CMainFrame * pFrame = static_cast ((CMainFrame *)AfxGetMainWnd()); this->GetParent()->GetParentFrame(); m_pMainFrame = (CMainFrame*)this->GetParent()->GetParentFrame(); m_pSocket = &m_pMainFrame->m_Socket; //初始化List m_Image.Create(24, 24, ILC_COLOR16 | ILC_MASK, 5, 5); m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_BLANK)); m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_YSK)); m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_YKP)); m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_YCX)); m_wndList.SubClassWindow2(); m_wndList.SetGridLines(true); m_wndList.SetImageList(&m_Image, LVSIL_SMALL); m_bInit = true; UpdateData(false); return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE } void CC_TDSet_Signature::OnOK() { // TODO: 在此添加专用代码和/或调用基类 CDialogEx::OnOK(); } void CC_TDSet_Signature::OnCancel() { // TODO: 在此添加专用代码和/或调用基类 CDialogEx::OnCancel(); } void CC_TDSet_Signature::OnSize(UINT nType, int cx, int cy) { CDialogEx::OnSize(nType, cx, cy); if (m_bInit) { CRect rect; m_S_S1.GetWindowRect(&rect); m_wndList.MoveWindow(0, 0 + rect.Height() + 5, cx, cy - rect.Height() - 5); } } void CC_TDSet_Signature::OnClose() { Close(); CDialogEx::OnClose(); } void CC_TDSet_Signature::OnDblclkTdsetSignatureList(NMHDR* pNMHDR, LRESULT* pResult) { LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR); // TODO: 在此添加控件通知处理程序代码 *pResult = 0; On_User_Modify(); } void CC_TDSet_Signature::OnRclickTdsetSignatureList(NMHDR* pNMHDR, LRESULT* pResult) { LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR); // TODO: 在此添加控件通知处理程序代码 *pResult = 0; ShowRMenu(); } BOOL CC_TDSet_Signature::ProcessSocket(Socket_Head* pHead) { return false; } BOOL CC_TDSet_Signature::ProcessSocket(Socket_Head_Add* pHead, BYTE* pFrame) { CString strTemp; CString str; //查看签名报备信息 if (pHead->lFuncType == SMSFUNC_TD2SIGNATURE_SEE) { ANS_TD2Signature_See* pSee = (ANS_TD2Signature_See*)pFrame; ANS_TD2Signature_Data* pData = (ANS_TD2Signature_Data*)(pFrame + sizeof(ANS_TD2Signature_See)); if (pSee->lCount > 0) { //strTemp.Format(_T("查询结果 (%d/%d)"), pSee->lPageCount, pSee->lPageAll); //m_S_S1.SetWindowText(strTemp); //添加到List m_wndList.ShowWindow(SW_HIDE); long lCount = m_wndList.GetItemCount(); for (int i = 0; i < pSee->lCount; i++) { ANS_TD2Signature_Data* pNewData = new ANS_TD2Signature_Data; *pNewData = *pData; POSITION pos = m_ListData.AddTail(pNewData); int iIndex = 1; strTemp.Format(_T("%d"), lCount + i + 1); // m_wndList.SetHeadings(_T("序号,50; 平台,80;客户类型,80;充值类型,80;企业ID,80; 企业名称,180; 出单人,80;充值方式,80;充值金额,80; 费率,80;小计,70; 赠送,70; 短信量,70;预开票,55;应收,55;测试,55;成本,55;充值时间,130;过期时间,130;收款时间,130; 发票,80;发票状态,80;开票时间,130;赠送礼品,80;礼品价值,80;接受人,80;推荐积分,80; 备 注,130;客户经理,90; 代理商,130;本次余额,70;发票号码,120;实际开票类型,120;发票抬头,120;银行付款人,120;银行流水码,120;")); m_wndList.InsertItem(lCount + i, strTemp, 0); //序号 m_wndList.SetItemData(lCount + i, (DWORD)pos); //存Pos ShowDataInList(lCount + i, pData); pData++; } m_wndList.ShowWindow(SW_SHOW); } return true; } //查看签名通道信息 if (pHead->lFuncType == SMSFUNC_TD2SIGNATURETITLE_SEE) { ANS_TD2SignatureTitle_See* pSee = (ANS_TD2SignatureTitle_See*)pFrame; ANS_TD2SignatureTitle_Data* pData = (ANS_TD2SignatureTitle_Data*)(pFrame + sizeof(ANS_TD2SignatureTitle_See)); m_L_TD.ResetContent(); //删除原已有的企业 this->Close_TitleData(); //关闭原队列 long lItem; CString strTemp; lItem = m_L_TD.AddString(_T("所有通道")); m_L_TD.SetItemData(lItem, (DWORD)-10); for (int i = 0; i < pSee->lCount; i++) { ANS_TD2SignatureTitle_Data* pNewData = new ANS_TD2SignatureTitle_Data; *pNewData = *pData; POSITION pos = m_TitleData.AddTail(pNewData); //strTemp.Format(_T("%d-%s"), pNewData->lYWYID, pNewData->szYWYName); strTemp = pNewData->szSignatureTitle; lItem = m_L_TD.AddString(strTemp); m_L_TD.SetItemData( lItem , (DWORD)pos); //m_L_TD.SetItemData(lItem, (DWORD)pNewData->iTDID); pData++; } m_L_TD.SetCurSel(0); m_bRefresh = true; //已经刷新过 return true; } if (pHead->lFuncType == SMSFUNC_TD2SIGNATURE_UPLOAD) { if (m_pDlgUpload) { m_pDlgUpload->ProcessSocket(pHead, pFrame); } } return false; } long CC_TDSet_Signature::GetCurrentSelected() { POSITION pos = m_wndList.GetFirstSelectedItemPosition(); if (pos) { return m_wndList.GetNextSelectedItem(pos); } return -1; } BOOL CC_TDSet_Signature::ShowDataInList(long lItem, ANS_TD2Signature_Data* pData) { /* try { CString strTemp; CString str; int iIndex = 1; int iIconIndex = 0; m_wndList.SetItemText(lItem, iIndex++, GetPTName(pData->lPTNum)); //平台号 m_wndList.SetItemText(lItem, iIndex++, GetUserType(pData->lUserType)); //客户类型 #ifndef SMSMANAGER_KF m_wndList.SetItemText(lItem, iIndex++, GetPayType(pData->lPayType)); //充值类型 #endif if (pData->lUserType == 1) //代理商 { strTemp.Format(_T("A-%d"), pData->lCorpID); } else { strTemp.Format(_T("%d"), pData->lCorpID); } m_wndList.SetItemText(lItem, iIndex++, strTemp); //企业ID if (m_iCorpNameIndex == 0) m_iCorpNameIndex = iIndex; m_wndList.SetItemText(lItem, iIndex++, pData->szCorpName); //企业名称 #ifndef SMSMANAGER_KF m_wndList.SetItemText(lItem, iIndex++, pData->szCreateUser); //出单人 #endif m_wndList.SetItemText(lItem, iIndex++, pData->szPayMode); //充值方式 strTemp.Format(_T("%8.2f"), pData->fPrice); if (m_iPriceIndex == 0) m_iPriceIndex = iIndex; m_wndList.SetItemText(lItem, iIndex++, strTemp); //充值金额 #ifndef SMSMANAGER_KF strTemp.Format(_T("%8.4f"), pData->fPriceOne); m_wndList.SetItemText(lItem, iIndex++, strTemp); //单价 strTemp.Format(_T("%8d"), pData->lPresent); if (m_iSmsPresentIndex == 0)m_iSmsPresentIndex = iIndex; m_wndList.SetItemText(lItem, iIndex++, strTemp); //赠送 strTemp.Format(_T("%8d"), pData->lSMSCount); if (m_iSmsCountIndex == 0) m_iSmsCountIndex = iIndex; m_wndList.SetItemText(lItem, iIndex++, strTemp); //短信量 //改为显示平均单价 strTemp = _T(""); double l = 0.0f; if ((pData->fPrice - pData->fLPPrice) != 0 && pData->lSMSCount != 0) { l = (pData->fPrice - pData->fLPPrice) / pData->lSMSCount; strTemp.Format(_T("%8.4f"), l); } m_iSmsPriceOneIndex = iIndex; m_wndList.SetItemText(lItem, iIndex++, strTemp); //平均单价 #endif #ifndef SMSMANAGER_KF m_wndList.SetItemText(lItem, iIndex++, GetYSType(pData->lYSType)); //预充票类型 if (pData->lYS == 1) m_wndList.SetItemText(lItem, iIndex++, _T(" 是")); else m_wndList.SetItemText(lItem, iIndex++, _T(""));; if (pData->lTest == 1) m_wndList.SetItemText(lItem, iIndex++, _T(" 是")); else m_wndList.SetItemText(lItem, iIndex++, _T(""));; #endif strTemp.Format(_T("%04d.%02d.%02d %02d:%02d"), pData->tPayTime.wYear, pData->tPayTime.wMonth, pData->tPayTime.wDay, pData->tPayTime.wHour, pData->tPayTime.wMinute); m_wndList.SetItemText(lItem, iIndex++, strTemp); //充值时间 #ifndef SMSMANAGER_KF strTemp.Format(_T("%04d.%02d.%02d %02d:%02d"), pData->tOvrTime.wYear, pData->tOvrTime.wMonth, pData->tOvrTime.wDay, pData->tOvrTime.wHour, pData->tOvrTime.wMinute); m_wndList.SetItemText(lItem, iIndex++, strTemp); //过期时间 strTemp.Format(_T("%04d.%02d.%02d %02d:%02d"), pData->tYSTime.wYear, pData->tYSTime.wMonth, pData->tYSTime.wDay, pData->tYSTime.wHour, pData->tYSTime.wMinute); m_wndList.SetItemText(lItem, iIndex++, strTemp); //收款时间 #endif if (pData->lFP > 0) { CString strType = DLG_Corp_FP::GetFPType2(pData->lFP); m_wndList.SetItemText(lItem, iIndex++, strType); //发票类型 m_wndList.SetItemText(lItem, iIndex++, GetFPStatus(pData->lFPStatus)); //发票状态 if (pData->lFPStatus > 0) { strTemp.Format(_T("%04d.%02d.%02d %02d:%02d"), pData->tFPTime.wYear, pData->tFPTime.wMonth, pData->tFPTime.wDay, pData->tFPTime.wHour, pData->tFPTime.wMinute); m_wndList.SetItemText(lItem, iIndex++, strTemp); //开票时间 } else { m_wndList.SetItemText(lItem, iIndex++, _T(""));; } m_wndList.SetItemText(lItem, iIndex++, pData->szFPNum); //发票号码 } else { m_wndList.SetItemText(lItem, iIndex++, _T(""));; m_wndList.SetItemText(lItem, iIndex++, _T(""));; m_wndList.SetItemText(lItem, iIndex++, _T(""));; m_wndList.SetItemText(lItem, iIndex++, _T(""));; } #ifndef SMSMANAGER_KF m_wndList.SetItemText(lItem, iIndex++, GetLPType(pData->lLPType)); //礼品类型 str.Format(_T("%.2f"), pData->fLPPrice); if (m_iLPPresentIndex == 0) m_iLPPresentIndex = iIndex; m_wndList.SetItemText(lItem, iIndex++, str); //礼品价格 m_wndList.SetItemText(lItem, iIndex++, pData->szLXRName); //礼品接收人 #endif //m_wndList.SetItemText(lItem, iIndex++, pData->szBZ); //_stprintf( Buf , _T(" %d") , pData->lAgentID ); //m_wndList.SetItemText(lItem, iIndex++, GetName_YWY(pData->lYWYID)); //m_wndList.SetItemText(lItem, iIndex++, GetName_Agent(pData->lAgentID)); m_wndList.SetItemText(lItem, iIndex++, pData->szYWYName); #ifndef SMSMANAGER_KF m_wndList.SetItemText(lItem, iIndex++, pData->szAgentName); str.Format(_T("%d"), pData->lBalance); m_wndList.SetItemText(lItem, iIndex++, str); //本次余额 //m_wndList.SetItemText(lItem, iIndex++, pData->szFPActualType); //实际开票类型 //m_wndList.SetItemText(lItem, iIndex++, pData->szFPDetail); //发票抬头 m_wndList.SetItemText(lItem, iIndex++, pData->szBankPayer); //银行付款人 m_wndList.SetItemText(lItem, iIndex++, pData->szBankReferenceNum); //银行流水号 #endif iIconIndex = -1; if (COleDateTime(pData->tYSTime).GetStatus() == COleDateTime::valid) { iIconIndex = 1; } if (pData->lYSType == 1) iIconIndex = 2; if (pData->lYSType == 2) iIconIndex = 3; m_wndList.SetIconIndex(lItem, iIconIndex); return true; } catch (...) { } */ return false; } void CC_TDSet_Signature::ShowRMenu() { #ifdef SMSMANAGER_KF if (!m_pMainFrame->GetUserPurview(PURVIEW_SP)) { return; } #else if (!m_pMainFrame->GetUserPurview(PURVIEW_TAB)) { return; } #endif CMenu menu; menu.CreatePopupMenu(); BOOL bLock = false; long lItem = this->GetCurrentSelected(); ANS_TD2Signature_Data* pData = NULL; if (lItem >= 0) { POSITION pos = (POSITION)m_wndList.GetItemData(lItem); if ((long)pos >= 0) { pData = m_ListData.GetNext(pos); } } menu.AppendMenu(MF_STRING, MENU_TDSET_SIGNATURE_ADD, _T(" 新 增 ")); menu.AppendMenu(MF_SEPARATOR); if (pData) { menu.AppendMenu(MF_STRING, MENU_TDSET_SIGNATURE_SEE, _T(" 查 看 ")); menu.AppendMenu(MF_STRING, MENU_TDSET_SIGNATURE_MODIFY, _T(" 修 改 ")); menu.AppendMenu(MF_STRING, MENU_TDSET_SIGNATURE_DEL, _T(" 删 除 ")); menu.AppendMenu(MF_SEPARATOR); } menu.AppendMenu(MF_STRING, MENU_TDSET_SIGNATURE_UPLOAD, _T(" 上 传 ")); #ifndef SMSMANAGER_KF if (lItem>=0) { menu.AppendMenu(MF_SEPARATOR); menu.AppendMenu(MF_STRING, MENU_TDSET_SIGNATURE_COPYDATA, _T(" 复制数据 ")); } #endif //显示菜单 POINT pt; ::GetCursorPos(&pt); //this->ReportToScreen( &pt); menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON, pt.x, pt.y, this, NULL); menu.DestroyMenu(); } void CC_TDSet_Signature::On_User_CopyData() { this->m_wndList.CopyToClipboard(); } void CC_TDSet_Signature::On_User_See() { } void CC_TDSet_Signature::On_User_Add() { } void CC_TDSet_Signature::On_User_Modify() { } void CC_TDSet_Signature::On_User_Del() { } void CC_TDSet_Signature::On_User_Upload() { DLG_C_TDSet_Signature_Upload dlg(this); POSITION pos = NULL; if (m_L_TD.GetCurSel() >= 0) { pos = (POSITION)m_L_TD.GetItemData(m_L_TD.GetCurSel()); } dlg.SetParam(m_pMainFrame, &m_TitleData, pos); m_pDlgUpload = &dlg; dlg.DoModal(); m_pDlgUpload = NULL; }