// CompareContent.cpp : implementation file // #include "stdafx.h" #include "ylgl.h" #include "CompareContent.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CCompareContent dialog int __cdecl CompareByLabel4(const void *elem1, const void *elem2) { CStringArray *p1 = (CStringArray*)elem1; CStringArray *p2 = (CStringArray*)elem2; return lstrcmp(p1->ElementAt(1), p2->ElementAt(1)); // return lstrcmp( p2->ElementAt (0), p1->ElementAt (0) ); } CCompareContent::CCompareContent(CWnd* pParent /*=NULL*/) : CDialog(CCompareContent::IDD, pParent) { //{{AFX_DATA_INIT(CCompareContent) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT } void CCompareContent::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CCompareContent) DDX_Control(pDX, IDC_LIST3, m_List3); DDX_Control(pDX, IDC_LIST2, m_List2); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CCompareContent, CDialog) //{{AFX_MSG_MAP(CCompareContent) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CCompareContent message handlers BOOL CCompareContent::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here m_List2.SetHeadings("编号,55;商品名称,150;数量,55"); m_List3.SetHeadings("编号,55;商品名称,150;价格,55;数量,55;照片编号,345"); #ifdef CHILD_VERSION CString filter = "id='" + m_id + "';id='" + m_id + "'"; #else CString filter="id='"+m_id+"' and kind<>'2';id='"+m_id+"'"; #endif g_sendhead.code[0] = 50; g_sendhead.code[1] = 182; g_sendhead.tabcount = 2; g_sendhead.bsql = 0; g_pMainWnd->ProcessChatMessageRequest2(filter); if (g_bSendOK == 0)return 0; CArraysparray; CArrayoldsparray; DataToArray(&sparray, &oldsparray); CArraylist3array; list3array.SetSize(sparray.GetSize(), 1); for (int i = 0; i < sparray.GetSize(); i++) { list3array.ElementAt(i).Add(sparray.ElementAt(i).ElementAt(1)); list3array.ElementAt(i).Add(sparray.ElementAt(i).ElementAt(5)); list3array.ElementAt(i).Add(sparray.ElementAt(i).ElementAt(2)); list3array.ElementAt(i).Add(sparray.ElementAt(i).ElementAt(3)); #if JEFF_DELETE_ON // 引起错误的地方,除非加上else处理对立情况; if (sparray.ElementAt(i).ElementAt(6).GetLength()>256) list3array.ElementAt(i).Add(sparray.ElementAt(i).ElementAt(6).Left(256)); #else list3array.ElementAt(i).Add(sparray.ElementAt(i).ElementAt(6).Left(256)); #endif } if (list3array.GetSize()) { qsort(static_cast(&list3array[0]), list3array.GetSize(), sizeof(list3array[0]), CompareByLabel4); m_List3.DeleteAllItems2(); int ii = 0; m_List3.m_arLabels.SetSize(list3array.GetSize(), 1); int count = 0; for (ii = 0; ii < m_List3.m_arLabels.GetSize(); ii++) { m_List3.m_arLabels.ElementAt(count++).Copy(list3array.ElementAt(ii)); } m_List3.m_arLabels.SetSize(count, 1); ii = count; m_List3.m_LabelCount = ii; m_List3.SetItemCountEx(ii); } //////// CArraylist2array; list2array.SetSize(oldsparray.GetSize(), 1); for (i = 0; i < oldsparray.GetSize(); i++) { list2array.ElementAt(i).Add(oldsparray.ElementAt(i).ElementAt(1)); list2array.ElementAt(i).Add(oldsparray.ElementAt(i).ElementAt(2)); list2array.ElementAt(i).Add(oldsparray.ElementAt(i).ElementAt(3)); } if (list2array.GetSize()) { qsort(static_cast(&list2array[0]), list2array.GetSize(), sizeof(list2array[0]), CompareByLabel4); m_List2.DeleteAllItems2(); int ii = 0; m_List2.m_arLabels.SetSize(list2array.GetSize(), 1); int count = 0; for (ii = 0; ii < m_List2.m_arLabels.GetSize(); ii++) { m_List2.m_arLabels.ElementAt(count++).Copy(list2array.ElementAt(ii)); } m_List2.m_arLabels.SetSize(count, 1); ii = count; m_List2.m_LabelCount = ii; m_List2.SetItemCountEx(ii); } CenterWindow(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }