Formato

Discute sobre las herramientas de la base de datos
Responder
karret
Mensajes: 36
Registrado: Lun Ene 19, 2009 4:12 pm

Formato

Mensaje por karret »

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
QuazzieEvil
Mensajes: 99
Registrado: Sab Dic 13, 2008 6:45 pm

Re: Formato

Mensaje por QuazzieEvil »

no se como se dicen los nombres en español, pero aqui esta:

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
Ejemplo:

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'
karret
Mensajes: 36
Registrado: Lun Ene 19, 2009 4:12 pm

Re: Formato

Mensaje por karret »

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 :?:
QuazzieEvil
Mensajes: 99
Registrado: Sab Dic 13, 2008 6:45 pm

Re: Formato

Mensaje por QuazzieEvil »

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

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.
karret
Mensajes: 36
Registrado: Lun Ene 19, 2009 4:12 pm

Re: Formato

Mensaje por karret »

Muchas gracias por tu ayuda te lo has currado si señor ;)
QuazzieEvil
Mensajes: 99
Registrado: Sab Dic 13, 2008 6:45 pm

Re: Formato

Mensaje por QuazzieEvil »

CORRECCIÓN: el evento que debes usar es 'Before Record Action'
Responder