CompareContent.cpp 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. // CompareContent.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "ylgl.h"
  5. #include "CompareContent.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CCompareContent dialog
  13. int __cdecl CompareByLabel4( const void *elem1, const void *elem2)
  14. {
  15. CStringArray *p1 = (CStringArray*)elem1;
  16. CStringArray *p2 = (CStringArray*)elem2;
  17. return lstrcmp( p1->ElementAt (1), p2->ElementAt (1) ) ;
  18. // return lstrcmp( p2->ElementAt (0), p1->ElementAt (0) );
  19. }
  20. CCompareContent::CCompareContent(CWnd* pParent /*=NULL*/)
  21. : CDialog(CCompareContent::IDD, pParent)
  22. {
  23. //{{AFX_DATA_INIT(CCompareContent)
  24. // NOTE: the ClassWizard will add member initialization here
  25. //}}AFX_DATA_INIT
  26. }
  27. void CCompareContent::DoDataExchange(CDataExchange* pDX)
  28. {
  29. CDialog::DoDataExchange(pDX);
  30. //{{AFX_DATA_MAP(CCompareContent)
  31. DDX_Control(pDX, IDC_LIST3, m_List3);
  32. DDX_Control(pDX, IDC_LIST2, m_List2);
  33. //}}AFX_DATA_MAP
  34. }
  35. BEGIN_MESSAGE_MAP(CCompareContent, CDialog)
  36. //{{AFX_MSG_MAP(CCompareContent)
  37. //}}AFX_MSG_MAP
  38. END_MESSAGE_MAP()
  39. /////////////////////////////////////////////////////////////////////////////
  40. // CCompareContent message handlers
  41. BOOL CCompareContent::OnInitDialog()
  42. {
  43. CDialog::OnInitDialog();
  44. // TODO: Add extra initialization here
  45. m_List2.SetHeadings("编号,55;商品名称,150;数量,55" );
  46. m_List3.SetHeadings("编号,55;商品名称,150;价格,55;数量,55;照片编号,345" );
  47. #ifdef CHILD_VERSION
  48. CString filter="id='"+m_id+"';id='"+m_id+"'";
  49. #else
  50. CString filter="id='"+m_id+"' and kind<>'2';id='"+m_id+"'";
  51. #endif
  52. g_sendhead.code[0]=50;
  53. g_sendhead.code[1]=182;
  54. g_sendhead.tabcount=2;
  55. g_sendhead.bsql=0;
  56. g_pMainWnd->ProcessChatMessageRequest2(filter);if(g_bSendOK==0)return 0;
  57. CArray<CStringArray, CStringArray>sparray;
  58. CArray<CStringArray, CStringArray>oldsparray;
  59. DataToArray(&sparray, &oldsparray);
  60. CArray<CStringArray, CStringArray>list3array;
  61. list3array.SetSize(sparray.GetSize (), 1);
  62. int i = 0;
  63. for( i=0; i<sparray.GetSize (); i++)
  64. {
  65. list3array.ElementAt(i).Add(sparray.ElementAt (i).ElementAt (1));
  66. list3array.ElementAt(i).Add(sparray.ElementAt (i).ElementAt (5));
  67. list3array.ElementAt(i).Add(sparray.ElementAt (i).ElementAt (2));
  68. list3array.ElementAt(i).Add(sparray.ElementAt (i).ElementAt (3));
  69. if(sparray.ElementAt (i).ElementAt (6).GetLength()>256)
  70. list3array.ElementAt(i).Add(sparray.ElementAt (i).ElementAt (6).Left(256));
  71. }
  72. if(list3array.GetSize ())
  73. {
  74. qsort( static_cast<void*>(&list3array[0]), list3array.GetSize (), sizeof(list3array[0]), CompareByLabel4 );
  75. m_List3.DeleteAllItems2 ();
  76. int ii=0;
  77. m_List3.m_arLabels.SetSize( list3array.GetSize (), 1 );
  78. int count=0;
  79. for(ii=0; ii<m_List3.m_arLabels.GetSize (); ii++)
  80. {
  81. m_List3.m_arLabels.ElementAt (count++).Copy (list3array.ElementAt (ii));
  82. }
  83. m_List3.m_arLabels.SetSize(count, 1);
  84. ii=count;
  85. m_List3.m_LabelCount=ii;
  86. m_List3.SetItemCountEx (ii);
  87. }
  88. ////////
  89. CArray<CStringArray, CStringArray>list2array;
  90. list2array.SetSize(oldsparray.GetSize (), 1);
  91. for( i=0; i<oldsparray.GetSize (); i++)
  92. {
  93. list2array.ElementAt(i).Add(oldsparray.ElementAt (i).ElementAt (1));
  94. list2array.ElementAt(i).Add(oldsparray.ElementAt (i).ElementAt (2));
  95. list2array.ElementAt(i).Add(oldsparray.ElementAt (i).ElementAt (3));
  96. }
  97. if(list2array.GetSize ())
  98. {
  99. qsort( static_cast<void*>(&list2array[0]), list2array.GetSize (), sizeof(list2array[0]), CompareByLabel4 );
  100. m_List2.DeleteAllItems2 ();
  101. int ii=0;
  102. m_List2.m_arLabels.SetSize( list2array.GetSize (), 1 );
  103. int count=0;
  104. for(ii=0; ii<m_List2.m_arLabels.GetSize (); ii++)
  105. {
  106. m_List2.m_arLabels.ElementAt (count++).Copy (list2array.ElementAt (ii));
  107. }
  108. m_List2.m_arLabels.SetSize(count, 1);
  109. ii=count;
  110. m_List2.m_LabelCount=ii;
  111. m_List2.SetItemCountEx (ii);
  112. }
  113. CenterWindow();
  114. return TRUE; // return TRUE unless you set the focus to a control
  115. // EXCEPTION: OCX Property Pages should return FALSE
  116. }