|
Bem Vindo, Visitante
|
Todos os Fórums
ADVPL
|
Imprimir
Enviar Para um Amigo Precisa estar Logado
|
|
|
Assunto: |
type mismatch on compare |
|
Versão: |
12.1.2210 |
|
Plataforma: |
Microsoft |
Complemento: |
windows 10 pro |
|
DB: |
SQL Server |
Complemento: |
v18 |
|
APCPA04.PRW (anexo) | |
|
|
|
Mensagem do
BEHRSP
em 12/02/2024, 09:26 h
Local: PR Registro: 26/04/2023 Postagens: 47 |
Bom dia.
Tudo bem ?
Começando em programação, estou com uma dúvida.
Peguei um fonte com problema, este fonte faz a aglutinação das Ordens de Produção.
Porém, em determinada linha, ele faz um for
E tem uma comparação de pelo que eu entendi, um numero e um objeto.
Será que é por isso que está gerando o error quando executo.
É exatamente nesta linha que para e dá o erro.
Alguém tem uma dica de como posso corrigir?
Claro que fica meio complicado sem ver o fonte inteiro, mas o fonte tem 2000 linhas.
// Existe OP selecionada
Local lTemOPSelec := .F.
// verificar se existem OPs selecionadas
for nLin := 1 to Len(grdAux)
if (grdAux[nLin,2] == oBmpOK)
lTemOPSelec := .T.
EXIT
endif
next nLin
Este é o trecho, e onde está é na linha do IF. a linha 870
type mismatch on compare on AGLUTINAROP(APCPA04.PRW) 07/08/2023 13:11:55 line : 870
Obrigado |
|
|
Mensagem do
ELTON93
em 13/02/2024, 22:00 h
Local: SP Registro: 12/02/2024 Postagens: 10 |
Coloca o Fonte aí, Irmão. |
|
|
Mensagem do
BEHRSP
em 14/02/2024, 05:45 h
Local: PR Registro: 26/04/2023 Postagens: 47 |
Bom dia.
Segue anexo.
Obrigado |
|
|
Mensagem do
ROBERTOMEN
em 14/02/2024, 09:19 h
Local: PR Registro: 04/07/2017 Postagens: 544 |
bom dia
Fazendo uma análise rápida em seu fonte vejo que se grdaux é uma cópia do acols então seu if deve ser assim:
if (grdAux[nLin][2] == oBmpOK)
mas para ter certeza, basta vc debugar criando um ponto de parada nesta linha e editando grdAux para ver a posição 2 dele.
sem pre vc tentar comparar uma variável ou vetor com conteúdos diferente o erro type mismatch será apresentado, por exemplo:
A = 10 // VARIÁVEL tipo N
B = ‘DEZ‘ // VARIÁVEL tipo Caracter
if A = B // vai dar erro
A = .T. // VARIÁVEL tipo LÓGICA
B = ‘VERDADE‘ // VARIÁVEL tipo Caracter
if A = B // vai dar erro
A[1] = .T. // vetor posição 1 tipo LÓGICo
B[2] = ‘VERDADE‘ // vetor posição 1 tipo Caracter
if A = B // vai dar erro
é isto que está acontecendo na sua rotina.
Procure sempre se atentar aos valores das variáveis ou vetores
|
|
|
Mensagem do
BEHRSP
em 14/02/2024, 12:45 h
Local: PR Registro: 26/04/2023 Postagens: 47 |
Show, mto obrigado vou fazer aqui posto em seguida.
Obrigado |
|
Para postar no Fórum você precisa efetuar o seu login ou se registrar
|
|