Pregunta

Tengo problemas para completar una tabla de datos con los datos correctos.

Tengo una tabla de datos que estoy usando en un formulario. Se llama userConfigProfiles. Tiene un groupId de 2 columnas FK (esto se une a UserGroupInfo) y corpProfileId (esto se une a una tabla que creé). Los datos de userConfigProfiles se completan desde otro formulario y actualmente se completan de forma adecuada.

El problema es que necesito crear un menú desplegable en el formulario SalesTable que muestre un subconjunto de las filas en userConfigProfiles en función de los UserGroups en los que se encuentra el usuario actual.

Intenté hacer esto agregando el siguiente código a la tabla, userConfigProfiles en el formulario SalesTable:

public void init()
{
    userConfigProfiles.data(userConfigProfiles::find());

    super();
}

Luego agregué este método de búsqueda a la tabla en sí:

static public userConfigProfiles find()
{
    userConfigProfiles userProfile;
    UserGroupList userGroupList;

    str 8 u = curUserId();

    select *
    from userProfile
    order by userProfile.bdcProfileId
        join userGroupList
    where userProfile.groupId == userGroupList.groupId
        && userGroupList.userId == u;

    return userProfile;
}

Sin embargo, parece que aunque se llama a mi método de búsqueda y devuelve los datos correctos, no afecta a los datos que se incluyen en la lista desplegable de mi formulario.

Mi lista desplegable es un campo StringEdit con un DataSource de userConfigProfiles y un DataField de corpProfileId.

Estoy bastante seguro de que hay varias formas de resolver mi problema y estoy abierto a cualquiera de ellas, incluso si eso significa eliminar todo mi código y hacer el cuadro desplegable de manera completamente diferente.

¿Fue útil?

Solución

Cree una consulta usando la tabla UserConfigProfiles con una combinación existente (propiedad joinMode) a la tabla UserGroupList, use la relación apropiada, luego agregue un rango en el campo UserId con un value de (currentUserId()).

Este valor es una expresión de consulta dinámica proporcionada por la clase SysQueryRangeUtil .

Finalmente cree una búsqueda usando la clase SysTableLookup usando su consulta.

Otros consejos

De lejos, el mejor tutorial sobre métodos de búsqueda es el de Vanya:

http://kashperuk.blogspot.com/2009/04 / lookup-methods-tutorial-custom-list.html

Descarga su tutorial XPO y usa una de sus opciones para tu formulario.Tu código se parece un poco a un truco.

Si está tratando de mostrar un subconjunto de registros en la tabla, debe modificar la consulta (), pero si está tratando de cambiar los valores mostrados desde una búsqueda, entonces revisaría su publicación de blog.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top