DlgBitManager.cpp 7.5 KB

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