Clique abaixo para nos ajudar
Conectar-se

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
5 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 5 Visitantes :: 1 Motor de busca

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
ListBox

23/5/2017, 10:37 por Rosangela Pires

Ola Amigos.

Para se movimentar na grid com as setas colocamos no Metodo AfterChange da grid …

Comentários: 0

TRY BEGIN E FLOCK()

17/4/2017, 10:32 por AJC

Pessoal estou tendo alguns problemas de gravação em rede, estou usando
try begin, mas vi algo na …

Comentários: 0

Exportar Dados Campo Memo Tabela DBF

10/4/2017, 10:28 por fcampos

Olá bom dia.

Estou tentando exportar os dados de algumas tabelas em formato dbf pelo foxpro.
O …

Comentários: 2

Função EVL()

8/4/2017, 12:18 por Clebervfp

Bom dia a todos.
Vim compartilhar de uma Função do próprio VFP que me benefício muito.
Função …

Comentários: 0

COMO BLOQUEAR REGISTRO OU TABELA NO VISUAL FOXPRO PARA GRAVAÇÃO EM REDE

3/4/2017, 10:29 por AJC

Pessoal estou tendo um problema que acontece sempre busco na minha tabela de clientes o ultimo …

Comentários: 2

Estatísticas
Temos 7082 usuários registrados
O último usuário registrado atende pelo nome de Maiara Bosco

Os nossos membros postaram um total de 49 mensagens em 26 assuntos

Erro em execução de Programa

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Resolvido Erro em execução de Programa

Mensagem por Nelson Arcas em 14/1/2010, 15:23

Pessoal, boa tarde
Estou com o seguinte problema quando executo um programa pelo DEBUG do VFP colocando um "Break" logo apos um Select que gera um cursor com os dados e verifico se o mesmo tem informações e caso tenha faço a chamada de um relatorio para apresentar em tela as divergencias encontradas. Este relatorio é alimentado de acordo com as informações do cursor e apresentado corretamente.

Quando retiro o Break o programa gera o cursor na execução do Select só que não posiciona seu foco nele fica no arquivo atual que foi utilizado para fazer o select e quando o relatorio é chamado demonstra todos os funcionarios da empresa em vez de demonstrar somente quem tem o nome principal duplicado.

Ja forcei colocando para selecionar o cursor antes de abrir o relatorio.
Select duplic

Mesmo assim passa direto.

Alguem sabe o que pode estar acontecendo ou tenho que fazer algo ainda antes?
avatar
Nelson Arcas
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Erro em execução de Programa

Mensagem por alceu11 em 14/1/2010, 15:35

fez a select mais ou menos assim
select campo1,campo2 from tabela where codigo=wcod into curso teucursor
**ai tu faz
select teucursor
IF _TALLY>0 && Ou se fox for versao antiga reccount()>0
REPORT FORM NOMEREP.FRX TO PRINT nodialog NOCONSOLE
ou
REPORT FORM NOMEREP.FRX TO printer prompt preview
ELSE
WAIT WINDOW 'NADA FOI GERADO' TIME 2
ENDIF
baixe este tutorial
[Você precisa estar registrado e conectado para ver este link.]


Última edição por alceu11 em 14/1/2010, 15:43, editado 1 vez(es)
avatar
alceu11
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Erro em execução de Programa

Mensagem por Marcos Guedes em 14/1/2010, 15:40

[Você precisa estar registrado e conectado para ver este link.] escreveu:Pessoal, boa tarde
Estou com o seguinte problema quando executo um programa pelo DEBUG do VFP colocando um "Break" logo apos um Select que gera um cursor com os dados e verifico se o mesmo tem informações e caso tenha faço a chamada de um relatorio para apresentar em tela as divergencias encontradas. Este relatorio é alimentado de acordo com as informações do cursor e apresentado corretamente.

