Convertir fecha y numeros consecutivos a caracter pero manteniendo la secuencias de numeros

296 views
Skip to first unread message

José Luis

unread,
Aug 12, 2013, 3:12:54 PM8/12/13
to publice...@googlegroups.com
Buenas; compañeros tengo problemas al tratar de guardar en la tabla la información que realizo en el siguiente ejemplo:

SET DATE YMD
SET CENTURY ON
dFecha=DATE()
Numero=1
N=1
FOR N=1 TO 15
    cFecha=DTOC(dFecha)
    cFecha=CHRTRAN(cFecha,"/","")
    separador="-"
    cNumero=STRTRAN(STR(Numero,5)," ","0")
    cFechaNumero=cFecha+separador+cNumero
    APPEND BLANK
    REPLACE anomesdianumero WITH cFechaNumero
    dFecha=dFecha+1
    Numero=Numero+1
NEXT

Explico lo que quiero hacer. Quiero guardar en un campo de la tabla AnoMesDiaNumero el Año, el Mes, el Día y Números Consecutivos y convertirlos a caracter antes de grabarlo en la tabla; pero manteniendo el Numero que siempre sera consecutivo, a no ser que cambie de año que comensaria la secuencia desde uno (1), es decir, 00001.

Formato de AnoMesDiaNumero = 20130812-00001

Saludos y gracias.


Nota: Si hay una forma màs simplificada y más estable que el ejemplo que expuse, seria mejor para mí.

Luis Maria Guayan

unread,
Aug 12, 2013, 3:21:40 PM8/12/13
to publice...@googlegroups.com
m.ldFecha = DATE()
FOR m.lnI = 1 TO 15
  ? DTOS(m.ldFecha) + "-" + TRANSFORM(m.lnI, "@L 99999")
  m.ldFecha = m.ldFecha + 1
ENDFOR

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

Ricardo Pina

unread,
Aug 12, 2013, 3:34:34 PM8/12/13
to Grupo VFP
Hola José Luis
 
Fecha=date()
numero=1
FOR n = 1 TO 15
cFechanumero=DTOS(Fecha) + "-" + TRANSFORM(numero, "@L 99999")
INSERT INTO tabla (anomesdianumero) VALUES (cFechanumero)
Fecha = Fecha + 1
numero = IIF(year(date())=year(fecha), numero+1, 1) 
ENDFOR
 
Saludos
--
            

                   Ricardo Pina

Desarrollo y Servicios Informáticos

                  Profesionales
               www.dsip.com.ar

 

 

edgar suarez kummers

unread,
Aug 12, 2013, 4:17:51 PM8/12/13
to publice...@googlegroups.com
A ver super genios hagamos una prueba tipo MAFALDA ...

Existen ocho formas de considerar las horas trabajadas por un empleado, a saber ....

horas diurnas
horas nocturnas
horas de día festivo diurnas
horas de día festivo nocturnas
horas extras diurnas
horas extras nocturnas
horas extras diurnas de día festivo
horas extras nocturnas de día festivo

Ahora, tengo un archivo de un lector barométrico que genera entradas y salidas, bueno, hay que depurarlo y siendo parametrizado, cuales son los festivos (lo hacen los gringos), los domingos (con DOW y CDOW), ... ahora sí,..........

La pregunta es ...para una entrada en una fecha larga y una salida en una fecha larga .... 

cuanto tiempo se debe sumar a cada uno de los ocho conceptos, no a todos obviamente, sino al que resulte afectado ..... 

Ejemplo: Ingresa un domingo a las 20:30 y sale el lunes a las 05:30 .... fijarse que si lo nocturno finaliza a las 05:00 ha tenido tres horas y media de trabajo festivo nocturno, cinco horas de trabajo nocturno, treinta minutos de trabajo diurno, pero .... si la jornada máxima es de ocho horas, hay una hora adicional que es extraordinaria, que se puede colocar como dominical festiva nocturna o diurna extraordinaria.

Lo que no hacen los lectores barométricos es que si se paga 8 dolares la hora, 35% por recargo nocturno adicional, 50% por hora extra y 100% por trabajo en festivos, la cosa se complica ....

Pregunta como se hace el avance en el tiempo para ubicar en cual de los ocho posibles periodos de tiempo se acomoda cada instante de la lectura del sistema barométrico ... 

Escucho ... todo oídos ....


Please look my LINKS --- What I offer ---








