Apúntate a la Zona De Descargas Reservadas (ZDDR). Solo son 20 Euros
Con solo 20€ ayudarás
a mantener el foro.


Seguir a udias en Twitter
Directorio de Empresas de Foros de informática


Todo lo que sueñas, se puede diseñar.
We build your dreams.

 - Principal - Responder - Estadísticas - Registrarse - Buscar - Lista de usuarios -  - Zona de Descargas
 -Privacidad y política de cookies -
Ayuda al foro con tu donación
Foros en Udias.com / FileMaker / Añadir numeración en campo calculado con mes y año
Autor Mensaje

Moderador


  Karma               2544

#1 Publicado: 10 May 2015 20:08 - Editado por: Alatriste



Tengo esta cuestión que no le encuentro modo de resolver.

Tengo un campo llamado "Historial Automático" que me da MAY15 pero necesito que quede así MAY1501

Donde MAY es el mes en curso del año (con 3 letras)
15 es el año 2015 en curso o el que sea (con 2 nº)
Y me falta añadir 2 dígitos empezando por 01 por cada nuevo registro, con la salvedad de que al cambiar de mes en curso vuelve la numeración a empezar con el 01

Debe quedar así si es el primer registro: MAY1501
El siguiente registro sería así: MAY1502
El siguiente MAY1503
Al cambiar de mes: JUN1501
El siguiente registro sería así: JUN1502
El próximo año el primer registro sería: ENE1601
...

Necesito que el serial se complete y vaya cambiando con cada nuevo registro.
EL campo Historial Automático ya me da el mes actual y el año actual: MAY15, lo he puesto de cálculo con resultado texto y recalcular cuando sea necesario:

Upper ( Middle ( MonthName ( Get ( CurrentDate )) ; 0; 3 ) )
&
Right (Year ( Get (CurrentDate)) ; 2)

¿Pueden ayudarme a completar esa formula para conseguir lo que busco? Dejo archivito en FM13 de ejemplo por si es necesario.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Si te fue de utilidad el foro, valoralo y hazte forero VIP, tu nombre de usuario será verde mostrando que aportas ayuda.
Hacerte VIP es necesario para mantenerlo abierto, recuerda que el foro vive sin ayuda de FileMaker y sus distribuidores oficiales.
W10 Pro x64 - FM Advanced v17 (x64)

Moderador


  Karma               2544

#2 Publicado: 10 May 2015 20:13 - Editado por: Alatriste



espero que ahora se suba el ficherito de ejemplo

EDITO, a costado pero ya lo subí

Historial_Automatico.zipArchivo adjunto: Historial_Automatico.zip
 

Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Si te fue de utilidad el foro, valoralo y hazte forero VIP, tu nombre de usuario será verde mostrando que aportas ayuda.
Hacerte VIP es necesario para mantenerlo abierto, recuerda que el foro vive sin ayuda de FileMaker y sus distribuidores oficiales.
W10 Pro x64 - FM Advanced v17 (x64)

Moderador

Adicto

  Karma               1285

#3 Publicado: 11 May 2015 00:54



Yo no lo haría como campo calculado sin almacenar, porque en cuanto cambie el mes se te va cambiar todo. Lo puedes hacer como un cálculo de autointroducción, como en el siguiente ejemplo:

Historial_Automatico.rarArchivo adjunto: Historial_Automatico.rar
 

Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 8 y Filemaker 11

Moderador


  Karma               2544

#4 Publicado: 11 May 2015 09:11



JotaEme:
Yo no lo haría como campo calculado sin almacenar, porque en cuanto cambie el mes se te va cambiar todo. Lo puedes hacer como un cálculo de autointroducción

Veo entonces que mi planteamiento inicial no era el correcto.

GRACIAS por tu ayuda, lo has resuelto.
He visto que has usado esta formulación en el campo Automático:

Let([
Inicio=Upper ( Left ( MonthName ( Get ( CurrentDate )) ; 3 ) ) & Right (Year ( Get (CurrentDate)) ; 2);
Lista= ExecuteSQL("SELECT Automatico FROM Historial WHERE Prefijo=? ORDER BY Automatico ASC";"";"";Inicio)];
If(Lista ≠ "";Inicio & Right("00" & GetAsNumber(Right(GetValue(Lista;ValueCount(Lista) );2))+1;2 ) ;Inicio & "01" ))