Quando retiro o Break o programa gera o cursor na execução do Select só que não posiciona seu foco nele fica no arquivo atual que foi utilizado para fazer o select e quando o relatorio é chamado demonstra todos os funcionarios da empresa em vez de demonstrar somente quem tem o nome principal duplicado.

Ja forcei colocando para selecionar o cursor antes de abrir o relatorio.
Select duplic

Mesmo assim passa direto.

Alguem sabe o que pode estar acontecendo ou tenho que fazer algo ainda antes?
No campos de seu report você está colocando o "nome do cursor" em seguida "." e o "nome do campo".
Ex: oCursor.campoDesjado

????

Ou apenas o nome do campo?

Tens como postar o código que estais utilizando para chamar o report?

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Erro em execução de Programa

Mensagem por Nelson Arcas em 16/1/2010, 12:25

Marcos segue o código
Estou um pouco desesperado pq está acontecendo a mesma situação em outros relatarios onde gero um cursor para formar o relatorio, parece que o fox não posiciona no cursor na chamada do report fica na tabela base que foi gerado o cursor.

Alceu ja estou fazendo a consistencia antes de chamar o report mas continua o ponteiro ficando no mesmo alias.

Código:
***verifica pessoas com nome ou cpf duplicados
PROCEDURE duplic_nome_cpf
*** ver cpf duplicados
   SET COLLATE TO 'MACHINE'
   SELECT cpf,COUNT(cpf) AS CONTA;
      FROM pessoa;
      WHERE ISDIGIT(cpf);
      HAVING COUNT (cpf)>1;
      GROUP BY cpf;
      INTO CURSOR dupcpf
   SET COLLATE TO 'GENERAL'

   IF RECCOUNT()>0
      SET COLLATE TO 'MACHINE'
      SELECT b.codvigil,b.nomevigil,b.cpf,'CPF' AS tipo;
         FROM dupcpf a, pessoa b;
         WHERE a.cpf=b.cpf;
         INTO CURSOR duplic
      SET COLLATE TO 'GENERAL'

      IF RECCOUNT()>0
         WAIT WINDOW 'Deseja imprimir ou visualizar funcionários com CPF Duplicados?(V/I)'
         IF UPPER(CHR(LASTKEY()))='I'
            REPORT FORM 'GREPORTS\admrdup.frx' TO PRINT NOCONSOLE
         ELSE
            REPORT FORM 'GREPORTS\admrdup.frx'   PREVIEW
         ENDIF
      ENDIF
   ENDIF

*** ver nomes duplicados
   SET COLLATE TO 'MACHINE'
   SELECT nomevigil,COUNT(nomevigil) AS CONTA;
      FROM pessoa;
      WHERE !EMPTY(nomevigil);
      HAVING COUNT (nomevigil)>1;
      GROUP BY nomevigil;
      INTO CURSOR dupnome
   SET COLLATE TO 'GENERAL'

   IF RECCOUNT()>0
      SET COLLATE TO 'MACHINE'
      SELECT b.codvigil,b.nomevigil,b.cpf,'Nome' AS tipo;
         FROM dupnome a, pessoa b;
         WHERE ALLTRIM(a.nomevigil)==ALLTRIM(b.nomevigil);
         INTO CURSOR duplic
      SET COLLATE TO 'GENERAL'

      SELECT duplic

      IF RECCOUNT()>0
         WAIT WINDOW 'Deseja imprimir ou visualizar funcionários com Nome Duplicados?(V/I)'
         IF UPPER(CHR(LASTKEY()))='I'
            SELECT duplic
            REPORT FORM 'GREPORTS\admrdup.frx' TO PRINT NOCONSOLE
         ELSE
            SELECT duplic
            REPORT FORM 'GREPORTS\admrdup.frx'   PREVIEW
         ENDIF
      ENDIF
   ENDIF

   RETURN
avatar
Nelson Arcas
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Erro em execução de Programa

Mensagem por alceu11 em 16/1/2010, 13:05

