. . oCursor = deflate('SourceCursor' , 'recno() < 5' ) . .while function 'inflate' is used to populate final
. . procedure receive_data lParameters oData =inflate(oData,'resultCursor') . .Here comes source;
******************************************* * function deflate * Used to populate object * carrying source cursor data/structure ******************************************** function deflate lparameters cAlias,cCondition ******* cAlias && Source Alias ******* cCondition && Optional condition local cAlias,cCondition local oTable,cAlias,cCondition oTable=createobject('table_parser',cAlias,cCondition) return oTable ************************** * function inflate * Used to create result cursor * in target datasession ************************** function inflate lparameters oTable,cAlias,cEmpty ******* oTable && Object carrying source cursor in it's properties ******* cAlias && Result cursor Alias Name ******* cEmpty && String 'EMPTY' causes empty cursor to be populated local oTable,cAlias,cEmpty local aa(1) local bb(1) =acopy(oTable.arrstru,aa) if type('cEmpty')= 'L' &¬ passed =acopy(oTable.arrdata,bb) endif create cursor &cAlias from array aa select (cAlias) if type('cEmpty')= 'L' &¬ passed append from array bb endif oTable=.f. return .t. *************************************************** * Class table_parser used to instantiate * Objects serving as cursor data/structure carrier *************************************************** define class table_parser as custom original_alias='' declare arrstru(1) declare arrdata(1) procedure init lparameters cAlias,cCondition local cAlias,cCondition this.prepare(cAlias,cCondition) procedure prepare lparameters cAlias,cCondition local cAlias,cc select (cAlias) this.original_alias = cAlias declare cc(1) =afields(cc) acopy(cc,this.arrstru) release cc select (cAlias) if type('cCondition') <> 'C' copy to array cc acopy(cc,this.arrdata) else if cCondition <> 'EMPTY' copy to array cc for &cCondition acopy(cc,this.arrdata) endif endif enddefine- Problems: