      

    11  

               
RENTMAN.         TENANT, 
PROPERTY, CALL, LEASE  WORDER.      
    ,   RENTMAN,   
      . 
     TENANT  PROPERTY,      ,  
 DBCtrlGrid.   ,   
DBCtrlGrid,         
 ,    .       
    ,   DBCtrlGrid   
    ,    DBGrid   
    .  DBGrid    
 CALL  WORDER,   DBCtrlGrid    TENANT  PROPERTY. 

     TENANT 

     TENANT    fmControlGridForm.   Delphi 
  File=>New      New Itmes  
  Forms.      fmControlGridForm,  
  Inherit,      .     
Delphi   ,  fmControlGridForml. 
       Name   fmRTENCGDO,   Caption  
 Tenant Edit Form.   File=>Use Unit     
 RENTDATA .      dmRENTMAN  
RENTMAN      . 

      
          fmControlGridForm  
  ,        
.       ,  
 ,     .  , 
      ,   
Edit=>Lock Controls,    ,     
.        ,  
          -.  
    . 

    ,      ,     . 
   Height   400,   Width  
 565.        TENANT. 

     11.   217 


       

          ,   -  
   fmEditForm.       ,    
         .    
    ,  Delphi    
,     -.    
 ,           
          . 
       paMiddle     Enabled  Visible 
 False.     ,   
 ,         
  ,  , ,  .   
             
   .        
Align     aINone,   Align     
alClient.    ,    " "  
, ,   ,      . 
       paMiddle    
    Send to Back.  paMiddle    
     . 
     ,  ,     .   
,    ,      
 ,     ? , 
  ,    ,    
        
  .         
   .   ,    
,          .     
   ,     . 
  ,       ,    
        ,  
  . 

        

         DBCtrlGrid  ,  
 . 
    1.   InterBase   ,  . 
    2.  <Shift+F12>  ,     View Form  
     dmRENTMAN   ,   
.      ,     . 
    3.    ,    <Shift+F12>     
 . 
    4.   DBCtrlGrid  DBNavigator     
DataSource  dmRENTMAN.dsTENANT,      DBNavigator. 
    5.   TENANT  11 .      
 ,     ,    
.        DBCtrlGrid  
 DBText  10  DBEdit.      
  ,   ,    . 
    6.    Height   ,  
   ,  19. 
    7.    DBCtrlGrid 11  Label    
   DBText  DBEdit.   
    . 11.1  . 11.1. 

     
            ,  
     ,    . 
    1.     <Shift>. 
    2.      ,     <Shift>. 
    3.        . 
    4.        ,  
     . 
    
    218  II.  

     . 11.1         
 ,     . 

     11.1.        

    	Name				Width	DataField		 

    DBText		dteTENANT_NUMBER		30 	TENANT NUMBER 	No. 
    DBEdit 		dedNAME 			121 	NAME 			Name 
    DBEdit 		dedHOMEPHONE 		90 	HOME PHONE 		HomePhone 
    DBEdit 		dedWORKPHONE 		90 	WORKPHONE 		WorkPhone 
    DBEdit 		dedICEPHONE 		90 	ICEPHONE 		Emergency Phone 
    DBEdit 		dedEMPLOYER 		121 	EMPLOYER 		Employer 
    DBEdit 		dedEMPLOYERADDRESS	121 	EMPLOYERADDRESS 	Employer Address 
    DBEdit 		dedEMPLOYERCITY		121 	EMPLOYERCITY 	City 
    DBEdit 		dedEMPLOYERSTATE 		25 	EMPLOYERSTATE 	State 
    DBEdit 		dedEMPLOYERZIP 		90 	EMPLOYERZIP 	Zip 
    DBEdit 		dedCOMMENTS 		530 	COMMENTS 		Comments 

     . 11.1        . 

    . 11.1.        ,  
  DBCtrlGrid 

      
      DBEdit      ,   
    .  ,    
  Edit,   DBEdit     
        . 
     ,      
   .   Edit   
       ,    Text. 

     11.   219 


     
                 
,   . 
    1.    . 
    2.     <Shift>. 
    3.    . 
    4.  <F11>     Object Inspector.    
   ,      . 
     ,      
     . 
    5.  ,          
    ,    
     . 


      

       Align  Size   Delphi 
 ,         .  
         ,  
  ,       . 

     
       ,     
 ,      ,    
 .   ,       
    ""   . 


       

     ,        
 <>.     TabOrder .  
     ,   Tab Order 
Delphi.     ,    Edit=>Tab 
Order,        ,   
    .  ,   
      . 
      ,   .     
   RTENCGDO.PAS (R     RENTMAN, TEN 
   TENANT,  CGD     
dbCtrlGriD,  0    ). 

     
     Delphi   ,   ,   
   .  . 11.2     
   ,        
.  ,       ,  
     Delphi. 

     11.2.      
   Delphi 

         		 

    <F11> 					   Object Inspector 
    <F12> 					         


    220  II.   


     . 11.2 

         		 

    <Ctrl+Enter>				To ,       Object Inspector 
    <Alt+->      			     Object Inspector 
    <Tab>, <<->, <->, <->>,         
    <-> 
    <Ctrl+<->, <Ctrl+->,  	       
    <Ctrl+->>, <Ctrl+-> 
    <Shift+<->, <Sruft+->,             
    <Shift+->>, <Shift+-> 
    <Shift+F12>              		  
    <Alt+0>                 		  
    <F9>                   		    
    <F1>                   		         
    <F5>                    		             
    <Ctrl+Tab>               		         
    <Ctrl+Shift+Tab>           	         


     RENTMAN     

    ,   ,    . ,  , 
 ,        
TENANT_NUMBER.   ,    Allodium , 
         
   .       
 TENANT NUMBER   .   , 
   TENANT      .   
   20, "-    ",    
 -,  ,     
,     .    - 
  ,    ,     Delphi 
  BDE. 
     CASE-,        
RENTMAN,    InterBase,      
,     .    
      RENTMAN    .  
    InterBase, ,     ,  
  ,     . 
         .  
        TENANT NUMBER  
  .      
      (      TENANT). 
 ,     GEN_ID (),   
    .       
     ,    
  GEN_ID ()   . 
     Allodium ,     
       RENTMAN,      
TENANT.  ,          
 .     WODETAIL    
  ,      . 
             ,  
  SQL,       . 
         
Delphi,          
 SQL,      .  , 
       InterBase Windows ISQL.  
            
RENTMAN.

     11.   221 

              RENTMAN, 
  . 
    1.     File=>New,     New 
Items   Text,      .    
        Delphi. 
    2.       RSYSTRGO.SQL.    
 SQL       . 
    3.    ,   11.1,   
 .     CONNECT    
 ,         RENTMAN. 
    4.   InterBase windows ISQL    File=>Run an 
ISQL Script.       ,   
    . 
    5.   ,       
 ,    No.      
     Windows ISQL. 
    6.      ,   
 ,     .  ,    
  . 
    7.    Windows ISQL    Delphi. 
    8.  <Shift+F12>     View Form   
     dmRENTMAN. 
    9.     taTENANT,     
,      TENANT_NUMBER. 
    10.   Object Inspector Delphi    Required 
 TENANT_NUMBER  False,      .  
  ,         
TENANT_NUMBER,    InterBase      
      . 
    11.       ,   
Required     False. He ,   
  WODETAIL      WORDER_NUMBER  
