anonymous Log in
Search
Recents:
v3.0
genexusextensions
Re: Mensaje en la ventana de Output con link a un objeto.
23/05/18 19:13

Enrique Almeida

Replies: 4

Me autorespondo para que quede documentado como hacerlo: Cuando definís el mensaje de error, usando la clase OutputError, podés pasar como parámetro un objeto con información de la posición. Ejemplo: new OutputError("Unknown function 'ToJson'", MessageLevel.Error, )); En donde es una clase que implementa Artech.Architecture.Common.Location.IKBObjectPosition; en este mismo namespace, junto con esta interfaz, están definidas las clases: KBObjectPosition o KBObjectAnyPosition (en la primera podés pasarle la parte del objeto a la que querés que te direccione el link y la segunda clase acepta simplemente el objeto). Transaction trnObj = (Artech.Genexus.Common.Objects.Transaction)kbObj; OutputError err = new OutputError("Unknown function 'ToJson'", MessageLevel.Error, new KBObjectAnyPosition(trnObj))); y si se quieren se puede usar el KBObjectPosition(objPart); 2018-05-14 15:23 GMT-03:00 Enrique Almeida : > En una extension, estoy mostrando warnings de la forma > > output.AddWarningLine(obj.Name + " > Code block too long"); > > Esto funciona bien, pero ahora quiero poner en vez del nombre del objeto > un link que me permita abrir dicho objeto. > > Es similar al mensaje de la imagen adjunta: > > Probe poner y los html que se me ocurrieron, pero ningun > funciono, pues lo muestra como string. > > Hay alguna forma de hacerlo? > > > Enrique Almeida > Concepto. > > >
Replies

Enrique Almeida

23/05/18 19:19
Gracias Ana por la ayuda! 2018-05-23 16:13 GMT-03:00 Enrique Almeida : > Me autorespondo para que quede documentado como hacerlo: > > Cuando definís el mensaje de error, usando la clase OutputError, podés > pasar como parámetro un objeto con información de la posición. > Ejemplo: > > new OutputError("Unknown function 'ToJson'", MessageLevel.Error, > )); > > En donde es una clase que implementa Artech.Architecture.Common.Location.IKBObjectPosition; > en este mismo namespace, junto con esta interfaz, están definidas las > clases: KBObjectPosition o KBObjectAnyPosition (en la primera podés pasarle > la parte del objeto a la que querés que te direccione el link y la segunda > clase acepta simplemente el objeto). > > Transaction trnObj = (Artech.Genexus.Common.Objects.Transaction)kbObj; > OutputError err = new OutputError("Unknown function 'ToJson'", > MessageLevel.Error, new KBObjectAnyPosition(trnObj))); > > y si se quieren se puede usar el KBObjectPosition(objPart); > > > > > 2018-05-14 15:23 GMT-03:00 Enrique Almeida : > >> En una extension, estoy mostrando warnings de la forma >> >> output.AddWarningLine(obj.Name + " > Code block too long"); >> >> Esto funciona bien, pero ahora quiero poner en vez del nombre del objeto >> un link que me permita abrir dicho objeto. >> >> Es similar al mensaje de la imagen adjunta: >> >> Probe poner y los html que se me ocurrieron, pero ningun >> funciono, pues lo muestra como string. >> >> Hay alguna forma de hacerlo? >> >> >> Enrique Almeida >> Concepto. >> >> >> >

Enrique Almeida

31/07/18 18:40
Estaba necesitando poner un mensaje en una extension del tipo (con un link para* abrir un objeto en una linea especifica*) spc0010 Type mismatch in assignment: BPSRUCID = val(substr(&Registro,2,12)) (Character=Numeric). (*Source, Line: 24*) spc0010 Type mismatch in assignment: BPSRUCID = val(&CDOCUMEN) (Character=Numeric). (*Source, Line: 55*) donde se pone un link que permite abrir el objeto y que se posicione en la linea. Con la ayuda de Ana, llegue a programar de la forma: Transaction trnObj = (Artech.Genexus.Common.Objects.Transaction)kbObj; OutputError err = new OutputError("Unknown function 'ToJson'", MessageLevel.Error, new KBObjectAnyPosition(trnObj))); que permite abrir en una parte especifica, pero *no encuentro como deberia hacer la llamada para poder abrir en una linea especifica de la parte.* Me pueden ayudar con esto? 2018-05-14 15:23 GMT-03:00 Enrique Almeida : > En una extension, estoy mostrando warnings de la forma > > output.AddWarningLine(obj.Name + " > Code block too long"); > > Esto funciona bien, pero ahora quiero poner en vez del nombre del objeto > un link que me permita abrir dicho objeto. > > Es similar al mensaje de la imagen adjunta: > > Probe poner y los html que se me ocurrieron, pero ningun > funciono, pues lo muestra como string. > > Hay alguna forma de hacerlo? > > > Enrique Almeida > Concepto. > > >

fazzato

31/07/18 19:28
Hola Enrique En lugar de utilizar KBObjectAnyPosition, puedes utilizar la clase SourcePosition que se encuentra en Artech.Architecture.Common.Location ej: new SourcePosition(kbObj, PartType.Events, lineNumber, columnNumber); saludos Federico Azzato Development & Research GeneXus™ *+598 2601 2082* Av Italia 6201, Ed Los Pinos, P1 Montevideo, Uruguay www.genexus.com [image: GeneXus™] On Tue, Jul 31, 2018 at 3:41 PM Enrique Almeida

Enrique Almeida

31/07/18 19:52
Perfecto, gracias! Era lo que estuve buscando y no lo puede encontrar. 2018-07-31 16:28 GMT-03:00 Federico Azzato : > Hola Enrique > > En lugar de utilizar KBObjectAnyPosition, puedes utilizar la clase > SourcePosition que se encuentra en Artech.Architecture.Common.Location > > ej: new SourcePosition(kbObj, PartType.Events, lineNumber, columnNumber); > > saludos > > Federico Azzato > Development & Research > GeneXus™ > *+598 2601 2082* > Av Italia 6201, Ed Los Pinos, P1 > Montevideo, Uruguay > www.genexus.com > [image: GeneXus™] > > > On Tue, Jul 31, 2018 at 3:41 PM Enrique Almeida >


Back to genexusextensions