home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 9 / CDACTUAL9.iso / progs / CB / DATA.Z / ADRU1.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1996-10-20  |  8.9 KB  |  255 lines

  1. //---------------------------------------------------------------------
  2. // CUSTOMER CONTACT BROWSER DEMO v.01
  3. //
  4. // Key Points:
  5. //
  6. // 1. Simple 1-Many join on a single field.
  7. // 2. Parameterized Query.
  8. // 3. Binding of parameters in code at runtime.
  9. // 4. Dataset navigation in code.
  10. // 5. Usefull implimentation of DataSet OnStateChange and State property.
  11. //
  12. // Pending Issues:
  13. //
  14. // 1. Tab order
  15. // 2. Control Names
  16. // 3. Hot Keys of labels related to "Orders" controls
  17. //
  18. //
  19. //    Modifications:
  20. //
  21. //---------------------------------------------------------------------
  22. #include <vcl.h>
  23. #pragma hdrstop
  24.  
  25. #include "adru1.h"
  26. //---------------------------------------------------------------------
  27. #pragma resource "*.dfm"
  28. TForm1 *Form1;
  29. //---------------------------------------------------------------------
  30. __fastcall TForm1::TForm1(TComponent *Owner)
  31.   : TForm(Owner)
  32. {
  33. }
  34. //---------------------------------------------------------------------
  35. void __fastcall TForm1::BitBtn1Click(TObject* /*Sender*/)
  36. {    Close();
  37. }
  38. //----------------------------------------------------------------------------
  39. void __fastcall TForm1::TabControl1Change(TObject* /*Sender*/)
  40. {    char cParam[3] = {'A','%',0};
  41.      String  sParam = (String)"paramVar1";
  42.      cParam[0] = (char)(65+TabControl1->TabIndex);
  43.      Query1->Cancel();    Table1->Cancel();
  44.      Table1->Close();     Query1->Close();
  45.      Query1->ParamByName(sParam)->AsString = (String)cParam;
  46.      Query1->Open();      Table1->Open();
  47.      EnableDisableCsNav();
  48.      EnableDisableOrNav();
  49. }
  50.  
  51. //----------------------------------------------------------------------------
  52. void __fastcall TForm1::FirstCustClick(TObject* /*Sender*/)
  53. {    Query1->First(); EnableDisableCsNav();
  54. }
  55. //----------------------------------------------------------------------------
  56. void __fastcall TForm1::PriorCustClick(TObject* /*Sender*/)
  57. {    Query1->Prior(); EnableDisableCsNav();
  58. }
  59. //----------------------------------------------------------------------------
  60. void __fastcall TForm1::NextCustClick(TObject* /*Sender*/)
  61. {    Query1->Next(); EnableDisableCsNav();
  62. }
  63. //----------------------------------------------------------------------------
  64. void __fastcall TForm1::LastCustClick(TObject* /*Sender*/)
  65. {    Query1->Last(); EnableDisableCsNav();
  66. }
  67. //----------------------------------------------------------------------------
  68. void __fastcall TForm1::EditCustClick(TObject* /*Sender*/)
  69. {    Query1->Edit();
  70. }
  71. //----------------------------------------------------------------------------
  72. void __fastcall TForm1::PostCustClick(TObject* /*Sender*/)
  73. {    Query1->Post();
  74. }
  75. //----------------------------------------------------------------------------
  76. void __fastcall TForm1::CancelCustClick(TObject* /*Sender*/)
  77. {    Query1->Cancel();
  78. }
  79. //----------------------------------------------------------------------------
  80. void __fastcall TForm1::FormClose(TObject* /*Sender*/,
  81.      TCloseAction & /*Action*/)
  82. {    Table1->Cancel();  Table1->Close();
  83.      Query1->Cancel();  Query1->Close();
  84. }
  85. //----------------------------------------------------------------------------
  86. void __fastcall TForm1::FormCreate(TObject* /*Sender*/)
  87. {    Table1->Open();
  88.      Query1->Open();
  89.      EnableDisableOrNav();
  90.      EnableDisableCsNav();
  91. }
  92. //----------------------------------------------------------------------------
  93. void __fastcall TForm1::CancelOrdersClick(TObject* /*Sender*/)
  94. {    Table1->Cancel();
  95. }
  96. //----------------------------------------------------------------------------
  97. void __fastcall TForm1::PostOrdersClick(TObject* /*Sender*/)
  98. {    Table1->Post();
  99. }
  100. //----------------------------------------------------------------------------
  101. void __fastcall TForm1::EditOrdersClick(TObject* /*Sender*/)
  102. {    Table1->Edit();
  103. }
  104. //----------------------------------------------------------------------------
  105. void __fastcall TForm1::LastOrdersClick(TObject* /*Sender*/)
  106. {    Table1->Last(); EnableDisableOrNav();
  107. }
  108. //----------------------------------------------------------------------------
  109. void __fastcall TForm1::NextOrdersClick(TObject* /*Sender*/)
  110. {    Table1->Next(); EnableDisableOrNav();
  111. }
  112. //----------------------------------------------------------------------------
  113. void __fastcall TForm1::PriorOrdersClick(TObject* /*Sender*/)
  114. {    Table1->Prior(); EnableDisableOrNav();
  115. }
  116. //----------------------------------------------------------------------------
  117. void __fastcall TForm1::FirstOrdersClick(TObject* /*Sender*/)
  118. {    Table1->First(); EnableDisableOrNav();
  119. }
  120. //----------------------------------------------------------------------------
  121. void __fastcall TForm1::EnableDisableOrNav()
  122. {
  123.      FirstOrders->Enabled = (!Table1->BOF ? True : False );
  124.      PriorOrders->Enabled = (!Table1->BOF ? True : False );
  125.      NextOrders->Enabled  = (!Table1->Eof ? True : False );
  126.      LastOrders->Enabled  = (!Table1->Eof ? True : False );
  127.  
  128. }
  129. //----------------------------------------------------------------------------
  130. void __fastcall TForm1::EnableDisableCsNav()
  131. {
  132.      FirstCust->Enabled = (!Query1->BOF ? True : False );
  133.      PriorCust->Enabled = (!Query1->BOF ? True : False );
  134.      NextCust->Enabled  = (!Query1->Eof ? True : False );
  135.      LastCust->Enabled  = (!Query1->Eof ? True : False );
  136. }
  137. //----------------------------------------------------------------------------
  138. void __fastcall TForm1::DataSource1StateChange(TObject* /*Sender*/)
  139. {    switch(Query1->State) {
  140.         case dsInactive   : {
  141.              EditCust->Enabled = False;
  142.              PostCust->Enabled = False;
  143.              CancelCust->Enabled = False;
  144.              break;
  145.         }
  146.         case dsBrowse     : {
  147.              EditCust->Enabled = True;
  148.              PostCust->Enabled = False;
  149.              CancelCust->Enabled = False;
  150.              break;
  151.         }
  152.         case dsEdit       : {
  153.              EditCust->Enabled = False;
  154.              PostCust->Enabled = True;
  155.              CancelCust->Enabled = True;
  156.              break;
  157.         }
  158.         case dsInsert     : {
  159.              EditCust->Enabled = False;
  160.              PostCust->Enabled = False;
  161.              CancelCust->Enabled = False;
  162.              break;
  163.         }
  164.         case dsSetKey     : {
  165.              EditCust->Enabled = False;
  166.              PostCust->Enabled = True;
  167.              CancelCust->Enabled = False;
  168.              break;
  169.         }
  170.         case dsCalcFields : {
  171.              EditCust->Enabled = False;
  172.              PostCust->Enabled = False;
  173.              CancelCust->Enabled = False;
  174.              break;
  175.         }
  176.         case dsUpdateNew  : {
  177.              EditCust->Enabled = False;
  178.              PostCust->Enabled = False;
  179.              CancelCust->Enabled = False;
  180.              break;
  181.         }
  182.         case dsUpdateOld  : {
  183.              EditCust->Enabled = False;
  184.              PostCust->Enabled = False;
  185.              CancelCust->Enabled = False;
  186.              break;
  187.         }
  188.         case dsFilter     : {
  189.              EditCust->Enabled = False;
  190.              PostCust->Enabled = False;
  191.              CancelCust->Enabled = False;
  192.              break;
  193.         }
  194.      }
  195. }
  196. //----------------------------------------------------------------------------
  197. void __fastcall TForm1::DataSource2StateChange(TObject* /*Sender*/)
  198. {    switch(Table1->State) {
  199.         case dsInactive   : {
  200.              EditOrders->Enabled = False;
  201.              PostOrders->Enabled = False;
  202.              CancelOrders->Enabled = False;
  203.              break;
  204.         }
  205.         case dsBrowse     : {
  206.              EditOrders->Enabled = True;
  207.              PostOrders->Enabled = False;
  208.              CancelOrders->Enabled = False;
  209.              break;
  210.         }
  211.         case dsEdit       : {
  212.              EditOrders->Enabled = False;
  213.              PostOrders->Enabled = True;
  214.              CancelOrders->Enabled = True;
  215.              break;
  216.         }
  217.         case dsInsert     : {
  218.              EditOrders->Enabled = False;
  219.              PostOrders->Enabled = False;
  220.              CancelOrders->Enabled = False;
  221.              break;
  222.         }
  223.         case dsSetKey     : {
  224.              EditOrders->Enabled = False;
  225.              PostOrders->Enabled = True;
  226.              CancelOrders->Enabled = False;
  227.              break;
  228.         }
  229.         case dsCalcFields : {
  230.              EditOrders->Enabled = False;
  231.              PostOrders->Enabled = False;
  232.              CancelOrders->Enabled = False;
  233.              break;
  234.         }
  235.         case dsUpdateNew  : {
  236.              EditOrders->Enabled = False;
  237.              PostOrders->Enabled = False;
  238.              CancelOrders->Enabled = False;
  239.              break;
  240.         }
  241.         case dsUpdateOld  : {
  242.              EditOrders->Enabled = False;
  243.              PostOrders->Enabled = False;
  244.              CancelOrders->Enabled = False;
  245.              break;
  246.         }
  247.         case dsFilter     : {
  248.              EditOrders->Enabled = False;
  249.              PostOrders->Enabled = False;
  250.              CancelOrders->Enabled = False;
  251.              break;
  252.         }
  253.      }
  254. }
  255.