La funcionalidad Datalist en los controles Textbox crea una lista blanda con los valores anteriormente ingresados en el campo al que esta asociado el control (autocompletar).
Estas opciones se cargan mediante un Search, por lo que levantan solo aquellas que el usuario logueado puede leer.
Para crear un Datalist que no tenga en cuenta los permisos podemos usar la siguiente función:
Sub DatalistSinPermisos(pControl) Dim sql, rcs, op pControl.Load pControl.Options.RemoveAll sql = "select distinct " & pControl.DatalistField & " from SYS_FIELDS_" & pControl.DatalistFolder.Form.Id & _ " f inner join SYS_DOCUMENTS d on f.DOC_ID = d.DOC_ID where d.FLD_ID = " & pControl.DatalistFolder.Id & _ " order by " & pControl.DatalistField Set rcs = dSession.Db.OpenRecordset(CStr(sql)) Do While Not rcs.EOF If rcs(pControl.DatalistField).Value & "" <> "" Then Set op = pControl.OptionsAdd op.Value = rcs(pControl.DatalistField).Value End If rcs.MoveNext Loop rcs.Close End Sub
Esta función podemos colocarla en alguna biblioteca compartida, y luego en el ScriptBeforeRender del control colocamos lo siguiente:
DatalistSinPermisos this
No hay comentarios:
Publicar un comentario