FoxPro/Visual FoxPro - Consulta- SEEK -

 
Vista:
sin imagen de perfil

Consulta- SEEK -

Publicado por victor perez (278 intervenciones) el 11/09/2010 22:47:00
Estimados amigos,

Tengo una base de datos que tiene entre sus campos CODCLI (C,10) y FACTURA (C,10)

Uno de los indices es: CodCli + Factura con el TAG name de CLIENTE.

Tengo el siguiente codigo:

Use BASE_DE_DATOS in 0 Alias X
Sele X
Set order to TAG CLIENTE

_factura= Thisform.txtfactura.value (datos introducidos en el form)
_Cliente= Thisform.txtCodCli.value (datos introducidos en el form)

Seek (_CLIENTE + _FACTURA)

IF FOUND()
MESSAGEBOX("ESTA FACTURA PARA ESTE CLIENTE YA FUE REGISTRADA"
Thisform.pgfPeds.page1.txtCodClte.Value=" "
Thisform.pgfPeds.page1.txtFactura.Value=" "
Thisform.pgfPeds.page1.txtNombre.Value=" "
Thisform.pgfPeds.page1.txtCodClte.SetFocus
ENDIF

----

El problema es que tengo en la base de datos ya introducido por ejemplo:
CodCli= HASETH
Factura= 1

Se supone que si yo hago el SEEK de CodCli + Factura introduciendo en el form valores como HASETH en Cliente y 1 en Factura...el SEEK debe encontrar y dar como resultado .T. el found()

Pero no es asi, y eso me tiene con dolor de cabeza porque no puedo hacerlo.

Para solucionarlo tuve que crear un nuevo index solo con el campo FACTURA y el TAG name FACTURA.

Y el codigo queda asi:

Sele X
GO Top
Set order to tag FACTURA

_factura=ALLTRIM(thisform.pgfPeds.page1.txtFactura.value)
_CLIENTE=THISFORM.PGFpEDS.PAGE1.TXTcODcLTE.Value

SEEK ALLTRIM(_CLIENTE)
IF FOUND()
DO WHILE X.codcli = ALLTRIM(_cliente)
IF X.factura=_Factura
MESSAGEBOX("Ya entrada esta factura")
Thisform.pgfPeds.page1.txtCodClte.Value=" "
Thisform.pgfPeds.page1.txtFactura.Value=" "
Thisform.pgfPeds.page1.txtNombre.Value=" "
Thisform.pgfPeds.page1.txtCodClte.SetFocus
RETURN .T.
ELSE
SKIP
LOOP
ENDIF
ENDDO
ENDIF

Tengo otros forms que combinan dos campos sin ningun problema al buscar pero aquí no se que es lo que pasa. Los otros forms siempre tiene entre uno de sus campos FECHA y se indexa como DTOS.

Cualquier ayuda, bienvenida
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consulta- SEEK -

Publicado por xx (378 intervenciones) el 11/09/2010 23:19:12
No es para desesperarse con un poco de paciencia lograras comprender solo hay que analizarlo, el problema es que en tu tabla tienes los campos definidos como caracter y seguro que en tu formulario lo metes como numerico debes hacer las conversiones correspondientes ej:

si _cliente=1 y _factura=1 y tu indice es: INDEX ON CLIENTE+FACTURA ... entonces debes hacer:
Seek ( STR(_CLIENTE,10,0) +STR( _FACTURA,10,0) )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Consulta- SEEK -

Publicado por victor perez (278 intervenciones) el 12/09/2010 00:20:09
Hola,

Cuando se introduce datos nuevos al form, se hace click en "Nuevo".

En este comando escribo lo siguiente:

Thisform.txtCodCli.value=" "
Thisform.txtFactura.value=" "

Creo que con eso le digo que los datos que se introduciran en esos campos del formulario son TEXTOS. No es asi ?

De todas formas use el comando que me dijiste y me da error de Sintaxis.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta- SEEK -

Publicado por xx (378 intervenciones) el 12/09/2010 01:42:48
Claro si son tipo texto te dara error entonces debes hacer lo mas recomendado y convertir tus controles a numericos

Thisform.txtCodCli.value=0
Thisform.txtFactura.value=0
y esa busqueda que te recomende te funcionara de caso contrario no quieras convertirlos tendrias que contar los espacios en blanco que tiene tu tabla delante del codigo de cliente y lo mismo para factura e insertarlos asi mismo en tu clave de busqueda es decir SEEK( "0000000010000000001") para que este te localice por supuesto los ceros debes reemplazarlos por espacios en blanco o sea " ", postea si no lo entiendes!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Consulta- SEEK -

Publicado por victor perez (278 intervenciones) el 12/09/2010 22:42:09
Hola,

Si los campos son de 10 caracteres en la tabla y en el formulario le puse que el max length es 10.

Si introduzco un codigo como HASETH (solo 6 caracteres) ¿Como se registra en la tabla? Como "HASETH" o como "HASETH "

Ahora al hacer la busqueda yo hago lo siguiente, supon que estamos indexados solo por el campo Codigo,

Seek Alltrim(CodCli)

Alli me encuentra perfectamente el Codigo en la TABLA

Si hago
Seek CodCli

Alli no me lo encuentra.

Te agradezco si me aclaras un poquito mas este aspecto. Parece sencillo a pesar de usar tanto este formato pero a veces surgen dudas y se nos aclara el panorama con un poco de ayuda

victor,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta- SEEK -

Publicado por xx (378 intervenciones) el 13/09/2010 01:05:02
Si tu campo es de 10 e introduces "HASETH" se grabara los seis caracteres mas 4 adicionales en tu tabla es decir "HASETH0000" (cada cero representa un espacio en blanco) pero esto lo puedes certificar abriendo tu tabla y ejecutando en la ventana de comandos

? STRTRAN(CAMPO1, " ", "*" ) &&-> te mostrara algo asi HASETH****

esta funcion te mostrara cada espacio en blanco como un * y alli podras contar para que te des cuenta como graba!, es un poquito confuso pero con un poco de paciencia lograras superarla, debes leer en la ayuda sobre ALLTRIM() PADR() PADL() para componer bien tu clave a buscar!!

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Consulta- SEEK -

Publicado por victor perez (278 intervenciones) el 13/09/2010 23:11:01
Gracias por la info.

Si, es algo complicado para los que no somos programadores.

Siempre use Alltrim y sabia el significado pero no entendia el asunto en fondo.

De todas formas, lo que me sugeriste no me funciona con dos campos indexados.

Debe haber algun error porque tengo otra tabla indexada por Dtos(Fecha) + codCli y alli la busqueda si me funciona bien. ASi que no se que es lo que esta pasando.

Mi direccion de Windows Live es [email protected] De pronto por alli me puedes contactar cuando haya tiempo y conversar un poco.

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Consulta- SEEK -

Publicado por victor perez (278 intervenciones) el 14/09/2010 00:03:51
Efectivamente, el comando que me diste para ver como se guarda la info en la base de datos ya lo pude comprobar.

Se graba "HASETH****" O SEA 4 ESPACIOS mas o completa los espacios en blanco con asteriscos segun el comando que me diste.

IGUAL en el numero de factura se guarda el numero en caracter de esta manera
"1*********"
Indexo de esta forma
CLIENTE + FACTURA CON EL NOMBRE TAG FACTURA

EN EL FORM, ASIGNO VALORES INICIALES ASI:

THISFORM.TXTCODCLI.VALUE=" "
THISFORM.TXTFACTURA.VALUE=" "

ASI LE DIGO QUE ES CARACTER EN AMBOS CASOS.

LUEGO ABRO LA BASE DE DATOS Y ASIGNO UN ALIAS. HAGO EL SET ORDER TO TAG FACTURA

SEEK ( ALLTRIM(THISFORM.TXTCODCLI.VALUE) + ALLTRIM(THISFORM.TXTFACTURA.VALUE))

y NO ME ENCUENTRA RESULTADO A PESAR DE QUE YA ESTAN EN LA BASE DE DATOS LA INFORMACION.

SI ME PUEDES AYUDAR A COMPRENDER EL ERROR. EN REALIDAD CON LA RUTINA QUE HICE YA ENCUENTRO QUE NO SE HAYA DIGITADO UNA FACTURA PARA UN PROVEEDOR DOS VECES, PERO SI QUIERO APRENDER MAS.

SALUDOS,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauricio
Val: 471
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Consulta- SEEK -

Publicado por Mauricio (1541 intervenciones) el 14/09/2010 00:20:21
Victor, prueba de esta manera:
Crear Indice:
ALLT(cliente) + ALLT(factura) con el nombre TAG factura

Luego al abrir la tabla hazlo de esta manera:
Metodo INIT
CLOSE TABLE ALL
USE cliente IN 0 ORDER factura

Luego en el SEEK:
Vbuscar = ALLT(THISFORM.txtcodcli.value) + ALLT(THISFORM.txtfactura.value)
IF SEEK(vbuscar) && encuentra datos
***********
ELSE && No encuentra datos
******
ENDIF
Comenas luego.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Consulta- SEEK -

Publicado por victor perez (278 intervenciones) el 14/09/2010 00:34:43
Exacto Mauricio, escribi que asi es como funciona.

Parece que al indexar mas de un campo es mejor indexar usando alltrim. Asi mismo hacer la busqueda.

index on alltrim(codcli) + alltrim(factura) TAG Factura

Seek ( alltrim(txtCodCli) + alltrim(txtFactura))

Gracias por la informacion.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Consulta- SEEK -

Publicado por victor perez (278 intervenciones) el 14/09/2010 00:31:56
aMIGO,

Ya encontre el asunto.

Debia indexar la base asi ALLTRIM(Cliente) + Alltrim(FACTURA)

El modelo que tenia donde usaba CodCli en otro form funcionaba sin el alltirm en el index porque el codigo de introduccion de datos es exacto y el campo solo cuenta con 8 caracteres

Es decir, la base tiene Codigo(C,8) y cuando se metia el codigo, en este caso del paciente, siempre tenia que ser un codigo de 8 characters porque si no era asi el sistema dice que es incompleto y que se debe completar.

Por eso no me daba errores en la busqueda porque se introducen 8 caracteres en el codigo y esa es la longitud del campo, o sea que no rellenaba con espacios en blanco.

Ahora si entiendo 100% el asunto. Cuando indexo campos en la TABLA es mejor indexarlo con AllTRim y al buscar tambien buscar usando Alltrim...creo que alli estaba el problema.

Hice las pruebas, si indexo cliente + factura y hago la busqueda, no la encuentra
Si indexo con Alltrim(cliente) + alltrim(factura), al hacer la busqueda la encuentra perfectamente.

DE tomas formas me dices si tengo algun concepto equivocado porque los otros indices que uso son con un solo campo y no indexo usando alltrim... cuando hago la busqueda si pongo allltrim.

Sera que se indexa con alltrim para ambos campos cuando se usa mas de un campo?

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Consulta- SEEK -

Publicado por Jose Maria Merchan (10 intervenciones) el 14/09/2010 01:28:28
Hola Victor.
Te voy a comentar unas cosas que espero te aclaren algo. Si en tu tabla de base de datos creas dos campos :

codigo (caracter,4 posiciones)
literal (carater,4)

la informacion lineal se almacenaria así :

codigo = "ABCD", literal = "ABCD" se almacena en la tabla como "ABCDABCD"

si el codigo no estuviera completamente relleno o el literal sucederia esto :
codigo="AB00" literal ="AB00" se almacena en la tabla como "AB00AB00"

cambia los '0' por ' '.

si yo pido el alltrim(codigo)+alltrim(literal):

Registro 1º devuelve "ABCDABCD"
Registro 2º devuelve "ABAB"

Hasta aqui podria ser correcto, pero imagina que introducimos esto

codigo="A000", literal="BAB0"

el alltrim(codigo)+alltrim(literal) :

Registro 3º devuelve "ABAB"

La clave del 3º como puedes comprobar es identica a la del 2º registro.

Al diseñar una base de datos tienes siempre que pensar que la clave de cada tabla debe tener un formato idéntico en cada clave, ya sea decir "- Pongo ceros a la izquierda, o pongo blancos a la derecha, o pongo... lo que sea". Además el utilizar funciones en indices retrasa el proceso de busqueda exponencialmente al nº de registros de la tabla. Imagina una tabla con 20 millones de registros y un indice que opere con p.ej. - int(val(alltrim(codigo))), seria una tumba. Espero poder haberte aclarado algo en este aspecto y recuerda: lo más SENCILLO es siempre lo más CLARO

Salud2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Consulta- SEEK -

Publicado por victor perez (278 intervenciones) el 15/09/2010 22:26:14
Hola Jose Maria,

Excelente tu explicacion.

Lo que hice fue lo siguiente,

CLIENTE (C,10)
FACTURA (C,10)

INDEXE LA TABLA BAJO EL TAG FACTURA CON EL SIGUIENTE COMANDO

ALLTRIM(CLIENTE) + ALLTRIM(FACTURA)

EL CAMPO QUE CAPTA LOS CLIENTES en el formulario de introducción de cliente, (C, 10). LIMITO AL INTRODUCIR EL CLIENTE EN EL FORM A 10 CARACTERES, TODOS MAYUSCULAS.

EN MI CASO, CLIENTE Y FACTURA, LO USO PARA INTRODUCIR ARTICULOS AL INVENTARIO DESDE LA FACTURA QUE ES EXPEDIDA POR EL CLIENTE (PROVEEDOR).

POR ESO ERA QUE ME INTERESABA SABER SI PARA UN MISMO PROVEEDOR, YA LA FACTURA HA SIDO CAPTADA PARA NO HACERLO DOS VECES ,QUE SERIA UN GRAVE ERROR.

Ya tengo el problema solucionado usando para la base de datos el index sobre los dos campos con el alltrim.

En el formulario de introduccion al Inventario tambien la busqueda se hace teniendo en cuenta Alltrim de Cliente y de Factura.

Se aprende mucho en estos foros. POr lo menos ya se por qué hago las busquedas con Alltrim, etc...y como se guarda la info en un DATABASE.

El asunto era que yo siempre habia asignado a los codigos de usuario, Paciente en mis otros forms una longitud exacta. Si no se cumplia con la longitud el sistema no te dejaba avanzar.

En los codigos de pacientes, se introducen 8 caracteres compuestos por el dia, mes, año de nacimiento + inicial del primero nombre + inicial del apellido

ASi por ejemplo, VICTOR PEREZ 15-08-1964 SERIA
"150864VP"...SI las asistentes introducen "150864" el sistema le dice que le falta, etc.

Ademas cree una rutina para que los 6 primeros caracteres sean numeros y los dos ultimos letras...y que aunque usen las teclas de flechas, y quieran introducir un numero donde va una letra o viceversa, el sistema lo verifica y manda un codigo "numero donde debe ir letra " o "letra donde debe ir numero"

Este era un error frecuente al usar la tecla de flechas y colocarse donde iba un numero y luego borrar , introducir un numero lo que empujaria los caracteres del lado derecho del cursor y se ocupaba numeros donde debian ser letras.

El codigo es asi

If len(alltrim(this.value))< 8
MessageBox ("Falta completar el codigo..!",48,"< A V I S O >")
return 0
Endif

X=0

For X=1 to 8 step 1

If X < 7

If isdigit(subs(this.value,x,1))

Else
Messagebox("Código" + this.value + " está Incorrecto" + CHR(13) + "Tiene una LETRA donde debe ir NUMERO",48,"< C O D I G O N O V A L I D O>")
Thisform.PgfFicha.Page1.scodigo.value= " "
Return 0
Endif
Else
If !isdigit(subs(this.value,x,1))

Else
Messagebox("Código" + this.value + " está Incorrecto" + CHR(13) + "Tiene un NUMERO donde debe ir LETRA",48,"< C O D I G O N O V A L I D O>")
Thisform.PgfFicha.Page1.scodigo.value= " "
Return 0
EndIf
Endif

EndFor

Gracias por sus comentarios,

Victor,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Consulta- SEEK -

Publicado por Jose Maria Merchan (10 intervenciones) el 16/09/2010 04:55:40
Hola Victor,

veo que no llegaste a entender la idea general que te estaba exponiendo.
Sigues jugando con el ALLTRIM() para indexar y eso es lo que te expliqué que no era tan efectivo como creias. De todas formas leyendo tu última respuesta creo adivinar que no utilizas tablas maestras. Estas tablas serían por ejemplo CLIENTES y FACTURAS (cabeceras). Ésta última solo almacenaria el código único de cada factura ,el del cliente y si te parece , incluso el importe total; luego almacenarias las lineas de factura en otra tabla indexada(LIN_FACTURAS) por la clave única de la factura.
No sé si esto te alcara algo o te lía más... jeje
De todas formas en el mensaje anterior lo que intenté explicarte es el almacenamiento de claves únicas. Para ello tienes que tener claro lo que quieres que la forme.
Haciéndolo lo más simple (sin ejercicio de la factura , ni codigo de empresa (Si usas multi.empresa, seria necesario)), la clave en mi opinión deberia estar rellena en su totalidad, si no lo haces en la entrada de datos , hazlo al grabar y muéstralo en pantalla como queda para que se vea el formato real.

Ejemplo:

capturas en el campo nº factura :

FACTURA : "2541 "

no dejando ingresar caracteres no numéricos (propiedad mask del campo) y al pulsar <ENTER> rellena el campo con ceros por la izquierda en el valid() :

FACTURA: "00002541"
( si tienes definida la clave en 8 posiciones por ejemplo)

no obligas al usuario a meter los ceros, no le das mensajes innecesarios (al fin y al cabo el que se tiene que preocupar de que el código se meta bien eres tú), pero le indicas que es esa la clave completa de la factura y que es así como queda definida en la base de datos. A la hora de listar o imprimir no habria problemas para quitarle los ceros no siginifcantes.

Si la definición de la clave de clientes la manejas de la misma forma te ahorrarías los alltrim() que usas al indexar, reducirías errores de coherencia de datos y agilizarías las consultas en alto porcentaje (aprovecharias la tecnologia Rushmore de indexación nativa en FoxPro)

De todas formas consulta la propiedad mask de los controles de texto. Te dan gran flexiblidad y control de la entrada de datos, sin prácticamente escribir código.

Espero no haberte liado mucho y que te sirva alguna de las ideas que te expongo.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Consulta- SEEK -

Publicado por victor perez (278 intervenciones) el 17/09/2010 23:41:50
GRacias por la informacion.

Si, efectivamente, en otros modulos que tengo he usado "0" que rellenan los espacios no ocupados por los numeros de facturas, o de recibos.

Es decir, si meto "1" en factura, se graba 0000001 (siete caracteres, definidos en la base de datos)

ASi se capta el Numero de Factura , de mi formulario:

Thisform.pgfPeds.Page1.txtNumero.value=padl(alltrim(str(val(numero)+1,7,0)),7,"0")

Pero el asunto es que lo que yo estoy captando es el numero de factura que es emitida en un documento que me presentan los proveedores...no los genero YO.

Asi, un proveedor puede tener 12 digitos y otros 5, unos usan letras, y otros no.

Pero bueno, entiendo la posicion y si, en los codigos de proveedores, eso los creo Yo y la condicion es que pueden ser letras y numeros no mayor de 10 caracteres.

Si, seria pruedente que los codigos de proveedores sean exactos, como los de paciente , en mi otro formulario. O bien rellenarlos con "0"

Bueno, de todas formas mi programa no es tan extenso y no uso mas de 30 proveedores, por lo que la busqueda es rapida.

Gracias por tus comentarios
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Consulta- SEEK -

Publicado por victor perez (278 intervenciones) el 18/09/2010 00:00:39
Solo para quedar claro en el concepto:

- Creo la base de datos con los campos para Cliente, en este caso, con un numero de caracteres, por ejemplo 10
- Al captar los nuevos codigos de clientes, trato de que sean codigos de exactamente 10 caracteres de largo.
- Si el codigo no tiene 10 caracteres, le digo que lo rellene con "0" automaticamente para completar los 10 caracteres.
- Guardo la info en el campo codigo con los 10 caracteres (los introducidos y los "0" que se colocaron automaticamente
- Al indexar no necesito usar nada de ALLTRIM()

Entonces igual hago para el campo factura. Se introduce por ejemplo "12" y se guarda como "0000000012"

Al indexar por Codigo y Factura no tengo que poner en ningun lugar el Alltrim()

Al hacer la busqueda el usuario introduce el Codigo del Cliente, el usuario solo debe colocar las letras del codigo, y el sistema al dejar el foco o simplemente convierte el codigo añadiendo los ceros necesarios. Lo mismo pasa al captar la Factura.

Al final tengo 2 datos introducidos con la cantidad exacta de caracteres identicos a los definidos en la tabla.

Al hacer el Seek basta solo poner

Seek ( Codigo + factura )

Sin usar Alltrim en ningun lado.

Es esto lo que me dices que haga ?

Saludos,.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Consulta- SEEK -

Publicado por victor perez (278 intervenciones) el 18/09/2010 01:54:30
Hola,

Una consulta. Supon que agrego "0" al captar los numeros de facturas, cuando los registro, a fin de hacer constante el numero de caracteres a 10.

Como hago para mostrar la informacion en la TABLA sin esos "0".

Debo grabar cada registro con esos "0" porque sino el SEEK no me funcionara sin el ALLTRIM()

Lo hago AGREGANDO un nuevo campo a la TABLA que guarde el nuevo numero de Factura...con los "0" y que no se muestre en las consultas.

Por ejm:

Thisform.codigo.value="HASETH"
Thisform.factura.value="1"

Al hacer la busqueda uso la base de datos indexada por Codigo y MiFactura y no por Codigo y FACTURA.

MiFactura sera el campo este que te digo que agrego.

_mifactura=PADL(Etc....,10,"0")

Entonces _mifactura toma el valor de "0000000001"

Al Grabar el registro:

m.factura=Thisform.factura.value
m.codigo= Thisform.codigo.value
m.mifactura=_mifactura

Pero en el ListBox de Consultas para nada enseño este campo "miFactura".

Que te parece ?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Consulta- SEEK -

Publicado por Jose Maria Merchan (10 intervenciones) el 19/09/2010 01:37:11
Hola Victor,

para quitar los ceros de la izquierda yo hago casi siempre lo siguiente:

cad1 ="00125"
cad2 = int(val(cad1))

En este caso cad2= 125 (numerico y sin decimales). Luego solo tienes que convertirlo a cadena y asunto resuelto:

cad3=alltrim(str(cad2))

Obtienes que cad3 contiene "125"

Sencillo, espero que te sirva.

Un saludo desde Madrid

Jose
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Consulta- SEEK -

Publicado por victor perez (278 intervenciones) el 20/09/2010 02:44:46
Excelente tu respuesta.

Bueno, por ahora decidi simplemente agregar un campo a la base de datos que conserve las Facturas con los "0" necesarios.

He modificado el campo CodCli para que permita 7 caractares y que sean obligatorios.

Saludos y gracias

Victor,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar