home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / borland / ib / setups / intrabld / data.z / TMD.CC < prev    next >
Text File  |  1996-12-11  |  3KB  |  86 lines

  1. /****************************************************************************\
  2. *                                                                            *
  3. * TMD.cc  --  IntraBuilder Custom Controls used by the TMD project           *
  4. *                                                                            *
  5. *                                                                            *
  6. * Updated 9/18/96 by IntraBuilder Publications Group                         *
  7. * $Revision:   1.0  $                                                        *
  8. *                                                                            *
  9. * Copyright (c) 1996, Borland International, Inc. All rights reserved.       *
  10. *                                                                            *
  11. \****************************************************************************/
  12. class messagesQuery extends Query custom {
  13.    with (this) {
  14.       left = 76;
  15.       top = 0;
  16.       sql = 'SELECT * FROM "messages.db"';
  17.       active = true;
  18.    }
  19.  
  20.    with (this.rowset) {
  21.       fields["From"].beforeGetValue = class::from_beforeGetValue
  22.       fields["Section"].canChange = class::section_canChange
  23.       fields["Section"].beforeGetValue = class::section_beforeGetValue
  24.  
  25.       indexName = "Thread";
  26.    }
  27.  
  28.    function onOpen()
  29.    {
  30.      with ( this.qUsers = new Query() ) {
  31.        sql = "select * from USERS.DB";
  32.        active = true;
  33.      }
  34.      with ( this.qSections = new Query() ) {
  35.        sql = "select * from SECTIONS.DB";
  36.        active = true;
  37.      }
  38.    }
  39.  
  40.    function from_beforeGetValue()
  41.    {
  42.      if ( this.parent.parent.endOfSet ) {
  43.        // When navigating to end-of-set
  44.        return null;
  45.      }
  46.      else if ( this.value == null ) {
  47.        // For beginAppend()
  48.        return "";
  49.      }
  50.      else {
  51.        // Normal lookup, with value in case lookup fails
  52.        var r = this.parent.parent.parent.qUsers.rowset;
  53.        return r.applyLocate( '"User ID" = ' + parseInt( this.value ) ) ? 
  54.               r.fields[ "User name" ].value : "Unregistered";
  55.      }
  56.    }
  57.  
  58.    function section_beforeGetValue()
  59.    {
  60.      if ( this.parent.parent.endOfSet ) {
  61.        // When navigating to end-of-set
  62.        return null;
  63.      }
  64.      else if ( this.value == null ) {
  65.        // For beginAppend()
  66.        return "";
  67.      }
  68.      else {
  69.        // Normal lookup, with value in case lookup fails
  70.        var r = this.parent.parent.parent.qSections.rowset;
  71.        return r.applyLocate( '"Section #" = ' + parseInt( this.value ) ) ?
  72.               r.fields[ "Name" ].value : "Closed section";
  73.      }
  74.    }
  75.  
  76.    function section_canChange( newValue )
  77.    {
  78.      var r = this.parent.parent.parent.qSections.rowset;
  79.      if ( r.applyLocate( '"Name" = \'' + newValue +'\'' ) ) {
  80.        this.value = r.fields[ "Section #" ].value;
  81.      }
  82.      return false;
  83.    }
  84.  
  85. }
  86.