Código:
***verifica pessoas com nome ou cpf duplicados
PROCEDURE duplic_nome_cpf
*** ver cpf duplicados
SET COLLATE TO 'MACHINE'
SELECT cpf,COUNT(cpf) AS CONTA;
FROM pessoa;
WHERE ISDIGIT(cpf);
HAVING COUNT (cpf)>1;
GROUP BY cpf;
INTO CURSOR dupcpf
**SET COLLATE TO 'GENERAL'  PQ  ESTE COMANDO SE Nao vai dar seek arq

******NESLON ACHO QUE FALTOU SELECIONAR O CURSOR

Código:
SELECT DUPCPF
Wait window ' o Arquivo aberto é:' +alias()+str(reccont()) time 2

IF _TALLY >0  && RECCOUNT()>0
SET COLLATE TO 'MACHINE'
SELECT b.codvigil,b.nomevigil,b.cpf,'CPF' AS tipo;
FROM dupcpf a, pessoa b;
WHERE a.cpf=b.cpf;
INTO CURSOR duplic
SET COLLATE TO 'GENERAL'

***NELSON FALTOU SELECIONAR VE SE ISTO
Código:
SELECT DUPLIC
Wait window ' o Arquivo aberto é:' +alias()+str(reccont()) time 2

IF RECCOUNT()>0
WAIT WINDOW 'Deseja imprimir ou visualizar funcionários com CPF Duplicados?(V/I)'
IF UPPER(CHR(LASTKEY()))='I'
REPORT FORM 'GREPORTS\admrdup.frx' TO PRINT NOCONSOLE
ELSE
REPORT FORM 'GREPORTS\admrdup.frx' PREVIEW
ENDIF
ENDIF
ENDIF

*** ver nomes duplicados
SET COLLATE TO 'MACHINE'
SELECT nomevigil,COUNT(nomevigil) AS CONTA;
FROM pessoa;
WHERE !EMPTY(nomevigil);
HAVING COUNT (nomevigil)>1;
GROUP BY nomevigil;
INTO CURSOR dupnome
****SET COLLATE TO 'GENERAL'  PQ TODA HORAS ISTO SE NAO VAI SEEK NO ARQ.

SELECT DUPNOME
Wait window ' o Arquivo aberto é:' +alias()+str(reccont()) time 2

IF RECCOUNT()>0
SET COLLATE TO 'MACHINE'
SELECT b.codvigil,b.nomevigil,b.cpf,'Nome' AS tipo;
FROM dupnome a, pessoa b;
WHERE ALLTRIM(a.nomevigil)==ALLTRIM(b.nomevigil);
INTO CURSOR duplic
SET COLLATE TO 'GENERAL'

SELECT duplic

IF RECCOUNT()>0
WAIT WINDOW 'Deseja imprimir ou visualizar funcionários com Nome Duplicados?(V/I)'
IF UPPER(CHR(LASTKEY()))='I'
SELECT duplic
REPORT FORM 'GREPORTS\admrdup.frx' TO PRINT NOCONSOLE
ELSE
SELECT duplic
REPORT FORM 'GREPORTS\admrdup.frx' PREVIEW
ENDIF
ENDIF
ENDIF

RETURN

Pergunta basica os
reports foram baseados nos camps cursores. se nao meu amigo, os campos nao forem iguais, vai dar paus.

Ja tentou rodar o cursor na linha de comando, ver ser ele gera registro.
e depois em seguiida da um preview no report. com este cursor. com registros.?

Qdo vc diz fica no mesmo alias e o alias que estava antes de abrir esta rotina.?


Qual a versa do fox, ele nao aceita _tally > 0 e para cusores
avatar
alceu11
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Erro em execução de Programa

Mensagem por Nelson Arcas em 16/1/2010, 13:40

