bpranoto

Contoh function copy record table ke array

Dec 23rd, 2014
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. /****
  2. Contoh penggunaaan:
  3.  
  4. 1. Copy seluruh record
  5. Use (cxbaseName)
  6. aData := DbfToArray()
  7.  
  8. 2. Copy record-record yang field KOTA='JAKARTA'
  9. Use (cxbaseName)
  10. aData := DbfToArray( {|| FIELD->kota == 'JAKARTA' } )
  11.  
  12. 3. Copy dengan clause while
  13. Use (cxbaseName)
  14. OrdSetFocus( "KOTA" ) // indexkey: KOTA
  15. DBSeek( "JAKARTA" )
  16. aData := DbfToArray( NIL , {|| FIELD->kota == 'JAKARTA' } )
  17.  
  18. 4. Copy dengan clause for (lelaki) dan while (kotanya Jakarta) di working area lain
  19.  
  20. PROCEDURE TEST
  21. local nDataArea
  22. Use (cxbaseName) NEW ; nDataArea := select()
  23. OrdSetFocus( "KOTA" ) // indexkey: KOTA
  24. //
  25. use (TableLain) NEW
  26. aData := (nDataArea)->( DBSeek( "JAKARTA" ) ,;
  27. DbfToArray( {|| FIELD->sex == "L" } , {|| FIELD->kota == 'JAKARTA' } );
  28. )
  29.  
  30.  
  31.  
  32. ***/
  33.  
  34. FUNCTION DBFTOARRAY(bFor,bWhile)
  35. local aTable , nRec0
  36. /****
  37. Copy record dari current working area ke array
  38. Parameter:
  39. bFor : Codeblock untuk for condition
  40. bWhile: Codeblock untuk while condition
  41.  
  42. Return value:
  43. aTable dengan struktur:
  44. aTable[1] => struktur database hasil dari DBStruct()
  45. aTable[2] => Recordnya
  46. *****/
  47.  
  48. aTable := { DBStruct() , {} }
  49.  
  50. // Save posisi Record
  51. nRec0 := recno()
  52.  
  53. if bWhile == NIL
  54. go top
  55. endif
  56.  
  57. DBEval( {|| aadd( aTable[2] , CopyRecord() ) } , bFor , bWhile }
  58.  
  59. // Restore posisi record
  60. go nRec0
  61. RETURN aTable
  62.  
  63. STATIC FUNCTION CopyRecord()
  64. local aRec
  65. aRec := Array( FieldCount() )
  66. AEval( aRec , {|x,n| aRec[n] := FieldGet(n) } )
  67. RETURN aRec
Advertisement
Add Comment
Please, Sign In to add comment