Hola me gustaría saber si puedo agregar un formato especifico de la manera siguiente:
Primero pongo un texto "F" luego un número # y luego otro caracter "/" quedando de
la siguiente forma F000/ pero lo siguiente que quiero poner es el año para que quedara
de la siguiente forma F000/09 y cuando se termine el año que detecte el año que viene
y que me ponga el contador a cero otra vez osea ejemplo hay 150 facturas de año 2008
F001/08-F150/08 Bueno pues ha hora empezaríamos F000/09 no se si me explicado
bien, todo esto es para una llave primaria que sea automática pero con un formato
especifico.
Un saludo y gracias
Formato
-
- Mensajes: 99
- Registrado: Sab Dic 13, 2008 6:45 pm
Re: Formato
no se como se dicen los nombres en español, pero aqui esta:
usa un [Pattern Field] . Este tiene tres propiedades que modificar:
Para definir el formato: 'F', seguido por 4 números, seguido por '/' seguido por dos números,
el Edit Mask seria LNNNNLNN y el Literal Mask seria F____/__.
L indica un caracter constante, y N indica números.
para cualquier letra usa 'a', 'A' para mayúsculas, 'c' para minúsculas y números, 'C' para mayúsculas y números, 'x' para todos los caracteres imprimibles, y 'X' también para todos los caracteres imprimibles, pero minúsculas son convertidas a mayúsculas.
no olvides seleccionar Si para la propiedad 'Formato Estricto'
usa un [Pattern Field] . Este tiene tres propiedades que modificar:
- Edit Mask--este indica que caracteres serán validos (Letra, Numero, o carácter especifico)
Literal Mask--este indica los caracteres específicos, y el lugar
Formato Estricto--Si/No al seleccionar Si, el cambo solo acepta caracteres validos
Para definir el formato: 'F', seguido por 4 números, seguido por '/' seguido por dos números,
el Edit Mask seria LNNNNLNN y el Literal Mask seria F____/__.
L indica un caracter constante, y N indica números.
para cualquier letra usa 'a', 'A' para mayúsculas, 'c' para minúsculas y números, 'C' para mayúsculas y números, 'x' para todos los caracteres imprimibles, y 'X' también para todos los caracteres imprimibles, pero minúsculas son convertidas a mayúsculas.
no olvides seleccionar Si para la propiedad 'Formato Estricto'
Re: Formato
Gracias por responder tan rapido pero el problema lo tengo después de poner F000/09<--- estos dígitos
pertenecen al año en el que este en ese momento osea que sea automático.
La celda que tiene la llave clave es [INTIGER] debería funcionar automáticamente con la numeración
osea que pusiera F001/09 luego la siguiente entrada F002/09 y así hasta que llegara a
a al número que cambiara de año y se reiniciaria a F001/10
O yo me estoy equivocando totalmente
pertenecen al año en el que este en ese momento osea que sea automático.
La celda que tiene la llave clave es [INTIGER] debería funcionar automáticamente con la numeración
osea que pusiera F001/09 luego la siguiente entrada F002/09 y así hasta que llegara a
a al número que cambiara de año y se reiniciaria a F001/10
O yo me estoy equivocando totalmente

-
- Mensajes: 99
- Registrado: Sab Dic 13, 2008 6:45 pm
Re: Formato
ah, bueno. creo que tendrias que usar una macro the BASIC.
para obtener la parte F000, puedes contar los records del añol actual. esto te daria el numero (1,2,3,etc) y le agregas al 'F' el principio. la columna no puede ser INTEGER, tiene que ser texto/VARCHAR
los datos de este cambo los puedes crear con un macro en el evento ''Before Record Action'' de el formualrio. Algo de este esilo
para obtener la parte F000, puedes contar los records del añol actual. esto te daria el numero (1,2,3,etc) y le agregas al 'F' el principio. la columna no puede ser INTEGER, tiene que ser texto/VARCHAR
los datos de este cambo los puedes crear con un macro en el evento ''Before Record Action'' de el formualrio. Algo de este esilo
Código: Seleccionar todo
Sub form_BeforeRecordAction(Event As Object)
Dim Form As Object
Dim strSQL As String
Dim Result As Object
Dim strYear As String
Dim Stmt As Object
Dim strCount As String
Dim strID As String
'GlobalScope.BasicLibraries.LoadLibrary("MRILib")
Form=Event.Source
If Event.Action<>1 Or Form.ImplementationName<>"com.sun.star.comp.forms.ODatabaseForm" Then
REM EXIT IF NOT INSERT ON FORM
Exit Sub
End If
'MsgBox Event.Action & ";" & Form.ImplementationName
Stmt=Form.ActiveConnection.createStatement()
strSQL="SELECT COUNT( ID ) + 1 AS NEXT FROM Table1 AS Table1 WHERE YEAR( DOB ) = " & Year(Now)
Result=Stmt.executeQuery(strSQL)
Result.next()
strCount=Result.getInt(1)
If CInt(strCount)<10 Then
strCount="00" & strCount
ElseIf CInt(strCount) <100 Then
strCount="0" & strCount
End If
strYear=Year(Now)
strID="F" & strCount & "/" & Right(strYear,2)
Form.Columns.getByName("SEQID").updateString(strID) 'WRITE TO SEQ COLUMN
End Sub
Última edición por QuazzieEvil el Mar Ene 20, 2009 2:33 pm, editado 1 vez en total.
Re: Formato
Muchas gracias por tu ayuda te lo has currado si señor 

-
- Mensajes: 99
- Registrado: Sab Dic 13, 2008 6:45 pm
Re: Formato
CORRECCIÓN: el evento que debes usar es 'Before Record Action'