¿Puedes explicarme lo que dice? me pierdo cuando llego a lo del SQL.
Y gracias otra vez.

Nota personal para JotaEme: tio, deberías en tus ratos libres trabajar para la NASA


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Si te fue de utilidad el foro, valoralo y hazte forero VIP, tu nombre de usuario será verde mostrando que aportas ayuda.
Hacerte VIP es necesario para mantenerlo abierto, recuerda que el foro vive sin ayuda de FileMaker y sus distribuidores oficiales.
W10 Pro x64 - FM Advanced v17 (x64)

Moderador


  Karma               2544

#5 Publicado: 11 May 2015 10:10 - Editado por: Alatriste



JotaEme me ha surgido un error al trasladar la formulación a mi BD con el cambio de campos y tipo de campo. Al crear un nuevo registro me aparece un signo de interrogación al final, asi:MAY150?
He remirado y no le encuentro explicación y menos como solucionarlo, ¿que puede estar pasando?


Nota, en tu archivito solucionado funciona perfectamente, he probado incluso borrandole todos los registros y funciona bien al crearle uno nuevo.


IMPORTANTE, La solución aportada por JotaEme incluso recupera el ultimo nº borrado de una forma sencilla, elegante e ingeniosa.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Si te fue de utilidad el foro, valoralo y hazte forero VIP, tu nombre de usuario será verde mostrando que aportas ayuda.
Hacerte VIP es necesario para mantenerlo abierto, recuerda que el foro vive sin ayuda de FileMaker y sus distribuidores oficiales.
W10 Pro x64 - FM Advanced v17 (x64)

Miembro

Constante

  Karma           394

#6 Publicado: 11 May 2015 10:58



Hola, chicos. Aunque ya está resuelto, me gustaría ver la explicación de JotaEme, como ha pedido Alatriste. Yo tampoco me llevo nada bien con SQL, me parece chino.

Por otro lado, estoy intentando solucionarlo con otro cálculo. Creo que no voy mal del todo, pero necesito saber qué función usar para obtener el número de registros de un conjunto encontrado. He pensado en hacer un script que haga una búsqueda por las iniciales del mes y añada al final el número de registros hallados a la secuencia que pide Alatriste. Tengo claro que saldría un cálculo mucho más largo, menos elegante y menos eficiente que el de JotaEme, pero me hace ilusión.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Siempre agradecido por vuestra inestimable ayuda. Mac OSX High Sierra - FM Pro Advanced 16

Moderador


  Karma               2544

#7 Publicado: 11 May 2015 11:03



cachulo2008:
Aunque ya está resuelto

esta resuelto en el ejemplo de JotaEme pero al trasladarlo a mi BD me da ese error que dije del signo ? y estoy mirando todo y no le encuentro donde fallo al trasladar la solución, pero la cosa es que a JotaEme le funciona.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Si te fue de utilidad el foro, valoralo y hazte forero VIP, tu nombre de usuario será verde mostrando que aportas ayuda.
Hacerte VIP es necesario para mantenerlo abierto, recuerda que el foro vive sin ayuda de FileMaker y sus distribuidores oficiales.
W10 Pro x64 - FM Advanced v17 (x64)

Moderador

Adicto

  Karma               1285

#8 Publicado: 11 May 2015 14:18



El cálculo de introducción declara 2 variables:

- Inicio: Ya lo sabes, la tres primeras letras del mes en curso más los 2 últimos dígitos del año en curso

- Lista: La función ExecuteSQL crea una lista del campo "Automático" de todos los registros de la tabla donde el Campo Prefijo (lo mismo que Inicio, pero almacenado cuando se creó el registro) es igual a la variable "Inicio", y los ordena en sentido ascendente.

May1501
May1502
May1503
...

Sin en esa lista hay valores, coge el último valor y le suma a los 2 últimos dígitos un uno. Si no hay valores coge el mes y el año actual (osea, la variable "Inicio" y le añade un "01")

