Imprimi Página | Fechar janela |
type mismatch on compare Impresso de: Helpfacil - Portal do conhecimento Nome do Forum: ADVPL Descrição do Forum: Dúvidas sobre a programação em ADVPL URL:http://www.helpfacil.com.br/display_topic_threads.asp?ForumID=1&TopicID=44437 Data da Impressão: terça-feira, 11 de fevereiro de 2025 at 06:22 Topico: type mismatch on compare Postado por: BEHRSP Assunto: type mismatch on compare Data Postagem: segunda-feira, 12 de fevereiro de 2024 at 09:26 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 Respostas: Postado Por: ELTON93 Data Postagem: terça-feira, 13 de fevereiro de 2024 at 22:00 Coloca o Fonte aí, Irmão. Postado Por: BEHRSP Data Postagem: quarta-feira, 14 de fevereiro de 2024 at 05:45 Bom dia. Segue anexo. Obrigado Postado Por: ROBERTOMEN Data Postagem: quarta-feira, 14 de fevereiro de 2024 at 09:19 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 Postado Por: BEHRSP Data Postagem: quarta-feira, 14 de fevereiro de 2024 at 12:45 Show, mto obrigado vou fazer aqui posto em seguida. Obrigado |
Imprimir Página | Fechar Janela |