Alceu, valeu pelo retorno mas o erro continua!!!
Fiz os passos conforme sua orientação e forcei para selecionar o cursor
Select Duplic , mas continua o mesmo erro.
Estou colocando uma figura com o exemplo onde mesmo forçando o VFP não posiciona no cursor gerado. "Veja que continua posicionado no cursor SArvigil em vez de estar no cursor duplic".

Os campos do relatorio foram todos baseados no cursor, sobre colocar SET COLLATE TO 'MACHINE', foi devido alguns problemas anteriores com selects que foram resolvidos somente quando colocamos antes e apos ao select.
Estou migrando essa programação do Fox 2.5 para o VFP 9.0

[Você precisa estar registrado e conectado para ver esta imagem.]
avatar
Nelson Arcas
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Erro em execução de Programa

Mensagem por alceu11 em 16/1/2010, 13:53

Se voce fechar o cursr SArvigil

Select SArvigil
use in SArvigil
e depois que tu gerar os relatorios.

Refaz o cursor SArvigil

Pust grilos queria ver se debug desta rotina, mais nao consigo abrir a imagem, clico em cima na abre vou para url diz que nao existe!!!

Tem como enviar esta imagem para o meu msn [Você precisa estar registrado e conectado para ver este link.]
avatar
alceu11
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Erro em execução de Programa

Mensagem por Nelson Arcas em 16/1/2010, 15:10

Alceu, ja enviei para o seu e-mail!!!
A Figura do DEBUG o cursor Sarvigil não posso fechar uma vez que ele é base para as rotinas que vem logo apos esse processo.
avatar
Nelson Arcas
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Erro em execução de Programa

Mensagem por alceu11 em 16/1/2010, 15:16

vc fechou o cursr SArvigil

Código:
Select SArvigil
use in SArvigil

*****************
PROCEDURE duplic_nome_cpf
*** ver cpf duplicados
SET COLLATE TO 'MACHINE'
SELECT cpf,COUNT(cpf) AS CONTA;
FROM pessoa;
WHERE ISDIGIT(cpf);
HAVING COUNT (cpf)>1;
GROUP BY cpf;
INTO CURSOR dupcpf

SELECT DUPCPF
Wait window ' o Arquivo aberto é:' +alias()+str(reccont()) time 2
browse
colocar um break no dbug apos esta linha
veja a mensagem se tem registros.
depois da um browse

