                       ()
                            Cursors.vcx
                           ----------------------
 2.         ( Field)
            DataCursor:
           -   Fields, nFieldsCount, cFieldClass,  MakeFields
           -  Go   Navigate,
           -   Go, GoTop, GoBottom, Skip, Seek, Locate, Continue
--------------------------------------------------------------------------------

           .
          
    ()   .

                   1. DataCursor (  Container)
                   --------------------------------------------
       (),  ,
, ,    ,   ,
      .

:

cDbName     -     
cFileName   -    
cPath       -     .    
                 Init. ,   , 
               ,      .
cDatabase   -     .   
                  Init
cSource     -         . 
                    Init
cExtension  -     (default = "dbf")
cAlias      -   ,     ()
	             Open
cOrder      -   .     ()
                 Open.    
                   (set order)
cFilter     -  .     ()
                 Open.    
                (set filter)
nBufferMode -  .     ()
                 Open. (Default=1)
                   
                (CursorSetProp)
cRelations  -      . 
                 ()    Open.
                    (set relation)
                 :
              Expr into Alias [, Expr into Alias]... [Additive]

.   cOrder, cFilter, nBufferMode, cRelations 
             (, .T.  .F.)   
                

lExclusive  -    .   
               ()    Open. (Default=.F.)
lAutoOpen   -      (default=.F.)
                 ,   
                  Open.
lUsed       -   
cKeyTag     -   .   
                 RestorePos.  Primary .
lResult     -     : .F. - 
nError      -  ,     
               lResult = .T.
lEoF        -       (SavePos)
nRecNo      -      (SavePos)
uKeyValue   -  ,    cKeyTag, 
                (SavePos)

.  lEoF, nRecno, uKeyValue    RestorePos
              .

nFieldsCount -   
Fields[n]    -    -   Field.
	            Fields[i]  FieldsCount
                 MakeFields
cFieldClass  -  -,       
                 (Default = "Field")

IAmDataCursor =.T. -      .
                          BaseClass  
                     - (.)  ,  
                       type("oCursor.IAmDataCursor")=T_LOGICAL

Access/Assign-

BaseClass_Access() -  "DataCursor".  (, )
                      BaseClass   -

cOrder_Access() -   ,   Order()
cOrder_Assign(tcOrder) -  .
        tcOrder  ,  
        tcOrder=.F.,      cOrder

cFilter_Access() -   ,   Filter()
cFilter_Assign(tcFilter) -  
        tcFilter  ,  
        tcFilter=.F.,      cFilter

nBufferMode_Access() -    Buffering ,
                         CursorGetProp()
nBufferMode_Assign(tnBufferMode) -   
        tnBufferMode=.F.,     
        nBufferMode

cRelations_Access() -   ,   set("Relation")
cRelations_Assign(tcRelations) -   
       tcRelations   :
       tcExpr into Alias [, Expr into Alias]... [Additive]
        tcRelations  ,  
        tcRelations=.F.,     
       cRelations

lUsed_Access() -     (Used())
nFieldCount_Access() -    Fields   
Fields_Access(nFldNum | cFldName) -    Fields   
		     -  :
		 <oCursor>.Fields("FldName")

  :
Init -     
        <Object>.Init ( [tcPath [, tcFileName [, tcDBName]]] )
        tcPath -    (  )
           tcFileName -   
           tcDBName -    
       
         ,      cPath,
       cFileName, cDBName.    ,  
       ,    .

                
          cDataBase -     
       cSource -         , 
           .

          lAutoOpen,   Open.

Destroy -     
		      Close

Open -  
     lResult=<Object>.Open([tcAlias [, tcOrder [, tcFilter [, tnBufferMode
                                    [, tcRelations [, tlExclusive ]]]]]] )
     tcAlias      -  
        tcOrder      - 
        tcFilter     - 
        tnBufferMode -  
        tcRelations  -    
        tlExclusive  -   
     -    

          ,   
     

