Clipper On Line • Ver Tópico - usar vetor no tsbrowse

usar vetor no tsbrowse

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

usar vetor no tsbrowse

Mensagempor Pablo César » 04 Jan 2012 08:03

ai gravei no INI como C_VEMELHA no lugar de COR_VERMELHA, troquei a linha para esta e deu Error BASE/1003 Variavel não existe: C_VERMELHA
Não sei se você notou, mas não creio que você tenha cometido erro de digitação no nome... aqui você colocou C_VEMELHA ao invés de C_VERMELHA. Desculpe se pareço inocente nas minhas questões. Mas é que as vezes com o cansanço cometemos erros bobos sem darmos conta.

Volte a deixar como estava na hora de pegar o INI como estava. Mas modifique no seu código desta maneira na linha onde você aplica o setcolor faça assim:

BROW020101:SetColor( { 1, 2, 5 }, { COR_PRETA, { || IF( &(SGC020101BLOCO[NUMCOR]), ;
                     Interpreta( SGC020101AFUNC[14,NUMCOR,13] ) , (COR_BRANCA) ) }, COR_AZULCLARO }, W )

...//... e depois crie a seguinte função:
Function Interpreta(cCor)
Do Case
   Case cCor="COR_BRANCA"   
        hRet:=RGB( 255,255,255 )
   Case cCor="COR_AMARELA"   
        hRet:=RGB( 255,255,000 )
   Case cCor="COR_AZUL"       
        hRet:=RGB( 000,000,255 )
   Case cCor="COR_AZULCLARO"   
        hRet:=RGB( 121,188,255 )
   Case cCor="COR_VERDE"       
        hRet:=RGB( 000,255,000 )
   Case cCor="COR_VERDEESCU"   
        hRet:=RGB( 000,128,000 )
   Case cCor="COR_VERMELHA"   
        hRet:=RGB( 255,000,000 )
   Case cCor="COR_ROSA"       
        hRet:=RGB( 255,128,255 )
   Case cCor="COR_LARANJA"
        hRet:=RGB( 255,128,000 )
   Case cCor="COR_LILAS"
        hRet:=RGB( 128,000,128 )
   Case cCor="COR_PRETA"
        hRet:=RGB( 000,000,000 )
   Case cCor="COR_CINZA"     
        hRet:=RGB( 128,128,128 )
    Otherwise
        hRet:=RGB( 102,051,000 )  // MARROM, faça outra cor só pra ver se atende condição
Endcase
Return hRet
Acredito que fazendo a função dentro do seu código possa interpretá-la e não como os outros casos em tempo de execução com macro... Agora se aparecer a cor marrom é porque a assignação do elemento SGC020101AFUNC[14,NUMCOR,13] está furada...
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

usar vetor no tsbrowse

Mensagempor Amparo » 04 Jan 2012 09:57

ola amigos,

Pablo, BATATA... ganhei mais alguns fins de cabelo....(RSRSRS)

fiz como me passou so mudei o Case cCor:="COR_VERMELHA" para Case cCor="COR_VERMELHA"
quando escrevi C_VEMELHA foi puro erro de digitação, eu ate tinha feito uma funcao usando IF e ELSEIF no lugar do CASE mas acho que de tanto bater pra la e pra ca fiz alguma besteira e nao deu certo.

agora coloquei meu codigo assim e que beleza os RETIDOS foram pintados de VERMELHO os outros de VERDE
BROW020101:SetColor( { 1, 2, 5 }, { COR_PRETA, { || IF( &(SGC020101BLOCO[NUMCOR]), ;
      Interpreta( SGC020101AFUNC[14,NUMCOR,13] ) , Interpreta( SGC020101AFUNC[14,NUMCOR,14] ) ) }, COR_AZULCLARO }, W )

cara, muito obrigado mesmo, resolvendo este problema me abre um lek para eu montar a minha coluna calculada

valeu
abraços
Avatar de usuário

Amparo
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 337
Data de registro: 20 Ago 2010 10:38
Cidade/Estado: caieiras / sao paulo
Curtiu: 0 vez
Mens.Curtidas: 2 vezes

usar vetor no tsbrowse

Mensagempor Pablo César » 04 Jan 2012 10:25

