En el INIT del form :
THISFORM.List1.RowSourceType = 2 && alias
THISFORM.List1.RowSource = ""
THISFORM.List1.ColumnCount = 2
Select tipo.cod, tipo.des FROM tipo INTO CURSOR curTipo
THISFORM.List1.RowSource = "curTipo"
THISFORM.List1.InteractiveChange()
Y en el metodo InteractiveChange del list1 :
THISFORM.List2.RowSourceType = 2 && alias
THISFORM.List1.RowSource = ""
lcTipo = THIS.List(THIS.List.index,1)
select articulo.des as des;
from articulo
where alltrim(articulo.tipo) == alltrim(lcTipo)
into cursortmp
THISFORM.List1.RowSource = "cursortmp"
Saludos.