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

Búsqueda en los foros

Foros en Udias.com / FileMaker / Números secuenciales
Autor Mensaje

Miembro

Habitual

  Karma       54

#1 Publicado: 3 Abr 2008 12:16



Hola chicos!

Va a ser que después de varios intentos no me entero cómo tiene que estar planteada la fórmula para que la BDD respete los números secuenciales...

- El formato del número secuencial tendría que ser: A-S-XXXX
- Por tanto, al crear el primer registro el resultado sería A-S-0001, y así sucesivamente

La fórmula que tengo es la siguiente (pero tan sólo me respeta la condición del primer registro):

Let
(
//Defineix aquí el format per a la primera separata.
$PrimeraF = "0001"
//
;

Case (

// Si és la primera separata, li donem el valor " A-S-0001".
Get ( TotalRecordCount ) < 2 ;("A-S-" & $PrimeraF) ;


// Si no és la primera separata, li donem el valor més alt + 1.
"A-S-" & Right (GetAsNumber ( Max (cdu::cdu)) + 1 ; Length ( $PrimeraF ))

)
)


Muchas gracias!


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

Administrador


  Karma               26243

#2 Publicado: 3 Abr 2008 12:34



Forma de la función CASE

CASE (
condición 1; resultado1;
condición 2; resultado2;
...
...
condición n; resultadon;
resultado por defecto

)

En tu caso

CASE (
condición 1; resultado1; ---> Get ( TotalRecordCount ) < 2;("A-S-" & $PrimeraF)
condición 2; resultado2;
...
...
condición n; resultadon; ---> falta condición "A-S-" & Right (GetAsNumber ( Max (cdu::cdu)) + 1
resultado por defecto ---> Length ( $PrimeraF )

)

Lo que has puesto no me cuadra con el case.
puedes utilizar un if de la siguiente forma

if (

Get ( TotalRecordCount ) < 2 ;
("A-S-" & $PrimeraF) ;
"A-S-" & Right (GetAsNumber ( Max (cdu::cdu)) + 1

)



Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Habitual

  Karma       54

#3 Publicado: 4 Abr 2008 10:23



Pero entonces cómo tendría que estar planteada la fórmula... me marca error...

"En esta función no hay suficientes parámetros"

Let
(
//Defineix aquí el format per a la primera separata.
$PrimeraF = "0001"
//
;

if (

Get ( TotalRecordCount ) < 2 ;
("A-S-" & $PrimeraF) ;
"A-S-" & Right (GetAsNumber ( Max (cdu::cdu Copiar)) + 1

))


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

Administrador


  Karma               26243

#4 Publicado: 4 Abr 2008 11:21



Mira la estructura de la función let, que es la que te está dando error, ya que el If está bien.

Juan Carlos


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro


  Karma               4399

#5 Publicado: 4 Abr 2008 17:16 - Editado por: Perezoso



Prueba esta variante:

Let
(
//Defineix aquí el format per a la primera separata.
$PrimeraF = "0001"
//
;

Case (

// Si és la primera separata, li donem el valor " A-S-0001".
Get ( TotalRecordCount ) < 2 ;("A_S_" & $PrimeraF) ;


// Si no és la primera separata, li donem el valor més alt + 1.
"A_S_" & Right ( "0000000" & Max (cdu::cdu) + 1; Length ( $PrimeraF ) )
)
)


El problema principal es que no se puede utilizar el carácter "-" ya que es interpretado como un "menos" y la función Max() interpreta esos números como negativos.

Otra cosa importante es hacer que la relación utilizada en Max () esté viendo TODOS los registros para determinar cual es el más alto ... debe estar hecha de esta manera:

cdu ... X ... cdu

Nótese que hay que utilizar la "X" en vez del "=" como operador en la definición de la relación.


De todas formas, es posible hacerlo de otro modo: puedes utilizar como NÚMERO SECUENCIAL la cadena: "A-S-1" con incremento de "1" ... esto no te coloca los ceros a la izquierda del número, pero te va creando una numeración del tipo:

A-S-1 ... A-S-2 ... A-S-3 ... A-S-4 ... etc.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Soy todo oidos ;-) Ubuntu & Win XP # FileMaker: 5 - 10

Miembro

Habitual

  Karma       54

#6 Publicado: 7 Abr 2008 10:22



Gracias por la ayuda!

Desconocía la interpretación que hacía del programa del (-)...

Buen inicio de semana!


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows Xp, Filemaker 6 y 8
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 Números secuenciales

Numeros Secuenciales
Numeros Secuenciales Especiales
eliminación de registros con números secuenciales
Numeros secuenciales se brincan la numeración...
creacion de campos secuenciales


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

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