Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/03/2008, 09:32
Avatar de zacktagnan
zacktagnan
 
Fecha de Ingreso: abril-2005
Mensajes: 501
Antigüedad: 19 años, 11 meses
Puntos: 3
Crear una tabla dinámicamente

Hola a tod@s:

Estoy progrmando una aplicación en C#

Dentro de un página de inserción de albarán, se activa una tabla para insertar otros datos relacionados con el nuevo registro a insertar.

Esta tabla se debe crear dinámicamente en relación a datos sacados de la base de datos de SQL Server de la tabla [RESIDUOS]

Los campos de la rejilla dinámica sería:

[Nombre_Residuo_1] | [Cantidad_1] | [Num_Personas_1]
[Nombre_Residuo_2] | [Cantidad_2] | [Num_Personas_2]
... ... ...
[Nombre_Residuo_n] | [Cantidad_n] | [Num_Personas_n]

Serían tantas filas como total de filas de la tabla [RESIDUOS]

Luego todos estos datos se insertarían en otra tabla de la base de datos [RESIDUOS_A], registros que se relacionarían con el inserto principal de albarán por el código de este.

Las estructuras de las tablas serían:

[RESIDUOS]
================

CREATE TABLE [dbo].[RESIDUOS](
[codigo] [int] IDENTITY(1,1) NOT NULL,
[nombreC] [nvarchar](50) COLLATE Modern_Spanish_CI_AS NOT NULL,
[nombreE] [nvarchar](50) COLLATE Modern_Spanish_CI_AS NOT NULL,
[CER1] [nvarchar](50) COLLATE Modern_Spanish_CI_AS NOT NULL,
[CER2] [nvarchar](50) COLLATE Modern_Spanish_CI_AS NOT NULL,
[CER3] [nvarchar](50) COLLATE Modern_Spanish_CI_AS NOT NULL,
[historico] [bit] NOT NULL,
CONSTRAINT [PK_RESIDUOS] PRIMARY KEY CLUSTERED
(
[codigo] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]



[RESIDUOS_A]
================

CREATE TABLE [dbo].[RESIDUOS_A](
[codigo] [int] IDENTITY(1,1) NOT NULL,
[albaran] [int] NOT NULL,
[residuo] [int] NOT NULL,
[cantidad] [int] NOT NULL,
[personas] [int] NOT NULL,
CONSTRAINT [PK_RESIDUOS_A] PRIMARY KEY CLUSTERED
(
[codigo] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]


Los datos tecleados en cada fila de tabla dinámica a crear se insertarán finalmente en esta tabla de [RESIDUOS_A]. El campo [albaran] será el ID del albarán insertado relacionado con la lista de Residuos recogida.

La cosa es como hacer para crear la susodicha tabla con tantas filas como Residuos existan.
Cada fila de esa tabla estará formada por tres columnas:
- [Nombre_Residuo] en un Label
- TextBox para recoger el dato de [Cantidad] para ese residuo
- TextBox para recoger el dato de [Num_Personas] para ese residuo

Supongo que algo como una consulta que dé el ID y Nombre de residuo y luego por cada fila crear TextBox que lleven en su ID de TextBox el ID del Residuo al que se refieren, es decir
Residuo_1 ... TextBox ID="cantidad_1" ... TextBox ID="npersonas_1"
...

Y luego habría que recoger los datos tecleados en cada una de las cajas mencionadas para crear por cada fila un registro en la tabla [RESIDUOS_A]

Espero que se me haya entendido ...

Si, por ejemplo, la tabla esa a crear dinámicamente estuviera dentro de un Panel, con un for ó algo se crearía los TextBox cómo

TextBox cantidad_txt = new TextBox();
Panel1.Controls.Add(cantidad_txt);

ó algo así???

No tengo una idea clara de cómo hacer todo esto ... ¿alguna ayudita?
__________________
Saludos,

zacktagnan.
=================================================