× Linguagem de Programação ADVPL

Perguntas ERRO: "type mismatch on +"

Mais
11 anos 2 meses atrás #16646 por deltemp
Boa tarde pessoal!

Criei uma DIALOG padrão para cada módulo com a lista dos relatórios que vou criando (no Crystal) e adicionando.

As perguntas eram as mesmas (Tabela SRA) para os cinco relatórios anteriores. Porém, quando adicionei o sexto relatório, o "RECPAG" (Demonstrativo de pagamento), o mesmo só utilizaria três perguntas (Tabela SRC: 'Centro de Custo', 'Período de:' e 'Período até:'), portanto, criei uma condição que verifica se o relatório selecionado em "cPerg" é o "RECPAG". Se Sim, serão utilizados somente os três parâmetros necessários, gerando o erro abaixo (antes da comparação, a linha 41 funcionava perfeitamente):

THREAD ERROR (admin, SERVER) 26/08/2013 16:49:29
type mismatch on + on U_CRYS12(RELTAM.PRW) 26/08/2013 16:27:08 line : 38

1 - #INCLUDE "RWMAKE.CH"
2 - #include "TbiConn.ch"
3 - #include "TbiCode.ch"
4 - #INCLUDE "AP5MAIL.CH"
5 - #INCLUDE "PROTHEUS.CH"
6 - #INCLUDE "FONT.CH"
7 - #Include "PROTHEUS.CH"
8 -
9 - User Function RELGPE()
10 -
11 - Static RELGPE
12 - Static logo
13 - Static oButton1
14 - Static oButton2
15 - Static oListBox1
16 - Static nListBox1 := 1
17 - Static cPerg
18 - Static cParams
19 - Static cIf1 := "RECPAG"
20 -
21 - Private aRotina := {"RGPEA1","GPEDOC","RGPECS","RGPEA2","RGPEA3","RECPAG"}
22 - Private aRotino := {"Lista dos Colaboradores","Documentos","Cargos e Salários","Contato - Telefones / Skype","Contato - Emails","Demonstrativo de Pagamento"}
23 - Private cOqexec
24 -
25 - DEFINE MSDIALOG RELGPE TITLE "Assistente de Relatórios Personalizados" FROM 000, 000 TO 300, 500 COLORS 0, 16777215 PIXEL
26 - @ 000, 000 BITMAP logo SIZE 260, 055 OF RELGPE FILENAME "\system\logo\Relatorios.png" NOBORDER PIXEL
27 - @ 072, 009 LISTBOX oListBox1 VAR nListBox1 ITEMS aRotino SIZE 230, 050 OF RELGPE COLORS 0, 16777215 PIXEL
28 - @ 130, 190 BUTTON confirmar PROMPT "Confirmar!" SIZE 050, 015 OF RELGPE ACTION U_CRYS12(aRotina[nListBox1]) PIXEL
29 - @ 130, 155 BUTTON cancelar PROMPT "Cancelar" SIZE 030, 015 OF RELGPE PIXEL ACTION Close(RELGPE)
20 - @ 060, 022 SAY selecione PROMPT "Selecione na lista abaixo o relatório que deseja imprimir e clique em 'Confirmar!'." SIZE 200, 007 OF RELGPE COLORS 5987163, 16777215 PIXEL
31 - @ 131, 009 BITMAP SIGA SIZE 125, 013 OF RELGPE FILENAME "\system\logo\sigagpe.png" NOBORDER PIXEL
32 - ACTIVATE MSDIALOG RELGPE
33 -
34 - Return
35 -
36 - User function CRYS12(cPerg)
37 -
38 - IF cPerg == cIf1
39 - cParams := MV_PAR01+";"+DTOS(MV_PAR02)+";"+DTOS(MV_PAR03)
40 - ELSE
41 - cParams := MV_PAR01+";"+MV_PAR02+";"+MV_PAR03+";"+MV_PAR04+";"+MV_PAR05+";"+MV_PAR06+";"+DTOS(MV_PAR07)+";"+DTOS(MV_PAR08)+";"+DTOS(MV_PAR09)+";"+DTOS(MV_PAR10)+";"+MV_PAR11
42 - ENDIF
43 -
44 - Pergunte(cPerg,.T.)
45 -
46 - cOptions := '1;0;1;Relatórios personalizados'
47 -
48 - CALLCRYS(cPerg,cParams,cOptions)
49 -
50 - Return

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 2 meses atrás #16648 por Sombra
Respondido por Sombra no tópico ERRO: "type mismatch on +"
Nelson, Boa Noite

Você só Definiu/criou a variável cPerg ( Static cPerg ), falta você INICIALIZAR ela.

Ex: Static cPerg := ""

abs

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 2 meses atrás #16697 por deltemp
Respondido por deltemp no tópico ERRO: "type mismatch on +"
Bom dia, Sombra! Bom dia a todos.

Inicializei as variáveis das linhas 17 e 18 (valeu pela dica!), porém, agora, o mesmo erro passou para a linha 39.
Agora está implicando com a declaração condicional da variável cParams.