WODETAIL_LINE_NUMBER.   Required    False. 
    12.    Events  Object Inspector,    
     AfterPost  taTENANT.  
      : 

    taTENANT.Refresh; 

         Refresh    RENTMAN 
,    TENANT_NUMBER   . 
    13.    ,    AfterPost  
   .       
Refresh       . 

     11.1.  SQL       
 RENTMAN 

    CONNECT ':\DATA\RENTMAN\RENTMAN.GDB' USER 'SYSDBA' PASSWORD 'masterkey'; 
    CREATE GENERATOR TENANT_NUMBER_GEN; 
    CREATE GENERATOR PROPERTY_NUMBER_GEN; 
    CREATE GENERATOR LEASE_NUMBER_GEN; 
    CREATE GENERATOR CALL_NUMBER_GEN; 
    CREATE GENERATOR WORDER_NUMBER_GEN; 
    CREATE GENERATOR EMPLOYEE_NUMBER_GEN; 
    CREATE GENERATOR WORK_TYPE_CODE_GEN; 
    COMMIT WORK; 

    SET TERM !! ; 
    CREATE TRIGGER TENANTInsert FOR TENANT 
          BEFORE INSERT 
              POSITION 0 


    222  II.   


       AS BEGIN 
              NEW.TENANT_NUMBER = GEN_ID(TENANT_NUMBER_GEN, 1); 
       END !! 

    CREATE TRIGGER PROPERTYInsert FOR PROPERTY 
           BEFORE INSERT 
                POSITION 0 
           AS BEGIN 
                   NEW.PROPERTY_NUMBER = GEN_ID(PROPERTY_NUMBER_GEN, 1) 
           END !!

    CREATE TRIGGER LEASEInsert FOR LEASE 
           BEFORE INSERT 
                 POSITION 0 
           AS BEGIN 
                  NEW.LEASE_NUMBER = GEN_ID(LEASE_NUMBER_GEN, 1); 
           END !! 

    CREATE TRIGGER CALLInsert FOR CALL 
         BEFORE INSERT 
             POSITION 0 
       AS BEGIN 
           NEW.CALL_NUMBER = GEN_ID(CALL_NUMBER_GEN, 1); 
       END !! 

    CREATE TRIGGER WORDERInsert FOR WORDER 
          BEFORE INSERT 
              POSITION 0 
          AS BEGIN 
                NEW.WORDER_NUMBER = GEN_ID(WORDER_NUMBER_GEN, 1); 
          END !! 

    CREATE TRIGGER EMPLOYEEInsert FOR EMPLOYEE 
          BEFORE INSERT 
                 POSITION 0 
         AS BEGIN 
                NEW.EMPLOYEE_NUMBER = GEN_ID(EMPLOYEE_NUMBER_GEN, 1) 
         END !!
 
    CREATE TRIGGER WORKTYPEInsert FOR WORKTYPE 
          BEFORE INSERT 
                POSITION 0 
         AS BEGIN 
              NEW.WORK_TYPE_CODE = GEN_ID(WORK_TYPE_CODE_GEN, 1); 
        END !! 

    CREATE TRIGGER WODETAILInsert FOR WODETAIL 
          BEFORE INSERT 
              POSITION 0 
         AS 
             DECLARE VARIABLE NumLines INTEGER; 
             BEGIN 
                  SELECT MAX(WODETAIL_LINE_NUMBER)+1 
                  FROM WODETAIL 
                  WHERE WODETAIL.WORDER_NUMBER = NEW.WORDER_NUMBER 
                  INTO :NumLines; 
                      IF (NumLines IS NULL) THEN 
                         NEW.WODETAIL_LINE_NUMBER = 1; 
                     ELSE 
                         NEW.WODETAIL_LINE_NUMBER = NumLines; 
                    END !! 

    SET TERM ; !! 
    COMMIT WORK; 


     11.   223


     
     Delphi       
-    SQL.  ,     
        ,  
       Delphi,     
 .  ,      
 ,     .   ,   
     ,     
,  ,      .  
   ,   Delphi   
,  ,     
Refresh   ,      
    .   AfterPost    
    ,       
   .   Refresh  
    ,     
 . 

     
     ,   InterBase,    
  SET GENERATOR.  

    SET GENERATOR TENANT_NUMBER_GEN TO 1000; 

        ,    1001. 

    SET GENERATOR TENANT_NOMBER_GEN TO 0; 

           .  
  ,       WODETAIL. 
         ?   
       . 
 ,  , ,  WODETAIL   , 
  .  ,   ,   
. ,    ,      
  8,   1 - ,      7 .  
  ,       
,   1.      ,  
    WODETAIL:      
           
  ,      WODETAIL_LINE_NUMBER. 
      COMMIT WORK,   
     .     
 SQL   ,       
  ,   ISQL,    
 . ,   ,     
  .   ,  ISQL  
  COMMIT WORK,      
 ,       , 
  . 

        

         ,     
    .    
, fmRSYSMANO,         
  Tenants  Tables.      : 

    fmRTENCGDO.Show; 

     <F12>      . 

    224  II.   


      TENANT 


    ! 
             . 
     ,    - 
    .      
 ,   Tools=>Environment 
Options=>Preferences    Autosave options   Editor 
files.  ,   ,    Save Project 
     File=>Save All. 

    ,      fmRSYSMANO,  
 File=>Use Unit       RTENCGDO.  
    fmRTENCGDO     
RENTMAN,       TENANT    
.        . 
      RENTMAN ,  <F5>     
  .      , 
    (    +),   
   .    ,  
  (,  State      
 TX).       . 
     . 11.2     . 

    . 11.2.    TENANT     


       

       TENANT     RENTMAN 
        .  
   ,  .      
  , fmRSYSMANO,     SpeedButton, 
      TENANT,  sbTenants.  <F11>,  
   Object Inspector,      Events.  
      OnClick     
 TenantslClick.       
,        Tables=>Tenants 
    RENTMAN.      
 OnClick  sbTenants     TenantslClick, 
         
   . 
     ,     ,  
   sbTenants,      ,    
   .  

     11.   225 
    8   Delphi 3   / 

       ,   
   .        
13, " ". 
    ,   TENANT ,       PROPERTY. 

     PROPERTY 

        File=>New      Forms 
  New Items  fmControlGridForm,    
 Inherit    .       
   fmControlGridForm.        
  PROPERTY. 
          fmPROCGDO    
  Property Edit Form.      
  RENTMAN   RPROCGDO.PAS. 

        

     22   PROPERTY    ,    
  .        
DBCtrlGrid ,   . 
    1.         DBText. 
    2.     DBText  11  DBEdit  3 
 DBComboBox. 
    3.     Items  DBComboBox  
 . 

    Oklahoma City 
    Norman 
    Edmond 
    Dallas 
    Richardson 
    Piano 

         CITY  PROPERTY. 
    4.     items   DBComboBox 
  . 

    Deerfield 
    Firewheel 
    Legacy Hills 
    Switzerland Estates 
    Sherwood 
    Rocknoll 

         ADDITION  PROPERTY. 
    5.     items   DBComboBox 
  . 

    Putnam City 
    Oklahoma City 
    Richardson 
    Edmond 
    Garland 
    Dallas 
    Piano 

         SCHOOLDISTRICT  PROPERTY. 
    6.     DBComboBox     Style 
 csDropDownList.      , 
   ,     Items  . 
    7.      DBCheckBox,     
  . 
    8.     DBCheckBox     
   ValueChecked  ValueUnchecked, ,   F. 

    226  II.   