Close -  
    : <Object>.Close()

Update -       
    : lResult = <Object>.Update()
     -    

    TableUpdate  ,   ,  
       .     .
      ,       ,
     - .T.

Revert -       
    : lResult = <Object>.Revert()
     -    

    TableRevert  ,   ,  
       .     .
      ,       ,
     - .T.

IsChanged -       
    : lResult = <Object>.IsChanged()
     -   

       GetFldState  GetNextModified (  
     )  ,     
    .     - .F.

IsNewRecord -       
    : lResult = <Object>.IsNewRecord()
     -    

       GetFldState  ,   
      .     - .F.

IsNewAndEmpty -         
    : lResult = <Object>.IsNewAndEmpty()
     -      

       GetFldState  ,   
      .     - .F.

Navigate -   .       
      ,  ,      
     
    : lResult = <Object>.Navigate ( [tuKey [, tcOrder] )
     tuKey -   / "TOP" / "BOTTOM" /  /   /
                 / "CONTINUE"
		tcOrder -  / "SKIP" / "LOCATE"
     -    

     tuKey -   tcOrder  ,     tuKey
	 tuKey -   tcOrder="SKIP",  skip  tuKey 
	 tuKey - "TOP" ("BOTTOM"),     () 
     tuKey -   /  tcOrder,    
                 tcOrder    tuKey.  tcOrder  , 
                   ,   cKeyTag
	 tcOrder="LOCATE"     tcOrder,  this.cKeyTag
                  tuKey -  ,   ,
		           Locate  ,  tuKey
	 tuKey - "CONTINUE",      LOCATE
         "  " - go recno()

 .         Navigate  ,
                      -  
                      .

Go	-    
    : lResult = <Object>.Go(tnRecNumber)
	 tnRecNumber -   
     -    

GoTop	-    
    : lResult = <Object>.GoTop()
     -    

GoBottom -    
    : lResult = <Object>.GoBottom()
     -    

Skip-     
    : lResult = <Object>.Skip([tnOffset])
	 tnOffset -       (>0) 
                        (<0)  . Default=1
     -    

Seek-   
    : lResult = <Object>.Seek(tuKey [, tcOrder])
	 tuKey -    ,
            tcOrder -  ,    
     -    

Locate-    
    : lResult = <Object>.Locate(tuCondition)
	 tuCondition -   
     -    

Continue -    
    : lResult = <Object>.Continue()
     -    

.  Go, GoTop, GoBottom, Skip, Seek, Locate, Continue 
      Navigate     

SavePos	-    
    : <Object>.SavePos()

      EOF(), RecNo()    ,  
     cKeyTag,    lEoF, nRecNo, uKeyValue

RestorePos -    
    : lResult = <Object>.RestorePos(tnMode)
	 tnMode - 1-   
                 2-  
     -    

          lEoF, nRecNo,
    uKeyValue,     SavePos   
     tnMode=2,      ,
      cKeyTag.   cKeyTag  , 
        .   ,  
       = .F.
         Go.

Create -  
        .   
           

Add -   
        .   
            

Delete -  
        .   
           

ChiefCursor	-    ,     
               ,  null   .
    : oResult = <Object>.ChiefCursor(tcAlias)
     tcAlias -  
     -     null

           
      DataSet.

Release	-  
     <Object>.Release()

MakeFields	-    .   .
		         
		  nFieldsCount  Fields(*)
    : <Object>.MakeFields()

Error -         
       .  ,   RunTime 
     -    ,     ""
         .

-:

lblCaption (Label) -   (    )

                   2. Field (  Custom)
                   ------------------------------------
         .
    Field   -   DataCursor  
  Fields,    DataCursor.   
  DataCursor.nFieldsCount.    Field
        Fields  nFieldsCount 
 DataCursor.MakeFields.   -  
DataCursor.cFieldClass (default="Field").
  -    _< >.  "_"    
        Custom (, Name).
    -      oCursor.Fields(i) 
   oCursor.Fields("< >").
   ,   oCursor._< >. ,      
,  -   ( MakeFields      )

:

FldName	        -  
Type            -  
FldWidth        -    
Frac            - -   "."
NullValue       -   Null-
CPTranslation   -     
ValidExpression -      
ValidText       -      ValidExpression
DefaultValue    -    
Value           -  
nIndex          -      (   aFields)

Access/Assign-

BaseClass_Access() -  "Field".  (, )
                      BaseClass   -
Fldname_Access(),
Type_Access(),
FldWidth_Access(),
Frac_Access(),
NullValue_Access(),
CPTranslation_Access(),
ValidExpression_Access(),
ValidText_Access(),
DefaultValue_Access() -   GetFldProps    

Value_Access() -    
Value_Assign(tuNewVal) -     (Replace)

  :

Init    -  
     <Object>.Init(tnIndex)
	 tnIndex -      

Release	-  
     <Object>.Release()

IsChanged -         
             
    : lResult = <Object>.IsChanged()
     -   

       GetFldState  ,    
     .     - .F.

GetFldProps -    .     Access- 
     lResult=<Object>.GetFldProps(tnPropNumber)
     tnPropNumber -  
              aFields

                   3. DataSet (  Container)
                   -----------------------------------------
           .
,         ( DataCursor
  )    ( DataSet   ),  
   .
     DataSet     CreateObject (NewObject) 
 ,          
     DataEnvironment.   
 ,         ,
 ,     ,     .
     DataSet     AddObject
(NewObject)   Load      .    
      . ,     
         .

:

BackStyle   = 0 (Transparent) - ,   , 
                  
Visible     =.F. - ,     RunTime
cChiefAlias -     
lAutoOpen   -       (default=.F.)
                 ,    
                   Open.
lResult     -     : .F. - 
nError      -  ,     
               lResult = .T.
cErrorAlias - ,     

IAmDataSet=.T. -      .
                      BaseClass  
			  - (.)  ,  
			    type("oDataSet.IAmDataSet")=T_LOGICAL

Access/Assign-

BaseClass_Access() -  "DataSet".  (, )
                      BaseClass   - 

  :
Init -     
        <Object>.Init ( [tcPath] )
        tcPath -    (  ) 

         tcPath ,   Init   
         ,   ,   
         tcPath.

          lAutoOpen,   Open.

Destroy -     
		      Update  

ChiefCursor	-      
	 oCursor = <Object>.ChiefAlias([tcAlias])
	 tcAlias -   .
	 -   ,     

           cChiefAlias. 
          ,  
            .
          Open -   
         ,    Update - 
        .

Open -   
     lResult=<Object>.Open()
     -    

      Open      , 
     .  Open      
      - ,       ,
       ,  .
        -     
     ,        = .F.

           , 
         ,   ChiefCursor.

.         
              Z-.   -    
             .       ( 
           Format/Bring to Front  Format/Send to Back)   Runtime ( ZOrder).
               ( )   
            - ,    ,   
              .    ,  
                Open    .

Close -    
    : lResult = <Object>.Close()
     -    

	  Close       . 
	    .
        -     
     ,        = .F.

Update -   
    : lResult = <Object>.Update()
     -    

      (        Update
        )    Update   
        .    
      ,   ,  .
      Update        ,
     .   Update  - 
     ,   ,  
    .   = .F.

Revert -   
    : lResult = <Object>.Revert()
     -    

      Revert        .
       ,  .
      Revert        ,
        .T.   Revert  -
      ,   , 
     = .F.

IsChanged -       
    : lResult = <Object>.IsChanged()
     -   

      IsChanged        
     ,  .      
     ,  ,   .T.
       -  .F.

Create -     
       ,   .    
        (  ) .

Release	-  
     <Object>.Release()
