Buenas tardes:
Tengo un archivo excel con los datos cédula, nombre, apellido, Cargo, salario, fecha de ingreso y fecha de nacimiento. Estoy intentando filtrar por filter datatable pero no me muestra ningún valor. Utilice linQ select para aplicar filtros pero sólo me filtra los string, pero si quiero aplicar más filtros en fechas y salario no me muesta nada.
Puse mis argumentos
De entrada in_DTSalarios tipo datatable value vDTBSalarios y de salida out_DTResultadoFiltro value vDTBResultadoFiltro
Codigo
Dim vArrFiltroTechLead As DataRow()
Try
vArrFiltroTechLead = in_DTSalarios.Select( "[Cargo] = 'Tech Lead' AND [Fecha de Ingreso] < '20/08/2020' AND [Salario] > 7000000 ")
If vArrFiltroTechLead.Count >0 Then
out_DTResultadoFiltro = vArrFiltroTechLead.CopyToDataTable()
End If
Buenos días, el problema radica en que el salario y la fecha no está en un formato americano, sino en el salario de pesos colombianos y la fecha que es dia/mes/año
Intenté usar el Culture Info pero no me muestra los formatos que deseo
System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo(“es-CO”) para colombia y no me pone el formato correcto
System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo(“es-PE”) para Perú y tampoco me pone el formato correcto
Luego de ello intento hacer el filtro y tampoco puedo. Por el filter datatable no se pueden filtrar fechas y salario, solo string
Intenté con el LinQ pero tampoco filtra ya que entiendo, que el .Select solo está filtrando string y no int32 o day.
Dim vArrFiltroTechLead As DataRow()
Try
vArrFiltroTechLead = in_DTSalarios.Select( "[Cargo] = ‘Tech Lead’ AND [Fecha de Ingreso] < ‘20/08/2020’ AND [Salario] > 7000000 ")
If vArrFiltroTechLead.Count >0 Then
out_DTResultadoFiltro = vArrFiltroTechLead.CopyToDataTable()
End If
Catch ex As Exception
end Try
(From d in in_DTSalarios.AsEnumerable
Where d("Job Title").toString.Trim.Equals("Tech Lead")
Let dp = DateTime.ParseExact(d("Join Date").toString.Trim, "YOURFORMATSTRING", System.Globalization.CultureInfo.InvariantCulture)
Where dp.Date < #08/20/2020#
Let ds = Double.Parse(d("Salary").toString.Trim, YOURMATCHING_CultureInfoVar)
Where ds > 7000000
Select r =d).CopyToDataTable
Handling Empty results as you had done with the count check
Handling double specifics as described: check within the immediate panel