Estou migrando o meu sistema para Harbour e seguindo muitas orientações do fórum. Compilei e rodei sem problemas, mas está acontecendo algo que não estou conseguindo resolver, pelo menos da maneira que penso estar certa.
Eu utilizava em meu sistema Clipper a indexação condicional para gerar na tela somente os dados que eu precisava, pois achava melhor assim do que gerar um filtro. Isso funcionava 100% no Clipper, mas no Harbour não tem funcionado, traz para a tela registros que não satisfazem a condição que eu coloquei na variável. Essa indexação á crucial para o sistema, pois mostro os dados para a edição com base nela, pego somente o que o o usuário pediu dentro de opções que ele informa antes.
Ainda uso o NTX, mas pretendo mudá-lo e desde já peço alguma dica sobre qual o melhor (CDX, talvez?). Segue abaixo o código que modifiquei para que alguém possa me ajudar a solucionar isso:
Código: Selecionar todos
/*******
* PROCEDURE pSafraNasc()
* obj: cria e apresenta os ventres prenhes para o nascimento
* psafranasc() psafranasc.prg
*******/
PROCEDURE pSafraNasc(pAval)
LOCAL lTodas, cCodigoFaz:=usuario->COD_FAZ, cCondInd:=vep->(ordfor(12)),;
cCondNasc, cCondFiltro:=""
if pAval==NIL; pAval:=False; endif
cCondRep:=left(upper(cCondInd), at(upper("ww=' '"),cCondInd)-1)
if !empty(cFazSaf).and.cFazSaf#"****"
if pAval
vep->(dbcreateindex(cCodigoFaz+"vp12",if(cOrdIndex=="A","I_MAE_A+I_MAE_N+I_MAE_F","I_MAE_N+I_MAE_A+I_MAE_F"), {|| ((WW=' '.AND.SAFRA==CSAFRA).OR.(WW='*'.AND.SAFRAN==CSAFRA)).AND.AF==CFAZSAF.AND.DG=='P'.and.!empty(IAN+IAA+IAF)}))
else
vep->(dbcreateindex(cCodigoFaz+"vp12",if(cOrdIndex=="A","I_MAE_A+I_MAE_N+I_MAE_F","I_MAE_N+I_MAE_A+I_MAE_F"), {|| ((WW=' '.AND.SAFRA==CSAFRA).OR.(WW='*'.AND.SAFRAN==CSAFRA)).AND.AF==CFAZSAF.AND.DG=='P'.and.left(COMREP,1)#'E'}))
endif
else
if pAval
vep->(dbcreateindex(cCodigoFaz+"vp12",if(cOrdIndex=="A","I_MAE_A+I_MAE_N+I_MAE_F","I_MAE_N+I_MAE_A+I_MAE_F"), {|| ((WW=' '.AND.SAFRA==CSAFRA).OR.(WW='*'.AND.SAFRAN==CSAFRA)).AND.DG=='P'.and.!empty(IAN+IAA+IAF)}))
else
vep->(dbcreateindex(cCodigoFaz+"vp12",if(cOrdIndex=="A","I_MAE_A+I_MAE_N+I_MAE_F","I_MAE_N+I_MAE_A+I_MAE_F"), {|| ((WW=' '.AND.SAFRA==CSAFRA).OR.(WW='*'.AND.SAFRAN==CSAFRA)).AND.DG=='P'.and.left(COMREP,1)#'E'}))
endif
endif
pIndRep(TRUE,cCondInd,TRUE)
vep->(dbsetorder(12) , dbgotop())
RETURN
Também estou tendo dificuldade em encontrar documentação sobre as funções do Harbour. Tenho o arquivo "xHarbour Language Reference Guide.chm", que baixei quando tentei migrar com o xHarbour, mas não encontrei algo parecido para o Harbour. Existe alguma sugestão de documentação para eu ir buscando comando e funções Harbour para ir melhorando o meu sistema?
Abraços.
Sergio Moreira