Quê bom colega que serviu o meu acompanhamento, mas eu também tenho a te agradecer, mesmo ter tomado algum tempo da minha atenção, posso dizer que também serviu para o meu aprendizado. Muitas vezes estamos tão preocupados com certo focus que requerem a nossa atenção que as vezes deixamos de lado alguns detalhes que fogem. Desde o começo eu percebí que além de tentar entender o seu código, o erro só poderia estar na interpretação do conteúdo daquela matriz. Só que custou em saber como se compunha e como era utilizada até que você foi explicando a sua lógica. Você está de parabéns, pois seu código é rico em detalhes, só espero que não abuse de tanta memória na criação de matrizes e o sistema acabar ficando lento ou até mesmo ter um colapso. Não sei avaliar esse consumo, mas talvez eu faria com que essas informações de condição sobre as cores possam ser aplicadas dentro do proprio dbf, já gravando a cor que merece sobre a condição que cada registro se encontra no momento da inclusão e alteração do registro. E a diferenciação de cores, iria ser "traduzida" em arquivos diferenciados para cada usuário que escolheu tal e tal cores. Não sei uma sugestão.

mudei o Case cCor:="COR_VERMELHA" para Case cCor="COR_VERMELHA"
kkkk isso mesmo ! Claro, um erro desses não poderia dar certo jamais. Bem notado ! (desculpa essa falha e já corrigí a minha mensagem anterior no código).
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

usar vetor no tsbrowse

Mensagempor Amparo » 04 Jan 2012 10:50

ola amigos,

Pablo, como disse no começo, meu programa é meu complicado mesmo, as vezes ate eu nao sei o que fiz (RSRSR) mais a minha ideia é criar um sistema de ERP funcionando tipo como um excel ou seja voce acrescenta coluna, oculta coluna, inclui uma linha que nada mais é que um novo registro, deleta a linha, congela um coluna e por ai vai, note que no printscreen que lhe passei tem um botao chamado LAYOUT (F6) aqui fica guardado todos os layout de cada tabela, aquelas que o usuario criou com o seu campo preferido e suas condiçoes, o Layout Natural (CTRL+F6) cria um browse com todos os campos do cadastro de clientes os outros tem apenas os campos que cada usuario determinou, repare tambem que no FORM do layout do sistema existe um botao chamado PADRAO, quando o usuario escolhe o layout e clica no botao PADRAO o sistema grava no cadastro de usuario qual é o LAYOUT padrao dele, assim quando ele entrar novamente no cadastro de cliente vai aparecer primeiro seu layout padrao.

isso esta funcional em clipper 5.3, agora estou tentando aos poucos (com o tempo que tenho) migrar para minigui, por isso acabo apanhando um pouco, ainda nao me familiarizei com a programação Orientada objeto, tanto é que meus prgs eu crio na unha form a form botao a botao, nao consegui utilizar nenhuma IDE ainda, quem sabe um dia.

a proposito quanto a minha idade ja passei dos 45 e nao é so fio de cabelo que estou perdendo, perdi tambem alguns neuronios (RSRSRS)

mais uma vez muito obrigado.
Anexos
layout do cadastro de cliente.rar
(85.46 KiB) Baixado 127 vezes
Avatar de usuário

Amparo
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 337
Data de registro: 20 Ago 2010 10:38
Cidade/Estado: caieiras / sao paulo
Curtiu: 0 vez
Mens.Curtidas: 2 vezes

usar vetor no tsbrowse

Mensagempor Pablo César » 04 Jan 2012 11:14

Legal. Mas confirme se eu não estiver errado. A sua matriz SGC020101AFUNC tem tantos elementos (digamos quantidade em linha ou valor do NUMCOR) tantos quantos o número de registros do DBF ?
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

usar vetor no tsbrowse

Mensagempor Amparo » 04 Jan 2012 12:57

ola amigos

o dbf que guardo meus layouts chama T_ables, neste dbf tenho hoje 97 registros contando os registros deletados ( isso em um cliente de medio porte)
no T_ables tem um campo chamado TB_NAME que é o nome que o usuario da ao seu layout
eu crio o vetor no momento que o usuario escolhe seu layout pegando os dados da tabela T_ABLES mais os dados do arquivo INI, eu nao carrego todo o dbf e sim somente o registro referente ao layout a ser usado.

o vetor SGC020101AFUNC tem 20 elementos guardo outras informaçoes nele, so que SGC020101AFUNC[14,numcor,13] guardo a cor da primeira condicao e o SGC020101AFUNC[14,numcor,13] a cor da segunda condição, e tambem tenho o vetor SGC020101AFUNC[14,x,11] que guardo a a primeira condicao da minha coluna calculada e SGC020101AFUNC[14,x,12] a segunda condicao da coluna calculada.

abraços
Avatar de usuário

Amparo
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 337
Data de registro: 20 Ago 2010 10:38
Cidade/Estado: caieiras / sao paulo
Curtiu: 0 vez
Mens.Curtidas: 2 vezes

Anterior



Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 3 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro