La cual permite visualizar el cuadro de recepciones por proveedor en determinadas fechas, mostrando el botn Reportar (para imprimir el reporte) y Preview (para previsualizar el reporte). Crea una ventana y define las siguientes caractersticas.
Programa el evento Open de la aplicacin. SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False SQLCA.DBParm = "ConnectString='DSN=..;UID=sa;PWD='" connect using sqlca; if sqlca.sqlcode <>0 then Messagebox("Verifique,Error de Acceso",SQLCA.SQLErrText) halt close end if open(w_......) Programa el evento Open de la ventana. dw_1.settransobject(sqlca)
dw_1.retrieve() Crea las funciones activar, desactivar y nuevo activar() desactivar() cb_1.enabled=true cb_1.enabled=false cb_5.enabled=true cb_5.enabled=false cb_6.enabled=true cb_6.enabled=false cb_3.enabled=false cb_3.enabled=true cb_2.enabled=false cb_2.enabled=true cb_4.enabled=true cb_4.enabled=false nuevo() sle_1.text="" sle_2.text="" sle_3.text="" sle_4.text="" sle_5.text="" sle_6.text=""
Programa los diferentes eventos de los controles: Primera caja de texto Control sle_buscar ; el evento Modified String Cod,descri,med Integer stockactual,stockmin,stockmax Select codsuministro,descsuministro,medida,stockactual, stockminimo,stockmaximo into :Cod,:descri,: med, :stockactual, :stockmin,:stockmax from suministro where codsuministro = :Sle_Buscar.Text; If Sqlca.SqlCode=100 Then MessageBox("Verifique","Suministro no existe") Else Sle_1.Text=Cod Sle_2.Text=descri Sle_3.Text=med sle_4.Text=String(Stockactual) sle_5.Text=String(Stockmin) sle_6.Text=String(Stockmax) St_Mensaje.Text="Consultando" End If activar() Primer botn de comando Control cb_1nuevo St_Mensaje.Text="Nuevo" Actualizacion=False Nuevo=True desactivar() nuevo() Sle_1.SetFocus() Segundo botn de comando Control cb_5 actualizar St_Mensaje.Text="Actualizando" Actualizacion=True Nuevo=False Codsum = Sle_1.Text sle_1.enabled=true desactivar() Sle_1.SetFocus()
Tercer botn de comando Control cb_6 eliminar Integer R R=MessageBox ("Confirme","Desea eliminar este suministro",Question!,Yesno!) If R=1 Then Delete From suministro Where Codsuministro=:Sle_1.Text; Commit; Sle_Buscar.Text="" St_Mensaje.Text="" Dw_1.Retrieve() //Desactiva los Botones Actualizar y Eliminar Cb_5.Enabled = False Cb_6.Enabled = False Sle_Buscar.SetFocus() End If Cuarto botn de comando Control cb_3 deshacer //Borra un Mensaje St_Mensaje.Text="" activar() //Limpia los controles Cb_3.SetFocus() Sle_Buscar.Text="" Quinto botn de comando Control cb_4 grabar Integer stockactual, stockmax, stockmin IF Nuevo = True then string es integer cta es="D" cta=26210 Insert Into suministro (CodSuministro, DescSuministro, Medida, Estado, StockActual, StockMinimo, StockMaximo, CodFamilia) Values (:Sle_1.Text,:Sle_2.Text,:Sle_3.text,:es,:Sle_4.text,:Sle_5.text,:Sle_6.text,:cta); End If IF Actualizacion = True Then stockactual=integer(sle_4.Text) stockmin=integer(sle_5.Text) stockmax=Integer(sle_6.Text) UpDate suministro Set codsuministro=:Sle_1.Text, descsuministro=:Sle_2.Text, medida=:sle_3.Text, stockactual=:stockactual, stockminimo=:stockmin, stockmaximo=:stockmax Where Codsuministro=:Codsum;
End if if SQLCA.SQLCODE = -1 Then MessageBox("SQL error", SQLCA.SQLErrText) Sle_1.SetFocus() Else //Recupera los registros del Dw_1 para ver el nuevo suministro. Dw_1.Retrieve() End If activar() Sexto botn de comando Control cb_4 salir close(w_.....) NO olvides crear un DataWindows de tipo Grid llamado dw_suministro para recuperar los registros de la tabla suministros, asimismo enlazarlo con el control DataWindows denominado dw_1 de la ventana. El Data Windows mostrara los siguientes campos: cdigo, descripcin, medida, estado, stockactual, stockminimo, stockmaximo y familia