Ir al contenido


Foto

[RESUELTO] Consulta Edit y otro control para ingreso de datos


  • Por favor identifícate para responder
12 respuestas en este tema

#1 Nikolas

Nikolas

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 604 mensajes
  • LocationMar del Plata / Bs As / Argentina

Escrito 05 agosto 2010 - 04:12

Hola! Comunidad
Nuevamente con dudas y problemas.
Tengo 2 cuestiones a resolver:

1 - Necesito ingresar y validar numeros de cuil / cuit. (la funcion que validad ya la hice), el tema es sobre el ingreso de este numero.
El formato que tiene es: xx-xxxxxxx-x (2 nros - 8 nros - 1 nro)
Lo solucione de la sig manera: con 3 edit el primero de 2 lugares, el segundo de 8 lugares y el tercero de 1.

Lo que me gustaria es poder cargar esos numeros en un solo edit, donde el guion ya este previamente insertado.

2 - Por otro lado, completando los datos personales de un trabajador, surge el sig tema:
quiero ingresar la cantidad de hijos y luego habilitar un cotrol con tantos lugares como hijos cargue.

digo:
2 hijos
Entonces poder cargar: (2 veces)
- Nombre completo
- DNI
- Fecha de nacimiento
- Escolaridad
Para esta cuestion, pence armar una tabla con estos datos y de esta manera utilizar un dbgrid

La primera idea fue, dejar en el formulario controles disponibles para cargar independientemente de los que necesite.
Ejemplo:

1 - Nombre completo - DNI - Fecha de nacimiento - Escolaridad
2 - Nombre completo - DNI - Fecha de nacimiento - Escolaridad
3 - Nombre completo - DNI - Fecha de nacimiento - Escolaridad
4 - Nombre completo - DNI - Fecha de nacimiento - Escolaridad
5 - Nombre completo - DNI - Fecha de nacimiento - Escolaridad
6 - Nombre completo - DNI - Fecha de nacimiento - Escolaridad
.....

Desde ya, esto no me gusta porque si tengo 1 solo hijo, me sobran todos los otros
y si tiene 10 o mas hijos me estarina faltando.  ^o|

Bueno estos serian mis problemitas...
Espero sus comentarios, ideas, sugerencias, ayudas, etc... :wink:

Gracias!  :cheesy:


  • 0

#2 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 05 agosto 2010 - 04:23

Hola amigo Nikolas...

Tienes razón en tu apreciación de decir que no es recomendable bajo ningún caso dejar N cantidad de controles para una cantidad de registros de información de la cual no sabes el límite (puede ser desde 0 hasta 1000, jejeje, uno nunca sabe los hijos que cada quien quiere tener).... Por lo que yo te recomendaría que usaras un componente que te permita agregar tantos registros (hijos) como desees sin quedare ni sobrado ni corto de componentes....

Para tales efectos puedes usar los Grids, ya sea un StringGrid en el cual puedes ir generando tantas filas como desees (hijos) y predeterminar el número de columnas que necesites(datos de los hijos), este control no necesitas conectarlo a un Dataset por lo que la inserción y eliminación de filas depende totalmente de ti....

Otra opción es el DBGrid que éste si ésta directamente ligado a un DataSet que cuando haces un Append o un Insert agrega una fila o cuando suprimes (Delete) un registro de tu base de datos, elimina esa fila del Grid....

Espero que esta info te sea de ayuda y no dudes en preguntar lo que sea....

Saludox ! :)

P.D. Sobre el edit que comentas, creo que con un componente MaskEdit puedes hacer algo así, pero tendría que checarlo, ya que nunca lo he usado  :embarrassed:
  • 0

#3 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 05 agosto 2010 - 04:39

Hola
La verdad no entiendo donde esta el problema.
Me gustaria saber que BD usas para ver si puedo hacer algun ejemplo de lo que necesitas.
Saludos
  • 0

#4 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 05 agosto 2010 - 05:02

Hola
La verdad no entiendo donde esta el problema.
Me gustaria saber que BD usas para ver si puedo hacer algun ejemplo de lo que necesitas.
Saludos


