Clipper On Line • Ver Tópico - Recuperar dados de uma linha do BROWSE

Recuperar dados de uma linha do BROWSE

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Recuperar dados de uma linha do BROWSE

Mensagempor PRSantos » 29 Set 2013 19:20

Boa noite a todos.

Como faço para recuperar os dados de uma linha de um objeto BROWSE?

Desde já agradeço.

Function MostraDadosCliente
   Clientes.tabClientes.Value := 2
   
   MsgBox( STRZero(This.CellColIndex, 2) + " / " + STRZero(This.Value))
   /* MsgBox( This.Item( This.Value ) ) */
Return Nil
Nota de Moderação:
Toledo: O presente tópico foi movido da seção Harbour, uma vez que seu conteúdo não tem relação com os objetivos daquela seção, onde só podem constar dúvidas técnicas de programação diretamente relacionadas com o [x]Harbour.
PRSantos
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 8
Data de registro: 29 Set 2013 19:11
Cidade/Estado: Rio de Janeiro
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Recuperar dados de uma linha do BROWSE

Mensagempor alxsts » 29 Set 2013 19:48

Olá!

Seja bem-vindo ao fórum PRSantos!

Você postou na seção Harbour mas não consegui saber ao certo qual biblioteca gráfica está usando. No momento, posso apenas informar que o acesso a métodos de classes nas linguagens padrão xBase é feito usando-se o operador : ao invés do . mostrado em seu exemplo de código.
   #include "Hbclass.ch"

   PROCEDURE Main
      LOCAL obj

      CLS
      obj := Test():new( "Clipper on Line" )

      obj:print()
   RETURN

   CLASS Test
      HIDDEN:
      VAR name

      EXPORTED:
      METHOD init( cName ) INLINE ( ::name := cName, self )
      METHOD print
   ENDCLASS

   METHOD print CLASS Test
      ? ::name
   RETURN self
Por favor, forneça mais detalhes do problema que está enfrentando.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Recuperar dados de uma linha do BROWSE

Mensagempor PRSantos » 30 Set 2013 13:00

Boa tarde alxsts.

Obrigado pela empenho.

Programei em CLIPPER 5.2 por muitos anos. Agora descobri que posso migrar minha aplicação para HABOUR e estou tentando a quatro dias.

Estou usando Usando a IDE HMG 3.1.5

Quanto a lib gráfica, isso nem eu sei.

Gostaria de poder tirar algumas dúvidas mas por forum é muito lento. Teria algum telefone de contato do forum ou algo que fosse mais rápido?

O meu é (21) 3356-0338

Poderia também postar um .rar contendo os códigos do projeto que estou tentando ,migrar.

Sei que dever fácil!, para quem já sabe, é claro!

Mais uma bez obrigado pelo empenho.

Preciso mesmo é do caminho das pedras.

Grande abraço.
PRSantos
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 8
Data de registro: 29 Set 2013 19:11
Cidade/Estado: Rio de Janeiro
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Recuperar dados de uma linha do BROWSE

Mensagempor alxsts » 30 Set 2013 14:33

Olá!

Para que todos possam usufruir dos benefícios do fórum, as regras do mesmo proibem este tipo de contato para esclarecimento de dúvidas.

Pode postar todas as dúvidas no fórum, na seção apropriada. Sempre haverá alguém disposto a contribuir.

Quanto à pergunta que fiz sobre a lib gráfica utilizada, você já respondeu: HMG.

Veja este tópico. Veja o tópico From CA-Clipper to Windows in 5 Minutes

Utilize também o recurso de busca do fórum, do lado superior direito da página. Tem muito material relacionado à tua dúvida.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Recuperar dados de uma linha do BROWSE

Mensagempor PRSantos » 30 Set 2013 15:02

Obrigado pela ajuda.

Irei examinar os links.

Concordo com você sobre o uso dos benefícios. Isso realmente é importante. Por isso, particularmente quando alguém precisa de algo e tenho em mão algum código pronto, prontamente envio para que a pessoa não perca muito tempo em desenvolver e resolver seu problema.

Mais uma vez obrigado.
PRSantos
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 8
Data de registro: 29 Set 2013 19:11
Cidade/Estado: Rio de Janeiro
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Recuperar dados de uma linha do BROWSE

Mensagempor PRSantos » 30 Set 2013 15:14

Já conhecia esse link.

Preciso converter isso.

Preciso que quando aplicar um duplo click em uma linha do Browse, seus dados sejam passados para os objetos que estarão na segunda TAB.

