Página 1 de 1

mascara condicional no Tbrowse

Enviado: 06 Out 2014 11:30
por porter
ola pessoal, na rotina abaixo, no campo ESTOQUE, coloquei uma condição, se UN="UN", mostrar campo no Tbrowse sem casas decimais, caso contrario mostrar com trez casas decimais, mas está mostrando todos sem casas decimais, o que há de errado nessa rotina, pois ele está considerando somente a primeira condição do if.

Código: Selecionar todos

PRIVATE cCampos := {{"CODIGO",     "@9" , "Código"},;
2	                    {"DESCRICAO","@!", "Descrição"},;
3	                    {"UN",            "@!", "Un"},;
4	                    {"ESTOQUE",  IF(UN="UN", "9999","9999.999"),"Estoque"}}
Windows 7, 64 bits, xHarbour

mascara condicional no Tbrowse

Enviado: 06 Out 2014 12:29
por aferra
Tente assim:

{"ESTOQUE", IF(<seu_alias>->UN="UN", "9999","9999.999"),"Estoque"}}

mascara condicional no Tbrowse

Enviado: 06 Out 2014 13:09
por porter
aferra disse:
{"ESTOQUE", IF(<seu_alias>->UN="UN", "9999","9999.999"),"Estoque"}}
olá, o campo ESTOQUE, está mostrando normalmente, mas parece-me que só está considerando a primeira condição do IF, entendeu, da forma que você sugeriu eu já estou fazendo.

mascara condicional no Tbrowse

Enviado: 06 Out 2014 13:49
por Jairo Maia
Olá Porter,

Não tenho uma solução para esta situação, mas quanto a esta questão:
porter escreveu:o campo ESTOQUE, está mostrando normalmente, mas parece-me que só está considerando a primeira condição do IF
Sim. Somente a primeira, porque não é feito a verificação da matriz com os dados da coluna a cada registro. Penso que para atender essa questão deverá ser feito esse controle em outro lugar.

mascara condicional no Tbrowse

Enviado: 06 Out 2014 14:05
por porter
olá Jairo, com o comando abaixo eu consigo colorir as linhas desejadas, não seria esse comando para por as mascaras condicionalmente tambem, mas onde esta colorblock seria outro comando.

brw:getcolumn(i_):colorblock=&("{||IF(CLI_BLOQ='S',{3,2},{5,3})

mascara condicional no Tbrowse

Enviado: 07 Out 2014 03:58
por Jairo Maia
Olá Porter,

Isso mesmo! Use :block. Abaixo dessa linha coloque:

Código: Selecionar todos

If Upper(brw:getcolumn(i_):heading)="ESTOQUE"  // compara pelo nome da coluna, não é o campo
 brw:getcolumn(i_):block := {||If(un="UN",Tran(estoque,"@E 99999999"),Tran(estoque,"@E 9999.999"))}
EndIf

mascara condicional no Tbrowse

Enviado: 07 Out 2014 09:25
por porter
bom dia Jairo,
Ficou perfeito, obrigado mais uma vez por sua atenção, obrigado a todos.