Mais uma pergunta no metodo load deste form vc criou o cursor dupcpf
Create cursor dupcf (

Se voce nao pode fechar pq as rotinas vem logo abaixo
teste.o que eu fiz agora
avatar
alceu11
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Erro em execução de Programa

Mensagem por Marcos Guedes em 16/1/2010, 15:36

Nelson, quantas tabelas você deixou aberto... nossa!!!
affraid

Isto ainda poderá te dar muitos problemas!
cherry

Bom... dei uma olhada no teu código e encontrei algumas coisas que podem estar influenciando, veja os comentários que deixei!

Código:
PROCEDURE duplic_nome_cpf
   SET COLLATE TO 'MACHINE'

   SELECT cpf,COUNT(cpf) AS CONTA;
      FROM pessoa;
      WHERE ISDIGIT(cpf);
      HAVING COUNT (cpf)>1;
      GROUP BY cpf;
      INTO CURSOR dupcpf

   SET COLLATE TO 'GENERAL'

   *!* >>>>>>> Selecione o cursor, ou tabela!!! <<<<<<<< *!*
   *!* O correto seria uma das seguintes alternativas, depende do que pretendes fazer:

   *!* SELECT pessoa
   *!* IF RECCOUNT()>0
   
   *!* ou
   
   *!* SELECT dupcpf
   *!* IF RECCOUNT()>0
   
   *!* ou
   
   *!* IF RECCOUNT("pessoa")>0
   
   *!* ou
   
   *!* IF RECCOUNT("dupcpf")>0   
   IF RECCOUNT()>0
      SET COLLATE TO 'MACHINE'
      SELECT b.codvigil,b.nomevigil,b.cpf,'CPF' AS tipo;
         FROM dupcpf a, pessoa b;
         WHERE a.cpf=b.cpf;
         INTO CURSOR duplic
      SET COLLATE TO 'GENERAL'

      *!* >>>>>>> Aqui existe o mesmo problema!!! <<<<<<<< *!*
      *!* É necessário informar qual a tabela, ou cursor, que estais se referindo!
      *!* Faça como sugeri no exemplo anterior
      IF RECCOUNT()>0
         WAIT WINDOW 'Deseja imprimir ou visualizar funcionários com CPF Duplicados?(V/I)'
         IF UPPER(CHR(LASTKEY()))='I'
            REPORT FORM 'GREPORTS\admrdup.frx' TO PRINT NOCONSOLE
         ELSE
            REPORT FORM 'GREPORTS\admrdup.frx'  PREVIEW
         ENDIF
      ENDIF
   ENDIF

   SET COLLATE TO 'MACHINE'
   SELECT nomevigil,COUNT(nomevigil) AS CONTA;
      FROM pessoa;
      WHERE !EMPTY(nomevigil);
      HAVING COUNT (nomevigil)>1;
      GROUP BY nomevigil;
      INTO CURSOR dupnome
   SET COLLATE TO 'GENERAL'

   *!* >>>>>>> Aqui existe o mesmo problema!!! <<<<<<<< *!*
   *!* É necessário informar qual a tabela, ou cursor, que estais se referindo!
   *!* Faça como sugeri no primeiro exemplo
   IF RECCOUNT()>0
      SET COLLATE TO 'MACHINE'
      SELECT b.codvigil,b.nomevigil,b.cpf,'Nome' AS tipo;
         FROM dupnome a, pessoa b;
         WHERE ALLTRIM(a.nomevigil)==ALLTRIM(b.nomevigil);
         INTO CURSOR duplic
      SET COLLATE TO 'GENERAL'

      SELECT duplic
      IF RECCOUNT()>0
         WAIT WINDOW 'Deseja imprimir ou visualizar funcionários com Nome Duplicados?(V/I)'
         IF UPPER(CHR(LASTKEY()))='I'
            SELECT duplic
            REPORT FORM 'GREPORTS\admrdup.frx' TO PRINT NOCONSOLE
         ELSE
            SELECT duplic
            REPORT FORM 'GREPORTS\admrdup.frx'  PREVIEW
         ENDIF
      ENDIF
   ENDIF

   RETURN
ENDPROC

Faça as alterações e veja se resolve.

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Erro em execução de Programa

Mensagem por alceu11 em 16/1/2010, 15:38

puts Nelson agora que vi
Se nao tiver registros
voce nao avisa
if _tally>0
comandos
else
Wait window "nao existem registros para esta informacao' time 2
endif
avatar
alceu11
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Erro em execução de Programa

Mensagem por Nelson Arcas em 16/1/2010, 16:21

Resolvido o problema tanto com a solução passada pelo marcos como pela passada pelo Alceu.

A resposta do Marcos consegui selecionando o cursor uma linha antes de chamar o report

A resposta do Alceu foi gerar um wait antes de selecionar o cursor.

Resolvido.

Valeu ....!
avatar
Nelson Arcas
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Erro em execução de Programa

Mensagem por Nelson Arcas em 16/1/2010, 16:39

[Você precisa estar registrado e conectado para ver este link.] escreveu:Nelson, quantas tabelas você deixou aberto... nossa!!!
affraid

Isto ainda poderá te dar muitos problemas!
cherry

Bom... dei uma olhada no teu código e encontrei algumas coisas que podem estar influenciando, veja os comentários que deixei

Marcos essas tabelas precisam ficar abertas pois utilizo todas Very Happy , em alguns processos sou obrigado a abrir pelo menos 80 arquivos.
avatar
Nelson Arcas
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Erro em execução de Programa

Mensagem por Marcos Guedes em 16/1/2010, 17:11

affraid

Very Happy


_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum