Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-04-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Como diseñar una tabla de tipo organigrama

Hola

Estuve pensando donde postear esta pregunta y me parece que este es el sitio adecuado

Mi problema mas bien es un problema conceptual, la situación es que necesito crear un sistema donde debo de crear una tabla donde voy ingresando niveles jerarquicos, por ejemplo

Direccion General
|
|_Direccion 1
|
|__Departamento 1
|
|___Area 1,1
|
|___Area 1,2

|_Direccion 2
|
|__Departamento 2,1
|
|___Area 2,1,1
|
|___Area 2,1,1


Lo que no tengo NPI es como diseñar la base de datos para asignar los ID's de cada uno de los Items de ese árbol jerarquico.

Esta información me va a ser útil a la hora de generar listados de cada uno de esos Items por ejemplo:
  1. Todos los movimientos generados por cada una de las Areas
  2. Todos los movimientos generados por cada uno de los departamentos y cada Area de ese departamento
  3. Todos los movimientos generados por cada una de las direcciones, departamentos de cada direccion y Areas de cada departamento

Pero también que se pueda agregar mas niveles jerarquicos es decir que pudieran ser 2,3,4,n

Como les comento, tengo un problema de concepto y tal vez en este primer post no sea tan claro, les agradecería me compartieran sus experiencias en este tipo de diseño.

Salud OS y gracias
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney

Última edición por egostar fecha: 04-04-2008 a las 21:56:15.
Responder Con Cita
  #2  
Antiguo 04-04-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Una opción puede ser:

Código SQL [-]
create table Jerarquias as
(
id integer not null,
parent_id integer,
descripcion varchar(50)
);

Y un ejemplo de los datos guardados sería:

Código:
Id Parent_Id Descripcion
1  Null      Direccion General
2  1         Direccion 1
3  2         Departamento 1
4  3         Area 1,1
5  3         Area 1,2
6  1         Direccion 2
7  6         Departamento 2,1
8  7         Area 2,1,1
9  7         Area 2,1,1
Este tipo de tablas las puedes cargar en un componente tipo TreeView para mostrarlo de forma jerárquica...

Saludos...

Última edición por maeyanes fecha: 04-04-2008 a las 22:07:34.
Responder Con Cita
  #3  
Antiguo 04-04-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola

Amigo Y no lo estas haciendo ya?.

Direccion General.........1.............2..............3
|
|_Direccion Sec...........1.............2..............3
|
|_Departamento...........1.............2.1...........3.1
|
|_AreaPrinc.................1,1...........2.1.1........3.1.1
|
|_AreaSecu.................1,2...........2.1.2........3.1.3

Me imagino que tanto los departamentos como las areas pueden ser muchas, la cantidad no importaria.
Saludos
Responder Con Cita
  #4  
Antiguo 04-04-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por maeyanes Ver Mensaje
Hola...

Código:
Id Parent_Id Descripcion
1  Null      Direccion General
2  1         Direccion 1
3  2         Departamento 1
4  3         Area 1,1
5  3         Area 1,2
6  1         Direccion 2
7  6         Departamento 2,1
8  7         Area 2,1,1
9  7         Area 2,1,1
Este tipo de tablas las puedes cargar en un componente tipo TreeView para mostrarlo de forma jerárquica...

Saludos...
Gracias amigo maeyanes, efectivamente, lo tengo pensado hacer en un TreeView y esa forma que me comentas me parece muy buena sin embargo, a la hora de emitir un listado digamos de todos los movimientos de la Direccion 1, como se pueden ligar todas esos items....

Código:
Direccion1
      Departamento 1
            Area 1
            Total Area 1
            Area 2
            Total Area 2
      Total Departamento 1
Total Direccion 1
Realmente aquí es mi problema conceptual.....

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #5  
Antiguo 04-04-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Hola Egostar

(se quedo bloqueado..asi que escribo nuevamente.. aunque se me escapo un poco la idea...)

Has trabajado con algun sistema contable o al diseñado uno ???

si es así, la forma de trabajar las cuentas contables te puede servir... por ejemplo, generalmente las cuentas se pueden clasificar en 3 o 4 partes... (depende de la empresa / contador...)

ej

Tipo Cuenta / Clasificacion / Cuenta / Detalle

Activo / Circulante / Banco / Banco 1
Activo / Circulante / Banco / Banco 2

Espero te sirva..

Salu2
__________________
BlueSteel
Responder Con Cita
  #6  
Antiguo 04-04-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por BlueSteel Ver Mensaje
Hola Egostar

(se quedo bloqueado..asi que escribo nuevamente.. aunque se me escapo un poco la idea...)

Has trabajado con algun sistema contable o al diseñado uno ???

si es así, la forma de trabajar las cuentas contables te puede servir... por ejemplo, generalmente las cuentas se pueden clasificar en 3 o 4 partes... (depende de la empresa / contador...)

ej

Tipo Cuenta / Clasificacion / Cuenta / Detalle