edgar suarez kummers
ingeniero electrónico
matrícula 11714
diseño de software y ensamble de cuadros de control
celular Movistar Colombia: 3176992038
celular Virgin Mobile Colombia 3192316575
telèfono fijo Bogotá: 3126100


Luis Maria Guayan

unread,
Aug 12, 2013, 4:49:19 PM8/12/13
to publice...@googlegroups.com
¿Y cual es la relación de horas trabajadas con la presión atmosférica?


Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

edgar suarez kummers

unread,
Aug 12, 2013, 5:01:40 PM8/12/13
to publice...@googlegroups.com
Muy buena respuesta Luis María Guayan.

En Estados Unidos hicieron a unos estudiantes de física esa pregunta (la de la presión atmosférica)... ¿ Cómo medir la altura de un edificio con un barómetro ... y bueno, el más simpático contestó:

Hay varias formas, la primera soltar el barómetro desde la terraza del último piso y medir el tiempo de bajada cuando se estrelle en el suelo, la otra amarrar una cuerda al barómetro y deslizar el conjunto por la terraza hasta que toque la calle y la última, darle una propina de 10 dolares al celador del edificio y preguntarle que consultando los planos diga cual es la altura.

Definitivamente existen personas jocosas.

Saludos

Please look my LINKS --- What I offer ---








edgar suarez kummers
ingeniero electrónico
matrícula 11714
diseño de software y ensamble de cuadros de control
celular Movistar Colombia: 3176992038
celular Virgin Mobile Colombia 3192316575
telèfono fijo Bogotá: 3126100




Jorge L. Florez C.

unread,
Aug 12, 2013, 5:16:24 PM8/12/13
to publice...@googlegroups.com
Muy buena pregunta Luis Maria.. jejejejejee... seguro quiso decir Biometrico y no Barometrico, pero bueno, Edgar, se supone que en el lector debe existir dos marcas (la de entrada y la de salida dentro de un mismo dia) si no encuentra la segunda marca la agregas con la ultima hora del dia (las 24 horas), luego agregas la del dia siguiente con la hora 00:00, luego sigue tu proceso normal de calculo de horas.

Saludos
Jorge Florez
Lima - Perú

edgar suarez kummers

unread,
Aug 12, 2013, 6:13:23 PM8/12/13
to publice...@googlegroups.com
Estimado Jorge:

En un reporte de algo más de 2000 registros he encontrado más de 120 inconsistencias, vale decir la persona entra pero no sale, o la persona sale pero no entra ....

De eso se trata el software, de que sus resultados sean confiables porque si les liquidas la nómina cualquiera que sea el tejemaneje del huellero, se trata de manejar dinero y en eso hay que ser muy preciso y objetivo. La empresa debe confiar en que se ahorrará dinero por inconsistencias y el trabajador de que obtiene lo justo.

Para eso, recurrí a Gauss, las progresiones a los 10 años de edad ...
Para 1000 registros hay que pasearse el archivo algo más de medio millón de veces.

Please look my LINKS --- What I offer ---








edgar suarez kummers
ingeniero electrónico
matrícula 11714
diseño de software y ensamble de cuadros de control
celular Movistar Colombia: 3176992038
celular Virgin Mobile Colombia 3192316575
telèfono fijo Bogotá: 3126100




Jorge L. Florez C.

unread,
Aug 12, 2013, 6:39:35 PM8/12/13
to publice...@googlegroups.com
Ha bueno... si la cosa es inconsistencia, todo esto cambia, porque si no puedes recuperar la marca de salida... pues no hay como saber si se fue o se quedo en la empresa, salvo que pase por un control manual a la salida y de ahi se verifique con lo que se tiene en la data del lector, claro solo la data de tus inconsistencias, otra cosa, es poner una penalidad a la personas que no marcan, veras como por arte de magia aparecen tooooodas las marcas.

Saludos
Jorge Florez
Lima - Perú

Fernando D. Bozzo

unread,
Aug 12, 2013, 7:05:51 PM8/12/13
to publice...@googlegroups.com
Edgar:

Puede que sea muy simplista lo que voy a decir, pero ¿no sería más simple si se considera que en el caso de no haber una salida fichada se considere que ha sido hasta finalizar el turno normal?


edgar suarez kummers

unread,
Aug 12, 2013, 7:25:16 PM8/12/13
to publice...@googlegroups.com
Buenas Fernando:

