Tema: Problema
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/08/2004, 03:21
david1981
 
Fecha de Ingreso: enero-2004
Mensajes: 75
Antigüedad: 20 años, 4 meses
Puntos: 0
Busqueda Problema

Hola,

Yo lo que quiero hacer es insertar en un grid, los trabajadores y los dias del mes, una cosa asi:

[B]Trabajadores|02/08/2004|03/082004|04/08/2004....
Pepito |8 |3 |9
Juan |9 |7 |10
...
[/B]

O sea, los Trabajadores en una columna, i debajo los dias del mes, las horas trabajadas por cada trabajador.

Aqui esta el codigo de la funcion:

Private Function Horas(ByVal oComan As DataSet) As DataSet
Dim pConexionOledb As OleDbConnection
Dim sCadena As String
Dim pPoner As OleDbCommand
Dim oDataAdapter As OleDbDataAdapter
Dim oCB As OleDbCommandBuilder
Dim DS As DataSet
Dim sHoras As String
Dim DSResultado As DataSet
Dim dColumnas As DataColumn
Dim dFilas As DataRow
Dim dFilas1 As DataRow
Dim Fechas As String
Dim j As Integer
Dim iDiasMes As Integer
Dim iData As Integer
Dim dFormatNormal As Date
Dim DataSet As DataSet
Dim i As Integer = 0
Dim sTrabajadores As String

sCadena = "Provider=Microsoft.jet.oledb.4.0;Data source=" & "c:\Horario.mdb"
pConexionOledb = New OleDbConnection
pConexionOledb.ConnectionString = sCadena

'creamos el dataset y la tabla
DSResultado = New DataSet
DSResultado.Tables.Add()
dColumnas = DSResultado.Tables(0).Columns.Add("Trabajador")
'dColumnas = DSResultado.Tables(0).Columns.Add()
DataSet = Conexion.Seleccion("Select Trabajador from Informacion Order By Codigo")

'insertar columnas de dias
'calcular el numero de dias que tiene el mes, y poner los dias en columnas
iDiasMes = Me.DiasDelMes(Now.Month)
For j = 1 To iDiasMes
iData = Now.Year * 10000 + (Now.Month) * 100 + j
dFormatNormal = Japo2DateTime(iData)
If dFormatNormal.DayOfWeek <> DayOfWeek.Saturday And _
dFormatNormal.DayOfWeek <> DayOfWeek.Sunday Then
Fechas = Format("dd/mm/yyyy", dFormatNormal)
DSResultado.Tables(0).Columns.Add(Fechas)
End If
Next

'Insertar trabajadores
For i = 0 To DataSet.Tables(0).Rows.Count - 1
dFilas = DSResultado.Tables(0).NewRow
sTrabajadores = DataSet.Tables(0).Rows(i).Item(0)
dFilas.Item("Trabajador") = sTrabajadores
Dim DSTrabajadores As DataSet
Dim sTrabaj As String
'con esta sentencia cojeremos el codigo del trabajador correspondiente
DSTrabajadores = Conexion.Seleccion("Select Codigo from Informacion Where Trabajador='" & sTrabajadores & "'")
sTrabaj = DSTrabajadores.Tables(0).Rows(0).Item(0)
For j = 1 To iDiasMes
Dim sDias As String
iData = Now.Year * 10000 + (Now.Month) * 100 + j
dFormatNormal = Japo2DateTime(iData)
If dFormatNormal.DayOfWeek <> DayOfWeek.Saturday And _
dFormatNormal.DayOfWeek <> DayOfWeek.Sunday Then
sDias = Format("dd/mm/yyyy", dFormatNormal)
'con esta sentencia seleccionamos las horas trabajadas del trabajador q toque, de un dia en concreto
DS = Conexion.Seleccion("Select Horas from Presencia where Codigo ='" & sTrabaj & "' and Fecha = '" & sDias & "'")
'este primer if, sirve por si alguien ese dia no ha fichado, q se lo salte
If i > DS.Tables(0).Rows.Count Or j > DS.Tables(0).Rows.Count Then
Else
sHoras = DS.Tables(0).Rows(i).Item(0)
dFilas.Item(sDias) = sHoras
End If
End If
DSResultado.Tables(0).Rows.Add(dFilas) 'error
Next
Next

'crear comandbuilder
oCB = New OleDbCommandBuilder(oDataAdapter)

'asignar dataset al datagrid
Me.UltraGrid1.DataSource = DSResultado
Me.UltraGrid1.DataBind()
Return DSResultado
End Function

me da error en "DSResultado.Tables(0).Rows.Add(dFilas)" y me dice "Esta fila ya pertenece a esta tabla"

Si alguien me pudiera decir como lo puedo arreglar
__________________
Gracias y un saludo