9.    ,   DBText, DBEdit  DBComboBox.

10.   DBText  ,        
 .       . 11.3.

!
        DBCtrlGrid  
 .

 DBText     PROPERTY_NUMBER    -
.  DBEdit  DBComboBox       -
 PROPERTY,   DBCheckBox      .

    PROPERTY

    ,     ,  
  PROPERTY,   .

1.     File=>Use Unit        
 RENTDATA,     dmRENTMAN   .

2.   DataSource  DBCtrlGrid      
 dmRENTMAN.dsPROPERTY.       DataSource 
DBNavigator,    .

3.    ,     ,   
    . 11.3.


          TField,   -
     .         .
      ,        
.

 11.3.       

	Name				Width	DataField		

DBText	dteProperty_Number	40	PROPERTYNUMBER	No
DBEdit	dedAddress			121	ADDRESS		Address
DBComboBox	dcbCity			100	CITY			City
DBEdit	dedState			40	STATE			State
DBEdit	dedZip			70	ZIP			Zip
DBComboBox	dcbAddition			115	ADDITION		Addition
DBComboBox	dcbSchoolDistrict		142	SCHOOLDISTRICT	SchoolDistrict
DBEdit	dedRent			50	RENT			Rent
DBEdit	dedDeposit			50	DEPOSIT		Deposit
DBEdit	dedLivingAreas		30	LIVINGAREAS		Living
DBEdit	dedBedRooms			30	BEDROOMS		Bed
DBEdit	dedBathRooms		30	BATHROOMS		Bath


 11.   227


     . 11.3 

	Name			Width	DataField		 

DBEdit	dedGarageType	30	GARAGETYPE		Garage 
DBEdit	dedLastLawnDate	60	LASTLAWNDATE	LastLawn 
DBEdit	dedLastSprayDate	60	LASTSPRAYDATE	LastSpray 
DBCheckBox	dckCentralAir	65	CENTRALAIR		CentralAir 
DBCheckBox	dckCentralHeat	75	CENTRALHEAT		CentralHeat 
DBCheckBox	dckGasHeat		65	GAS HEAT		GasHeat 
DBCheckBox	dckRefrigerator	73	REFRIGERATOR	Refrigerator 
DBCheckBox	dckRange		53	RANGE			Range 
DBCheckBox	dckDishWasher	73	DISHWASHER		Dishwasher 
DBCheckBox	dckPrivacyFence	84	PRIVACYFENCE	PrivacyFence 
    
    
	      
    

             ,  
     ,   
DBCtrlGrid.    ,   PROPERTY   
(  ,      dmRENTMAN   
   ),     
  Delphi        
 .       ,   
,         
 ,        . 
   ,     ,   
,  , -,    PROPERTY,  -,   
 . 

       

             
 ,  , ,     
   <>.        Edit=>Tab 
Order,           
     (    , 
     ).    
      ,    
<>  <Shift+Tab>    ,    . 

       

     :  ,    ,  
   .    ,    
          
. 

      PROPERTY 

             
  PROPERTY.         
, fmRSYSMANO. 

      PROPERTY   

      fmRSYSMANO     Delphi,   
  File=>Use Unit.     RPROCGDO 
 .        
PROPERTY    ,     PROPERTY  
   . 

    228  II.   

      ,     Property  
Tables.         : 

    fmPROCGDO.Show; 

         Property  Tables  Delphi 
       Propertylclick.   
    Property    .  
,      Propertylclick  
   fmPROCGDO,      show.  
        OnClick  
  sbProperty. 

       

           ,  <F12>  
,      ,      
sbProperty,       .  
<F11>     Object Inspector,     Events. 
       OnClick    
  Propertylclick.    ,    
   sbProperty     ,    
    Tables=>Property  .   
         
,         . 
         .  ,   
RENTMAN ,  <F4>  ,     
PROPERTY.  . 11.3        . 
    
    . 11.3.    PROPERTY     

      - ,  ,   .  
. 11.3   ,      . 

     LEASE 

        File=>New,     Forms  
 New Items    fmControlGridForm,    
  Inherit    .      
    fmControlGridForm.      
    LEASE. 
             fmRLEACGDO  
  Lease Edit Form.       
 RENTMAN     RLEACGDO.PAS. 

     11.   229 


       

        LEASE     
 ,     ,       
 .          
  taLEASE.      , 
  . 
    1.      DBCtrlGrid   DBText 
   DBLookupComboBox. 
    2.        DBEdit. 
    3.        DBCtrlGrid   DBCheckBox. 
    4.   ValueChecked  ValueUnchecked  DBCheckBox 
, , T  F. 
    5.      DBText, DBEdit  DBLookupComboBox 
   Label. 
    6.   DBText  ,      
      .   
    . 11.4,    . 
     DBText      
LEASE_NUMBER.     LEASE   
 DBEdit  DBLookupComboBox,  ,   ,  
 DBCheckBox. 

     
     ,  ,        
   InterBase.         
,   dmRentMan      TDatabase. 
       ,     
        .  
,     ,     
         
.      ,  ,  
  ,      . 

        LEASE 

       ,     ,  
  taLEASE,        
.        TENANT_NUMBER  
PROPERTY_NUMBER  LEASE,       
,      .      
  taLEASE,   . 
    1.  <Shift+F12>         
    dmRENTMAN,    . 
    2.     taLEASE,     . 
    3.            
  New field (  <Ctrl+N>). 
    4.       TENANT_NAME, ,   
  String,      30. 
    5.    Lookup,     Key Fields 
 TENANT_NUMBER. 
    6.   taTENANT      ,  
 Lookup Keys   TENANT_NUMBER. 
    7.     Result Field     NAME 
 TENANT,     . 

    230  II.   

             
taLEASE  taTENANT.     ,    
taPROPERTY  taLEASE. 
    1.  <Ctrl+N>,        taLEASE. 
    2.       PROPERTY_ADDRESS, ,   
  String   30. 
    3.    Lookup,     Key Fields 
 PROPERTY_NUMBER. 
    4.   taPROPERTY      ,  
 Lookup Keys   PROPERTY_NUMBER. 
    5.     Result Field     
ADDRESS  PROPERTY,     . 
    ,    taLEASE   taTENANT  taPROPERTY 
.     TENANT_NAME  
PROPERTY_ADDRESS       taLEASE. 

      
    , ,           
 taLEASE.    ,      
   DBLookupComboBox.   ,  
     ListSource  ListField  
DBLookupComboBox.  ,     ,   
     .    , 
   ""  DBCtrlGrid,    
    DBLookupComboBox.     
     ,  
 ,           
,      taLEASE. 


      

       ,   PROPERTY      TENANT_NAME 
      (lookup field).      
 ,        
,     .      
  NAME  TENANT   TENANT_NUMBER  
PROPERTY. 
      ,         
  - .  DBGrid, DBCtrlGrid, 
DBListBox  DBLookupComboBox ""       
    . ,  DBGrid  
DBCtrlGrid      ,   
   .  ,      
       ,    
         . 
   ,        
(, DBEdit)      . , 
    - ,       
 ,    ,       
   . 

       

      ,    fmRLEACGDO.     
,     ,    
 LEASE,   . 
    1.    File=>Use Unit      
       RENTDATA     
,     dmRENTDATA    . 
    2.   DataSource  DBCtrlGrid  DBNavigator 
 dmRENTMAN.dsLEASE. 

     11.   231 

    3.    ,     , 
   DataField      