Recordar que el el argumento SELECT de la función no se permiten caracteres prohibidos, como espacios, acentos... Si no funciona probad a meter los nombres de campo y tablas que aparezcan dentro del SELECT entre \". Por ejemplo:

ExecuteSQL("SELECT Automatico FROM Historial WHERE Prefijo=? ORDER BY Automatico ASC";"";"";Inicio)

pasaría a ser

ExecuteSQL("SELECT \"Automatico\" FROM \"Historial\" WHERE \"Prefijo\"=? ORDER BY \"Automatico\" ASC";"";"";Inicio)


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 8 y Filemaker 11

Moderador

Adicto

  Karma               1285

#9 Publicado: 11 May 2015 14:31



cachulo2008:
necesito saber qué función usar para obtener el número de registros de un conjunto encontrado

Prueba Get(FoundCount)


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 8 y Filemaker 11

Moderador


  Karma               2544

#10 Publicado: 11 May 2015 14:34 - Editado por: Alatriste



JotaEme:
Recordar que el el argumento SELECT de la función no se permiten caracteres prohibidos, como espacios, acentos...

Pues como siempre, diste en la solución, el error era que en el nombre de un campo de mi BD tenía puesto un acento, se lo he quitado y FUNCIONA todo bien.

¡¡Un p..o acento me estaba jorobando la formulación!! he tenido que copiar y pegar los nombres de los campos en un documento de texto y ampliarlos a letra grande para poder verlo.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Si te fue de utilidad el foro, valoralo y hazte forero VIP, tu nombre de usuario será verde mostrando que aportas ayuda.
Hacerte VIP es necesario para mantenerlo abierto, recuerda que el foro vive sin ayuda de FileMaker y sus distribuidores oficiales.
W10 Pro x64 - FM Advanced v17 (x64)

Moderador


  Karma               2544

#11 Publicado: 11 May 2015 14:40



JotaEme:
cachulo2008:
necesito saber qué función usar para obtener el número de registros de un conjunto encontrado

Prueba Get(FoundCount)

Si, en un campo de cálculo, con resultado numérico y sin almacenar. Yo lo suelo usar y mucho. Me gusta dar esa info después de hacer una búsqueda sin que se vea la barra de herramientas.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Si te fue de utilidad el foro, valoralo y hazte forero VIP, tu nombre de usuario será verde mostrando que aportas ayuda.
Hacerte VIP es necesario para mantenerlo abierto, recuerda que el foro vive sin ayuda de FileMaker y sus distribuidores oficiales.
W10 Pro x64 - FM Advanced v17 (x64)

Moderador

Adicto

  Karma               1285

#12 Publicado: 11 May 2015 17:36



Alatriste:
¡¡Un p..o acento me estaba jorobando la formulación!!

Jajaja, para uno que pone tildes....

Me alegro que te haya servido.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 8 y Filemaker 11

Miembro

Constante

  Karma           394

#13 Publicado: 11 May 2015 18:31



¿Veis? A mí lo que me está jodiendo es ser de letras. A partir de ahora, muerte a las tildes.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Siempre agradecido por vuestra inestimable ayuda. Mac OSX High Sierra - FM Pro Advanced 16

Miembro

Constante

  Karma           394

#14 Publicado: 12 May 2015 11:59



JotaEme, tengo un problema con la función Get ( FoundCount ) que me has sugerido.

He probado dos funciónes Get(FoundCount) y Get(TotalRecordCount), pero ninguna funciona o yo hago algo mal. En el archivo de ejemplo hay creados 29 registros y he hecho una búsqueda que ofrece 17 registros encontrados, pero el resultado de la función Get(FoundCount) da 13 y el de Get(TotalRecordCount) da 28. Yo quiero que muestre lo mismo que muestra filemaker, es decir, 17 / 29.
¿Podrías echarle un vistazo?

omitir_duplicados.fm.Archivo adjunto: omitir_duplicados.fm.
 

Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Siempre agradecido por vuestra inestimable ayuda. Mac OSX High Sierra - FM Pro Advanced 16

Moderador


  Karma               2544

#15 Publicado: 12 May 2015 12:24 - Editado por: Alatriste