O quê poderia ser?!

Desde já obrigado!

Braços

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 2 meses atrás #16702 por lalberto
Respondido por lalberto no tópico ERRO: "type mismatch on +"
Qual o conteudo de cada parâmetro MV_PAR01 02 E 03, um deles está em desacordo com esta linha: cParams := MV_PAR01+";"+DTOS(MV_PAR02)+";"+DTOS(MV_PAR03)

ou seja,

quais os tipos Caracter, Data, Numerico.

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 2 meses atrás #16706 por deltemp
Respondido por deltemp no tópico ERRO: "type mismatch on +"
Resolvido!

O que eu fiz, foi:

1 -> Inicializar as variáveis utilizadas na comparação, como em 'Static cPerg := ""' (dica do Sombra).
2 -> Coloquei, dentro de cada condição, todas as funções a serem executadas, na ordem:
IF
1 Pergunte()
2 Parâmetros recebidos do Pergunte()
3 Opções para o CallCrys()
4 CallCrys()
ELSE
1 Pergunte()
2 Parâmetros recebidos do Pergunte()
3 Opções para o CallCrys()
4 CallCrys()
ENDIF

Com essas duas modificações, funcionou perfeitamente!

Luiz: MV_PAR01=C9, MV_PAR02=D8, MV_PAR03=D8

Muito obrigado pela ajuda!

Braços

1 - #INCLUDE "RWMAKE.CH"
2 - #include "TbiConn.ch"
3 - #include "TbiCode.ch"
4 - #INCLUDE "AP5MAIL.CH"
5 - #INCLUDE "PROTHEUS.CH"
6 - #INCLUDE "FONT.CH"
7 - #Include "PROTHEUS.CH"
8 -
9 - User Function RELGPE()
10 - Static RELGPE
11 - Static logo
12 - Static oButton1
13 - Static oButton2
14 - Static oListBox1
15 - Static nListBox1 := 1
16 - Static cPerg := ""
17 - Static cIf1 := "RECPAG"
18 - Static cParams := ""
19 -
20 - Private aRotina := {"RGPEA1","GPEDOC","RGPECS","RGPEA2","RGPEA3","RECPAG"}
21 - Private aRotino := {"Lista dos Colaboradores","Documentos","Cargos e Salários","Contato - Telefones / Skype","Contato - Emails","Demonstrativo de Pagamento"}
22 - Private cOqexec
23 -
24 - DEFINE MSDIALOG RELGPE TITLE "Assistente de Relatórios Personalizados" FROM 000, 000 TO 300, 500 COLORS 0, 16777215 PIXEL
25 - @ 000, 000 BITMAP logo SIZE 260, 055 OF RELGPE FILENAME "\system\logo\Relatorios.png" NOBORDER PIXEL
26 - @ 072, 009 LISTBOX oListBox1 VAR nListBox1 ITEMS aRotino SIZE 230, 050 OF RELGPE COLORS 0, 16777215 PIXEL
27 - @ 130, 190 BUTTON confirmar PROMPT "Confirmar!" SIZE 050, 015 OF RELGPE ACTION U_CRYS12(aRotina[nListBox1]) PIXEL
28 - @ 130, 155 BUTTON cancelar PROMPT "Cancelar" SIZE 030, 015 OF RELGPE PIXEL ACTION Close(RELGPE)
29 - @ 060, 022 SAY selecione PROMPT "Selecione na lista abaixo o relatório que deseja imprimir e clique em 'Confirmar!'." SIZE 200, 007 OF RELGPE COLORS 5987163, 16777215 PIXEL
30 - @ 131, 009 BITMAP SIGA SIZE 125, 013 OF RELGPE FILENAME "\system\logo\sigagpe.png" NOBORDER PIXEL
31 - ACTIVATE MSDIALOG RELGPE
32 -
33 - Return
34 -
35 - User function CRYS12(cPerg)
36 -
37 - IF cPerg == cIf1
38 - Pergunte(cPerg,.T.)
39 - cParams := MV_PAR01+";"+DTOS(MV_PAR02)+";"+DTOS(MV_PAR03)
40 - cOptions := '1;0;1;Relatórios personalizados'
41 - CALLCRYS(cPerg,cParams,cOptions)

42 - ELSE
43 - Pergunte(cPerg,.T.)
44 - cParams := MV_PAR01+";"+MV_PAR02+";"+MV_PAR03+";"+MV_PAR04+";"+MV_PAR05+";"+MV_PAR06+";"+DTOS(MV_PAR07)+";"+DTOS(MV_PAR08)+";"+DTOS(MV_PAR09)+";"+DTOS(MV_PAR10)+";"+MV_PAR11
45 - cOptions := '1;0;1;Relatórios personalizados'
46 - CALLCRYS(cPerg,cParams,cOptions)

47 - ENDIF
48 -
49 - Return

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.116 segundos
Joomla templates by a4joomla