sábado, 22 de marzo de 2014

Reportes con SP

click derecho sobre w_rep > inherit from > guarda la ventana en la capa presentación w_rep_"nombre"
crea un nuevo datawindow > tabular > SQL Select > selecciona las tablas y las columnas deseadas y en la pestaña desing > convert to sintax (se copia para crear el SP en el SQL)

En el SQL BD creada > programability > Stored procedures click derecho new stored procedure

********************************************************************************************************************* -- ============================================= -- Author: XXXXXXX -- Create date: 00-0-0000 -- Description: Reporte de empleados -- ============================================= CREATE PROCEDURE sp_rep_empleados AS BEGIN SELECT E.EmployeeID, E.LastName, E.FirstName, E.BirthDate FROM Employees E END GO
*********************************************************************************************************************
Valida con SQL parse y luego execute

En el power builder verifica si existe el SP creado
Database > OLE Microsoft OLE DB > Procedures & Functions

File > New > Datawindow > Tabular > Stored Procedure > seleccion a el stored procedure





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SP CON PARAMETROS




Como crear un SP a partir de un SP ya hecho Buscar el SP click derecho script store procedure as drop and create to 
new querry editor window copiar el nombre ctrl h para buscar y reemplazar con el titulo nuevo


*********************************************************************************************************************
ALTER PROCEDURE [dbo].[sp_rep_empleados_filtro] --sp_rep_empleados_filtro 'Nancy' @name varchar(10) AS BEGIN SELECT E.EmployeeID, E.LastName, E.FirstName, E.BirthDate FROM Employees E WHERE E.FirstName like '%' + @name + '%' END
*********************************************************************************************************************


File New Datawindow Tabular Stored Procedure > seleccion a el stored procedure
le tira una nueva ventana que le pide el parametro del SP le da cancelar

en el boton filtrar en el evento clicked se escribe

*********************************************************************************************************************
string ls_filtro ls_filtro = trim(sle_1.text) if (isnull(ls_filtro) or (len(ls_filtro)=0) then messagebox("Error", "El filtro no puede ir vacio!!",stopsign!) return end if //Conecto if f_conectar(SQLCA) then //establecer el objeto transaccional this.setTransObject(SQLCA) // recuperar los datos dw_1.retrieve(ls_filtro) //Desconecto f_desconectar(SQLCA)
*********************************************************************************************************************

en w_rep_XXX_sp_filtro  en el constructor se ingresa una letra y da click derecho Extend ancestor y el codigo del constructor

//Asigno el dato del usuario conectado a la etiqueta t_usuario this.modify("t_usuario.text=' " + "Usuario: " + gs_usuario + " ' " ) //Habilita la vista previa 
this.Modify ( "DataWindow.Print.Preview = True") 

h