LEASE,    . 11.4.     . 11.4 
   . 

     11.4.        

    		Name				Width	DataField		 

    DBText			dteLEASENUMBER		40	LEASENUMBER		No. 
    DBLookupComboBox	dIcbTenant Name		145	TENANTNAME		Tenant 
    DBLookupComboBox	dIcbProperty Address	145	PROPERTYADDRESS	Property 
    DBEdit			dedBeginDate		64	BEGINDATE		Begin 
    DBEdit			dedEndDate			64	ENDDATE		End 
    DBEdit			dedMovedInDate		64	MOVEDINDATE		Movedin 
    DBEdit			dedMovedOutDate		64	MOVEDOUTDATE	MovedOut 
    DBEdit			dedRent			50	RENT			Rent 
    DBEdit			dedDeposit			50	DEPOSIT		Deposit 
    DBEdit			dedPetDeposit		50	PETDEPOSIT		PetDeposit 
    DBEdit			dedRentDue Day		40	RENTDUEDAY		DueDay 
    DBCheckBox		dckLawnService		85	LAWNSERVICE		LawnService 
    DBEdit			dedComments			355	COMMENTS		Comments 
    

      LEASE 

        ,     .  
       fmRLEACGDO  
  fmRSYSMANO    RENTMAN. 

      LEASE   

      fmRSYSMANO     Delphi,   
  File=>Use Unit.     RLEACGDO 
 .        
LEASE    ,     PROPERTY  
   . 
      ,     Leases  Tables. 
          
 : 

    fmRLEACGDO.Show; 

         Leases  Tables,  Delphi 
       LeaselClick.   
    Leases    .  , 
   ,  LeaselClick    
 fmPLEACGDO,      Show. ,     
,         OnClick 
   sbLease. 

       

        ,      
sbLease,       .  <F11> 
    Object Inspector,     Events. 
       OnClick    
  LeaselClick.     TENANT  PROPERTY,    
,       sbLease     
,        Tables=>Leases  
. 
    
    232  II.   

         .  ,   
RENTMAN ,  <F6>,     LEASE.  . 
11.4        . 

    . 11.4.    LEASE     

      - ,  ,   .  
. 11.4   ,      . 
     ,   TENANT, PROPERTY  LEASE  , 
  , , ,     ,   
  DBCtrlGrid,    .  
      WORDER  CALL.    
      ,    
  DBGrid. 

     WORDER 

      WORDER       ,  
     "",     
   WORDER  WODETAIL.        
    .   WORDER   
      ,   
  dmRENTMAN. 
      RENTMAN   ,  .    
 File=>New,     Forms   New Items 
  fmGridForm,      Inherit   
 .          fmGridForm. 
             Work Orders  
   RENTMAN.       
,      WORDER.    
     , fmRWORMDEO,  
"",       
   WORDER,   WODETAIL. 

      

            
 WORDER.         
 ,           
 ,  RENTMAN.   ,   
   WORDER     
 WODETAIL "      
"".        ,  
       ,     

     11.   233

    ,     , 
    ,    WORDER,  
       WODETAIL. 
    ,     ""     
 .           
    WORDER.        
     WORDER.    
   ,     
   ,  WORDER.  ,  
  DBNavigator      . 
     ,   . 
          fmRWORGRDO,      Work 
Order Selection Form,         
RWORGRDO.S. 
              . 
           
,     DataSource  , 
      . 

       

           WORDER   .  
PROPERTY_NUMBER  WORDER      
 ADDRESS  PROPERTY.         
  WORDER,   . 
    1.     dmRENTMAN      
    taWORDER  ,     . 
    2.  <Ctrl+N>  ,    ,     
    PROPERTY_ADDRESS. 
    3. ,      String,     
 30. 
    4.    Lookup,     Key Fields 
 PROPERTY NUMBER. 
    5.   taPROPERTY      ,  
 Lookup Keys   PROPERTY_NUMBER. 
    6.     Result Field     
ADDRESS,          . 
    7.       ,   ADDRESS  
   PROPERTY      WORDER   
  PROPERTY_ADDRESS.         
  WORDER. 
    8.   <Ctrl+N>  ,    .    
   ,   ,   
 NAME  EMPLOYEE.      , 
     . 
    9.     EMPLOYEE_NAME,     
  String,     30. 
    10.      ,      
 PROPERTY_ADDRESS.    Lookup,    
 Key Fields  EMPLOYEE_NUMBER. 
    11.   taEMPLOYEE      ,  
 Lookup Keys   EMPLOYEE_NUMBER. 
    12.     Result Field     
NAME,          .  
     ,   NAME    
 EMPLOYEE    EMPLOYEE_NUMBER,   , 
     WORDER     EMPLOYEE_NAME. 

       "-" 

           dmRENTMAN,    
  ""   WORDER  WODETAIL. 
     ,      
 .     ,  
 . 
    1.     WODETAIL,    <F11>,  
   Object Inspector. 

    234  II.   

    2.     MasterSource     
  dsWORDER. 
    3.    ,      
MasterFields,       Delphi. 
    4.    Field Link Designer   WORDER  WODETAIL. 
        WODETAIL,      
 WORDER.    WORDER_NUMBER,    
  ,      Add.    , 
   . 11.5.    ,    
 . 
       WORDER_NUMBER       
   .       
,     WORDER_NUMBER    
     .      
  .  ,      
.     ,      
 MasterFields  IndexFieldNames   WORDER_NUMBER. 
            
    ,     ,   
     ,    
.   , ,    , 
        OnNewRecord 
 taWODETAIL. 

    taWODETAILWORDER_NUMBER.Value:=taWORDERWORDER_NUMBER.Value; 


          

      dmRENTMAN     .    
   OnNewRecord  WORDER.     
  RENTMAN         
 StartDate,    ,     , 
  ,       . 
   taWORDER,       
 OnNewRecord   Object Inspector.      
  . 

    taWORDERStartDate.Value:=Date; 

       ,         
          
StartDate  .     ,  -  
    .    ,  
      ,    
 .     ,      
 ,   ,        
,   SQL,     ,   
 SQL. 
      ,       
StartDate    OnNewRecord    , 
           
  . ( ,      .)  
  14, "",        
     StartDate.     
  ,       . 

       

    ,    ,     
    DBNavigator  DBGrid.    
WORDER ( fmRWORGRDO   ),     
File=>Use Unit.        RENTDATA.  
      .   DBGrid  
DBNavigator,    Object Inspector     
DataSource,         dmRENTMAN. 
dsWORDRER.  ,       
 WORDER   RENTMAN. 
    
    . 11.5.     Delphi 
    

     11.   235


        

        ,      
  .       ,  
     .    
 WODETAIL   ,         
  .  ,        
,          
. ,         
 ,    .  ,    
      . 
          . 
    1.     DBGrid,     
.    Add All Fields  ,     
 WORDER   . 
    2.  ,       .    
 WORDER     , 
      ,    
,    ,      . 
        PROPERTY_ADDRESS     , 
    WORDER_NUMBER. 
         EMPLOYEE NAME      
 PROPERTY_ADDRESS. 

    . 11.6.         

      PROPERTY_NUMBER  EMPLOYEE_NUMBER     
Delete,   .      DBGrid, 
-    .  . 11.6    
  DBGrid.   ,  . 

      
       ,      
 ,         
.  ,         
,     -     
       .    
       , ,    
     . 

         

    ,      WORDER  . 
   , fmRSYSMANO,     
