1.- The main table is "Autores" (pk idautor varchar(6), nombre varchar(50), nacionalidad varchar(50)) and "libros" (pk idlibro varchar(6), nombre varchar (50), editorial varchar(50), year varchar(4), fk idauthor varchar(6))
index_keys: idlibro, idautor .
2.- I only use a SP for posible values to idautor on level 0 (select * from autores)
3.- To fill de grid, I use a query "select * from libros where idautor like @pamr1 order by idlibro" @parm1 is equal bautores.idautor
4.- Dim MemHandle_Spread1 As Object
Call ApplInit()
Call SetAddr(LEVEL0, "bautores", bautores, nautores)
Call SetAddr(LEVEL1, "blibros", blibros, nlibros)
Call SqlCursorEx(c1, LEVEL0, "c1", "autores", "autores")
Call SqlCursorEx(c2, LEVEL1, "c2", "libros", "libros")
Call ScreenInit()
MemHandle_Spread1 = DetailSetup(c2, SafGrid1, PNULL, blibros, PNULL, PNULL, PNULL)
Control SAFUpdate Levels=autores;N,libros;D Name=Update1.