Para cachulo2008 no me lees
Alatriste:
Si, en un campo de cálculo, con resultado numérico y sin almacenar. Yo lo suelo usar y mucho. Me gusta dar esa info después de hacer una búsqueda sin que se vea la barra de herramientas.

En tu archivito:
En el campo que tiene la función Get ( FoundCount ) solo he marcado lo de "NO ALMACENAR, RECALCULAR CUANDO SEA NECESARIO..." y listo, funciona bien esa función.
El campo con la función Get ( TotalRecordCount ), quitale lo de global y marca lo de "NO ALMACENAR, RECALCULAR CUANDO SEA NECESARIO..."
El campo con la función Get(RecordOpenCount) , quitale lo de global y marca lo de "NO ALMACENAR, RECALCULAR CUANDO SEA NECESARIO..."

omitir_duplicados_So.fmArchivo adjunto: Tu_archivito
 

Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Si te fue de utilidad el foro, valoralo y hazte forero VIP, tu nombre de usuario será verde mostrando que aportas ayuda.
Hacerte VIP es necesario para mantenerlo abierto, recuerda que el foro vive sin ayuda de FileMaker y sus distribuidores oficiales.
W10 Pro x64 - FM Advanced v17 (x64)

Miembro

Constante

  Karma           394

#16 Publicado: 12 May 2015 13:57



Sí te leo Alatriste, creeme. Marqué la opción de almacenamiento global porque no me funcionaba y pensaba que era ese el problema. Date cuenta de que el archivo sobre el que lo hice fue el del ejemplo y la opción global no estaba activada. Despistado que es uno.

¡Voto para el Capitán!


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Siempre agradecido por vuestra inestimable ayuda. Mac OSX High Sierra - FM Pro Advanced 16

Moderador


  Karma               2544

#17 Publicado: 18 May 2015 14:57



Es un mensaje para JotaEme, con lo contento que andaba yo con tu solución y resulta que tras implementarla en mi BD funcionaba el campo bien pero tras importar los datos del cliente que tenía (el hombre metía a mano esos datos del mesañonumero a mano) en ese campo resulta que ya no funciona la solución que me diste, he remirado y remirado y no consigo hacer que meta bien los datos que queremos automáticamente ese campo.

¿puedes darme algún consejo dónde mirar/hacer?


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Si te fue de utilidad el foro, valoralo y hazte forero VIP, tu nombre de usuario será verde mostrando que aportas ayuda.
Hacerte VIP es necesario para mantenerlo abierto, recuerda que el foro vive sin ayuda de FileMaker y sus distribuidores oficiales.
W10 Pro x64 - FM Advanced v17 (x64)

Miembro

Constante

  Karma           453

#18 Publicado: 18 May 2015 16:06



Creo que se podría hacer cambiando el formato de los datos que tienes del cliente
¿Con qué formato te llegan los datos? ¿Y qué formato necesitas?


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
MacOSX / W10 / FM13

Moderador

Adicto

  Karma               1285

#19 Publicado: 18 May 2015 18:07



Pues a simple vista, sin profundizar mucho, el problema lo veo en el campo que almacena los primeros 4 dígitos del campo clave (en el ejemplo, "Prefijo"), que es un campo de cálculo y que sirve para luego hacer una lista de los automático generados para un mes y año. El campo Automático no es problema, porque al importar basta con decir que no se realicen los cálculos automáticos.
Así en principio se me ocurre la posibilidad de crear el campo Prefijo en la tabla del cliente, con un cálculo que saque lo primeros 4 dígitos del Automático, y que no se actualizaría al importar.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 8 y Filemaker 11

Moderador


  Karma               2544

#20 Publicado: 18 May 2015 18:51



JotaEme:
El campo Automático no es problema, porque al importar basta con decir que no se realicen los cálculos automáticos.

Si, así lo hice cuando importé los datos.
JotaEme:
Así en principio se me ocurre la posibilidad de crear el campo Prefijo en la tabla del cliente, con un cálculo que saque lo primeros 4 dígitos del Automático, y que no se actualizaría al importar.

