martes, 8 de septiembre de 2015

Cargar campos de un DataWindow a DropDownListBox de otro DataWindow

Tengo una ventana (Window Object) con dos DataWindows (Cabecera/Detalle) donde cargo los titulos de los campos de un DataWindow a un campo DropDownListBox del otro DataWindow. 

El DataWindow que tendra el campo de tipo DropDownListBox es un DataWindow de tipo External el cual tiene la siguiente estructura:



El siguiente código debe ir en el evento Open de la ventana para poder cargar los titulos de los campos del DataWindow Detalle al campo
DropDownListBox del DataWindow Cabecera que es External:
//==========================================================================
// Cargar titulos de los campos de dw detalle

//---------------------------------------------------------------------------------------------------
Long    ll_lastcol, ll_rc = 1, ll_col
String   ls_colname, ls_label, ls_filtro, ls_descripcion = '', ls_columns[]

is_columns[] = ls_columns[]
//---------------------------------------------------------------------------------------------------
// Captura el Nro. de Columnas en el DataWindow
//---------------------------------------------------------------------------------------------------

ll_lastcol = Integer(dw_detail.Object.DataWindow.Column.Count)
//---------------------------------------------------------------------------------------------------
// Llena las Columnas
//---------------------------------------------------------------------------------------------------

FOR ll_col = 1 TO ll_lastcol
    ls_colname = dw_detail.Describe("#" + String(ll_col) + ".Name")
  
    IF dw_detail.Describe( ls_colname + ".visible" ) = "1" THEN
        ls_label = dw_detail.Describe(ls_colname + "_t.Text")
      
        IF ls_label = '!'  THEN
            ls_label =  dw_detail.Describe( "evaluate('wordcap(~"" + ls_colname + "~")',1)" )
        END IF

        ls_label = ls_label
        ls_descripcion = ls_descripcion + ls_label + '~t' + String(ll_rc) + '/'
        is_columns[ll_rc] = Trim(ls_colname)
      
        ll_rc++
    END IF
NEXT


dw_filter.Object.columna.Values = ls_descripcion
 
//==========================================================================

Espero le sea de mucha utilidad, cualquier duda o consulta no duden en escribir a jorgebarzola@gmail.com que les respondere con mucho gusto.

Saludos.

No hay comentarios: