Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /****
- Contoh penggunaaan:
- 1. Copy seluruh record
- Use (cxbaseName)
- aData := DbfToArray()
- 2. Copy record-record yang field KOTA='JAKARTA'
- Use (cxbaseName)
- aData := DbfToArray( {|| FIELD->kota == 'JAKARTA' } )
- 3. Copy dengan clause while
- Use (cxbaseName)
- OrdSetFocus( "KOTA" ) // indexkey: KOTA
- DBSeek( "JAKARTA" )
- aData := DbfToArray( NIL , {|| FIELD->kota == 'JAKARTA' } )
- 4. Copy dengan clause for (lelaki) dan while (kotanya Jakarta) di working area lain
- PROCEDURE TEST
- local nDataArea
- Use (cxbaseName) NEW ; nDataArea := select()
- OrdSetFocus( "KOTA" ) // indexkey: KOTA
- //
- use (TableLain) NEW
- aData := (nDataArea)->( DBSeek( "JAKARTA" ) ,;
- DbfToArray( {|| FIELD->sex == "L" } , {|| FIELD->kota == 'JAKARTA' } );
- )
- ***/
- FUNCTION DBFTOARRAY(bFor,bWhile)
- local aTable , nRec0
- /****
- Copy record dari current working area ke array
- Parameter:
- bFor : Codeblock untuk for condition
- bWhile: Codeblock untuk while condition
- Return value:
- aTable dengan struktur:
- aTable[1] => struktur database hasil dari DBStruct()
- aTable[2] => Recordnya
- *****/
- aTable := { DBStruct() , {} }
- // Save posisi Record
- nRec0 := recno()
- if bWhile == NIL
- go top
- endif
- DBEval( {|| aadd( aTable[2] , CopyRecord() ) } , bFor , bWhile }
- // Restore posisi record
- go nRec0
- RETURN aTable
- STATIC FUNCTION CopyRecord()
- local aRec
- aRec := Array( FieldCount() )
- AEval( aRec , {|x,n| aRec[n] := FieldGet(n) } )
- RETURN aRec
Advertisement
Add Comment
Please, Sign In to add comment