Delphi,       Work Orders  Tables.  
       : 

    fmRWORGRDO.Show; 

        .  <F12>  ,  
    ,      
sbWorkOrders,       .  
<F11>     Object Inspector,     Events. 
       OnClick    
  WorkOrderslClick.    ,    
   sbWorkOrders     ,    
    Tables=>Work Orders  .    
 ,     RWORGRDO   
uses    RSYSMANO     File=>Use Unit. 
    
    236  II.   


      

         .      
,   ,   Active  Table  
 dmRENTMAN   True.      <F9> 
  .   RENTMAN ,  <F7>  
,    WORDER. 

      
         ,       
EMPLOYEE,     WORDER       
 . 


      

                
 .         
   , -      
   WORDER.      
- ,       .  , 
        ,     
 .         
  ,  ,         
,       ,   .  
  ,        
       . 
        ,      Delphi.  
,      WORDER,   . 
    1.        (  
   Object Inspector,     
     ).    WindowState 
  wsMaximized. 
    2.        . 
    3.   paMiddle     Align  
alBottom.  ,    ""   paBottom,  
  Align    .     
Delphi      . 
    4.    paMiddle,      
 ,        ,    
  . 
    5.        Align  
alClient.    ,     ,  
    .     DBGrid 
 Align    alClient,      
  . 

     . 11.7          . 


           

            .    
           WORDER,   
    .     
  ,     WORDER  
   WODETAIL,      .   
     fmRWORMDEO,    
         . 
      ,     fmRWORGRDO. 
-,    Object Inspector   Readonly 
 DBGrid  True.     , 
 . -,    ,   
         WORDER. 

     11.   237 


    . 11.7.   HORDER     

      DBNavigator 

        DBNavigator .   
  ,      . 

    With DBNavigatorl do 
       case Button of 
          nblnsert : 
             begin 
                DataSource.DataSet.Insert; 
                fmRWORMDEO.ShowModal ; 
             end; 
         nbEdit : 
             begin 
               DataSource.DataSet.Edit; 
               fmRWORMDEO.ShowModal; 
             end; 
       end; 

         OnClick  
DBNavigator,        Insert  Edit. 
 ,           
   WORDER  "-", fmRWORMDEO. 
   ,        
,      fmRWORMDEO,      
 . 

      
    ,  , ,     Add, Edit  Delete  
  fmEditForm,     
  ,       ,  
   ,   .   
,       ,    
  OnClick .  ,   
  ,      
     ,   ,   
,        
DBNavigator.    ,     - 
       .    
     ,    
 OnClick ,    . 


    238  II.   


     WORDER  "-" 

    ,     ,       
   WORDER  WODETAIL.     
    " ",     
       WODETAIL,  
    ,     fmRWORGRDO. 
   WORDER      ,  
    WODETAIL    . 
           ,   . 
    1.     File=>New,      Forms 
  New Items. 
    2.   fmMasterDetailForm,     
Inherit    . 
    3.       fmRWORMDEO,      
Work Order Edit Form,        
RWORMDEO.. 

      

         ,     
    taWODETAlL,      
WORKTYPE     DESCRIPTION.    
 . 
    1.     dmRENTMAN     Delphi, 
     taWODETAlL,     
,    <Cltr+N>    . 
    2.   Name   WORKTYPEDESCRIPTION,   
  String      30. 
    3.    Lookup,     Key Fields 
 WORK_TYPE_CODE. 
    4.   taWORKTYPE      ,  
 Lookup Keys   WORK_TYPE_CODE. 
    5.     Result Field     
DESCRIPTION,         .  
     ,      
  WORKTYPE    WORK_TYPE_CODE  WODETAIL.  
,  WORK_TYPE_CODE  WODETAIL    
   DESCRIPTION . 
    6.    ,       
     . 

       

         ,     
 . 
    1.   File=>Use Unit       
RENTDATA,        dmRENTMAN. 
    2.    DBGrid  DBNavigator    
 DataSource,         
dmRENTMAN. dsWODETAlL.         
     WORDER,      
  WODETAIL. 

          

           ,   
  ,    
      ,     
  (posting).     
     ,   
 WODETAIL     WORDER_NUMBER   
   WORDER,      WODETAIL. ,  
  ,        WORDER,     

     11.   239 

.       ,   
         
 .      ,  
 . 
    1.     DBNavigator .    
         
  DBNavigatorlClick. 
    2.   : 

    with dmRENTMAN.taWORDER do 
       if (State in [dsEdit, dslnsert]) and 
          (Modified) then begin 
	       Post; 
             Edit; 
       end; 
    with DBNavigatorl.DataSource.DataSet do 
       case Button of 
         nbEdit : Edit; 
         nblnsert : Insert; 
        end; 


      
          ,  
  DB   uses   .    
fmRWORMDEO   ,     , 
    ,     DB   
  uses,      . 

         WORDER    ,  
        ,    
    (  Post).     
      ( Edit),  
        . 
    taWORDER  taWODETAlL    
"",       ,  
 taWODETAlL         
.        case,  
  ,    ,    . 

      
     ,      taWORDER   
,    WORDER       
,           
"-".       
  Post    .   - 
          , 
   Post     . 


       

      ,      . 
    1.     DBGrid,     . 
    2.    Add All Fields,       
WORDER_MUMBER  WORK_TYPE_CODE.  WORDER_NUMBER      
,          ,   
WORK_TYPE_CODE        
     . 
    3.   WORKTYPEDESCRIPTION    ,  
    WODETAIL_LINE_NUMBER. 
    4.   Read-only  WODETAIL_LINE_NUMBER  True,  
   . 

    240  II.   


        

        fmRWORMDEO      
  taWORDER.      DBText,  
 DBEdit    DBLookupComboBox.     
      taWORDER. 

      
          , ,  
   ,          
  .  ,  DBEdit   
,   ,    ,   
,  .         
 . 

        ,    DataSource 
     dmRENTMAN.dsWORDER.  . 11.5 
      . 

     11.5.     WORDER    

    		Name				Data Field		 

    DBText			dteWORDERNUMBER		WORDERNUMBER	No. 
    DBLookupComboBox	dIcbPROPERTY_ADDRESS	PROPERTY_ADDRESS	Address 
    DBLookupComboBox	dlcbEMPLOYEE_NAME		EMPLOYEE_NAME	Employee 
    DBEdit			dedStartDate		STARTDATE		StartDate 
    DBEdit			dedEndDate			ENDDATE		EndDate 
    DBEdit			dedComments			COMMENTS		Comments 

                
,             
 TLabel. 

     
    ,          , 
Delphi          
 . 

     . 11.8       . 


    . 11.8.   WORDER    


     11.   241 


      WORDER  "-"                | 

         ,      
 RENTMAN.           
 ,     WORDER, fmRWORGRDO. 

       "-"    

                
"",   . 
    1.       fmRWORGRDO   
 . 
    2.   File=>Use Unit        
 RWORMDEO,      
"".   ,     
   OnClick ,   . 
      ,   DBGrid  ,   
            Edit  
 WORDER  "". 
    1.    DBGrid,    Events  
Object Inspector. 
    2.         
OnDblclick         btEditdick.  
          ,    
   Edit. 
    3.       .  . 11.9 
,          . 

      
         ,       
WORKTYPE,          . 
    

    . 11.9.   WORDER  " "     


      

            ,  
   .        
