En ADO estaba acostumbrado a utilizar LIKE para desplegar información dependiendo de un criterio.
Por ejemplo, si tenía que listar los artículos de una o todas las bodegas, lo que hacía era poner un combo con las bodegas disponibles y al final a este combo le agregaba un item para que el usuario pudiera seleccionar "Todas Las Bodegas" y a este nuevo item le asignaba como valor: "%".
De esta manera, podía hacer mi QUERY en el COMMAND de Artículos de la siguiente forma:
SELECT Articulo, Nombre FROM Articulos WHERE Bodega LIKE "'" + cbBodega.SelectedValue + "'";
Pero ahora, como se hace para tener aplicar el equivalente de LIKE en Linq??
Lo primero que tenemos que hacer es usar el siguiente Namespace:
using System.Data.Linq.SqlClient:
Luego, en Linq usamos LIKE de la siguiente forma:
var q =
from a in db.Articuloss
where SqlMethods.Like(a.Bodega, cbBodega.SelectedValue)
select a;
La verdad yo estaba preocupado por no poder utilizar LIKE en Linq, pero resultó Fácil cierto??
Salu2 a todos!!!
jueves, 12 de abril de 2012
lunes, 9 de abril de 2012
Drill Down con Grid de .Net
Hacer DrillDown con Grid de un tercero en .Net es muy sencillo ya que existen productos tales como Telerik, DevExpress, Janus y otros que proveen estas características.
Nosotros los pobres que no tenemos estos controles tenemos que trabajar con los controles y herramientas nativas de .Net
Tuve la necesidad de hacer DrillDown con un Grid de .Net y lo trabajé de la siguiente manera:
<asp:TemplateField HeaderText="Nombre de la Funda" HeaderStyle-Width="360" ItemStyle-Width="360">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Descripcion") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("Descripcion") %>'></asp:Label>
<table width="100%" border="0">
<tr>
<td width="70%">
<asp:DataGrid id="gridRelacionDet" runat="server" AutoGenerateColumns="False" BorderColor="#CC9966"
BorderStyle="None" BorderWidth="1px" BackColor="White" CellPadding="4" Font-Size="X-Small">
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<SelectedItemStyle Font-Bold="True" ForeColor="#663399" BackColor="#FFCC66"></SelectedItemStyle>
<ItemStyle ForeColor="#330099" BackColor="White"></ItemStyle>
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:BoundColumn DataField="Articulo" HeaderText="Artículo" HeaderStyle-Width="80" ItemStyle-Width="80"></asp:BoundColumn>
<asp:BoundColumn DataField="Descripcion" HeaderText="Nombre del Artículo" HeaderStyle-Width="280" ItemStyle-Width="280"></asp:BoundColumn>
</Columns>
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
</asp:DataGrid>
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>
Nosotros los pobres que no tenemos estos controles tenemos que trabajar con los controles y herramientas nativas de .Net
Tuve la necesidad de hacer DrillDown con un Grid de .Net y lo trabajé de la siguiente manera:
- Debemos hacer Template la columna en donde vamos a desplegar la información que corresponda al detalle del Grid.
- En el tag ItemTemplate debemos poner el siguiente código que inserta una tabla y otro grid.
- Use un comando agregado en el grid para ver el detalle del registro.
El código para insertar la tabla y el otro grid es el siguiente:
<asp:TemplateField HeaderText="Nombre de la Funda" HeaderStyle-Width="360" ItemStyle-Width="360">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Descripcion") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("Descripcion") %>'></asp:Label>
<table width="100%" border="0">
<tr>
<td width="70%">
<asp:DataGrid id="gridRelacionDet" runat="server" AutoGenerateColumns="False" BorderColor="#CC9966"
BorderStyle="None" BorderWidth="1px" BackColor="White" CellPadding="4" Font-Size="X-Small">
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<SelectedItemStyle Font-Bold="True" ForeColor="#663399" BackColor="#FFCC66"></SelectedItemStyle>
<ItemStyle ForeColor="#330099" BackColor="White"></ItemStyle>
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:BoundColumn DataField="Articulo" HeaderText="Artículo" HeaderStyle-Width="80" ItemStyle-Width="80"></asp:BoundColumn>
<asp:BoundColumn DataField="Descripcion" HeaderText="Nombre del Artículo" HeaderStyle-Width="280" ItemStyle-Width="280"></asp:BoundColumn>
</Columns>
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
</asp:DataGrid>
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>
Mi Grid principal se llama "gridRelacion" y el detalle de este se llama "gridRelacionDet" y tengo 2 columnas, una para un código de Artículo y otra para el Nombre del Artículo.
En el CodeBehind al hacer clic en el comando del grid para ver el detalle debemos usar el siguiente código:
//Este es mi WS que devuelve el detalle del registro seleccionado
var q = ws.ListarRelacionFundas(ArticuloConsultar);
Control ctl = gridRelacion.SelectedRow.FindControl("gridRelacionDet");
if (ctl is DataGrid)
{
DataGrid fileGrid = (DataGrid)ctl;
fileGrid.DataSource = q.ToArray();
fileGrid.DataBind();
}
El Resultado es el siguiente:
Espero esto les pueda ser de utilidad.
lunes, 2 de abril de 2012
No se cancelan los trabajos de impresión
Han tenido problemas con que no se cancelan o no se cierran los trabajos de impresion en windows?
Para cerrar esos trabajos de impresion que por mas que le demos "Cancelar", "Purgar" e incluso hasta apaguemos la impresora unos minutos esperando que se borre la memoria y aun asi no funciona, lo que deben hacer es seguir los siguientes pasos:
Para cerrar esos trabajos de impresion que por mas que le demos "Cancelar", "Purgar" e incluso hasta apaguemos la impresora unos minutos esperando que se borre la memoria y aun asi no funciona, lo que deben hacer es seguir los siguientes pasos:
- Cerrar la venta de las impresoras.
- En el panel de control, hacer doble clic en el icono Servicios, haga clic en el servicio "Cola de impresión" y, a continuación, hacer clic en Detener. Si estas utilizando impresión TCP/IP Services, seleccionarla y, a continuación, haga clic en Detener.
- Eliminar los archivos *.spl y *.shd que muestran la fecha del trabajo de impresión la causa del problema y la hora aproximada. Están en el directorio %winroot%\System32\Spool\Printers.
- Reiniciar los servicios detenidos en el paso 2.
Suscribirse a:
Entradas (Atom)