Te podrìa enviar los tres archivos que se generan al exportar a EXCEL, pero como existen nombres propios faltarìa a la reserva de los datos.

Creeme que para 1000 registros paseo el archivo, convertido a un ARRAY màs de medio millòn de veces, buscando la menor diferencia para un mismo empleado entre la fecha larga de entrada y la fecha larga de salida, en segundos de tiempo. 

Una vez encontrada esa menor diferencia elimino del array los dos tèrminos, el que entra y el que sale.

Finalmente me queda un ARRAY donde quedan tèrminos que tienen fecha larga de entrada pero no de salida y viceversa.

Entonces es fàcil encontrar las inconsistencias.

Ahora bien, en Colombia la normativa implica ocho formas de evaluar las horas trabajadas, yo no trabajo como tù los IF .. THEN ... ELSE ELSE IF .... porque aprendì que eso no sirve para nada cuando el problema es complejo, lo experimentè en mi exportador de datos a EXCEL de cinco SQL gràficos lògicos.

En cambio utilizo el SPAGUETTI que me criticaste ... donde digo proceso = 0 y entro en muchos 
IF THEN ... IF THEN que significan clausulas OR pero que una vez dan por cierto un dato colocan proceso = 1, con lo cual no vuelve a entrar a ningùn IF THEN porque el primero de ellos es....
IF proceso = 0 THEN

No te olvides mi amistad con la china CAIXIA ZHOU, del mismo apellido del primer ministro de MAO TSE TUNG .... es una linda chinita, amiga desde hace años ... que me ofrece hasta trabajo en china, claro si me matrificio con ella, pero ocurre que yo soy casado, con una buena mujer y tengo una hija que acaba de terminar en la Universidad.

Respecto a los chinos y a mi software ... ellos dicen que no importa el color del gato siempre que cace ratones.

La empresa que me solicitò el software y que al final se reculò, me ha hecho un favor con la idea.

Existe forma de venderlo siempre que sea muy completo, o sea a PANTALEON BERLANGA hazle un talòn por 1234 dolares y a SILOMON TOLOMEO otro de 2435 dolares ... listos ....

Saludos estimado Fernando 

Please look my LINKS --- What I offer ---








edgar suarez kummers
ingeniero electrónico
matrícula 11714
diseño de software y ensamble de cuadros de control
celular Movistar Colombia: 3176992038
celular Virgin Mobile Colombia 3192316575
telèfono fijo Bogotá: 3126100




Jorge L. Florez C.

unread,
Aug 12, 2013, 7:29:01 PM8/12/13
to publice...@googlegroups.com
Fernando, es justamente lo que le planteo a Edgar, otra cosa es validar la data, entonces si la persona no marcó la salida, pues esa inconsistencia de data debe tener un sustento documentado de su jefe inmediato superior porque el lector de huellas no es pitonizo.

Saludos
Jorge Florez
Lima - Perú
El 12 de agosto de 2013 18:05, Fernando D. Bozzo <fdb...@gmail.com> escribió:

Ricardo Pina

unread,
Aug 12, 2013, 8:15:03 PM8/12/13
to Grupo VFP
Hola Edgar
 
Yo se que va en contra de tu formación en electrónica con lo que pretendes automatizar todo, pero a mi entender en estos casos es preferible la intervención de empleado de recursos humanos a tratar de encontrar el error mínimo.
 
Saludos

edgar suarez kummers

unread,
Aug 12, 2013, 9:12:07 PM8/12/13
to publice...@googlegroups.com
Estimado Ricardo:

