Descrição:
Em uma aplicação desenvolvida em dois idiomas (por exemplo, português e inglês), as mensagens de alarmes serão salvas em ambas as línguas. Como separar essas mensagens, e exibir em um E3Browser somente as mensagens no idioma desejado?
Solução:
A partir da versão 4.0 do E3, pode-se adotar uma solução similar à apresentada no KB 50264, utilizando a função Split do VBScript no evento OnFormatCell do E3Browser. Para a versão 3.5 (ou anterior) do E3, deve-se criar uma função dentro do próprio banco de dados para retornar o texto separado. Por exemplo, no SQL Server:
CREATE FUNCTION [dbo].[XLate](@text Varchar(500), @lang Int) RETURNS Varchar(500) AS BEGIN DECLARE @ret Varchar(500) DECLARE @idx Int SET @idx = CHARINDEX(' /// ', '-' + @text) IF @idx > 0 BEGIN IF @lang = 0 SET @ret = SUBSTRING(@text, 0, @idx - 1) ELSE SET @ret = SUBSTRING(@text, @idx + 4, LEN(@text) - @idx - 3) END ELSE BEGIN IF @lang = 0 Set @ret = @text ELSE SET @ret = '' END RETURN @ret END
Na consulta do E3Browser, pode-se utilizar a função em um SELECT. Por exemplo:
SELECT InTime, OutTime, dbo.XLate(Message, < %Idioma% >) as Message FROM Alarms
Artigo relacionado: