Sv Community El Salvador
Soporte y Tecnología => Programación => FOX => Mensaje iniciado por: gilanrodas en mayo 24, 2008, 04:47:02 pm
-
Tengo una tabla en visual fox. El tipo de datos es entero pero necesito alinearlos a la izquierda. Bueno, el problema es el siguiente: Tengo el siguiente código:
nAnswer=MESSAGEBOX('¿Confirma que desea guardar los datos?', 4+48,;
'Confirmación')
IF nAnswer=6 THEN
SELECT celula
GO TOP
IF EOF()
var1=0
ELSE
CREATE TABLE Virtual(campcorr INT(4))
SELECT correlativo FROM celula WHERE cod_coord = ;
SUBSTR(thisform.combcoord10.Value,1,3) INTO TABLE Virtual
SELECT Virtual
SCAN
var1=MAX(Virtual.campcorr, campcorr)
ENDSCAN
var1=var1+1
DROP TABLE Virtual
ENDIF
DO case
CASE var1>=0 AND var1<10
strcorr="000"+STR(var1)
MESSAGEBOX(strcorr)
CASE var1>=10 AND var1<100
strcorr="00"+STR(var1)
CASE var1>=100 AND var1<1000
strcorr="0"+STR(var1)
CASE var1>=1000 AND var1<10000
strcorr=STR(var1)
OTHERWISE
MESSAGEBOX("Número de célula no válido para este
Coordinador. Comuníquese con el Administrador del
Sistema.",0+16,"Error en correlativo")
ENDCASE
El mensaje en rojo me muestra el valor de la variable que, según este código es "000 0", pero quiero que me salga "0000" y no sé cómo hacerlo.
Agradecería mucho que me digan cómo se hace si es posible.
-
Esta parte
strcorr="000"+STR(var1)
cambiala por
strcorr="000"+TRIM(STR(var1))
-
Esta parte
strcorr="000"+STR(var1)
cambiala por
strcorr="000"+TRIM(STR(var1))
tmbien lo podes sustituir por
strcorr="000"+alltrim(STR(var1))
y listo...
-
Me funcionó a la perfección. Muchas gracias.
Ahora, tengo otro problema. Necesito extraer algunos datos de una tabla a una tabla "virtualt", pero al principio tengo que crearla para poder asignarle un tipo de datos y su longitud, pero cuando intento traerlos de la otra tabla a través de "select <campo> from <tabla> where <condición> into table virtualt" me intenta crear otra tabla y me da un error. No uso de una vez el select porque no puedo asignarle tipo de dato ni longitud. ¿Qué hago para evitar que me intente crear otravés la tabla?
Observen el siguiente código:
CREATE TABLE Virtualt (campcorr INT(4))
SELECT correlativo FROM celula WHERE;
cod_coord=SUBSTR(thisform.combcoord10.Value,1,3) into table Virtualt
SELECT Virtualt
SCAN
var1=MAX(Virtualt.campcorr, campcorr)
ENDSCAN
var1=var1+1
DROP TABLE Virtualt
-
bueno en ves de utilidar el select into taabla puedes utilizar el
aun que no es necesario que crees antes la tabla basta con el select el campo tomara el tipo de dato del campo que te regresa el select:
SELECT correlativo FROM celula WHERE;
cod_coord=SUBSTR(thisform.combcoord10.Value,1,3) into table Virtualt
o puedes usar enves de una tabla un cursor
SELECT correlativo FROM celula WHERE;
cod_coord=SUBSTR(thisform.combcoord10.Value,1,3) into cursor Virtualt
pero si insistes en crear primero la tabal entonces puedes utilizar el insert tinto
asi:
insert into Virtualt ;
SELECT correlativo FROM celula WHERE;
cod_coord=SUBSTR(thisform.combcoord10.Value,1,3)