Activo / Circulante / Banco / Banco 1
Activo / Circulante / Banco / Banco 2

Espero te sirva..

Salu2
Gracias amigo BlueSteel, pero precisamente por eso no entiendo el concepto, nunca he hecho sistemas contables, mi rama son las telecomunicaciones y esto que me piden es nuevo para mi, .

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #7  
Antiguo 04-04-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
y la base de datos, ¿es paradox?
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #8  
Antiguo 04-04-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Lepe Ver Mensaje
y la base de datos, ¿es paradox?
, no, en realidad es Firebird, pero no pensé que eso tuviera relevancia pero....... ya me pusiste a pensar

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #9  
Antiguo 04-04-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Mira... revisando un sistema contable (Softland)... esta posee una tabla donde se almacenan todas las cuentas con sus respectivos atributos

la estructura es la sgte

Tabla : cwpctas

PCCODI -> TIENE UN FORMATO 00-00-00-00 (Según el que se le dio en mi Empresa

PCNivel -> mi indica de que nivel es ( 0 - 1 - 2 - 3 ... etc)

PCCODI varchar 18
PCNIVEL int 4 1
PCLNIVEL int 4 1
PCDESC varchar 60 1
PCTIPO varchar 1 0
PCCCOS varchar 1 0
PCAUXI varchar 1 0
PCCDOC varchar 1 0

y así sucesivamente.. en donde con el campo PCNIVEL le indicas a que nivel del Organigrama puede corresponder...


Salu2
__________________
BlueSteel

Última edición por BlueSteel fecha: 04-04-2008 a las 23:18:22.
Responder Con Cita
  #10  
Antiguo 04-04-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por BlueSteel Ver Mensaje
Mira... revisando un sistema contable (Softland)... esta posee una tabla donde se almacenan todas las cuentas con sus respectivos atributos

la estructura es la sgte

Tabla : cwpctas

PCCODI -> TIENE UN FORMATO 00-00-00-00 (Según el que se le dio en mi Empresa

PCNivel -> mi indica de que nivel es ( 0 - 1 - 2 - 3 ... etc)

PCCODI varchar 18
PCNIVEL int 4 1
PCLNIVEL int 4 1
PCDESC varchar 60 1
PCTIPO varchar 1 0
PCCCOS varchar 1 0
PCAUXI varchar 1 0
PCCDOC varchar 1 0

y así sucesivamente.. en donde con el campo PCNIVEL le indicas a que nivel del Organigrama puede corresponder...


Salu2
Gracias amigo BlueSteel, voy a ver esa estructura para tratar de replicarla y ver como funciona,

Esto sí se puede hacer en firebird verdad , nada, es broma..... no me vayan a mandar a leer la guia de estilo del club

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #11  
Antiguo 04-04-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Smile

Cita:
Empezado por egostar Ver Mensaje
Gracias amigo BlueSteel, voy a ver esa estructura para tratar de replicarla y ver como funciona,

Esto sí se puede hacer en firebird verdad , nada, es broma..... no me vayan a mandar a leer la guia de estilo del club

Salud OS
Bueno...

demás esta recomendar que en tu sistema valides que no se puede crear una subcuenta (departamento) si no esta creado el tipo..

ej... si quiero agregar el area 03-01-01-01

primero debo hacer esto

crear area 03-00-00-00
crear area 03-01-00-00
crear area 03-01-01-00
y por último
crear area 03-01-01-01

salu2
__________________
BlueSteel
Responder Con Cita
  #12  
Antiguo 04-04-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por BlueSteel Ver Mensaje
Bueno...

demás esta recomendar que en tu sistema valides que no se puede crear una subcuenta (departamento) si no esta creado el tipo..

ej... si quiero agregar el area 03-01-01-01

primero debo hacer esto

crear area 03-00-00-00
crear area 03-01-00-00
crear area 03-01-01-00
y por último
crear area 03-01-01-01

salu2
Entendido y anotado amigo BlueSteel, gracias...

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #13  
Antiguo 05-04-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Entonces no te preocupes por la impresión. Siempre puedes tirar de SP de selección, y claro, ahí puedes hacer virguerías de sumas, grupos, sumas de grupo y grupo de sumas todo junto, revuelto y en su salsa.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Cómo crear un organigrama en Delphi 7? edgar_vife Varios 2 26-03-2008 20:41:59
Como diseñar mis BD en paradox para hacer esto... Goyo Conexión con bases de datos 0 17-04-2007 22:40:45
¿Cómo diseñar las bases de datos visualmente?. taita Firebird e Interbase 12 07-09-2006 12:02:31
Como filtrar un campo tipo Date en una Tabla? JuanErasmo C++ Builder 6 21-12-2005 09:24:59
Como saber el tipo de datos de un campo de una tabla Javi2 SQL 1 27-06-2005 14:18:28


La franja horaria es GMT +2. Ahora son las 10:54:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi