Gestiona Texto Enriquecido en Business Central: Potencia Business Central con Texto Enriquecido

Aprende a almacenar, editar y presentar texto enriquecido en Business Central con tablas, páginas y reportes personalizados.

En el desarrollo de soluciones para Microsoft Dynamics 365 Business Central, contar con la capacidad de gestionar contenido enriquecido puede mejorar significativamente la experiencia del usuario. Aquí te muestro cómo implementar una solución completa para almacenar, editar y mostrar textos con formato HTML directamente desde la aplicación.

¡Vamos manos a la obra! 🫡


📦 Almacenando Texto Enriquecido

table 50000 "RichTextTable"
{
    DataClassification = ToBeClassified;

    fields
    {
        field(1; "ID"; Integer)
        {
            DataClassification = CustomerContent;
        }

        field(2; "RichText"; BLOB)
        {
            DataClassification = ToBeClassified;
        }
    }

    keys
    {
        key(PK; "ID")
        {
            Clustered = true;
        }
    }

    procedure SetRichText(value: Text)
    var
        OutStream: OutStream;
    begin
        Clear(Rec."RichText");
        Rec."RichText".CreateOutStream(OutStream);
        OutStream.WriteText(value);
    end;

    procedure GetRichText(): Text
    var
        InStream: InStream;
        Result: Text;
    begin
        if Rec."RichText".HasValue then begin
            Rec."RichText".CreateInStream(InStream);
            InStream.ReadText(Result);
        end;
        exit(Result);
    end;
}

🔎 ¿Qué Hace Este Código?
He creado la tabla RichTextTable para almacenar textos enriquecidos. Esto es solo un ejemplo, se puede añadir a cualquier tabla incluso las ya existentes.

  • Campo ID: Un identificador único para cada registro.
  • Campo RichText: Un campo BLOB que almacena el texto enriquecido.
  • SetRichText: Guarda el texto en el campo BLOB.
  • GetRichText: Recupera el texto almacenado.

Utilizo flujos de datos (InStream y OutStream) para gestionar el contenido de forma eficiente.


📝 Edición Directa: La Página “RichTextPage”

page 50000 "RichTextPage"
{
    PageType = Card;
    SourceTable = "RichTextTable";
    ApplicationArea = All;
    UsageCategory = Administration;

    layout
    {
        area(content)
        {
            group(Group)
            {
                field("RichText"; Rec.GetRichText())
                {
                    ApplicationArea = All;
                    ExtendedDatatype = RichContent;
                    MultiLine = true;
                    ToolTip = 'Texto enriquecido con formato HTML';
                    Caption = 'Texto enriquecido con formato HTML';
                }
            }
        }
    }
}

🔎 ¿Qué Hace Este Código?
Con esta página tipo Card, puedo editar el contenido enriquecido directamente en Business Central.

  • ExtendedDatatype = RichContent: Activa el editor de texto enriquecido.
  • MultiLine = true: Permite escribir textos largos y complejos.
  • ToolTip y Caption: Añaden información útil para el usuario.

Este diseño facilita la edición de contenido con formato HTML sin complicaciones.


📄 Presentando el Texto: El informe “RichTextReport”

report 50000 "RichTextReport"
{
    UsageCategory = ReportsAndAnalysis;
    ApplicationArea = All;
    DefaultRenderingLayout = DefaultLayout;

    dataset
    {
        dataitem("RichTextTable"; "RichTextTable")
        {
            column(RichTextContent; GetRichText())
            {
            }
        }
    }

    rendering
    {
        layout(DefaultLayout)
        {
            Type = RDLC;
            LayoutFile = '.\src\report\layouts\RichTextLayout.rdl';
        }
    }
}

🔎 ¿Qué Hace Este Código?
Este reporte muestra el contenido enriquecido guardado.

  • Dataset: Recupera el texto enriquecido con GetRichText().
  • Renderizado RDLC: Define un diseño personalizado en el archivo .rdl.

El reporte permite presentar información enriquecida de forma profesional.


🛠️ Configuración del Layout RDLC

Para que el reporte muestre correctamente el texto enriquecido, es necesario configurar el archivo RDLC. Aquí te explico cómo hacerlo:

Abrir Visual Studio: Crea o abre el archivo RichTextLayout.rdl.

Agregar un Textbox: Inserta un Textbox en el diseño.

Propiedades : se tiene que entrar en las propiedades del texto

Habilitar HTML: En las propiedades del Textbox, ajusta la propiedad Markup Type a HTML para que interprete el contenido como HTML.

🔔 Consejo: Asegúrate de que el contenido HTML está bien formado para evitar errores en el renderizado.


🚀 Beneficios y Aplicaciones Prácticas

  • Flexibilidad: Almaceno y gestiono contenido HTML sin complicaciones.
  • Personalización: Creo reportes más atractivos visualmente.
  • Simplicidad: El editor integrado permite modificar el contenido de forma sencilla.

Ideal para notas internas, descripciones avanzadas o contenido para reportes personalizados.


📝 Conclusión

Con esta solución, he ampliado las capacidades de Business Central para gestionar y presentar texto enriquecido de forma eficiente. Desde el almacenamiento hasta la visualización en reportes, todo está cubierto.

Si quieres ver el código completo, está en GitHub.

¡Hasta la próxima y sigue programando!

Share your love

Leave a Reply

Your email address will not be published. Required fields are marked *