| Exibir mensagem anterior :: Exibir próxima mensagem | 
	
	
		| Autor | Mensagem | 
	
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		| imex Moderador
 
  
 
 Registrado: Sexta-Feira, 7 de Janeiro de 2011
 Mensagens: 11666
 
 
 | 
			
				|  Enviada: Ter Ago 20, 2019 11:45 am    Assunto: |   |  
				| 
 |  
				| Bom dia, 
 Qual mensagem de erro está sendo exibida?
 Ocorre sempre o mesmo erro?
 
 Editado pela última vez por imex em Dom Out 01, 2023 3:42 pm, num total de 1 vez
 |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 | 
			
				|  Enviada: Ter Ago 20, 2019 1:06 pm    Assunto: |   |  
				| 
 |  
				|  	  | adriano_servitec escreveu: |  	  |  	  | imex escreveu: |  	  | Bom dia, 
 Qual mensagem de erro está sendo exibida?
 Ocorre sempre o mesmo erro?
 
 | 
 
 Bom dia, então Imex, se eu escolher por exemplo o que vem do dm.fdquery da erro do primeiro de index, se eu escolher o primeiro ai da erro no dm.fdquery
 | 
 
 Resumindo as mensagens
 
 Com o bcsv true
 o erro
 
  	  | Código: |  	  | --------------------------- Debugger Exception Notification
 ---------------------------
 Project Teste1.exe raised exception class EArgumentOutOfRangeException with message 'Argument out of range'.
 ---------------------------
 Break   Continue   Help
 ---------------------------
 | 
 
 
 Com o bcsv false
 
  	  | Código: |  	  | --------------------------- Debugger Exception Notification
 ---------------------------
 Project Teste1.exe raised exception class EStringListError with message 'List index out of bounds (1)'.
 ---------------------------
 Break   Continue   Help
 ---------------------------
 | 
 
 Informando que o campo boolean bCSV, quando true vem de uma lista de arquivo CSV para ser gerado, ja quando a variavel form False vem de uma base Access que chama o DM.FDQuerryAccess
 
 Ja testei no modo tradicional
 
 if
 else
 
 E funciona, só não no modo ifthen
 
 Obrigado.
 _________________
 Jogo seu smartphone? Acesse o link e confira.
 https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
 https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
 |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		| imex Moderador
 
  
 
 Registrado: Sexta-Feira, 7 de Janeiro de 2011
 Mensagens: 11666
 
 
 | 
			
				|  Enviada: Ter Ago 20, 2019 2:14 pm    Assunto: |   |  
				| 
 |  
				| Acho que você teria que colocar um BreakPoint logo no início da função CropStrRight para ver se está entrando na função e que valor que ela está recebendo. |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		| imex Moderador
 
  
 
 Registrado: Sexta-Feira, 7 de Janeiro de 2011
 Mensagens: 11666
 
 
 | 
			
				|  Enviada: Ter Ago 20, 2019 3:15 pm    Assunto: |   |  
				| 
 |  
				| Pode ser problema no valor da variável iniContatoNome. Você já verificou essa variável? |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		| imex Moderador
 
  
 
 Registrado: Sexta-Feira, 7 de Janeiro de 2011
 Mensagens: 11666
 
 
 | 
			
				|  Enviada: Ter Ago 20, 2019 4:53 pm    Assunto: |   |  
				| 
 |  
				| Se aquela variável está igual a 1, teria que verificar se lStringListLine tem pelo menos 2 linhas e se a query retorna pelo menos 2 campos. |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		| imex Moderador
 
  
 
 Registrado: Sexta-Feira, 7 de Janeiro de 2011
 Mensagens: 11666
 
 
 | 
			
				|  Enviada: Ter Ago 20, 2019 5:32 pm    Assunto: |   |  
				| 
 |  
				| Acho que você precisa verificar quantas linhas tem a TStringList lStringListLine e quantos campos retornam a query de FDQueryAccess para ver se são compatíveis com o valor da variável iniContatoNome. Se, por exemplo, a TStringList tiver apenas uma linha e a variável for igual a 1 vai ocorrer erro, pois nesse caso o único índice permitido seria 0.
 |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 | 
			
				|  Enviada: Qua Ago 21, 2019 7:57 am    Assunto: |   |  
				| 
 |  
				|  	  | imex escreveu: |  	  | Acho que você precisa verificar quantas linhas tem a TStringList lStringListLine e quantos campos retornam a query de FDQueryAccess para ver se são compatíveis com o valor da variável iniContatoNome. Se, por exemplo, a TStringList tiver apenas uma linha e a variável for igual a 1 vai ocorrer erro, pois nesse caso o único índice permitido seria 0.
 | 
 
 Acho que vou deixar da forma que está então Imex, muito complicado isso.
 
 Ja que funciona normal desta forma
 
  	  | Código: |  	  | if bCSV then Fnome := Trim(CropStrRight(lStringListLine[iniContatoNome], 50))
 else
 Fnome := Trim(CropStrRight(DM.FDQueryAccess.Fields[iniContatoNome].AsString, 50));
 | 
 
 Vou deixar do modo tradicional mesmo.
 
 Obrigado pela ajuda.
 _________________
 Jogo seu smartphone? Acesse o link e confira.
 https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
 https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
 |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		| johnny-walker Moderador
 
  
  
 Registrado: Sábado, 4 de Outubro de 2003
 Mensagens: 10653
 Localização: Contagem/MG - BRAZIL
 
 | 
			
				|  Enviada: Qua Ago 21, 2019 12:46 pm    Assunto: |   |  
				| 
 |  
				| Não seria assim: 
 Tente desta forma para ver se dá certo:
 
 
  	  | Código: |  	  | Fnome := Trim(CropStrRight(IfThen(bCSV = True, lStringListLine[iniContatoNome], DM.FDQueryAccess.Fields[iniContatoNome].Value), 50));
 | 
 
 
 
 
 bye
 _________________
 P.O.W.E.R  B.Y  D.E.L.P.H.I
 |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		| johnny-walker Moderador
 
  
  
 Registrado: Sábado, 4 de Outubro de 2003
 Mensagens: 10653
 Localização: Contagem/MG - BRAZIL
 
 | 
			
				|  Enviada: Qui Ago 22, 2019 7:12 am    Assunto: |   |  
				| 
 |  
				| Qual o escopo desta variável bCSV? 
 
 
 bye
 _________________
 P.O.W.E.R  B.Y  D.E.L.P.H.I
 |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		|  |