[RESUELTO] Consulta Edit y otro control para ingreso de datos
#1
Escrito 05 agosto 2010 - 04:12
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.
Bueno estos serian mis problemitas...
Espero sus comentarios, ideas, sugerencias, ayudas, etc...
Gracias!
#2
Escrito 05 agosto 2010 - 04:23
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
#3
Escrito 05 agosto 2010 - 04:39
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
#4
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í....
Saludox !
#5
Escrito 05 agosto 2010 - 05:05
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.
Saludos
#6
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.
Saludos
Jajajajajajaja... bueno, él pidió comentarios, ideas, sugerencias o ayuda... tu sugerencia me parece más que válida
Saludox !
#7
Escrito 05 agosto 2010 - 09:07
Pues espero que en esa lista no esté el Sargento García salteño .
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,
#8
Escrito 05 agosto 2010 - 09:10
Hola,
Pues espero que en esa lista no esté el Sargento García salteño .
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
Salud OS
#9
Escrito 05 agosto 2010 - 09:12
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!
#10
Escrito 06 agosto 2010 - 12:04
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.
#11
Escrito 06 agosto 2010 - 10:44
Implemente el control segun Fenareth
Tuve que realizar lo siguiente:
En el evento oncreate del formulario que contiene al StringGrid
with StringGrid1 do begin // Título de las columnas Cells[1, 0] := 'Nombre completo'; .... // Título de las Filas Cells[0, 1] := '1'; ... 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:
colcount = 5 {(primera vacia, segunda nombre,....)} fixedxcol = 1 {(indica la cantidad de columnas que no tendre acceso, yo la utilice para poner las cantidad)} fixedrows = 1 {(indica la cantidad de final que no tendre acceso, yo la utilice para poner los nombre, dni, fecha de anc, escolaridad)} {"Para aclarar esto, imaginen el excel la primera fila tiene las LETRAS , si utilizara fixedxcol = 2, tendria otra fila en gris para poner datos adicionales a nivel programacion; idem con las filas "} rowcount= 15 {(Cada fila representara los datos de cada hijo)} scrollbars = svertical {(agrega barra de desplazamiento vertical, se puede optar entre: vertical, horizontal o ambas).} options / goediting = true {(Esto me permite modificar celdas de la grilla, necesario para el ingreso de datos)}
Luego en el evento onGetEditMask
//UTILIZO MASCARAS PARA COMPLETAR LAS CELDAS if( acol = 2 ) then Value := '000000000'; {" en mi columna 2 esta el DNI de esta manera hago la mascara del ingreso si bien en argentina son 40 millones, los extranjeros tienen mas de 100 millones "} if( acol = 3 ) then Value := '00/00/00'; {" en mi columna 3 esta la fecha de nacimiento hago la mascara del ingreso como dia/mes/año" en ese formato: dia de: 01 a 31 mes de: 01 a 12 año de: 00 a 99 "} if( acol = 4 ) then Value := '>L<L'; {" en mi columna 4 esta la escolaridad con esta mascara, ingreso 2 caracteres el primero en Mayuscula el segundo en miniscula "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?
gracias! y pueden cerrar
#12
Escrito 06 agosto 2010 - 10:55
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
#13
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
Salud OS