Database profile > Conection
Profile name: "cualsea"
Provider: SQLOLEDB
Datasource: nombre de la instancia de BD
Extended properties: database="nombre BD"
> Security
check; Persist Security Info
Integrated: SSPI
> Preview
Test conextion
------------------------------------------------------------------------------------------------------------
Crear una capa de logica
Se hace una ventana w_rep (el objeto para instanciar otras ventanas)
Se crea un datawindow (dw_1) para los reportes con filtros se agrega un botón de Zoom e Imprimir, los botones de zoom e imprimir son solo para reportes con parámetros.
En el constructor dw_1 esta la información de la conexión a BD
*************************Constructor dw_1*********************************
//Conecto
if f_conectar(SQLCA) then
//establecer el objeto transaccional
this.setTransObject(SQLCA)
//recuperar los datos
this.retrieve( )
//Asigno el dato del usuario conectado a la etiqueta t_usuario
this.modify("t_usuario.text=' " + "Usuario: " + gs_usuario + " ' " )
//Habilita la vista previa, especifico para reporte con parametros.
this.Modify ( "DataWindow.Print.Preview = True")
//Desconecto
f_desconectar(SQLCA)
end if
*************************************************************************
el boton de zoom en w_rep es un drop down list box control, en la ventana properties del dropdownlist pestaña items se agrega los valores que va en el dropdown, en la pestaña general desabilita sorted y habilitar VScrollbar
en el evento selectionchanged del dropdownlist del zoom se agrega:
dw_1.Modify("Datawindow.Print.Preview.Zoom = "+ddlb_1.text)
en el event clicked del boton de Imprimir
dw_1.print( )
en w_rep en el evento resize
dw_1.width = this.width - 200
dw_1.height = this.height - 400
En los reportes con parametros
Sobreescritura del ancestro
Sobreescribir el codigo del constructor de la clase desde el hijo.
En el codigo constructor, click derecho y deshabilititar extend ancestor script para que no utilice la configuracion del padre.
Nuevo codigo 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")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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 clickea Return
En el desing de la ventana
click en tab orden y poner todos los tabs en 0 y sale clickeando de nuevo
click en Rows > update properties > uncheck allow updates
Encabezado incluye: Universidad, Departamento, Nombre del reporte, se cambian los nombres a las columnas y sus colores, Un label para el usuario y la fecha (computed field una para la hora y otro para la fecha [en el codigo del campo computado para la fecha se escribe today()] )
en el properties para la fecha en la pestaña format > define si es fecha u hora
En el detail: Centrar las columnas
en el summary: agrega un campo computado para las páginas [en el codigo del campo computado para la fecha se escribe 'Página ' + page() + ' de ' + pagecount()]
se guarda la ventana en la capa presentación con el nombre: d_rep_"nombre"
Ya habiendo creado el window y el data window correspondientes al reporte se asocia a la ventana el datawindow, en la ventana properties > general > dataobject se agrega el nombre datawindow creado
y en la ventana se agrega el nombre de la ventana