Visual Basic - Bloquear opciones de ComboBox según ID de usuario

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Bloquear opciones de ComboBox según ID de usuario

Publicado por Ziany (8 intervenciones) el 08/11/2016 15:44:30
Hola, tengo una duda la cual e tratado de resolver y e buscado mucha información la cual no me ha ayudado.

Estoy desarrollando una aplicación de contratos, ordenes de servicio y facturas en Visual Basic; en la cual debo lograr que según sea el usuario registrado, se le asignen uno o mas contratos. Por ejemplo, tengo los usuarios admin1 con ID 1 y admin2 con ID 2; creo un contrato y se lo asigno a admin1. Tengo un Form para que puedan añadir las ordenes y facturas de ese contrato, en el cual tengo un ComboBox en el cual se muestran los contratos existentes; lo que quiero es que si admin2 se registra y quiere añadir una factura a otro contrato asignado a él, no se le muestren los contratos asignados a admin1 para que no pueda editarlo.

Mis tablas en SQL son estas:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
--tabla usuarios
create table usuarios(
CEDULA bigint not null,
NOMBRE char (30) not null,
PRIMER_APELLIDO char (30) not null,
SEGUNDO_APELLIDO char (30) not null,
TIPO_DE_USUARIO VARCHAR (20) NOT NULL,
CORREO_ELECTRONICO varchar (30) not null,
CONTRASEÑA varchar (30) not null
constraint pk_usuarios primary key (CEDULA)
)
 
--tabla contratos
create table contrato(
NUMERO_DE_CONTRATO BIGINT not null,
PROVEEDOR varchar (30) not null,
CEDULA_JURIDICA BIGINT not null,
USUARIO_ADMINISTRADOR VARCHAR (30) NOT NULL,
CEDULA bigint NOT NULL,
ARCHIVOS IMAGE,
constraint pk_contrato primary key (NUMERO_DE_CONTRATO),
constraint fk_contrato foreign key (CEDULA) references usuarios(CEDULA)
)

Trate de ser lo mas clara posible.

Espero puedan ayudarme.

Gracias de antemano!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Bloquear opciones de ComboBox según ID de usuario

Publicado por Andres Leonardo (1798 intervenciones) el 08/11/2016 19:57:23
Hola Zyani

Lo que pasa es que yo croe que podrias mejorar la estrucutura de tu tabla.

sobre las entidades principales tu deberias considerar el tipo de relacion ... si una persona tiene unpo o varios contratos, correcto lo que deberias hacer es que en la logica del programa se llenen o se puedan acceder a los contratos cuya usuario= al de el o en blanco para asignarla caso contrario si tiene otro usuario no presentarselo

Llenar el Combo solo de aquellos contratos donde el usuario sea el que esta consultando

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Bloquear opciones de ComboBox según ID de usuario

Publicado por Ziany (8 intervenciones) el 08/11/2016 20:26:31
Hola Andrés,
Gracias por responder;
No me queda muy clara tu idea, si pudieras explicarte o dar un ejemplo te lo agradecería mucho.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Bloquear opciones de ComboBox según ID de usuario

Publicado por Andres Leonardo (1798 intervenciones) el 08/11/2016 20:51:52
Lo uqe pasa es que tu envias la estructura de tus tablas


OK hasta eso bien... pero no muestras como llenas el combo que te va decir cuales son los contratos que puedes adicionar
En eso te digo que deberias llenarlo ignorando los contratos que ya tienen codigo de usuario asignado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Bloquear opciones de ComboBox según ID de usuario

Publicado por Ziany (8 intervenciones) el 08/11/2016 21:07:59
Asi lleno el combobox con los datos de la base de datos:

1
2
3
4
5
6
7
8
9
10
11
        ''CARGAR COMBOBOX CON SQL
        conectar()
        sql = "select * from contrato"
        da = New SqlClient.SqlDataAdapter(sql, coneccion)
        Dim dt As New DataTable
        da.Fill(dt)
        combocontrato.DataSource = dt.DefaultView
        combocontrato.DisplayMember = "NUMERO_DE_CONTRATO"
        combocontrato.ValueMember = "NUMERO_DE_CONTRATO"
        combocontrato.Text = ""
        conexion.Close()

Ese combo lo usaria para elegir el contrato al que le quiero agregar una factura u orden.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Bloquear opciones de ComboBox según ID de usuario

Publicado por Andres Leonardo (1798 intervenciones) el 08/11/2016 22:38:40
por eso y si cambias al llenar el combo donde solo el usuario es el propietario

Asi solo podra ver los contratos donde el este asignado. o en si defecto aquellos donde no este asignado


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Bloquear opciones de ComboBox según ID de usuario

Publicado por Ziany (8 intervenciones) el 08/11/2016 22:42:40
Gracias por responder Andres.
Voy a intentarlo a ver que sale. Espero poder llevar a cabo tu idea. Si pudieras mandar un ejemplo de como lo harias tu no estaria de mas, pero si no de igual forma gracias por ayudarme.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Bloquear opciones de ComboBox según ID de usuario

Publicado por Andres Leonardo (1798 intervenciones) el 09/11/2016 12:09:13
intente enviar un mensaje con el codigo pero no me dejo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar