martes, 18 de agosto de 2020

Datalist sin permisos

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