sábado, 14 de abril de 2007

EXCEL - Condicion IF

La condicion IF

=SI(CONDICION;SI ES TRUE;SI ES FALSO)

x ejemplo.

=SI(A13="";"";PRODUCTO(A13;C13))

Si en caso de true o falso, no tiene que hacer nada, nos podemos ayudar de poner la condicion a "".

EXCEL - Proteger algunas celdas.

Proteger algunas celdas, resulta interesante cuando las celdas contienen funciones matematicas q no queremos que sean borradas. Para ello tenemos que hacer.

1.- Seleccionamo todas las celdas que SI se pueden modificar.
FORMATO -> CELDAS -> pestaña PROTEGER --> deshabilitamos la casilla Bloqueado.

2.- Luego protegemos el documento.
HERRAMIENTAS - PROTEGER - PROTEGER HOJA --> asignamos una contraseña y dejamos habilitadas solo las primeras dos lineas (seleccionar celdas bloqueadas, seleccionar celdas desbloqueadas).

Y ya tiene q funcionara ;).

DESPROTEGER HOJA
Si el documento esta protegido, no se podran cambiar el tamaño de las columnas.
Para desproteger HERRAMIENTAS - PROTEGER - DESPROTEGER HOJA

jueves, 12 de abril de 2007

Error "Los datos de cadena o binarios se truncarían.".

mensaje 8152, nivel 16, estado 9
Error "Los datos de cadena o binarios se truncarían."

Cuando sale el siguiente error quiere decir que estas intentando meter datos en variables que no caben.

Fijate que si estas creando un procedimiento almacenado, a las variables @ les asignes la cantidad.

@id nvarchar(50)

miércoles, 11 de abril de 2007

.net Desplegables desde Procedimientos Almacenados

Asistente o codigo ? ;).. ->codigo!.

objetivo: Que en un desplegable se muestren datos de una BD. Los datos se extraen desde procedimientos almacenados y se almacenan en DataTable.

Pagina donde se encuentra el desplegable. Crearemos una funcion para el deplegable. Esta misma la podremos llamar por ejemplo desde el constructor.

private void RellenarComboBox(){

categoria catCAD=new categoria();
nombCombo.DataSource = catCAD.ObtenerDatosDesplegable();
nombCombo.DisplayMember = "nombre";
cmb.ValueMember = "id";
}

La funcion ObtenerDesplegable, devolverá un dataset con los datos de la BD.
Siempre que queramos que se cargue algo de la bd, tanto si es un datagrid, como si es un desplegable pondremos suNombre.DataSource.

Las propiedades DisplayMember, este es el nombre que queremo que muestre el desplegable y ValueMember, es el nombre que queremos que se almacene cuando se seleccione una opcion del desplegable. Por ejemplo selecciono del desplegable Software y se almacena su id q es el 3.


La funcion ObtenerDatosDesplegable, la tengo en otra capa que gestiona toda la conexion a la Bd.

System.Data
System.Data.SqlClient

//deberia tener un try catch.

public DataTable desplegableCategorias()
{

DataTable dt = new DataTable();
cnn = new SqlConnection(conexion);
da = new SqlDataAdapter("desplegableCategorias", cnn);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
cnn.Open();
da.Fill(dt);
return dt;

}

Ejemplo de procedimiento almacenado.

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE desplegableCategorias
AS
BEGIN

SET NOCOUNT ON;

SELECT idCategoria, nombre from categoria;
END
GO


QUE AL SELECCIONAR UNA OPCION DEL DESPLEGABLE SE QUEDE MARCADA.

Con este apartado lo que se consigue es que si selecciono del desplegable Software, se quede marcado Software y no el primero de la lista.

Hago doble click sobre el desplegable y pongo el siguiente codigo.

if (comboBoxCategorias.SelectedIndex != -1)
comboBoxCategorias.Text = comboBoxCategorias.SelectedValue.ToString();


NO MODIFICAR DATOS DEL DESPLEGABLE

Para que el usuario no pueda escribir en el desplegable, seleccionamos el desplegable y en las propiedades ponemos. DropDownStyle: DropDownList
palyginti kainas