on 03-27-2009 1:39 AM
Hola a todos.... el problema que tengo y espero me puedan ayudar es que tengo un matrix de sap, pero nesesito que una de las columnas de ese matrix en ves de mostrar texto me muestre un combo con informnacion de los turnos de una empresa ....alguien me puede ayudar .. este es el codigo que estoy ocupando:
For Li_Fila = 0 To Lo_Personal.TotalFilas - 1
Lo_Personal.Fila = Li_Fila
Lo_UserDataSource = Mo_Forma.DataSources.UserDataSources.Item(MatrixCambiaTurnosNumero)
Lo_UserDataSource.Value = Lo_Personal.Empleado
Lo_UserDataSource = Mo_Forma.DataSources.UserDataSources.Item(MatrixCambiaTurnosOriginal)
Lo_UserDataSource.Value = Lo_Personal.TurnoDescripcion
''En esta columna es en la que deseo mostrar el combo.....
__Lo_UserDataSource = Mo_Forma.DataSources.UserDataSources.Item(MatrixCambiaTurnosCambio)__
__Lo_UserDataSource.Value =Lo_cboTunos.Selected.Description__
Lo_grdMatrixCambiaTurnos.AddRow()
Next
Asi como lo tengo ahora me muestra la forma de combo con un valor pero al darle click no me despliega el resto de los valores....
alguien sabe como puedo solucionar esto
De antemano les agradesco ....
Jorge Luis
Sobre el punto que mencionas te puedo decir lo siguiente:
' Creando los UserDataSources para la columna tipo combo
oMyForm.DataSources.UserDataSources.Add("udsColumna", SAPbouiCOM.BoDataType.dt_SHORT_TEXT)
oMatrix = oMyForm.Items.Item(MyMatrix).Specific
oColumns = oMatrix.Columns
' Asignando el UserDataSources a la columna tipo combo
oColumns.Item("c_Columna").DataBind.SetBound(True, "", "udsColumna")
oMatrix = oMyForm.Items.Item(MyMatrix).Specific
oColumns = oMatrix.Columns
' Agregando valores al combo de la columna tipo combo
oColumns.Item("c_Columna").ValidValues.Add("M", "Mañana")
oColumns.Item("c_Columna").ValidValues.Add("T", "Tarde")
oColumns.Item("c_Columna").ValidValues.Add("N", "Noche")
oColumns.Item("c_Columna").DisplayDesc = True
oRecordSet.DoQuery("SELECT CODE, NAME FROM [@TABLE]")
Dim index As Integer = 1
' Cargando valores a las filas de la matrix
oMatrix = oMyForm.Items.Item(MyMatrix).Specific
While Not oRecordSet.EoF
oMatrix.AddRow(1)
oMatrix.GetLineData(index)
oUserDataSource = oMyForm.DataSources.UserDataSources.Item("udsColumna")
oUserDataSource.Value = oRecordSet.Fields.Item("CODE").Value.ToString.Trim
oMatrix.SetLineData(index)
index += 1
oRecordSet.MoveNext()
End While
Si revisas bien este codigo primero llenas la columna que es tipo combo con sus valores posibles, puedes usar un oRecordSet para llenarla si es que los datos los tienes en una tabla y pueden varias.
Al usar UserDataSource en una matrix debes usar las funciones GetLineData(index) y SetLineData(index).
Bueno espero que esto aclare tus dudas, si todo sale bien seria bueno que lo comentes.
Saludos
George
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
89 | |
8 | |
7 | |
4 | |
4 | |
3 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.