Grid - Añadir botón en una celda y detectar ejecución con RowColChange

Creado por David Miralpeix, Modificado el Fri, 16 Feb 2024 a las 12:25 PM por David Miralpeix

Este es un ejemplo básico que puede servir como plantilla para una solución más avanzada. El campo @Prueba se puede añadir primero mediante configuración de Grid o definirlo como guste en código F10. Podría ser cualquier otro campo adaptando lo necesario de este código F10 que se muestra a continuación.


Código VB6:

Sub Initialize()
  gForm.Controls("grdLineas").ActivarScripts = True
End Sub

Sub Grid_AfterLoad(aGrid)
  aGrid.Campo("@Prueba").Column.Button = True
  aGrid.Campo("@Prueba").Column.ButtonText = True
  aGrid.Campo("@Prueba").Column.ButtonAlways= True
End Sub

Sub Grid_RowColChange(aGrid, LastRow, LastCol)
  Select Case aGrid.Name
    Case "grdLineas"
      Select Case aGrid.CampoActual
        Case "@Prueba"
          MsgBox "ROWCOLCHANGE.Estoy en el campo deseado"
      End Select
  End Select
End Sub

Sub Grid_DblClick(aGrid)
  Select Case aGrid.Name
    Case "grdLineas"
      Select Case aGrid.CampoActual
        Case "@Prueba"
          MsgBox "Estoy en el campo deseado"
      End Select
  End Select
End Sub

Código C#:

using AhoraOCX;
using AhoraCore;

namespace AhoraScriptsPantalla
{
  public class AhoraCl_frmPedidos : AhoraOCX.AhoraBaseScript
  {

    public void Initialize()
    {
            (gForm.Controls["grdLineas"] as ICntGridUsuario).ActivarScripts = true;
        }


    //Para Activar este evento hay que configurar la grid. Poner en el void Initialize por ejemplo: (gForm.Controls["grdLineas"] as ICntGridUsuario).ActivarScripts = true;

    public void Grid_AfterLoad(ICntGridUsuario aGrid)
    {
      if (aGrid.Name == "grdLineas")
      {
        aGrid.Campo("@Prueba").Column.Button = true;
        aGrid.Campo("@Prueba").Column.ButtonText = true;
        aGrid.Campo("@Prueba").Column.ButtonAlways = true;
      }
  }


    //Para Activar este evento hay que configurar la grid. Poner en el void Initialize por ejemplo: (gForm.Controls["grdLineas"] as ICntGridUsuario).ActivarScripts = true;

    public void Grid_RowColChange(ICntGridUsuario aGrid, Valor LastRow, Valor LastCol)
    {
      if (aGrid.Name == "grdLineas")
      {
        if (aGrid.CampoActual == "@Prueba")
        {
          AhoraCore.VBA.Interaction.MsgBox("ROWCOLCHANGE.Estoy en el campo deseado");
        }
      }
    }



    //Para Activar este evento hay que configurar la grid. Poner en el void Initialize por ejemplo: (gForm.Controls["grdLineas"] as ICntGridUsuario).ActivarScripts = true;

    public void Grid_DblClick(ICntGridUsuario aGrid)
    {
      if (aGrid.Name == "grdLineas")
      {
        switch (aGrid.Columns[aGrid.Col].DataField)
        {
          case "@Prueba":
            {
               AhoraCore.VBA.Interaction.MsgBox("Estoy en el campo deseado");
              break;
             }
        }
      }
    }

  }
}

¿Le ha sido útil este artículo?

¡Qué bien!

Gracias por sus comentarios

¡Sentimos mucho no haber sido de ayuda!

Gracias por sus comentarios

¡Háganos saber cómo podemos mejorar este artículo!

Seleccione al menos una de las razones
Se requiere la verificación del CAPTCHA.

Sus comentarios se han enviado

Agradecemos su esfuerzo e intentaremos corregir el artículo