Por lo que yo alcanzo a comprender amigo es que tiene una tabla con los datos de los trabajadores de una empresa y en otra tabla desea tener los datos de los N hijos por cada trabajador... pero quiere sugerencias para poder meter tantos hijos como quiera (de 0 a N) sin tener que depender de una cantidad limitada de controles para ingresar los datos (supongo de nuevo, que se refería a edits)....

Es por ello que le he sugerido los Grids, aunque veo que él ya había pensado en algo así.... :p

Saludox ! :)
  • 0

#5 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 05 agosto 2010 - 05:05

Hola
Entiendo.
Una solucion practica a este problema seria que le dijera al gerente de la empresa que despida al personal que tenga mas de un hijo, asi se lo programa mas facil. :D :p
Saludos
  • 0

#6 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 05 agosto 2010 - 05:07

Hola
Entiendo.
Una solucion practica a este problema seria que le dijera al gerente de la empresa que despida al personal que tenga mas de un hijo, asi se lo programa mas facil. :D :p
Saludos


Jajajajajajaja... bueno, él pidió comentarios, ideas, sugerencias o ayuda... tu sugerencia me parece más que válida (y) :D

Saludox ! :)
  • 0

#7 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 05 agosto 2010 - 09:07

Hola,

Pues espero que en esa lista no esté el Sargento García salteño  :D.
Les cuento, aquí en Salta hay un Sargento y justo es de apellido García y un tanto regordete y con bigote... igualito al Sargento García del Zorro. Da la casualidad que el tipo tiene 18 hijos (si, con la misma y única mujer).

[off-topic]
¡Que aguante que tuvo esa mujer! Parir 18 veces... de a 2 y de 3 la mayoría de las veces.
[/off-topic]

Volviendo al hilo, creo también que el MaskEdit es una buena posibilidad para ingresar el CUIL/CUIT.

Y sobre el tema de como ingresar los hijos creo que una posible solución, aunque quizá para algunos sea un tanto rebuscada, es la de disponer de un frame con la plantilla básica de los campos a llenar. Luego en el form tendría un scrollBox y crearía en él tantos frames como hijos tenga.

Si es necesario explayarme más sobre el uso de frames y o dar un ejemplito. Avisen.

Saludos,
  • 0

#8 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 05 agosto 2010 - 09:10

Hola,

Pues espero que en esa lista no esté el Sargento García salteño  :D.
Les cuento, aquí en Salta hay un Sargento y justo es de apellido García y un tanto regordete y con bigote... igualito al Sargento García del Zorro. Da la casualidad que el tipo tiene 18 hijos (si, con la misma y única mujer).


No pues por acá se cuenta un chiste de un  General  que cuando le preguntaban si los 25 hijos que tenía eran con la misma, él contestaba:

claro que con la misma, pero con diferente mujer :D :D :D

Salud OS
  • 0

#9 Nikolas

Nikolas

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 604 mensajes
  • LocationMar del Plata / Bs As / Argentina

Escrito 05 agosto 2010 - 09:12

gracias por los comentarios productivos.

Resolvi la cuestion primera.
En la barra de controles / Additional / Maskedit
Permite cargar varias cosas como: telefonos, fechas, horas en distintos formatos, etc. (Tiene ejemplos para utilizar las mascaras con guiones, puntos, barras (/) )
PERFECTO PARA MI NECESIDAD!

Lo que aprendo lo voy compartiendo

Fenareth, voy a probar tu sugerencias.....mañana comento resultados


gracias!  :wink:


  • 0

#10 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 06 agosto 2010 - 12:04

Si la aplicación en cuestión no va a usar de, por sí, bases de datos, no tiene sentido usarlas sólo para garantizar un control que nos muestre entradas según el número de hijos. Y en cualquier caso, aunque las use, no le veo mucho sentido.

