FUNCTION G2_EstoqToCursor(cCursor AS String) ; HELPSTRING [Esta função consulta estoque de um produto em uma determinada loja, e cria um cursor com o nome especificado.] *-- Queries the stock and creates a cursor. LOCAL sbkMultiLocks,sbkReprocess IF EMPTY(This.Codigo) COMRETURNERROR([ComEstoque],[Can't search with empty Codigo.]) RETURN .F. ENDIF IF EMPTY(This.Loja) COMRETURNERROR([ComEstoque],[Can't search product in empty Loja.]) RETURN .F. ENDIF IF VARTYPE(cCursor) <> [C] COMRETURNERROR([ComEstoque],[Cursor name is empty or invalid]) RETURN .F. ENDIF SET DATASESSION TO 1 sbkMultiLocks = SET("Multilocks") sbkReprocess = SET("Reprocess") SET MULTILOCKS on SET REPROCESS TO 5 seconds This.AbreArquivos() && open tables on current datasession SELECT ; g2_estoq.custo_med ,; g2_estoq.ant_inv ,; g2_estoq.dat_custo ,; g2_estoq.dat_est ,; g2_estoq.dat_inv ,; g2_estoq.datultcomp ,; g2_estoq.dia_giro ,; g2_estoq.local ,; g2_estoq.pccompsicm ,; g2_estoq.qtd_est ,; g2_estoq.qtd_giro ,; g2_estoq.qtd_inv ,; g2_estoq.qtd_max ,; g2_estoq.qtd_min ,; g2_estoq.valultcomp ; FROM ; g2_estoq ; WHERE ; g2_estoq.codigo == This.Codigo ; AND ; g2_estoq.loja == This.Loja ; INTO CURSOR ; (cCursor) This.FechaArquivos() && Close tables opened by This.AbreArquivos() SET MULTILOCKS &sbkMultiLocks SET REPROCESS TO sbkReprocess SET DATASESSION TO This.DataSessionId