Reconversión con Visual Foxpro
Este programa surge debido a la inflación de algunos países y en la cual hubo que realizar conversiones en el precio de los productos. Acá lograrás hacer este tipo de procedimiento sin ningún tipo de inconveniente.
Paso 1:Coloca en el Evento init de tu form formulario los siguientes pasos:
SET SAFETY off
PUBLIC xrev,toke
toke=0
thisform.label1.Caption =STR(0.00)
thisform.label1.Visible =.f.
thisform.text1.Value=0.00
thisform.container1.shape1.Width =0
thisform.Caption ="Reconversion"
thisform.AutoCenter =.t.
xrev=.f.
CREATE TABLE almacen1(des_prd c(30),prc5_prd n(8,2))
INSERT INTO almacen1(des_prd,prc5_prd) VALUES ("Producto 1",5000.00)
INSERT INTO almacen1(des_prd,prc5_prd) VALUES ("Producto 2",12000.00)
INSERT INTO almacen1(des_prd,prc5_prd) VALUES ("Producto 3",21000.00)
INSERT INTO almacen1(des_prd,prc5_prd) VALUES ("Producto 4",7000.00)
INSERT INTO almacen1(des_prd,prc5_prd) VALUES ("Producto 5",6500.00)
INSERT INTO almacen1(des_prd,prc5_prd) VALUES ("Producto 6",3000.00)
INSERT INTO almacen1(des_prd,prc5_prd) VALUES ("Producto 7",8000.00)
INSERT INTO almacen1(des_prd,prc5_prd) VALUES ("Producto 8",17000.00)
INSERT INTO almacen1(des_prd,prc5_prd) VALUES ("Producto 9",25000.00)
INSERT INTO almacen1(des_prd,prc5_prd) VALUES ("Producto 10",55000.00)
thisform.list1.RowSourceType = 2
Thisform.list1.RowSource="almacen1.des_prd,prc5_prd"
thisform.list1.SelectedID(1)=.t.
thisform.command2.Enabled =.f.
Inserta en el formulario el control list, Command1,Command2,Command3,timer1,label1,label2,label3.
En el Command1 "Aceptar" en el evento Click agrega los siguientes pasos:
If Thisform.text1.Value!=0
titulo="Se procederá a la conversión de los Datos,"+Chr(13)+"está seguro de realizar esta operaciòn"
zorro=4
zorro=Messagebox(titulo,zorro,"Aviso")
Do Case
Case zorro=6
Thisform.container1.shape1.BackColor = Rgb(0,0,255)
Thisform.label1.Visible =.T.
Thisform.list1.RowSource="almacen1.des_prd,prc5_prd"
Thisform.list1.RowSourceType= 2
Select almacen1
var_total=Reccount()
Go Top
i=1
Do While !Eof()
Thisform.label1.Caption =Transform(((i*100)/var_total),"999")+ "%"+" Almacen"
Thisform.container1.shape1.Width =((i*100)/var_total)*3
Replace prc5_prd With Round(prc5_prd/Thisform.text1.Value,2)
Thisform.list1.Requery
Thisform.list1.SelectedID(i)=.T.
i=i+1
Skip
Enddo
xrev=.T.
Thisform.command2.Enabled =.T.
Case zorro=7
Thisform.Refresh
Endcase
Endif
Thisform.Refresh
En el Command1 "Revertir" en el evento Click asignaras el siguiente codigo :
If Thisform.text1.Value!=0
If xrev=.T.
titulo="Se procederá a Revertir los Datos,"+Chr(13)+"está seguro de realizar esta operaciòn"
zorro=4
zorro=Messagebox(titulo,zorro,"Aviso")
Do Case
Case zorro=6
*=textoavoz("Revertir los datos")
Thisform.container1.shape1.BackColor = Rgb(255,0,0)
Thisform.label1.Visible =.T.
Select almacen1
var_total=Reccount()
Go Top
i=1
Do While !Eof()
Thisform.label1.Caption =Transform(((i*100)/var_total),"999")+ "%"+" Almacen"
Thisform.container1.shape1.Width =((i*100)/var_total)*3
Replace prc5_prd With Round(prc5_prd*Thisform.text1.Value,2)
Thisform.list1.Requery
Thisform.list1.SelectedID(i)=.T.
i=i+1
Skip
Enddo
Thisform.container1.shape1.BackColor = Rgb(255,0,0)
Thisform.label1.Visible =.T.
xrev=.F.
Thisform.command2.Enabled =.F.
Case zorro=7
Thisform.Refresh
Endcase
Endif
Endif
Thisform.Refresh
Este paso te permitirá revertir el primer paso y volviendo a colocar la tabla con los valores originales.
En el Command3 en el evento click coloca la opción de salida
thisform.release()
Todo esto podrás descargarlo en el Link de descarga en la parte inferior del blog.
0 comentarios:
Publicar un comentario