Notei que se eu clicar até o registro de nº 316, o valor da primeira coluna está correto, mas quando maior que isso o valor é acrescido de +1.

Muito estranho! Com o RecNo() ainda não obtive sucesso. Se ao menos o valor da primeira coluna estivesse correto para todas a s linhas, já me bastava. Pegaria esse valor e usaria um DBSeek() então encontraria o registro correto e faria uso de suas informações.

Vê no que pode me ajudar por favor, já que está muito mais familiarizado com essa nova tecnologia.

Obrigado.
Anexos
SisAdmin.rar
Fontes
(1.16 MiB) Baixado 82 vezes
PRSantos
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 8
Data de registro: 29 Set 2013 19:11
Cidade/Estado: Rio de Janeiro
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Recuperar dados de uma linha do BROWSE

Mensagempor alxsts » 30 Set 2013 16:26

Olá!

Complementando: a HMG é muito rica em exemplos.

Verifique na pasta C:\hmg.3.1.5\SAMPLES.

Consulte também os Tutoriais do Giovanni di Maria
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Recuperar dados de uma linha do BROWSE

Mensagempor Toledo » 30 Set 2013 17:48

Amigo PRSantos, tente o seguinte:

Function MostraDadosCliente
   Clientes.tabClientes.Value := 2

   Quebra := CHR(13) + CHR(10)

   cMsg:="Recno..: "+STR(Clientes.brwClientes.Value,10,0)+Quebra+;
         "Matrícula..: "+CLIENT->MAT_CLI+Quebra+;
         "Nome Cliente..: "+ALLTRIM(CLIENT->NOM_CLI)
   MsgInfo( cMsg )

Return Nil


Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Recuperar dados de uma linha do BROWSE

Mensagempor PRSantos » 30 Set 2013 18:19

Valeu Toledo.

O problema é que o BROWSE não está conectado a base.

Com isso quando navego no BROWSE o ponteiro na base não move, mostrando sempre o mesmo conteúdo da base.

Mas valeu.
PRSantos
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 8
Data de registro: 29 Set 2013 19:11
Cidade/Estado: Rio de Janeiro
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Recuperar dados de uma linha do BROWSE

Mensagempor Toledo » 30 Set 2013 19:00

Amigo, incluir o comando abaixo no arquivo Main.prg, logo depois de Function Main():

SET BROWSESYNC  ON


E no meu código anterior, faça a seguinte alteração:

Procure por:
"Matrícula..: "+CLIENT->MAT_CLI+Quebra+;


e troque por:
"Matrícula..: "+STR(CLIENT->MAT_CLI)+Quebra+;


Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Recuperar dados de uma linha do BROWSE

Mensagempor PRSantos » 30 Set 2013 19:06

Mais uma vez obrigado.

Estou cá a testar.

Você deu uma olhada no projeto que postei?

Grande Abraço.
PRSantos
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 8
Data de registro: 29 Set 2013 19:11
Cidade/Estado: Rio de Janeiro
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Recuperar dados de uma linha do BROWSE

Mensagempor PRSantos » 30 Set 2013 19:23

Funcionou!

Valeu Toledo. Tú é bom MERMO nisso hein!

Muito obrigado.

Mais uma coisa: Desenvolvi toda essa aplicação em "Clipper 52e". Fabriquei todas as telas com @ ... SAY. Devo usar a IDE HMG para refazer todas as telas?

O que sugere?

Posso te enviar um módulo para analise?

Desenvolvi assim: Cadastro de Cliente - Toda a regra de negócio está em "TSUCLIE.Prg".

Valeu!
PRSantos
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 8
Data de registro: 29 Set 2013 19:11
Cidade/Estado: Rio de Janeiro
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Recuperar dados de uma linha do BROWSE

Mensagempor Toledo » 30 Set 2013 19:35

PRSantos escreveu:Desenvolvi toda essa aplicação em "Clipper 52e". Fabriquei todas as telas com @ ... SAY. Devo usar a IDE HMG para refazer todas as telas?

Sim, você terá que refazer todas as telas da sua aplicação Clipper 5.2e (modo console) utilizando agora a IDE HMG em modo gráfico.

Bom, com este seu projeto feito no IDE HMG, você já deve ter notado que a programação MiniGui é um pouco diferente do Clipper 5.2, então além das telas, você terá que reescrever o seu código Clipper 5.2e e converter para HMG MiniGui.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Recuperar dados de uma linha do BROWSE

Mensagempor PRSantos » 30 Set 2013 20:00

Valeu!

Em anexo está um módulo (sem compromisso) para análise.