,       .  ,   
           
  ,           
 .           
    ,    
    . 

    242  II.   


          

         ,    
   ,   ,   
,  ,      
          
 .        ,  
        SQL. 
        ,   , 
   ,       
        
  .         
  , ,       
        
 .    ,    
   ,      RENTMAN   . 
    ,        TENANT    
WORDER,       PROPERTY_NUMBER  
 WORDER,        PROPERTY. 
 ,     PROPERTY   LEASE,  
       .   
      (multi-level join). 
        
   . 
           
. -,        FindKey 
    "", ..     
   Object Pascal,    . 
-,    SQL,   
       .  
  . 

     quTenantInfo 

         quTenantInfo,   . 
    1.     dmRENTMAN    . 
    2.     Query.     Name 
 quTenantInfo,   Database   dbRENTMAN.    
 SQL     . 

    select t.NAME, t.HOMEPHONE, p.CITY, p.STATE, p.ZIP, p.ADDITION 
    from PROPERTY p, 
    LEASE l, 
    TENANT t, 
    where p.PROPERTY_NUMBER=:PROPERTY_NUMBER 
    and p.PROPERTY_NUMBER=l.PROPERTY_NUMBER 
    and 1.ENDDATE = (select MAX(ENDDATE) from LEASE 
    where PROPERTY_NUMBER=p.PROPERTY_NUMBER) 
    and ((l.MOVEOUTDATE > "TODAY") or (MOVEOUTDATE IS NULL)) 
    and 1.TENANT_NUMBER=t.TENANT_NUMBER 

         PROPERTY_NUMBER   
       ,  
   .    
   ,       . 
     TODAY.  InterBase  
    ,       
 ,      (> "TODAY")   
 (is NULL). 
      ,    ,   ,   
  . 
    1.     Params  Query    
    PROPERTY_NUMBER  Integer,  
   . 
    2.     quTenantInfo,    
 . 

     11.   243 

    3.  <Ctrl+A>    . 
    4.    ,     ,    
  . 
    5.   Query .      
 DataSource,        
     .      
dmRENTMAN  DataSource     Name  dsTenantInfo. 
    6.      DataSet  DataSource 
   Query  quTenantInfo. 

        

     ,      WORDER  
"",         
       .  
      ,   
  . 

      

      WORDER  "", fmRWORMDEO,   
  Delphi      (  
   Object Inspector,     
     ).    Events   Object 
Inspector,         OnCreate.  
     : 

    dmRENTMAN.quTenantInfo.Prepare; 

      ,   (..   Prepare) 
,     ( 
 (parameterized query),   Delphi),   
 .    Prepare     
         
. ,      ,    
  ,      Delphi 
   .         
  .        
 . 

      

     ,     ,   
  . 
    1.         , 
  dedStartedDate  dedEndDate       
   . 
    2.      DBText   ,   
   . 
    3.      ,    
  .    Bold 
 Font.       . 
    4.     ( DataSource)   
DBText    

    dmRENTMAN.dsTenantInfo. 

    5.      DataField   DBText 
        quTenantInfo. 
     ,    
  . 

      

       ,  ,    
   .   .      
   .        
  ,        
       .  
     dlcbPROPERTY_ADDRESS.  ,  
       ,  
 ,         
.     , , , 
    . 

    244  II.   

          ,     ( 
    Object Inspector,    
      ),      
Events  Object Inspector.    OnShow   
   .       
  . 

    with dmRENTMAN.quTenantInfo do begin 
       If Active then Close; 
       ParamByName('PROPERTY_NUMBER').As Integer:= 
          dmRENTMAN.taWORDERPROPERTY_NUMBER.Aslnteger; 
       Open; 
    end; 

         ,    
 .         
  dsTenantlnfo,       
 ,   . 
       OnShow,    ,  
     OnClick  dlcbPROPERTY_ADDRESS. 
 <F12>  ,      ,   
   dlcbPROPERTY_ADDRESS.   Events  Object 
Inspector,        
OnClick         FormShow.   
 ,         ,    
 ,   dlcbPROPERTY_ADDRESS. 

     . 11.10      . 


      

          ,  , 
  .  . 11.11     WORDER   . 


    . 11.10.   WORDER  "- " 


       

       ,     Panel  
   ,       
 .   ,     
 . 

      

      -,      .   
 WORKTYPE        , 
  WORK_TYPE_CODE,      
,        , 
    ,  .    
      SQL. 


     11.   245 


    . 11.11.   fmRMORMDEO     


        Query Builder 


      
     Query Builder      Delphi.   
   Delphi   Query Builder,   
 "  " 

         Query Builder,   . 
    1.   RENTMAN    Delphi. 
    2.       dmRENTMAN     
 Query. 
    3.      quWorkDuration,   Database 
  dbRENTMAN. 
    4.       Query     
  Query Builder. 
    5.           
,     dbRENTMAN. 
    6.        .   
  WODETAIL,     WORKTYPE.    Add 
Table.  ,   ,    . 11.12. 
    7.   WORK_TYPE_CODE   WODETAIL   
WORK_TYPE_CODE  WORKTYPE.      , 
 .         WORK_TYPE_CODE. 
    8.   ,       
 .     WORK_TYPE_CODE  
WODETAIL,     .      
   Query Builder. 
    9.       WORK_TYPE_CODE,   
  Criteria,     = : WORDER_NUMBER,   
 . 
    10.       Option     
  Group.  ,   ,  , 
     WORDER_NUMBER. 
    11.    Expression Builder (    
 +)    Query Builder,   
  Expression.     


    246  II.   

(. 11.13)   ,     
     . 
    12.   Expression Name  WorkDuration,    
 WORKTYPE    Tables. 
    13.  ,     sum()   Functions,  
     TaskDuration   Columns. 
    14.   ,    Save,      Close, 
     Query Builder. 


    . 11.12.    Query Builder cuc Delphi 

    . 11.13.   Expression  Query Builder 


       View SQL   Query Builder ( 
    ).       
 SQL,   Query Builder. 

   SELECT    WORKDETAIL.WORDER_NUMBER , 
       ( sum( WORKTYPE.TASKDURATION ) ) as WorkDuration 
   FROM    WODETAIL WODETAIL, WORKTYPE WORKTYPE 
   WHERE    ( WODETAIL.WORK_TYPE_CODE = WORKTYPE.WORK_TYPE_CODE ) 
             AND 
       ( 
       ( WODETAIL.WORDER_NUMBER = :WORDER_NUMBER ) 
       ) 
   GROUP BY 
       WODETAIL.WORDER_NUMBER 

        ""       : 

    SELECT SUM(WORKTYPE.TaskDuration) WorkDuration 
    FROM WODETAIL, WORKTYPE 
    where WODETAIL.WORK_TYPE_CODE = WORKTYPE.WORK_TYPE_CODE 
    and WORDER_NUMBER = :WORDERJMUMBER 

         ,   
.  WORDER_NUMBER     ,  
    ,   . 
      SQL Statement    Query Builder.   
     SQL  quWorkDuration. 

        

              , 
  . 
    1.     Property   Query, 
quWorkDuration,        WORDER_NUMBER  
Integer.    ,    . 

     11.   247 

    2.     Query,     . 
    3.            
   Add fields. 
    4.     WorkDuration,        
   .  ,     , 
 ,   . 

     AfterPost 

       Query,      