No entiendo, cuando importé los datos, no seleccioné en el momento de importar la opción de activar los automatismos, lo que hice fue importar los datos tal cual. Ya después active los automatismos como el ID poniendo el ultimo que traía + 1, etc


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Si te fue de utilidad el foro, valoralo y hazte forero VIP, tu nombre de usuario será verde mostrando que aportas ayuda.
Hacerte VIP es necesario para mantenerlo abierto, recuerda que el foro vive sin ayuda de FileMaker y sus distribuidores oficiales.
W10 Pro x64 - FM Advanced v17 (x64)

Moderador

Adicto

  Karma               1285

#21 Publicado: 18 May 2015 20:07



¿Has visto el resultado del campo Prefijo en los registros importados?.
Aunque importes un registro donde el automático tenga introducido a mano AGO1403, el campo Prefijo va a resultar MAY15 (si lo has importado este mes) en vez de AGO14, pues está definido así el cálculo. Y de ahí vienen los problemas.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 8 y Filemaker 11

Moderador


  Karma               2544

#22 Publicado: 19 May 2015 09:43 - Editado por: Alatriste



JotaEme:
¿Has visto el resultado del campo Prefijo en los registros importados?.
Aunque importes un registro donde el automático tenga introducido a mano AGO1403, el campo Prefijo va a resultar MAY15 (si lo has importado este mes) en vez de AGO14, pues está definido así el cálculo. Y de ahí vienen los problemas.

Ahí las dao pues si, el campo que tu llamaste Prefijo, en mi BD tras la importación contenía todos los registros "MAY15" tal como dices. Y me diste la clave.

Lo he solucionado así.
Primero cambié el tipo de campo de Prefijo, pasándolo de calculo a texto
Después borre el contenido del campo Prefijo en todos los registros de mi BD.
Hice un guión con un Loop que importa las 5 primeras letras desde Automatico a Prefijo en todos los registros.

Ejecuté el guión y ahora FUNCIONA bien tu solución. Al crear un nuevo registro mete bien en el campo Automatico la referencia del MESAÑONUMERO

El campo Prefijo lo he dejado como campo de texto con valor calculado con la misma formula y no permite reemplazar. (si lo volvía a poner como campo de calculo volvía el contenido de todos los registros a MAY15, por lo que se reproducía el mismo error)
He probado cambiando la fecha del ordenador y funciona también bien.

Como siempre, diste con la clave de la cuestión. GRACIAS MIL por tu ayuda.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Si te fue de utilidad el foro, valoralo y hazte forero VIP, tu nombre de usuario será verde mostrando que aportas ayuda.
Hacerte VIP es necesario para mantenerlo abierto, recuerda que el foro vive sin ayuda de FileMaker y sus distribuidores oficiales.
W10 Pro x64 - FM Advanced v17 (x64)
Su respuesta

Estilo Negrillas  Estilo Italico  Estilo Subrayado  URL De La Imagen  URL De La Web  Preformatted Text  YouTube URL  Sin código BB
Emoticones
:) ;) :up: :down: :biglol: :confused :cool: :mad: :sad: :shame: :smirk: :tongue: ... Más  Emoticones desactivados
Color de texto
Texto en negro Texto en blanco Texto en gris Texto en rojo Texto en azul Texto en verde Texto en rojo oscuro Texto en cian Texto en azul oscuro Texto en púrpura Texto en amarillo Texto en rosa Texto en naranja Texto en verde oliva Texto en marrón



 » Usuario  » Contraseña 
Solo Usuarios Registrados Pueden Postiar Aqui.
 

Tópicos relacionados con Añadir numeración en campo calculado con mes y año

Añadir un paréntesis a lo que devuelve if (campo calculado)
Campo calculado. Añadir extensión ENTRE PARÉNTESIS a nombre compuesto.
cambio de color en un campo calculado, segun condicion de otro campo
Ver imagen en campo contenedor vinculado desde campo calculado
No puedo añadir PDF a campo contenedor


Conectados: Invitados - 13
Miembros - 0
En verde usuarios ZDDR

Realizado con miniBB © 2001-2018
Para Udias.com © 1996-2018
Hosting con Interdominios