La opción que yo usaría sería añadir dinámicamente en tiempo de ejecución los controles necesarios para la introducción de los datos referentes a los hijos. En ese sentido, estoy totalmente de acuerdo con Delphius. Crearía un Frame con los controles de entrada necesarios para introducir los datos de un hijo, para luego crear tantas instancias del mismo como hijos precise, en tiempo de ejecución. Esto nos permite, además, controlar la estética a nuestro gusto.


Saludos.
  • 0

#11 Nikolas

Nikolas

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 604 mensajes
  • LocationMar del Plata / Bs As / Argentina

Escrito 06 agosto 2010 - 10:44

Encontre la solucion:

Implemente el control segun Fenareth  ;)
Tuve que realizar lo siguiente:

En el evento oncreate del formulario que contiene al StringGrid



delphi
  1. with StringGrid1 do
  2.   begin
  3.     // Título de las columnas
  4.     Cells[1, 0] := 'Nombre completo';
  5.   ....
  6.  
  7.     // Título de las Filas
  8.     Cells[0, 1] := '1';
  9.   ...
  10.   End



Los ... representan el resto de columnas y filas que utilice.

Luego dar ciertas propiedas para emprolijar visualmente al control

En las propiedades desde el object inspector:



delphi
  1. colcount = 5
  2. {(primera vacia, segunda nombre,....)}
  3.  
  4. fixedxcol = 1
  5. {(indica la cantidad de columnas que no tendre acceso, yo la utilice para poner
  6. las cantidad)}
  7.  
  8. fixedrows = 1
  9. {(indica la cantidad de final que no tendre acceso, yo la utilice para poner los
  10. nombre, dni, fecha de anc, escolaridad)}
  11.  
  12. {"Para aclarar esto, imaginen el excel la primera fila tiene las LETRAS ,
  13.  si utilizara fixedxcol = 2, tendria otra fila en gris para poner datos adicionales
  14. a nivel programacion; idem con las filas "}
  15.  
  16. rowcount= 15
  17. {(Cada fila representara los datos de cada hijo)}
  18.  
  19. scrollbars = svertical
  20. {(agrega barra de desplazamiento vertical, se puede optar entre: vertical,
  21. horizontal o ambas).}
  22.  
  23. options / goediting = true
  24. {(Esto me permite modificar celdas de la grilla, necesario para el ingreso de datos)}



Luego en el evento onGetEditMask



delphi
  1. //UTILIZO MASCARAS PARA COMPLETAR LAS CELDAS
  2.  
  3. if( acol = 2 ) then  Value := '000000000';
  4. {" en mi columna 2 esta el DNI de esta manera hago la mascara del ingreso
  5. si bien en argentina son 40 millones, los extranjeros tienen mas de 100 millones "}
  6.  
  7. if( acol = 3 ) then  Value := '00/00/00';
  8. {" en mi columna 3 esta la fecha de nacimiento hago la mascara del ingreso como
  9. dia/mes/año" en ese formato:
  10. dia de: 01 a 31
  11. mes de: 01 a 12
  12. año de: 00 a 99 "}
  13.  
  14. if( acol = 4 ) then  Value := '>L<L';
  15. {" en mi columna 4 esta la escolaridad con esta mascara, ingreso 2 caracteres
  16. el primero en Mayuscula
  17. el segundo en miniscula
  18. "Si o No" despues tendre que validar que sean esos pares.}



Lo que vaya aprendiendo lo iré compartiendo con la comunidad, de eso trata, no?  (b)

gracias! y pueden cerrar  (y)


  • 0

#12 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 06 agosto 2010 - 10:55

Hola Nikolas

Modifique un poco tu mensaje para colocar las etiquetas correspondientes a código Delphi.

Los hilos no se cierran, se asignan como [RESUELTO] para que los compañeros que busquen alguna solución no pierdan mas tiempo en buscar por todos los hilos. ;)

Salud OS
  • 0

#13 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 06 agosto 2010 - 10:58

Lo que vaya aprendiendo lo iré compartiendo con la comunidad, de eso trata, no?


Efectivamente, esa es la finalidad de DelphiAccess y en general de todos las comunidades existentes, todos aprendemos de todos (y)

Salud OS
  • 0




IP.Board spam blocked by CleanTalk.