WODETAIL.     taWODETAlL,     
Events   Object Inspector.      
 OnAfterPost        : 

    with quWorkDuration do begin 
       If Active then Close; 
       ParamByName('WORDER_NUMBER').As Integer:= 
          taWODETAILWORDER_NUMBER.As Integer; 
       Open ; 
       taWORDEREndDate.AsFloat:=taWORDERStartDate.AsFloat+ 
          quWorkDurationWorkDuration.As Float ; 
       Close; 
    end; 


        Delphi 

          ,   
,          
StartDate  WORDER,     .   
   . -,   Object Pascal  
         .    
   ,   31  1899 ,    
,     .      
,  ,   . -,  ,  
          
WORDER.  ,         
 WORDER  ,      
 .       WORDER  
 ,       .  ,   
  ,   ,     . 

     AfterDelete 

     ,   post   ,   
     WorkDuration,    
      WODETAIL.    
 OnAfterDelete   Object Inspector,    
  ,          
taWODETAlLAfterPost.          . 

       

     ,     ,   .  
     ,   ,   
  .     ,    
      EndDate   
 dmRENTMAN.  ,   ,   EndDate  
     ,  - 
     ,       Query. 

       

          .    
       ,    
   ,       
.      ,    
       .    
      , .. ,    
     . 

    248  II.   


     

            
  EMPLOYEE.    ,   
,   .        
EMPLOYEE  ,       . 

     ,   

         Query,   , 
  . 
    1.   RENTMAN   ,      Delphi. 
    2.     dmRENTMAN    . 
    3.     Query       
quEMPLOYEEAVAlLABLE,      Database  dbRENTMAN. 
    4.     SQL  Query,    
 : 

    select max(EndDate) EndDate 
    from WORDER 
    where EMPLOYEE_NUMBER = :EMPLOYEE_NUMBER 
    and WORDER_NUMBER <> :WORDER_NUMBER 
    and STARTDATE <= "TODAY" 

       ,       
-  .   STARTDATE  ,   
 ,       .  
       WORDER   . 
         . 
    1.       ,     
 SQL. 
    2.     Params .     
  Integer,      ,   
 . 
    3.            
  Add fields.       ,  
 ,  . 
    4.  ,      EMPLOYEE.   
 ,    taEMPLOYEE,      
   OnFilterRecord   Object Inspector.  
  : 

    if Screen.ActiveForm.Name = 'fmRWORMDEO' then begin 
       with quEmployeeAvailable do begin 
          If Active then Close; 
          ParamByName('EMPLOYEE_MUMBER').Aslnteger:= 
             taEMPLOYEEEMPLOYEE_NUMBER.AsInteger; 
          ParamByName('WORDER_NUMBER').Aslnteger:= 
             taWORDERWORDERJMUMBER.As Integer; 
         Open; 
         Accept := 
            (Trunc(quEmployeeAvailableEndDate.AsFloat)<=Date) ; 
       end; 
    end else Accept :=True; 

     ,       ,  
   WORDER   "",  
 Name  ActiveForm.    ,   . 
    ,    ,   
   ,    EMPLOYEE  
,   . 

     11.   249 


     Filtered 

          OnFilterRecord  
 taEMPLOYEE     ,   
fmRWORMDEO         OnShow   
Object Inspector.   inherited;   . 

    dmRENTMAN.taEMPLOYEE.Filtered:=True; 

       Object Inspector      
  OnClose.       : 

    dmRENTMAN.taEMPLOYEE.Filtered:=False; 

         EMPLOYEE    , 
     fmRWORMDEO. 

       

           .  
           
 ,        (  
,  ,      , 
    ,   ,    ).  
     Delphi. 

      

      ,          
     ,   ,   
 Allodium    . ,     
,            
      .     
  , ,   , 
           
-  ,   .    
,          
 . 
     ,    ,    , 
   . ,     
    ,        
   . ,        
fmRWORMDEO,   . 
    1.   dlcbEMPLOYEE_NAME  dlcbPROPERTY_ADDRESS  
 . 
    2.     CheckBox    
dlcbEMPLOYEE_NAME    . 
    3.    ckFilterAvailable. 
    4.    ,      
         . 
    5.     Checked ,   . 
    6.     Label,      
.   AutoSize   False,  Wordwrap  
True,    "Filter Employees?". 
    7.           
    OnClick.   : 

    dmRENTMAN.taEMPLOYEE.Filtered:=ckFilterAvailable.Checked; 

          Filtered   
taEMPLOYEE      . 
          .    Label, 
     .    Object Inspector, 
       OnClick    
   ckFilterAvailableClick.    ,   
      ,     .    
     

    250  II.   

,           
 ,    . ,     
checkBox    ,   .    
    ,       . 
        , ,   , 
  ,   .    
    ,      
     .    
     13. 
    ,      ,     
 OnShow  ,      
 .     Filtered   
taEMPLOYEE : ,    fmRWORMDEO,    
    False.     (   
   Object Inspector),        
  OnShow.   

    dmRENTMAN.taEMPLOYEE.Filtered:=True; 

      : 

    with dmRENTMAN.taEMPLOYEE do begin 
        Filtered:=ckFilterAvailable.Checked; 
        If Filtered then begin 
          Close; 
          Open; 
       end; 
    end; 

            
   Filtered  taEMPLOYEE.  
  ,        
   . 
         WORDER  "", fmRWORMDEO, 
.      CALL. 

     CALL 

      WORDER,  CALL     
      .    
    ,       . 

      

        File=>New,     Forms  
 New Items   fmGridForm,     
 Inherit    .       
fmRCALGRDO.     RCALGRDO.S. 

         

         ,       
   RENTMAN,      
Table  DataSource,   CALL.    
File=>Use Unit         RENTDATA.  
  DBGrid  DBNavigator,    Object Inspector  
   DataSource,        
 dmRENTMAN.dsCALL.  ,      
  CALL. 

      

              
  taCALL,       PROPERTY_NUMBER 
   .     
PROPERTY_ADDRESS  taCALL   . 


     11.   251 

    1.     dmRENTMAN     Delphi, 
     taCALL,     . 
    2.            
   New field.                                             
    3.   Name   PROPERTY_ADDRESS,    
 String      30. 
    4.    Lookup,     Key Fields 
 PROPERTY_NUMBER.   taPROPERTY      
,   Lookup Keys   PROPERTY_NUMBER.  
   Result Field     ADDRESS. 
    5.        . 
       PROPERTY_ADDRESS    taCALL 
        . 
    Delphi   ,   
  ,      
,  DBLookupComboBox. 

          

    ,   ,   ,   
       CALL.   , 
      CALLDATE   CALLTIME,    
,   ,  , ,   
 ,     .   
 taCALL,        
OnNewRecord   Object Inspector.    , 
         CALL 
   . 

    taCALLDate.Value:=Date; 
    taCALLTime.Value:=TimeToStr(Time) ; 

        

          ,   . 
    1.    fmRCALGRDO     DBGrid. 
    2.      Columns      
    Add All Fields. 
    3.   PROPERTY_NUMBER    PROPERTY_ADDRESS, 
    DESCRIPTION. 
    4.   Read-only  CALL_NUMBER    
 . 

           

    ,       ,     
   ,     . 
         Readonly 
 DBGrid  True.    ,     
     ,  , ,  . 
      ,  DBGrid   
   ,       
,      Windows.   
      OnDbldick  DBGrid 
    btEditClick.      
 DBNavigator,          
    ,    
 . 

      

      WindowState   wsMaximized,   
 .      ,  
 paMiddle     ,     
 . 


    252  II.   

      

           ,  