Se puder sugerir algo.

Abraço.
Anexos
TSUFORN.PRG
(27.15 KiB) Baixado 77 vezes
PRSantos
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 8
Data de registro: 29 Set 2013 19:11
Cidade/Estado: Rio de Janeiro
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Recuperar dados de uma linha do BROWSE

Mensagempor Pablo César » 01 Out 2013 09:33

Oi Paulo Roberto,

De fato a programação GUI é totalmente diferente com as do modo console, quanto as telas (interface com o usuário). Você utilizando a HMG, vá na pasta SAMPLES como o colega já mencionou, para você ver os diversos exemplos e tentar entender e dominar a utilização de cada componente. Você precisa passar pelo aprendizado da ferramenta que estará utilizando antes de completar qualquer projeto... vai ser extremamente difícil explicar tudo de tudo. Vá por partes, foque de inicio quais são os objetivos urgentes para você cobrir com o seu antigo sistema em Clipper. Para primeira fase, sugiro você compilar o seu atual código para 32 bits para você habilitar o seu sistema para Win 7 e posteriores. Segundo passo, geralmente o problema se encontra na impressão em impressora USB ou impressoras do tipo Windows que com o Clipper diretamente não é possível imprimir a não ser com programas externos. Depois eu iria para a programação gráfica, mas esse é um processo demorado. Você como todos, precisamos repassar pelos exemplos para entender a lógica e sintaxe dos componentes. Sem isso, eu diria que é quase impossível para alguém que está acostumado a programar em modo console (telas do Clipper, por exemplo).

Você está utilizando a ultima versão em modo UNICODE, esse padrão requer que o seu código fonte e seus dados também estejam em modo UNICODE. As acentuações do seu BD deverão ser convertidas de OEM para UNICODE. Os seus PRGs devem ser editados em modo UNICODE, se você utiliza o Notepad++ (o que vem no pacote da HMG) como editor, você vai ver na opção de menu formatar a opção "Codificação UTF-8". Você está dando um pulo muito grande, não que eu desestime, mas você vai encontrar muita dificuldade com tudo isto que estou te alertando. Não sei se no seu caso seria conveniente começar com UNICODE, porque as outras versões inferiores as 3.1.x são em modo ANSI. Mas isto não quer dizer que você não deva começar com UNICODE, pois muitos colegas já acostumados a programar em GUI tem certas dificuldades com este padrão.

Outra coisa, a utilização do BROWSE em HMG, já é considerada ultrapassada, em lugar desse componente utilize o GRID que tem mais recursos. Por isso não existem muitos exemplos de BROWSE nos atuais release de versão de HMG. Se ainda quiser persistir no Browse, veja maiores exemplos de BROWSE disponíveis neste link. Mas estes exemplos são antigos.

Para você escolher o componente certo como interface para telas, você primeiramente idealize na sua mente e depois transcreva num papel, imaginando o que o usuário irá enfrentar para obter resultados diferentes com as diferentes opções que terá disponíveis para cada módulo. Trabalhe SEMPRE com funções. Esse negocio de trabalhar no modo DBASE, que não iniciem com "Function ..." não é um modo apropriado de programar atualmente. Lebre que você está migrando com uma ferramenta muito poderosa que é o Harbour e que trabalha na linguagem C. Não se assuste, apenas saiba que você está dando um pulo muito mas muito grande !

Sempre poste as suas dúvidas aqui no fórum, esse negócio de ter pressa... não é uma boa. Aqui temos muitos colegas sempre dispostos em ajudar. A pressa é inimiga da perfeição. Aprender leva tempo e esse tempo não é igual para todos e tudo depende do interesse e dedicação que você se pre-dispõe. Poste mas de forma objetiva, mostre primeiramente as suas tentativas para demostrar as suas dificuldades e assim podemos também exemplificar com o mesmo conteúdo que você postou. As telas no HMG como muitas outras ferramentas gráficas, utilizam-se da IDE para criar FORMS (formulários) que serviram para exibir as telas do seu sistema. Abra os exemplos da pasta SAMPLES que está na pasta da HMG quando você instalou. Na aba "Formulários" (em alguns exemplos) você vai notar como são disponibilizados os componentes. A escolha certa dos componentes é fundamental para o sucesso de uma boa inteiração do programa com o usuário. Mas você vai ter que começar a pensar de forma diferente. Leva meses ou ano até você entender e dominar como todos os componentes funcionam. Mas uma vez que você deixa de pensar "a la Clipper" você vai conseguir fazer telas em poucos minutos.
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




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 2 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