19 de mayo de 2005

Agregar el item "Todos" a un ComboBox

Con el siguiente truco podemos retornar un registro adicional en nuestro SELECT para ser utilizado como ControlSource de un ComboBox.

Con una sentencia SELECT y la cláusula UNION podemos añadir el registo <Todos> para ser mostrado en un control ComboBox:
OPEN DATABASE (HOME(2) + "Tastrade\Data\Tastrade")

SELECT PADR("<Todos>",20) AS Last_Name ;
  FROM Employee ;
  WHERE RECNO() = 1 ;
  UNION ALL ;
  SELECT Last_Name ;
  FROM Employee ;
  INTO CURSOR MiCursor
El siguiente código es un formulario de ejemplo con un ComboBox con el agregado del Item <Todos>:
OPEN DATABASE (HOME(2) + "Tastrade\Data\Tastrade")
PUBLIC oForm
oForm = CREATEOBJECT("miform")
oForm.SHOW
RETURN

DEFINE CLASS MiForm AS FORM
  DOCREATE = .T.
  CAPTION = "Ejemplo de ComboBox"
  NAME = "frmMiForm"
  ADD OBJECT cbomicombo AS ComboBox WITH ;
    ROWSOURCETYPE = 3, ;
    ROWSOURCE = [SELECT PADR("<Todos>",30) AS Nombre ] + ;
    [FROM Employee WHERE RECNO() = 1 UNION ALL ] + ;
    [SELECT PADR(RTRIM(First_Name) + " " + Last_Name,30) AS Nombre ] + ;
    [FROM Employee ORDER BY Nombre INTO CURSOR curEmp ], ;
    HEIGHT = 24, ;
    LEFT = 56, ;
    STYLE = 2, ;
    TOP = 32, ;
    WIDTH = 264, ;
    NAME = "cboMiCombo"
  PROCEDURE INIT
    THISFORM.cboMiCombo.VALUE = 1
  ENDPROC
ENDDEFINE
Luis María Guayán

No hay comentarios. :

Publicar un comentario