ClientContract.cpp 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. // ClientContract.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "ylgl.h"
  5. #include "ClientContract.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // ClientContract dialog
  13. ClientContract::ClientContract(CWnd* pParent /*=NULL*/)
  14. : CDialog(ClientContract::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(ClientContract)
  17. //}}AFX_DATA_INIT
  18. }
  19. void ClientContract::DoDataExchange(CDataExchange* pDX)
  20. {
  21. CDialog::DoDataExchange(pDX);
  22. //{{AFX_DATA_MAP(ClientContract)
  23. DDX_Control(pDX, IDC_LIST1, m_List1);
  24. //}}AFX_DATA_MAP
  25. }
  26. BEGIN_MESSAGE_MAP(ClientContract, CDialog)
  27. //{{AFX_MSG_MAP(ClientContract)
  28. ON_BN_CLICKED(IDC_BUTadd, OnBUTadd)
  29. ON_BN_CLICKED(IDC_BUTdel, OnBUTdel)
  30. ON_BN_CLICKED(IDC_BUTshow, OnBUTshow)
  31. ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkList1)
  32. //}}AFX_MSG_MAP
  33. END_MESSAGE_MAP()
  34. /////////////////////////////////////////////////////////////////////////////
  35. // ClientContract message handlers
  36. BOOL ClientContract::OnInitDialog()
  37. {
  38. CDialog::OnInitDialog();
  39. // TODO: Add extra initialization here
  40. if(IsHasRights2new(16)==1 || IsHasRights2new(49)==1)
  41. {
  42. GetDlgItem(IDC_BUTadd)->EnableWindow(1); GetDlgItem(IDC_BUTdel)->EnableWindow(1);
  43. }
  44. else
  45. {
  46. GetDlgItem(IDC_BUTadd)->EnableWindow(0); GetDlgItem(IDC_BUTdel)->EnableWindow(0);
  47. }
  48. m_List1.SetHeadings( "编号,50;上传日期,150" );
  49. m_List1.LoadColumnInfo (304);
  50. GetData();
  51. this->CenterWindow (g_pMainWnd);
  52. return false; // return TRUE unless you set the focus to a control
  53. // EXCEPTION: OCX Property Pages should return FALSE
  54. }
  55. void ClientContract::OnCancel()
  56. {
  57. // TODO: Add extra cleanup here
  58. CDialog::OnCancel();
  59. }
  60. void ClientContract::OnOK()
  61. {
  62. // TODO: Add extra validation here
  63. CDialog::OnOK();
  64. }
  65. void ClientContract::FillGrid()
  66. {
  67. UpdateData();
  68. m_List1.DeleteAllItems2 ();
  69. int ii=0;
  70. m_List1.m_arLabels.SetSize( m_List1array.GetSize (), 1 );
  71. int count=0;
  72. for(ii=0; ii<m_List1.m_arLabels.GetSize (); ii++)
  73. {
  74. m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii));
  75. }
  76. m_List1.m_arLabels.SetSize(count, 1);
  77. ii=count;
  78. m_List1.m_LabelCount=ii;
  79. m_List1.SetItemCountEx (ii);
  80. }
  81. void ClientContract::OnBUTadd()
  82. {
  83. // TODO: Add your control notification handler code here
  84. CFileDialog fdlg(true, NULL,"", OFN_HIDEREADONLY, "jpg files(*jpg)|*.jpg||");
  85. if(fdlg.DoModal ()!=IDOK)return;
  86. CString path=fdlg.GetPathName();
  87. Image *m_pImg=NULL;
  88. if(m_pImg)delete m_pImg;m_pImg=NULL;
  89. ::LoadImageFromBuf (&m_pImg, path);
  90. if(m_pImg==NULL)
  91. {
  92. AfxMessageBox("无效图片文件!");return;
  93. }
  94. Image *simg2=NULL;
  95. CRect rc2(0,0,2000,2000);
  96. RectFitDes(m_pImg->GetWidth(), m_pImg->GetHeight(), rc2);
  97. simg2=m_pImg->GetThumbnailImage(rc2.Width (), rc2.Height (), NULL, NULL);
  98. Graphics graphic2(simg2);//防止GetThumbnailImage影响质量
  99. graphic2.Clear(Color(255,255,255,255));
  100. graphic2.DrawImage(m_pImg, 0,0,simg2->GetWidth(), simg2->GetHeight() );
  101. if(m_pImg)delete m_pImg;m_pImg=NULL;
  102. path=g_mainpath+"\\1.jpg";
  103. ::SaveImageToFile2 (simg2, path, 40); delete simg2;
  104. CFile fp;
  105. if(!fp.Open(path, CFile::modeRead))
  106. {
  107. AfxMessageBox("文件打开失败!");
  108. return;
  109. }
  110. DWORD length=fp.GetLength();
  111. BYTE *m_pData=new BYTE[length+100];
  112. fp.Read(m_pData, length);
  113. fp.Close();
  114. ::DeleteFile(path);
  115. char no[100];
  116. memset(no, 0, 100);
  117. strcpy(no, m_id+";");
  118. memcpy(m_pData+length, no, 100);
  119. g_nSendCode=39;
  120. g_pMainWnd->ProcessChatMessageRequest2(m_pData, length+100);
  121. g_nSendCode=0;
  122. delete []m_pData;
  123. if(g_bSendOK==0)
  124. {
  125. if(m_pImg)delete m_pImg;m_pImg=NULL;
  126. return;
  127. }
  128. AfxMessageBox("上传成功!");GetData();
  129. }
  130. void ClientContract::OnBUTdel()
  131. {
  132. // TODO: Add your control notification handler code here
  133. POSITION pos;
  134. pos=m_List1.GetFirstSelectedItemPosition();
  135. if(pos==NULL)
  136. {
  137. AfxMessageBox("请先选中您要删除的合同");
  138. return;
  139. }
  140. if(AfxMessageBox("是否删除此合同, 确认吗?", MB_YESNO|MB_ICONINFORMATION)!=IDYES)return;
  141. int iItem=m_List1.GetNextSelectedItem(pos);
  142. CString date=m_List1.GetItemText (iItem, 1);
  143. BYTE *m_pData=new BYTE[100];
  144. char no[100];
  145. memset(no, 0, 100);
  146. strcpy(no, m_id+";"+date);
  147. memcpy(m_pData, no, 100);
  148. g_nSendCode=39;
  149. g_pMainWnd->ProcessChatMessageRequest2(m_pData, 100);
  150. g_nSendCode=0;
  151. delete []m_pData;
  152. if(g_bSendOK==0)
  153. {
  154. return;
  155. }
  156. AfxMessageBox("删除成功!");GetData();
  157. }
  158. void ClientContract::GetData()
  159. {
  160. CString filter="id='"+m_id+"'";
  161. g_sendhead.bsql=0;
  162. g_sendhead.code[0]=230;
  163. g_sendhead.tabcount=1;
  164. g_pMainWnd->ProcessChatMessageRequest2(filter);if(g_bSendOK==0)return;
  165. DataToArray(&m_List1array);
  166. FillGrid();
  167. }
  168. void ClientContract::OnBUTshow()
  169. {
  170. // TODO: Add your control notification handler code here
  171. POSITION pos;
  172. pos=m_List1.GetFirstSelectedItemPosition();
  173. if(pos==NULL)
  174. {AfxMessageBox("请先选中您要查看的合同!");
  175. return;
  176. }
  177. int iItem=m_List1.GetNextSelectedItem(pos);
  178. CString date=m_List1.GetItemText (iItem, 1);
  179. char no[100];
  180. memset(no, 0, 100);
  181. strcpy(no, m_id+";"+date);
  182. g_nSendCode=40;
  183. g_pMainWnd->ProcessChatMessageRequest2((BYTE*)no, 100);
  184. g_nSendCode=0;
  185. if(g_bSendOK==0)
  186. {
  187. return;
  188. }
  189. CString path=g_mainpath+"\\1.jpg"; ::DeleteFile(path);
  190. CFile fp;
  191. fp.Open(path, CFile::modeCreate|CFile::modeWrite);
  192. fp.Write(g_pData, g_nLeng);
  193. fp.Close();
  194. ShellExecute(NULL, _T("open"), path, NULL, NULL, SW_SHOWMAXIMIZED);
  195. }
  196. void ClientContract::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
  197. {
  198. // TODO: Add your control notification handler code here
  199. OnBUTshow();
  200. *pResult = 0;
  201. }