DlgVarStatusManager.cpp 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294
  1. // AnalogDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "IDE.h"
  5. #include "DlgVarStatusManager.h"
  6. #include "DlgVarStatus.h"
  7. #include ".\dlgvarstatusmanager.h"
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13. /////////////////////////////////////////////////////////////////////////////
  14. // CDlgVarStatusManager dialog
  15. CDlgVarStatusManager::CDlgVarStatusManager(CWnd* pParent /*=NULL*/)
  16. : CDialog(CDlgVarStatusManager::IDD, pParent)
  17. {
  18. //{{AFX_DATA_INIT(CDlgVarStatusManager)
  19. // NOTE: the ClassWizard will add member initialization here
  20. //}}AFX_DATA_INIT
  21. m_ctrlGridVarStatus.RegisterWindowClass(g_hLangDLL);
  22. }
  23. void CDlgVarStatusManager::DoDataExchange(CDataExchange* pDX)
  24. {
  25. CDialog::DoDataExchange(pDX);
  26. //{{AFX_DATA_MAP(CDlgVarStatusManager)
  27. DDX_Control(pDX, IDC_GRID_VAR_STATUS, m_ctrlGridVarStatus);
  28. //}}AFX_DATA_MAP
  29. }
  30. BEGIN_MESSAGE_MAP(CDlgVarStatusManager, CDialog)
  31. //{{AFX_MSG_MAP(CDlgVarStatusManager)
  32. //}}AFX_MSG_MAP
  33. ON_BN_CLICKED(IDC_BTN_ADD, OnBnClickedAdd)
  34. ON_BN_CLICKED(IDC_BTN_EDIT, OnBnClickedEdit)
  35. ON_BN_CLICKED(IDC_BTN_DEL, OnBnClickedDel)
  36. ON_BN_CLICKED(IDC_BTN_COPY, OnBnClickedCopy)
  37. ON_BN_CLICKED(IDC_BTN_CANCEL, OnBnClickedBtnCancel)
  38. END_MESSAGE_MAP()
  39. /////////////////////////////////////////////////////////////////////////////
  40. // CDlgVarStatusManager message handlers
  41. void CDlgVarStatusManager::OnOK()
  42. {
  43. // TODO: Add extra validation here
  44. CDialog::OnOK();
  45. }
  46. void CDlgVarStatusManager::OnCancel()
  47. {
  48. // TODO: Add extra cleanup here
  49. CDialog::OnCancel();
  50. }
  51. BOOL CDlgVarStatusManager::OnInitDialog()
  52. {
  53. CDialog::OnInitDialog();
  54. m_btnEdit.SubclassDlgItem(IDC_BTN_EDIT, this);
  55. m_btnEdit.SetBitmaps(IDB_EDIT, RGB(255, 0, 255));
  56. m_btnEdit.SetFlat(FALSE);
  57. m_btnEdit.SetAlign(CButtonST::ST_ALIGN_HORIZ);
  58. m_btnCopy.SubclassDlgItem(IDC_BTN_COPY, this);
  59. m_btnCopy.SetBitmaps(IDB_COPY , RGB(192, 192, 192));
  60. m_btnCopy.SetFlat(FALSE);
  61. m_btnCopy.SetAlign(CButtonST::ST_ALIGN_HORIZ);
  62. m_btnDel.SubclassDlgItem(IDC_BTN_DEL, this);
  63. m_btnDel.SetBitmaps(IDB_DEL, RGB(255,0 , 255));
  64. m_btnDel.SetFlat(FALSE);
  65. m_btnDel.SetAlign(CButtonST::ST_ALIGN_HORIZ);
  66. m_btnAdd.SubclassDlgItem(IDC_BTN_ADD, this);
  67. m_btnAdd.SetBitmaps(IDB_ADD, RGB(192, 192, 192));
  68. m_btnAdd.SetFlat(FALSE);
  69. m_btnAdd.SetAlign(CButtonST::ST_ALIGN_HORIZ);
  70. m_btnCancel.SubclassDlgItem(IDC_BTN_CANCEL, this);
  71. m_btnCancel.SetBitmaps(IDB_EXIT, RGB(192, 192, 192));
  72. m_btnCancel.SetFlat(FALSE);
  73. m_btnCancel.SetAlign(CButtonST::ST_ALIGN_HORIZ);
  74. SetFields();
  75. return TRUE; // return TRUE unless you set the focus to a control
  76. // EXCEPTION: OCX Property Pages should return FALSE
  77. }
  78. void CDlgVarStatusManager::SetFields()
  79. {
  80. int i;
  81. m_ctrlGridVarStatus.m_field.SetSize(6);
  82. i=0;
  83. m_ctrlGridVarStatus.m_field[i].Field=_T("id");
  84. m_ctrlGridVarStatus.m_field[i].Caption=_T("ID");
  85. m_ctrlGridVarStatus.m_field[i].With = 50;
  86. m_ctrlGridVarStatus.m_field[i].Find=true;
  87. i=1;
  88. m_ctrlGridVarStatus.m_field[i].Field=_T("devuid");
  89. m_ctrlGridVarStatus.m_field[i].Caption=g_strDevUid2;
  90. m_ctrlGridVarStatus.m_field[i].With=200;
  91. m_ctrlGridVarStatus.m_field[i].Find=true;
  92. i=2;
  93. m_ctrlGridVarStatus.m_field[i].Field=_T("varid");
  94. m_ctrlGridVarStatus.m_field[i].Caption=g_strVarID;
  95. m_ctrlGridVarStatus.m_field[i].With=200;
  96. m_ctrlGridVarStatus.m_field[i].Find=true;
  97. i=3;
  98. m_ctrlGridVarStatus.m_field[i].Field=_T("statusid");
  99. m_ctrlGridVarStatus.m_field[i].Caption=g_strAlarmStatus;
  100. m_ctrlGridVarStatus.m_field[i].With=200;
  101. m_ctrlGridVarStatus.m_field[i].Find=true;
  102. i=4;
  103. m_ctrlGridVarStatus.m_field[i].Field=_T("statusdesc");
  104. m_ctrlGridVarStatus.m_field[i].Caption=g_strAlarmStatusDesc;
  105. m_ctrlGridVarStatus.m_field[i].With=200;
  106. m_ctrlGridVarStatus.m_field[i].Find=true;
  107. i=5;
  108. m_ctrlGridVarStatus.m_field[i].Field=_T("normalstatus");
  109. m_ctrlGridVarStatus.m_field[i].Caption=g_strNormalStatusID;
  110. m_ctrlGridVarStatus.m_field[i].With=200;
  111. m_ctrlGridVarStatus.m_field[i].Find=true;
  112. Requery();
  113. // m_ctrlAnalogGrid.Execute(m_pConnection,"ProductId"/*Primary key field */
  114. // ,"*"//fields in SELECT statment
  115. // ,"Products" //from
  116. // ,"" // where
  117. // ,0); // order by N of the Grid column
  118. }
  119. void CDlgVarStatusManager::Requery()
  120. {
  121. CString strWhere;
  122. strWhere.Format(" devuid = \'%s\' and varid = %d", m_strUID, m_nVarID);
  123. m_ctrlGridVarStatus.Execute(_T("id")/*Primary key field */
  124. ,_T("*")//fields in SELECT statment
  125. ,_T("t_var_status") //from
  126. ,strWhere // where
  127. ,0); // order by N of the Grid column
  128. //
  129. }
  130. BEGIN_EVENTSINK_MAP(CDlgVarStatusManager, CDialog)
  131. //{{AFX_EVENTSINK_MAP(CDlgVarStatusManager)
  132. //}}AFX_EVENTSINK_MAP
  133. END_EVENTSINK_MAP()
  134. void CDlgVarStatusManager::OnBnClickedAdd()
  135. {
  136. // TODO: 在此添加控件通知处理程序代码
  137. CDlgVarStatus dlg;
  138. dlg.m_pSet = m_ctrlGridVarStatus.m_pSet;
  139. dlg.m_strUID = m_strUID;
  140. dlg.m_nVarID = m_nVarID;
  141. dlg.m_operation = CDlgVarStatus::NEW;
  142. if (dlg.DoModal() == IDOK)
  143. {
  144. //m_ctrlAnalogGrid.Invalidate();
  145. m_ctrlGridVarStatus.AddNew();
  146. Requery();
  147. }
  148. }
  149. void CDlgVarStatusManager::OnBnClickedEdit()
  150. {
  151. // TODO: 在此添加控件通知处理程序代码
  152. int nRow=m_ctrlGridVarStatus.IsSelectRow();
  153. if(nRow==-1)
  154. return;
  155. CDlgVarStatus dlg;
  156. dlg.m_strUID = m_strUID;
  157. dlg.m_nVarID = m_nVarID;
  158. dlg.m_pSet = m_ctrlGridVarStatus.m_pSet;
  159. dlg.m_operation=CDlgVarStatus::EDIT;
  160. if (dlg.DoModal() == IDOK)
  161. {
  162. m_ctrlGridVarStatus.Invalidate();
  163. Requery();
  164. }
  165. }
  166. void CDlgVarStatusManager::OnBnClickedDel()
  167. {
  168. // TODO: 在此添加控件通知处理程序代码
  169. if (MessageBox (g_strMsgConfirmDel, g_strMsgPrompt, MB_YESNO|MB_DEFBUTTON2 | MB_ICONQUESTION) == IDYES)
  170. {
  171. m_ctrlGridVarStatus.Delete();
  172. Requery();
  173. }
  174. }
  175. void CDlgVarStatusManager::OnBnClickedCopy()
  176. {
  177. // TODO: 在此添加控件通知处理程序代码
  178. if(m_ctrlGridVarStatus.IsSelectRow()==-1)
  179. return;
  180. CDlgVarStatus dlg;
  181. dlg.m_strUID = m_strUID;
  182. dlg.m_nVarID = m_nVarID;
  183. dlg.m_pSet = m_ctrlGridVarStatus.m_pSet;
  184. dlg.m_operation=CDlgVarStatus::COPY;
  185. //dlg.m_catId=m_ctrlAnalogGrid.m_pSet->GetCollect(L"CategoryID") ;
  186. //dlg.m_supId=m_ctrlAnalogGrid.m_pSet->GetCollect(L"SupplierID") ;
  187. //dlg.m_cmbCat.Attach(&m_CatArray,dlg.m_catId);
  188. //dlg.m_cmbSup.Attach(&m_SupArray,dlg.m_supId);
  189. if (dlg.DoModal() == IDOK)
  190. {
  191. m_ctrlGridVarStatus.AddNew();
  192. Requery();
  193. }
  194. }
  195. BOOL CDlgVarStatusManager::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
  196. {
  197. LPNMHDR pNmhdr = (LPNMHDR)lParam;
  198. // TODO: 在此添加专用代码和/或调用基类
  199. if (wParam == (WPARAM)m_ctrlGridVarStatus.GetDlgCtrlID())
  200. {
  201. *pResult = 1;
  202. GV_DISPINFO *pDispInfo = (GV_DISPINFO*)lParam;
  203. m_ctrlGridVarStatus.SetValue(pDispInfo);
  204. }
  205. return CDialog::OnNotify(wParam, lParam, pResult);
  206. }
  207. void CDlgVarStatusManager::OnBnClickedBtnCancel()
  208. {
  209. // TODO: 在此添加控件通知处理程序代码
  210. OnCancel();
  211. }
  212. LRESULT CDlgVarStatusManager::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
  213. {
  214. // TODO: 在此添加专用代码和/或调用基类
  215. switch( message )
  216. {
  217. case WM_DCLICK:
  218. {
  219. int nRow=m_ctrlGridVarStatus.IsSelectRow();
  220. if(nRow==-1)
  221. return 0;
  222. CDlgVarStatus dlg;
  223. dlg.m_strUID = m_strUID;
  224. dlg.m_nVarID = m_nVarID;
  225. dlg.m_pSet = m_ctrlGridVarStatus.m_pSet;
  226. dlg.m_operation=CDlgVarStatus::EDIT;
  227. if (dlg.DoModal() == IDOK)
  228. {
  229. m_ctrlGridVarStatus.Invalidate();
  230. Requery();
  231. }
  232. }
  233. break;
  234. }
  235. return CDialog::WindowProc(message, wParam, lParam);
  236. }