Por la època que yo estudiè electrònica, recièn existìan algunos computadores gigantescos en volumen pero cortos de capacidades. Nada que comparar con los actuales. Hacìamos aplicaciones en Fortran.
Luego tuve la buena fortuna de ir a USA y a Montreal (Canadà), donde el jefe de la Junta Directiva de Berol Corporation (lo màs grande del mundo en ùtiles de escritura) me dijo, en una mezcla de Alemàn e Inglès (ambos los entiendo),  porque èl era Cojo, Calvo y Viejo y ademàs muy alto y muy fuerte ...(habìa perdido una pierna por la explosiòn de una granada en la Segunda Guerra Mundial) ...
Tampoco habìa entendido yo que mi suerte con ellos dependìa de mis origenes alemanes maternos, siendo que los Berol eran algo menos poderosos que los Rockefeller, pero eran vecinos ambos a la salida norte de Nueva York, yo conocì las dos mansiones colindantes.
"Edgar, si se quiere quedar con nosotros en Canadà, adquirimos la empresa de automatismos del polaco que usted fue a conocer y que produce màquinas de ensamblaje de ùtiles de escritura y queremos que usted maneje la parte tècnica y John Reeder (gringo, colega) maneje la parte administrativa."
Estùpidamente le contestè:
"Mi padre es un hombre (Español) muy rico en Colombia y tenemos sociedad en 3 empresas y una vez que èl muera yo deberìa seguir en ese rol, le agradezco mucho su invitaciòn, pero no puedo hacerlo".
Todavìa hoy me arrepiento de semejante brutalidad cometida por mì. Mi Padre muriò, los socios traicionaron a mi familia y nos arruinaron, aunque el gestor del capital de todos era mi Padre.
Entonces me quedò la idea de las automatizaciones y solamente he hecho eso, software de PC para automatizar software de PLC y generar tarjetas de control electrònico.
Mi mejor cliente, proveedor de General Motors, me ha pagado por ùltima vez hace unos dos meses USD 1500 por cinco minutos de trabajo y lo hicieron hasta dos veces por año durante algunos 10 años. No por mi trabajo actual sino en agradecimiento a que con una màquina diseñada y construida por mì se produjeron los paneles internos de las puertas de cerca del 70% de los autos que circulan en Colombia, de aquellos producidos en Colombia, ... una màquina que les generaba màs de medio millòn de dolares mensuales de utilidad.
Entonces, como aprecias, los errores se pagan caro y no existe el futuro, el futuro es hoy.
Me cuesta trabajo conseguir clientes para automatismos, porque implica para ellos inversiones de centenares de miles de dolares, ademàs de una competencia feroz por parte de ingenieros jòvenes e inteligentes y es por eso que trato de hacer software utilitario que sea vendible, sin entrar a competir para nada con los grandes de la contabilidad.
Para el caso de los automatismos hice un software de PC durante doce años y lo probè y finiquitè en Madrid, España en 2004-2005, como empleado de http://www.jhernando.com.
Este generador de aplicaciones digitales nunca falla y me permite olvidarme de ese asunto hasta tanto no aparezca un cliente, o sea no necesito estar ducho en eso, porque mi software trabaja por mì. Creo que es un software ùnico (en el sentido pràctico, aunque las grandes corporaciones tienen de seguro sus propios generadores) y he sido felicitado por ello, una vez desde USA y otra desde Inglaterra,...,  hay que suponer que le digo en un archivo de texto, haga esto y luego aquello y zuass, genera la aplicaciòn. En los Links de esta hoja hay dos o tres ejemplos de aquello que he hecho al respecto. Claro, son circuitos lògicos muy difìciles de entender.
Como dicen por acà, esa es la verdad verdadera.
Saludos afectìsimos

Please look my LINKS --- What I offer ---








edgar suarez kummers
ingeniero electrónico
matrícula 11714
diseño de software y ensamble de cuadros de control
celular Movistar Colombia: 3176992038
celular Virgin Mobile Colombia 3192316575
telèfono fijo Bogotá: 3126100




José Luis

unread,
Aug 12, 2013, 9:46:07 PM8/12/13
to publice...@googlegroups.com
Buenas a todos. Gracias Luis Maria y Ricardo Pina por responderme.

Amigos he probado los dos ejemplos pero por pantalla el resultado es perfecto, pero cuando lo mando a guardar en la Tabla me los guarda así:

20130812-0000
20130813-0000
20130814-0000
20130815-0000
20130816-0000
20130817-0000
20130818-0000
20130819-0000
20130820-0000
20130821-0001
20130822-0001
20130823-0001
20130824-0001
20130825-0001
20130826-0001

He tratado de varias maneras y no he conseguido aún guardarlo en la tabla a como lo muestra por pantalla, que es lo correcto.

Si puede explicar, por favor, se los agradecería.

Saludos y gracias.


Ricardo Pina

unread,
Aug 12, 2013, 10:04:51 PM8/12/13
to Grupo VFP
Hola Jose Luis
 
Primero perdón por haber bifurcado tu hilo.
El tema es que se esta omitiendo el último caracter, o agrandas el campo o simplemente achicas en un dígito el TRANSFORM(numero, "@L 9999").
 
Saludos

Ricardo Pina