,  ,     ,   
 .          
 OnClick       .  
   DBNavigator       
   OnClick : 

    With DBNavigatorl do 
       case Button of 
       nblnsert : begin 
          DataSource.DataSet.Insert; 
         //    fmRCALEDTO.Show; 
      end; 
      nbEdit : begin 
         DataSource.DataSet.Edit; 
         //    fmRCALEDTO.Show; 
      end; 
    end; 

       OnClick  btEdit   
 OnClick ,   DBGrid       
  OnClick  btEdit,    
          
.             
      .  
,      ,     
Show  ,   .   ,   
   .     ,   
  . 

        

         ,  ,   
 .      Delphi   
, fmRSYSMANO,      Calls  Tables  
.      . 

    fmRCALGRDO.Show; 

      ,       
OnClick  sbCalls      Calls1Click,  
   .   ,   
 RCALGRDO   uses   RSYSMANO.   
 <F9>   . ,    , 
     Delphi. 
     . 11.14     . 

    . 11.14.    CALL 


     11.   253 

      

    ,   ""  ,    , 
 ""     CALL,   .  
  CALL       
-  .      ,  
 ,        ,   
  "    ".     
  ,        
 ,      . 
             CALL   
,      .     
,   , ,      
   .        ,   
   .          , 
        CALL,     
     . 
      ,    fmEditForm.   
   fmRCALEDTO,      Call Edit Form. 

        

           , 
   BorderStyle    ,   
  ,  bsDialog.      
,     Borderlcons  biSystemMenu 
( biMaximize  biMinimaze  False). 
        ,         
 dmRENTMAN.    File=>Use Unit     
    RENTDATA.      , 
           CALEDTO.S. 

        

            DBEdit,  
 DBLookupComboBox    DBText.    
     Label.   
DBNavigator,    DBText    DBEdit   
    DataSource      
dmRENTMAN.dsCALL.         CALL. 
 DataSource   DBText     
    dmRENTMAN.dsTenantinf.    
 ,       , 
  quTenantInfo,      . 
      quTenantInfo 
  dmRENTMAN         ,  
   . 
      ,         TLabel 
     .      
,   Bold  Font  ,     
  . 
       ,   DBText,   
    dsCALL,      ,  
     ,    . 11.15. 
            . 11.6. 

     11.6.         

    		Name			DataField		

    DBText			CALL_NUMBER		CALL_NUMBER		Call No. 
    DBEdit			CallDate		CALLDATE		Date 
    DBEdit			CallTime		CALLTIME		Time 
    DBLookupComboBox	PROPERTY_ADDRESS	PROPERTY_ADDRESS	Property 
    

    254  II.   

     . 11.6 

     	Name 		DataField		 

    DBEdit		DESCRIPTION DESCRIPTION		Description 
    DBText		City 		CITY			City 
    DBText 		State 	STATE			State 
    DBText 		Zip 		ZIP			Zip 
    DBText	 	Addition 	ADDITION		Addition 
    DBText 		TenantName 	NAME			Tenant 
    DBText 		HomePhone 	HOMEPHONE		HomePhone 
    

    . 11.15.     CALL 


      

        ,      
  quTenantInfo.         
,    .       . 
   -        
 ,        
,         
.      ,  
 DBLookupComboBox.       
,      ,   
,         
.    ,    
       . 
          ,    ( 
     Object Inspector),    
     OnShow    Object Inspector. 
       . 

    with dmRENTMAN.quTenantlnfo do begin 
       If Active then Close; 
       ParamByName('PROPERTY_NUMBER').Aslnteger:= 
         dmRENTMAN.taCALLPROPERTY_NUMBER.AsInteger ; 
       Open; 
    end; 

         quTenantlnfo,    
 .     ,   
    . 

     11.   255 

       OnShow ,       
    OnClick  DBLookupComboBox. 
 <F12>  ,      ,   
   dlcbPROPERTY_ADDRESS.   Events  
Object Inspector,       OnClick  
        FormShow.  , 
   ,         
   . 

       CALL   fmRCALGRDO 
      fmRSYSMANO 

         CALL,     
    uses   CALL,     
 ,    .     . 
    1.   fmRCALGRDO    . 
    2.   File=>Use Unit      RCALGRDO 
 . 
         CALL    Log a Call 
 .     . 
    1.   fmRSYSMANO    . 
    2.     File=>Use Unit      
  fmRCALEDTO   uses  . 
    3.      Log a Call     
     OnClick: 

    dmRENTMAN.taCALL.Insert; 
    fmRCALEDTO.Show; 

          CALL   , 
       . 

       CALL   WORDER  "-" 

          ,    
   ,      
RENTMAN,         
      CALL. 
        CALL    ,  
  File=>Use Unit         
RWORMDEO,        uses 
  .     paMiddle,    
 Button,      Delete.    
   btGenerateWorkOrder,      &Generate 
Work Order.    ,     
 . 
               
   : 

    With dmRENTMAN do begin 
       If (taCALLWORDER_NUMBER.AsInteger=0) then begin 
          taWORDER.Insert; 
          taWORDER.Refresh; // -    . 
          taWORDER.Edit; 
          try 
             taCALLWORDER_NUMBER.Value:= 
               taWORDERWORDER_NUMBER.Value ; 
            except 
            On Exception do begin 
               taCALL.Edit; 
               taCALLWORDER_NUMBER.Value:= 
                 taWORDERWORDER_NUMBER.Value ; 
          end; 
       end; 
    
   
 256  II.   

       taWORDERPROPERTY_NUMBER.Value:= 
            taCALLPROPERTY_NUMBER.Value ; 
       end else begin 
            If not taWORDER.FindKey([taCALLWORDERJMUMBER.Value]) then 
                  raise Exception.Create('Work Order has been deleted'); 
       end; 
    end; 
    fmRWORMDEO.Show; 


    FindKey 

          . -,  
   WORDER_NUMBER  ,   
   CALL        
. -,        
    FindKey  taWORDER   
  ,       . 
,     ,   
FindKey,    ,   .   
  - ,       CALL  
WORDER  ,    , 
,   ,       
  ,      .    
     CALL.     
  . 
    ,  ,     try-end,    
    WORDER_NUMBER  taCALL.  
     taCALL     
 Generate Work Order.        
     - . , 
   taCALL        
    (dsBrowse),      
    . ,   
,    State     
dsInactive-dsCurVal.  ,       
,       ,     
 uses  fmRCALEDTO.  ,      
 uses,        , 

        

      ,    ,    
.        
btGenerateWorkOrder.   ,      , 
           
 .        OnShow 
  CALL.        
  OnShow   Object Inspector.    
         
   OnShow . 

    If (dmRENTMAN.taCALLWORDER_NUMBER.AsInteger=0) then 
        btGenerateWorkOrder.Caption :='&Generate Work Order' 
    else 
       btGenerateWorkOrder.Caption :='Edit SWork Order'; 


      
    ,   ,     OnShow  
,        dlcbPROPERTY_ADDRESS,  
      OnClick    
   FormShow .        . 
    ,        
 ,    ,   
 . 


     11.   257 
    9   Delphi 3   / 

       CALL 

         RENTMAN.  . 11.6  
         . 

    . 11.16.     CALL     


     

                 
RENTMAN:      TENANT, PROPERTY  LEASE,     
   WORDER  CALL.       
 ,          .  
      ,    
     . 

     ... 

    ,        RENTMAN,  
   .       
      . 

    258  II.  c