unread,
Aug 12, 2013, 10:09:06 PM8/12/13
to Grupo VFP
Hola Edgar
 
En el tema de Recursos Humanos, tienes dos posibilidades (0 ó 1) :-)
No, en serio o interviene un operador a salvar intangibles o tienen precargado un protocolo de contingencias si quieren automatizar todo el proceso.
 
Saludos

José Luis

unread,
Aug 12, 2013, 10:32:49 PM8/12/13
to publice...@googlegroups.com
Hola Ricardo Pina, gracias nuevamente amigo por responder.

Sí era eso el inconveniente pero a nivel del campo de la tabla que lo tenía con una longitud de 13 y no me había percatado que son 14 ya que había agregado un (1) carácter más que es el guion " - " que separa la fecha del número, por ejemplo: 20130812-00001. Ya veo que es mejor que me despegue del equipo y me ponga a descansar porque me doy cuenta que estoy fundido (cansado).

Gracias y saludos.

Luis Maria Guayan

unread,
Aug 13, 2013, 9:30:39 AM8/13/13
to publice...@googlegroups.com
bla bla bla

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

elkin dario uribe torres

unread,
Aug 13, 2013, 12:24:22 PM8/13/13
to publice...@googlegroups.com
Buenos dias Edgar

Para lo que planteas debes tener como minimo las siguientes tablas

- Turnos
- Festivos (diferentes a los domingos)
- Tolerancias de entrada y salida (recuerda que por lo general el personal marca antes de comenzar la labor y despues de terminarla)
- Rangos tipos de horas y recargos (para comparar los horarios con estos)

Ya con estas tablas comenzarias a comparar (estamos hablando de registros buenos o corregidos) los horarios de entrada y salida, para despues determinar los ocho estados de los tipos de horas a saber con sus respectivos recargos como son:

- HOD Hora Ordinaria Diurna (6 - 22) sin festivos
- HON Hora Ordinaria Nocturna (22 - 6) sin festivos
- HODF Hora Ordinaria Diurna Festiva (6 - 22) Los Domingos y festivos 
- HONF Hora Ordinaria Nocturna Festiva  (22 - 24) Los Domingos y festivos y (0 - 6) cuando es un sabado amanecer domingo o cuando sigue un festivo
- HED Hora Extra Diurna
- HEN Hora Extra Nocturna
- HEDF Hora Extra Diurna Festiva
- HENF Hora Extra Nocturna Festiva

Cuando preguntas 'Pregunta como se hace el avance en el tiempo para ubicar en cual de los ocho posibles periodos de tiempo se acomoda cada instante de la lectura del sistema barométrico..'

Primero deberias determinar 

- Cuantas horas hay entre la fecha de inicio y terminacion (en esta caso son 9 horas)
- Que dia de la semana es (es un sabado y por consiguiente no es festivo ni dominical)
- Cual es la hora de inicio (20:30) lo que me indica segun los datos arriba expuestos que comenzo con HOD (ya que inicio antes de las 22)

No se si este analisis te sirva de algo, pero si te comento que para poder liquidar una nomina por medio de un reloj Biometrico se necesita un software que estas desarrollando y una persona de recurso humanos para revisar las inconsistencias que arroja el reloj (marcaciones que no se efectuan, permisos, retardos, licencias, incapacidades, etc).

Saludos


Elkin Uribe

edgar suarez kummers

unread,
Aug 13, 2013, 1:22:36 PM8/13/13
to publice...@googlegroups.com, eduri...@gmail.com
Buenas Elkin:

Gracias por dedicarle tiempo a mi consulta, te comento que lo quiero llevar el software hasta la liquidaciòn final de la nòmina entre un rango de dos fechas.
La razòn para hacerlo asì es que dispongo de un manual en PDF de un fabricante americano de lectores biomètricos y hacen casi todo dentro de su software, es muy completo.
Eso me lleva a concluir que se tiran balazos de pòlvora a gallinazos en este tema si se pretende desde el VFP leer las huellas digitales y hacer los reportes, cuando los gringos ya lo venden hecho.

Lo que ellos no hacen es decir FULANO DE TAL devengò entre este dìa y este otro tantos $$$$

Y no lo hacen porque no conocen las regulaciones de cada paìs, por el resto lo hacen casi todo.

Gracias infinitas por tu tiempo dedicado.

Saludos

Edgar Suàrez Kummers

Reply all
Reply to author
Forward
0 new messages