Home

StartFrame Net Framework

image

Contents

1. FK contra otra tabla Configurar esta validaci n en la base de datos en la tabla correspondiente seg n lo especificado en la planilla de dise o En la tabla del lado de muchos en la relaci n deber crearse un ndice tipo FK por los campos de la relaci n Rango de valores aceptables Se puede ingresar esta validaci n en el evento Validando de las reglas del negocio Private Sub Programas validando ByRef cancela As Boolean ByRef paramDataTable As System Data DataTable Handles MyBase Validando Dim row As DataRow For Each row In paramDataTable Rows With row If row RowState lt gt DataRowState Deleted Then End If End With Next End Sub Datos por defecto Como esto es necesario antes de iniciar una edici n el mejor lugar para hacerlo es el evento Editando Al iniciar la edici n Private Sub Provesdores Editando ByRef cancela As Boolean _ Handles MyBase Editando Valores por defecto If Me Estado Estados Alta Then Me fe alta value Now End If End Sub 410 E E 9 F Ef i E PA e StartFrame Net Framework Manual Programaci n net Framework versi n 1 10 2011 Campos del tipo identity A este tipo de campo no puede asign rsele ning n valor en particular con lo cual no podr editarse nunca pero es posible que quiera visualizarse En este ltimo caso agregar el control pero del tipo ReadOnly Controles del tipo filtro Interfaz Windows Desktop En caso de des
2. lt xml version 1 0 encoding utf 8 gt lt siteMap xmlns http schemas microsoft com AspNet SiteMap File 1 0 gt lt siteMapNode url title Men del Sitio description gt lt siteMapNode url title Seguridad description M dulo de Seguridad del Sitio gt lt siteMapNode url FwrkPages Login aspx title Login description Login out gt lt siteMapNode url FwrkPages Login_NewUsr aspx title Nuevo Usuario description Registrar un nuevo usuario gt lt siteMapNode url title Auditor a description Informes de auditor a gt lt siteMapNode url ManagerPages Lst_Tracking aspx title Log de Accesos description Informes de auditor a del sistema gt lt siteMapNode gt lt siteMapNode gt lt siteMapNode url title Herramientas description M dulo de Utilitarios gt lt siteMapNode url ManagerPages Abm Reportes aspx title Reportes description Generador autom tico de reportes gt lt siteMapNode url ManagerPages Abm _Filtro aspx title Filtros description Filtros a utilizar en los reportes generados gt lt siteMapNode url FwrkPages Temas aspx title Temas description Selec Tema gt lt siteMapNode gt lt siteMapNode gt lt siteMap gt 170 StartFrame Net Framework Manual Programaci n met aran versi n 1 10 2011 Abms La siguiente documentaci n enumera sint ticamente los pasos a seguir para la confecci n de un ABM est ndar El objetivo de la mism
3. Id StartFrame US Utilitarios Abms Paises US utilitarios gt lt Menu Name samp Localidades y Calles Shortcut Icon I16 CALLES Checked False Enabled True Mdichild False Id StartFrame US Utilitarios Abms Localidades US utilitarios gt lt Menu gt lt Menu gt lt Menu Name amp amp Procesos Shortcut Icon Checked False Enabled True Id gt lt Menu Name samp Cambiar Parametros de Conexi n a la Base de Datos Shortcut Icon I116 DB Checked False Enabled True Id StartFrame US Utilitarios Abms Conexiondb US utilitarios gt lt Menu gt lt MainMenu gt 160 StartFrame Net Framework Manual Programaci n met ararniframe versi n 1 10 2011 Interfaz Web A continuaci n se especifica el procedimiento para la arquitectura Web Application En dicha plantilla no existe el concepto de m dulos como tal sino que deber crear una p gina principal con un selector de m dulos que redireccione a los correspondiente subsitios o bien manejar este concepto dentro del mismo men de la aplicaci n si no son m dulos demasiado grandes Edici n del men El men contenido en esta plantilla est formado por un control del tipo treeview que se alimenta de un archivo del tipo sitemap Para actualizar el contenido de los tems de men submen es y opciones finales simplemente deber actualizar el archivo Web sitemap el cual se encuentra en el directorio principal del sitio web
4. Handles MyBase Insertando MyBase Modificando Valida el primer d gito If row nm_ unidad monetaria ToString Length gt 0 Then Select Case row nm unidad monetaria ToString Substring 0 1 Case A B O Todo Ok Case Else Error row SetColumnError End Select End If End Sub 8 La grabaci n de las tablas de detalle del ABM debe hacerse en forma transaccionada llamando a cada objeto de negocios asociado a cada tabla grilla a procesar ver punto 5 Para esto es necesario hacer un overload del m todo ActualizarDatos En dicho m todo deber ponerse c digo con el siguiente esquema y modificar los valores resaltados Public Overloads Overrides Function ActualizarDatos ByRef paramDataSet As _ System Data DataSet As Boolean Dim tran As OleDbTransaction Nothing Iry InicializarConeccion 1nk_cn Open tran cn BeginTransaction Elimina las columnas no mapeadas Me RemoveUnmappedCols paramDataSet Tables wld cotizaciones Setea el operador actual de las subclases SetOperadorLogueado _NombreOperador Inserta o modifica registros If paramDataSet Tables _tablaPrincipal GetChanges DataRowState Deleted Is _ Nothing Then Actualiza tabla principal MyBase ActualizarDatos paramDataSet lnk cn tran Actualiza tabla detalle cotizaciones ActualizarDatos paramDataSet lnk_cn tran Else Elimina registros Actualiza tabla detalle cotizaciones ActualizarDat
5. Manual Programaci n versi n 1 10 2011 net Framework 4 Vincular el formulario de US a la clase de BR modificando el Load del formulario agregando el siguiente c digo y modificando los valores resaltados Private Sub UnidadesMonetarias Load ByVal sender As Object ByVal e As System EventArgs Handles MyBase Load Try CType RemotingHelper getObject GetType IUnidadesMonetarias E Me ObjetoReglasNegocio _unidadesMonetarias Catch ex As Exception StartFrame Us Display ShowError ex message End Try End Sub B Agregar una entrada con el nombre de objeto en el XML US ini exe config maa OOOO url tcp localhost 1234 UnidadesMonstarias gt 6 Si fuera necesario agregar p ginas y cambiarles el Text de cada una de ellas Si existiera una sola p gina el text va debe decir Datos Generales Si existieran m ltiples p ginas la primera de ellas deber tener el Text igual a 1 Datos Generales las siguientes deber n estar igualmente numeradas con el n mero resaltado para utilizar como acceso r pido y con un t tulo apropiado a los controles que en ella se ubiquen Modificar el Text del t tulo del formulario en el evento Load E Pegar los controles de pantalla utilizando las clases de LnkControls y o US En cada control deber cambiarse el Text y el Name del control igual al nombre del campo vinculado y el Text y Name de la etiqueta relacionada igual al nombre del camp
6. Manual Programaci n versi n 1 10 2011 Net Framework E Utilizando la misma aplicaci n web como interfaz dar de alta los filtros a utilizar en la consulta por medio del abm correspondiente Registrar correctamente las propiedades de cada filtro tipo de dato longitud valor por defecto y las validaciones pertinentes 4 Utilizando la misma aplicaci n web como interfaz dar de alta los reportes a ejecutar en la p gina por medio del abm correspondiente Tener presente que pueden ejecutarse m ltiples reportes por cada p gina cada reportes apunta a un stored procedure que le da origen Tambi n deber n asociarse los filtros antes mencionados g Crear una nueva p gina del tipo Web Content Form dentro del proyecto WebSite en la carpeta UserPages En el evento load de la p gina deber ponerse c digo para relacionar a la misma con el objeto de negocios correspondiente y vincularla con una instancia de ReporteBase Partial Public Class Est Pruebas Inherits System Web UlI Page Public masterpage As Reporte Protected Sub Page Load ByVal sender As Object ByVal e As System EventArgs Handles Me Load Instancia de la clase masterpage ReporteBase masterpage CType Page Master Reporte Asigna los atributos a la clase base masterpage lblTitulo la Instancia del objeto de reglas del negocio Dim obr As New Inicializaci n de la p gina ReporteBase enlazada al objeto de negocios MasterPage InicializarPagina obr End
7. Y No se pueda dar un alta con una clave en blanco Y Nose permita grabar con alguno de los campos obligatorios en blanco Y Se permita grabar completando tan s lo la clave y los campos obligatorios Y Se grabe correctamente tanto en la tabla principal como en las vinculadas tanto en altas y modificaciones como en bajas Listados Para realizar estos controles es necesario que se cargue informaci n en las tablas de origen de los informes Es muy raro que se termine primero el informe y luego el Abm sin embargo en este ltimo caso deber n cargarse las tablas a mano con los registros que se consideren adecuados consultar con el analista funcional En cuanto al listador deber controlarse que Y Y Todos los controles est n alineados correctamente El orden de tabulaci n sea el apropiado Los diferentes rangos para cada reporte sean los que se indican en la especificaci n ni m s ni menos El listador posea tantos reportes con tantos ordenamientos como se especific Presionando el bot n de ayuda se llame a la documentaci n de ayuda en l nea apropiada la cual deber estar completa y contener todos y cada uno de los rangos a utilizar y los reportes contenidos en el listador Todos los campos vinculados posean ventana de apoyo aunque su ingreso sea libre y sin validaci n Los valores por defecto de cada rango permitan listar todo el contenido de los reportes de principio a fin de archivo Lo
8. bindeada para que el abm maneje autom ticamente su estado Region Declaraciones Controles Grilla Cuentas Private dgl cd proveedor As New DataGridLnkTextBoxCo1lumn Private dgl cd banco As New DataGridLnkTextBoxFKColumn Ecd bancos Ed banco LAN Private dgl tp cuenta bancaria As New DataGridLnkComboBoxColumn _ DataSource Proveedores getCuentasBancarias Tables 0 DisplayMember 1 ValueMember 0 Private dgl st _noalaorden As New DataGridLnkCheckBox Private dgl im total As New DataGridLnkTextBoxNumericoColumn End Region Region Grilla Cuentas Creaci n de la grilla Private Sub Inicializaci n del modo gr fico Dim avgCharWidth As Integer With Graphics FromHwnd Me Handle _ MeasureString Text ABCDEFGHIJKLMNOPORSTUVWXYZ Font Me Font avgCharWidth CInt Width 26 0 End With Columnas El presente cap tulo hace referencia al uso de la grilla nativa de Net 310 StartFrame Net Framework Manual Programaci n net arre versi n 1 10 2011 Dim gridTableStyle As DataGridInkTableStyle gridTableStyle New DataGridLnkTablesStyle With gridTableStyle Mapeo MappingName kld cuentas proveedores Agrega las columnas With GridColumnStyles cd proveedor columna del tipo Textbox com n With Me dgl_cd proveedor MappingName TextBox Name MappingName HeaderText Common Display FieldToText Ed proveedor Common Display For
9. lt MainMenu gt 3 q a Puede utilizar los code snippets provistos por StartFrame para agregar una nueva entrada al men 140 StartFrame Net Framework Manual Programaci n met aran versi n 1 10 2011 Edici n del men Para crear un nuevo men deber buscar los men es ya definidos y referenciados en el archivo MenuModulos xml La opci n m s sencilla es seleccionar alguno de los XML ya hechos y hacer un copy amp paste para crear el nuevo archivo XML de men Una vez obtenido el XML del men deber ingresar la siguiente informaci n por cada tem de men e Name nombre de la opci n de men Puede utilizar el prefijo amp amp para resaltar una tecla Tambi n puede utilizar un gui n medio simple para crear una l nea divisoria e Shortcut tecla de corte para la opci n de men El formato para ingresarla es por ejemplo CtrlA AltC ShiftD e icon corresponde a la etiqueta dentro del archivo de recursos App resources del cono asociado a la opci n de men Deber n tratarse de conos de 16x16 en 256 colores e Checked indica si la opci n del men es del tipo check uncheck Los valores v lidos son True y False e Enabled indica si debe mostrarse habilitada o no la opci n de men Los valores v lidos son True y False e Mdichild indica si el formulario a llamar estar contenido dentro del MDI como MDIchild o no Este par metro es opcional asumiend
10. En caso de desear crear una p gina con dise o expl cito en el c digo HTML simplemente debe evitar asignarle valor a la propiedad del AbmBase CamposEdicion Luego deber crear en la p gina ASPX un contenedor con ID ContentPrincipal y ContentPlaceHolderlD FormularioEdicion Dentro de dicho contenedor se debe dise ar el formulario de la p gina respetando siempre los ID de los controles asign ndoles el mismo nombre que el campo de la tabla con la cual se bindea lt asp Content ID Content1 ContentPlaceHolderlD FormularioEdicion runat server gt lt asp Panel ID panelEdicion runat server gt lt asp Table ID Tablel runat server gt lt Textbox gt lt asp TableRow gt lt asp TableHeaderCel1 gt lt asp Label ID Label4 class label runat server Text Caracteres gt lt asp Label gt lt asp TableHeaderCel1 gt lt asp TableCel1 gt lt asp TextBox ID ca caracteres runat server gt lt asp TextBox gt lt asp TableCel1 gt lt asp TableRow gt lt Calendario gt lt asp TableRow gt lt asp TableHeaderCel1 gt lt asp Label ID Label5 class label runat server Text M nimo gt lt asp Label gt lt asp TableHeaderCel1 gt lt asp TableCel1 gt lt asp TextBox ID va_ minimo runat server gt lt asp TextBox gt lt ccl CalendarExtender ID CalendarExtenderl runat server TargetControlID va_minimo Format dd MM yyyy PopupButtonID images Calenda
11. administrada autom ticamente por la clase ABM insertar el siguiente c digo y modificar los valores resaltados Tener en cuenta que al existir una tabla de detalle la grabaci n de datos debe efectuarse con ciertas reglas a fin de automatizarla ver punto 8 Public Class UnidadesMonetarias Nombre de la clase Inherits Abm Herencia Implements IUnidadesMonetarias Referencia de interf z Dim EGEIZAGIONES As New USENZACIONES Crea el objeto detalle Sub New Modificar nombre de programa y tabla principal relacionada a la clase MyBase New Operador Password waunidmon wad unidades monetarias Grilla agrega tablas de detalle al dataset Dim arrayTablasDetalle As New ArrayList arrayTablasDetalle Add wld cotizaciones MyBase setTablasDetalle arrayTablasDetalle End Sub End Class Public Class Cotizaciones Nombre de la clase Inherits Abm Herencia Sub New Modificar nombre de programa y tabla principal relacionada a la clase MyBase New Operador Password waunidmon wld_cotizaciones End Sub End Class 6 Para efectuar validaciones manuales sobre todos los registros utilizar el evento _ validando En este evento el dataset se encuentra cargado con todos los registros de la tabla relacionada Usar el siguiente esquema y modificar los valores resaltados En el caso de estar utilizando un frontend Web es recomendable realizar estas validaciones del lado de la p gina con controles validators para lograr
12. arquitecturas Windows Desktop s 7 A Deben realizarse las siguientes tareas en el formulario de la capa de usuario Agregar la interfaz para la clase en el proyecto IBR que corresponda con el siguiente esquema modificando los valores resaltados Este assembly reside tanto en el server como en el cliente Public Interface FUnidadesMonetarias Inherits IAbm Agregar las declaraciones de funciones que correspondan End Interface 2 Agregar un nuevo formulario en la capa de usuario que herede de StartFrame US Abm o StartFrame US AbmGrilla y modificar su constructor a efectos de que el formulario pueda ser llamado en modo autom tico Region Windows E Public Sub New Me New Modos Normal End Sub orm Designer generated code Public Sub New ByVal modo As Modos Me New modo End Sub Public Sub New ByVal modo As Modos ByVal condicion As String MyBase New modo condicion This cal s required by the Windows Designer ation after the InitializeComponent call E Realizar la declaraci n de la clase con una variable privada global Imports StartFrame BR Interfaces Procedencia de las referencias utilizadas Namespace Abms Namespace de la clase Public Class Nombre de la clase Inherits Herencia Dim As End Class End Namespace 7 r a Las tareas que figuran con la vi eta en JN M3 son obligatorias 230 ANOS StartFrame Net Framework
13. datos requeridos por la TablaBusquedas Esto ltimo no ser a necesario si se utilizan vistas actualizables con al menos todos los campos de la tabla principal Protected Overrides Sub OnLoadDataSet ByVal ds As DataSet _ ByVal condicion As String ByVal clearDS As Boolean Limpia el dataset If clearDS Then _dataSet Tables _tablaPrincipal Clear End If If tablaBusquedas lt gt String Empty And tablaBusquedas lt gt tablaPrincipal _ And _dataSet Tables Index0f _tablaBusquedas lt gt 1 Then dataSet Tables _tablaBusquedas Clear End If Agrega los registros obtenidos en la b squeda ds Tables 0 TableName _tablaPrincipal _dataSet Merge ds If tablaBusquedas lt gt String Empty And tablaBusquedas lt gt tablaPrincipal _ And _dataSet Tables Index0f _tablaBusquedas lt gt 1 Then ds Tables 0 TableName _tablaBusquedas _dataSet Merge ds End If Acepta los cambios _dataSet AcceptChanges End Sub b FiltroGlobal se usa en caso de tener que aplicar un filtro global a todas las b squedas del abm independientemente de los par metros de b squeda ingresados por el usuario Todos estas propiedades deben setearse antes de configurar el ObjetoReglasNegocio Private Sub UnidadesMonetarias Load ByVal sender As Object ByVal e As _ System EventArgs Handles MyBase Load Try Configuraci n del abm Me ColumnasNoVisiblesEnGrilla va_observaciones fe_operacion Me CamposNoActuali
14. el par metro cancelar en true para impedir que se prosiga con la ejecuci n del informe 9 Puede ejecutarse c digo antes y despu s de imprimir en los eventos OnPrintClick OnPrintEnd OnScreenClick etc 52 O E E a F Eh fi E AR a StartFrame Net Framework Manual Programaci n Pe versi n 1 10 2011 Net Framework Interfaz Web Agregar un nuevo formulario heredado en la capa de usuario que herede de Reporte Master 2 Agregar un nuevo componente clase en la capa de reglas de negocios Dentro del mismo componente se pueden crear tantas clases como sea necesario ver punto 4 Imports System Data Oledb Imports Common Env Imports StartFrame DA Sql Public Class UnidadesMonetarias Nombre de la clase Inherits Abm Herencia Implements IUnidadesMonetarias Interfaz Sub New Modificar nombre de programa y tabla principal relacionada a la clase MyBase New Operador Password waunidmon wad unidades monetarias Habilita el tracking para esta clase Me Tracking True End Sub End Class E Realizar la declaraci n de la clase En caso de tratarse de un componente para utilizar nicamente desde el front end Web no es necesario que implemente ninguna interfaz Imports StartFrame BR Web Utilitarios Partial Public Class EPEE Inherits System Web Ul Page Public masterpage As Reporte Protected Sub Page _Load ByVal sender As Object ByVal e As System EventArgs Handles Me Load Instancia de la cla
15. operaciones entre ellas las validaciones m s comunes que pueden especificarse para un Abm Cada ejemplo mostrado no es la nica forma de hacerlas pero es una forma v lida y sin errores que es recomendable adoptar como est ndar Casi cualquier porci n de c digo utilizada en esta secci n puede ser creada mediante el uso de los code snippets incluidos en StartFrame Dato sin duplicados Para esto es necesario crear en el motor de datos una restricci n no un ndice del tipo Unique Dato obligatorio Este control se realiza generalmente en el motor de datos seteando la propiedad Null Not Null del campo correspondiente Integridad referencial Configurar esta validaci n en el motor de base de datos en la tabla correspondiente A no ser que se indique lo contrario siempre es aconsejable adoptar el criterio de actualizaci n en cascada independientemente del criterio adoptado para la eliminaci n Tener en cuenta que por razones internas del motor hay ocasiones en que no se permite establecer un criterio de actualizaci n o eliminaci n en cascada En tal caso deber realizarse la validaci n o eliminaci n seg n corresponda dentro de las reglas de negocio Dato predeterminado al grabar Desde el dise o de la tabla en el motor de datos ingresar los valores predeterminados para cada campo Si el campo no figura en el formulario p gina o el valor por defecto sea de c lculo condicionado a otros campos la
16. seguido por el nombre de la tabla Ejemplo PK_wad_operadores Clave externa Encabeza el nombre el texto FK_ seguido por el nombre del primer campo indexado con alg n diferenciador si hiciera falta Ejemplo FK_cd_operador Clave nica Encabeza el nombre el texto UN_ seguido por el nombre del primer campo indexado con alg n diferenciador si hiciera falta Ejemplo UN_nm_operador 110 StartFrame Net Framework Manual Programaci n met aran versi n 1 10 2011 Campos Los campos respetan las siguientes reglas de nombres POSICI N DESCRIPCI N 1ro y 2do D gitos Indica el tipo de contenido del campo cuyo nombre debe leerse traduciendo este mnemot cnico ej tp_operacion se leer a tipo de operaci n Los mnemot cnicos m s comunes son los siguientes Sin embargo cualquier mnemot cnico deber registrarse en el archivo de recursos sin ning n tipo de prefijo s lo el mnemot cnico Cada mnemot cnico debe contener tres tipos de expresiones a retornar separadas por larga media y corta Por ej para el mnemo ca deber grabarse Cantidad de Cantidad Cant e ca cantidad e cd c digo e de descripci n e fe fecha e hr hora e m importe e ls lista e nm nombre e nu n mero e po porcentaje e st status flag e tp tipo de e va valor 3er D gito Gui n bajo _ separando los mnemot cnicos del nombre del campo 4to D gito en adelante Nombre del campo en singular en
17. un mejor resultado Private Sub UnidadesMonetarias Validando ByRef cancela As Boolean _ ByRef paramDataTable As System Data DataTable Handles MyBase Validando Dim row As DataRow Recorre todos los registros de la tabla For Each row In paramDataTable Rows With row If RowState lt gt DataRowState Deleted Then Valida duplicados por el dato nombre If Not IsDBNull row nm_ unidad monetaria Then If CType StartFrame DA Sql Search ConnectionString COUNT wad unidades monetarias nm unidad monetaria amp _ CType row nm_ unidad monetaria String Integer gt 0 Then SetColumnError DN a K End If End If End If End With Next End Sub 200 5 E A F Ef fa E AA e StartFrame Net Framework Manual Programaci n versi n 1 10 2011 Net Framework 7 Para efectuar validaciones manuales m s precisas sobre cada registro en particular existen eventos determinados _insertando modificando eliminando _insertado modificado eliminado En estos eventos en lugar de un dataset contiendo todos los registros a modificar se trabaja con el datarow procesado Utilizar el m todo que corresponda para cada validaci n En el caso de estar utilizando un frontend Web es recomendable realizar estas validaciones del lado de la p gina con controles validators para lograr un mejor resultado Private Sub GUnidadesMonetarias Insertando ByRef cancela As Boolean ByRef row As System Data DataRow
18. una anotaci n apropiada sobre el tema M Bajo ning n concepto deber n ingresarse datos basura para las pruebas siempre deber n utilizarse datos reales o al menos potencialmente reales Manejo y Control de Errores El siguiente es un c digo est ndar que representa una captura de error t pica capa US desktop donde atrapa el error y lo muestra en una forma est ndar Try Trata de abrir la conexi n objSql1Command Connection objSqlConnection objSqlConnection Open Catch objException As Exception Muestra el error Display ShowError objException Finally Cierra la conexi n si est abierta If objSqlConnection State ConnectionState Open Then objSqlConnection Close End If End Try El siguiente es un c digo est ndar que representa una captura de error t pica capas BR DA donde graba un log en el eventlog de la aplicaci n tanto en la base de datos como en el visor de sucesos y luego propaga el error para que un componente de la capa US lo intercepte e informe al usuario Try Trata de abrir la conexi n objSql1Command Connection objSqlConnection objSqlConnection Open Catch objException As Exception Captura el error Env LogError PROCESO TERMINAL OPERADOR COD ERROR objException Message Throw objException Finally Cierra la conexi n si est abierta If objSgqlConnection State ConnectionState Open Then objSqlConnection Close End If End Try 40 StartFra
19. y seleccionar el template deseado Existen diferentes tipos de plantillas que pueden utilizarse para crear soluciones con diferentes arquitecturas desktop web asp servicio windows servicio web etc Cambios del Aspecto Visual Es posible cambiar el aspecto ntegro de cualquier soluci n basada en StartFrame siempre y cuando se respeten los tama os de las im genes Caso contrario deber n adem s ajustar manualmente los tama os de los objetos de pantalla que las contienen En el caso de las plantillas Windows todas las im genes predise adas se encuentran en el archivo de recursos de la aplicaci n ya sea en InkfwrkInk es AR resources o bien en App es AR resources el cual se puede editar directamente desde Visual Studio En el caso de las plantillas de soluci n Web el aspecto visual proviene en gran medida del tema seleccionado el cual puede modificarse o bien agregarse uno nuevo Cada tema est compuesto por im genes plantillas CSS y Skins Las im genes que deber a cambiar las soluciones basadas en la plantilla FwrkSolution son ETIQUETA TAMA O APROXIMADO PIXELS DESCRIPCI N ANCHO ALTO APP_LOGO 150 92 Imagen del Splash y About del sistema Se recomienda utilizar fondo blanco BACKGROUND_LOGO 95 58 Logo mostrado sobre la imagen de fondo de cada m dulo Suele utilizarse la misma imagen de App_logo pero con diferente tama o BACKGROUND_IMAGEN 700 500 Imagen de fondo de cada m dulo Se recomienda utilizar un f
20. y su vinculaci n con el entorno Controles B sicos Antes de dar por finalizado el desarrollo de cualquiera de los tipos de programas mencionados deber n realizarse una serie de controles los cuales var an dependiendo de la arquitectura utilizada y del tipo de programa desarrollado Dichos controles son de dos aspectos visuales y funcionales Los primeros apuntan a la interfaz en general Los ltimos se refieren al manejo b sico de cada programa Es importante que se entienda que cada vez que se modifica un programa deber n realizarse nuevamente todos los controles b sicos Abms Para realizar estos controles es necesario cargar al menos tres registros con diferentes datos Deber controlarse que Y Todos los controles est n alineados correctamente v Elorden de tabulaci n sea el apropiado Y El label de cada control incluso las grillas sea el apropiado seg n su tipo clave obligatorio com n Y Presionando el bot n de ayuda se llame a la documentaci n de ayuda en l nea apropiada la cual deber estar completa y contener todos y cada uno de los controles en pantalla Y Todos los campos vinculados incluso en las grillas posean ventana de apoyo y sus carteles 560 StartFrame Net Framework Manual Programaci n net Framework versi n 1 10 2011 descriptivos relacionados los cuales deber n actualizarse correctamente con el movimiento entre registros incluyendo los registros de las grillas
21. 11 Listados Los listados tienen diferente formato dependiendo de la arquitectura no es lo mismo un reporte Windows que una consulta por Web y del tipo de reporte informe diario resumen gr fico formulario documento etc Cualquiera sea el caso a continuaci n se describe un procedimiento est ndar para su creaci n Interfaz Windows Desktop A continuaci n se especifica el procedimiento para cualquiera de las arquitecturas Windows Desktop r A sa r PPn 15 La siguiente documentaci n enumera sint ticamente los pasos a seguir para la confecci n de un listado completo formulario listador y reporte est ndar Las partes grisadas de los ejemplos de c digo est n a modo de referencia para indicar la ubicaci n del c digo relacionado al tem de referencia Las partes resaltadas indican que deber reemplazarse el contenido por el apropiado en cada caso En el caso de las validaciones estas partes est n s lo a modo de ejemplo ya que no se puede especificar una validaci n gen rica Por razones de espacio algunas l neas de c digo debieron ser tipeadas en varios renglones Casi cualquier porci n de c digo utilizada en esta secci n puede ser creada mediante el uso de los code snippets incluidos en StartFrame Parte l Listador A A F 16 E Deben realizarse las siguientes tareas en el formulario de la capa de usuario 1 Agregar la interf z si no existe para la clase en StartFrame IBR IAbm con el si
22. CONSULTORES E E E CP OP mm TURA AA E TE Interfaz Windows Desktop AS viais tesetica dea ede dE ea ADA DATAS ETA DEA A DADE ERAN AE dA A EE ANEA E EE PROCESOS DI LOGOS Y WIZARDS Interfaz Windows Desktop DI BO Sie NN VAS do E A ia A E ORRE Dena dana da desde aa a aqua da aga acade Interfaz Windows Desktop Partei listado AA EA E SEE E EA E E A E eE ASAS Interaz Webstats Parte Repo a E AE ATAR 54 01 10H 30 3 AA O 56 20 StartFrame Net Framework Manual Programaci n met aran versi n 1 10 2011 CONVENCIONES DE DESARROLLO Si bien no se trata de reglas formales se sugiere tener presente las siguientes pr cticas adoptadas por los mejores desarrolladores del mercado para la escritura de c digo MM Documentar todos los bloques de c digo con t tulos y comentarios a fin de que cualquier programador que no sea el que escribi el c digo pueda interpretarlo perfectamente Debe indicarse principalmente el objetivo del proceso los par metros pasados indicando su funci n posibles valores y el valor de retorno de la rutina si corresponde Redactar los comentarios en un lenguaje impersonal No s lo se comentar n los encabezados de los procesos sino que dentro de los mismos deber comentarse cada bloque de c digo para que se pueda determinar lo que se est haciendo Siempre que sea posible se comenzar el comentario con una identificaci n que ligue el bloque de c digo a un punto en particular de la especific
23. Estas validaciones deber n apuntar a temas de formato ya que las validaciones importantes deben estar siempre en la capa de negocios Las validaciones a nivel de la grilla en realidad se realizan a nivel del formulario debido a que estas no se ejecutar an si el usuario nunca entra a la grilla Para ello se utiliza el evento Form_Actualizando que se dispara antes de enviar a grabar los datos a la capa de negocios Validaciones Private Sub Provesdores Actualizando ByRef cancela As Boolean _ Handles MyBase Actualizando Valida que exista un registro en la grilla de cuentas If _dataSet Tables Rows Count 0 Then ErrorProviderl SetError Grilla Cuentas incompleta cancela True EnA EE End Sub Para validar a nivel de celda deber utilizarse el evento de la grilla CurrentCellChanged Este evento se dispara cada vez que se posiciona en una nueva columna al entrar a la nueva celda no al salir de la anterior por lo cual deber utilizarse cierta l gica para saber no s lo d nde lleg sino de d nde ven a Las validaciones deben referirse a las celdas de la grilla y no a los campos de la tabla ya que esta ltima no posee registros hasta que se cambia de fila por lo tanto puede funcionar s lo en ocasiones Para impedir que se edite una columna se la puede definir como ReadOnly pero cuando hay que evitar que se edite la columna en forma din mica dependiendo del valor de otros campos debe utilizarse este ev
24. If graMG col ant nCol cd operador AndAlso Not IsNothing col_ cd operador LvRetorno Then tem grdMG_row_ant nCol nm operador rim col cd operador LvRetorno End If Asigna un valor por defecto If grdMG_ col ant nCol tp operador _ AndAlso IsDBNull wid miembros grupo Item grdMG_row_ant nCol po pago Then tem grdMG_row_ant nCol po pago 100 End If Permite s lo valores num ricos entre 1 y 100 para po pago If grdMG_ col ant nCol po pago Then TE Item grdMG_row_ant nCol_po_pago gt Then Item grdMG_row_ ant nCol po pago StartFrame US Display MsgBox Error de Validaci n StartFrame US Display MsgBoxTipos Manic tal End If End If Si cambi de fila verifica que pueda hacerlo sino retorna If grdMG_row_ant lt gt row AndAlso Not ValidaRow grdMG row_ant Then CurrentCell New DataGridCell grdMG_row_ant grdMG col ant End If Catch ex As Exception Finally Guarda la fila y columna actual para saber de d nde ven a en el pr ximo ingreso grdMG_row_ant row grdMG_col_ant col End Try End Sub 350 E E 9 F Ef i E PA e StartFrame Net Framework Manual Programaci n versi n 1 10 2011 Net Framework Otra alternativa para realizar las validaciones m s comunes en relaci n al ingreso de datos en las columnas que contengan el control DataGridLnkTextBoxFKColumn es utilizar el evento OnTextValidated propio del mencionado control y que se ejecuta una vez ingresado un valor v lid
25. Interfaz Windows Desktop A continuaci n se especifica el procedimiento para cualquiera de las arquitecturas Windows Desktop Agregado de un nuevo m dulo StartFrame en su plantilla de soluci n para Windows Desktop ofrece una barra tipo Outlook que permite ingresar los subm dulos del sistema y agrupar los mismos en reas o m dulos m s generales Para ello tan s lo deber agregar las caracter sticas del nuevo m dulo en el archivo MenuModulos xml respetando los tags del xml y sus atributos e Name Nombre del m dulo o subm dulo el cual figurar en el control de OutLook y en el t tulo del men una vez ejecutado e Image Etiqueta del TAG que contiene la imagen dentro del archivo de recursos App resources Deber n tratarse de conos de 48x48 en 256 colores e Descrip Descripci n de ayuda que aparecer en la ventana de display e MenuXml Nombre del archivo XML que contiene las opciones del subm dulo lt xml version 1 0 encoding UTF 8 gt lt MainMenu gt lt Menu Name Ventas gt lt Menu Name Facturacion Image MENU_MOD1_ITEM1 Descrip M dulo de facturaci n MenuXml MenuFact xml gt lt Menu Name Cobranzas Image MENU_MOD1 ITEM2 Descrip M dulo de control de cuentas corrientes MenuXml XmlCobranzas xml gt lt Menu gt lt Menu Name Sueldos gt lt Menu Name Liquidador Image MENU_MOD2 ITEM1 Descrip M dulo de liquidaci n de sueldos MenuXml XmlSueldos xml gt lt Menu gt
26. LSE CASE sin CASE ELSE etc aunque la posibilidad de que ello ocurra sea muy remota Cada vez que se agreguen controles en un formulario controlar lo siguiente O Tama o y alineaci n O Orden de tabulaci n O Inclusi n del campo en el diccionario si corresponde Para todos los mensajes al usuario de error validaci n informaci n etc deber tenerse en cuenta O Emplear un lenguaje impersonal O Capitalizar s lo la primera palabra de la oraci n O Colocar signos de expresi n si corresponde a ambos lados de la oraci n sin dejar espacios intermedios Q En caso de no haber signos de expresi n colocar punto final de la oraci n O Siempre que sea posible utilizar el archivo de recursos para los mensajes al usuario creando una etiqueta prefijada ver Etiquetas del Archivo de Recursos 30 StartFrame Net Framework Manual Programaci n met aran versi n 1 10 2011 O La forma de mostrar el mensaje depender si se trata de un error ShowError o informaci n general MsgBox M Para las etiquetas labels que se relacionen directamente con alg n campo en lugar de llenar la propiedad text del label deber asignarse a la etiqueta el nombre del campo vinculado con el prefijo Ibl en su propiedad name M Siempre que se deje una tarea pendiente en alg n bloque de c digo deber utilizarse la lista de tareas task list con un prefijo correspondiente a las iniciales del desarrollador para realizar
27. STARTFRAME NET FRAMEWORK Manual Programaci n El objetivo de este manual es definir una serie de criterios que sirvan de base para un arquitecto analista o programador que desee utilizar el producto Podr encontrar dentro de este manual una serie de convenciones adoptadas gu as paso a paso para utilizar el producto mejores pr cticas entre otros aspectos igualmente importantes Se destaca que el lector de este manual debe tener un perfil de programador Net TSouth 8 CDT Consultores Versi n liberada el 01 10 2011 StartFrame Net Framework Manual Programaci n net arameo versi n 1 10 2011 STARTFRAME NET FRAMEWORK Manual Programaci n NDICE GENERAL INDICEGENERAL a ES 1 CONVENCIONES DE DESARROLLO cccocccconcncninnninnnincnonononononcnononanonanonano nano nononon enana nana rana rana nana rana ranenancnnnnn 3 MANEO CONTROLDE ERRORBES cdta 4 CREACI N DE OBJETOS isisi ede ea eU Tena TECLAS DE CORTE SHORTCUTS CONVENCIONES DE NOMIBRES csiciovisnacorociduconnccnosrincanos ATA TODO ITA DATO Rro TENO AIRA E rR OES A da UNTO Unos ESAs o E aE 7 ELEMENTOS DE LA APLICACI N sestese iussis ennen Don eeen nikne DE EO SEERE DU dA DES SRETEN EEEE SE EErEE EE DERA RESTES E uNa 7 Variables de UNA ao risa A E E E PA AO 7 ODO TA AA 8 FOrmuUlarios Y PDAQINOS sssrini das das di A EA EE DU NARVA R Da AREA TRAD da BASEAR TRAN 8 REPOTEGANT aid 9 Etiquetas del Archivo de RECURSOS
28. Sub Protected Overloads Sub OnPrelnit Handles Me Prelnit Aplicacion de Tema If Not Session Tema Is Nothing Then Page Theme Session Tema ToString End If End Sub End Class 6 Existen varios eventos que podr n utilizarse en el caso de que desee obtener el origen de datos desde otra fuente diferente a un store procedure o validar dicho set de datos En cualquier caso deber crearse un manejador para cada evento en cuesti n ver documentaci n de ayuda online para mayores detalles 440 StartFrame Net Framework Manual Programaci n net Framework versi n 1 10 2011 Procesos Di logos y Wizards Como en los cap tulos anteriores el objetivo del presente punto es lograr una estandarizaci n total en la programaci n de todo el sistema de forma tal que sea imperceptible el paso de varios programadores diferentes facilitar el mantenimiento y minimizar la posibilidad de errores Casi cualquier porci n de c digo utilizada en esta secci n puede ser creada mediante el uso de los code snippets incluidos en StartFrame Interfaz Windows Desktop A continuaci n se especifica el procedimiento para cualquiera de las arquitecturas Windows Desktop Un Proceso es el tipo de programa que m s variedad de formatos puede llegar a tener Por ello hay que estudiar previamente la funcionalidad deseada para el proceso y determinar si se desea realizar un proceso tipo batch un di logo con el usuario o un Wizard Dependiendo de
29. a es lograr una estandarizaci n total en la programaci n de todo el sistema de forma tal que sea imperceptible el paso de varios programadores diferentes facilitar el mantenimiento y minimizar la posibilidad de errores Es conveniente comenzar por las capas inferiores las que est n m s cerca de los datos y luego ir subiendo de nivel Por ello la confecci n de un abm se divide en dos partes las cuales se detallan a continuaci n Se aclara que la siguiente es s lo una gu a de los pasos a realizar pero no es la nica manera de realizarlos ni necesariamente el orden requerido Cuando el programador tome experiencia con StartFrame l mismo podr optar por la manera m s c moda en que le resulte realizar estas tareas Las partes grisadas de los ejemplos de c digo est n a modo de referencia para indicar la ubicaci n del c digo relacionado al tem de referencia Las partes resaltadas indican que deber reemplazarse el contenido por el apropiado en cada caso En el caso de las validaciones estas partes est n s lo a modo de ejemplo ya que no se puede especificar una validaci n gen rica Por razones de espacio y claridad algunas l neas de c digo debieron ser tipeadas en varios renglones Casi cualquier porci n de c digo utilizada en esta secci n puede ser creada mediante el uso de los code snippets incluidos en StartFrame 180 StartFrame Net Framework Manual Programaci n versi n 1 10 2011 net Framewo
30. aci n de dise o si hubiera No escribir grandes bloques de c digo ya que es muy dif cil realizar el seguimiento Deber n utilizarse subrutinas para separar dicho c digo Es conveniente que las subrutinas no dependan de variables u otros elementos que sean externos a la misma para que pueda ser reutilizada Estas subrutinas deben ser m todos privados o p blicos dentro de la clase que se est utilizando Es conveniente declarar expl citamente todas las variables al comienzo de cada bloque de c digo En dicha declaraci n se indicar la finalidad de uso de la variable Siempre debe tratar de utilizarse el menor alcance scope posible para todas las variables evitando al m ximo el uso de variables globales En lo posible no superar el ancho m ximo de la pantalla con un comando Usar el separador de l neas para seguir en el rengl n siguiente y adentrado sSQL Select C IdCliente C Nombre C Calle C Numero _ C Localidad C IdProvinc _ From VACliente C T _ Where C IdCliente 12300015 Todo programa realizado reci n se considera terminado cuando est probado ver CONTROL DE CALIDAD y documentado en el diccionario de datos en l nea del sistema Deben respetarse al 100 las convenciones de nombres ver m s adelante adoptadas para variables formularios tablas campos procedimientos almacenados reportes etc Nunca dejar una condici n sin su correspondiente alternativa de acci n IF sin E
31. alor ingresado ya existe Then valRet amp Grilla Provincias Est intentando ingresar informaci n duplicada amp vbCrLf ElseIf tabError TableName wad provincias _ And colErrors c ColumnName nm provincia And textError Like nombre incompleto Then valRet amp Grilla Provincias Debe ingresar el nombre de la provincia vbCrLf Else Alg n error no fue trapeado findError False End If Next Next Next 260 StartFrame Net Framework Manual Programaci n net arameo versi n 1 10 2011 Else Busca los errores por excepciones If textoErrores Like valor ingresado ya existe Then valRet amp Grilla Provincias Est intentando ingresar informaci n duplicada vbCrLf Elself textoErrores Like nombre incompleto Then valRet Grilla Provincias Debe ingresar el nombre de la provincia 8 vbCrLf Else Alg n error no fue trapeado findError False End If End If Verifica si encontr errores If findError Then Cancela el display de errores en la clase base cancela True Muestra los errores StartFrame US Display MsgBox valRet StartFrame US Display MsgBoxTipos msgError End If Errores detectados Catch ex As Exception Ignora los errores End Try End Sub porque ser n mostrados por la clase base 270 5 E A F Eh fa E AA e StartFrame Net Framework Manual Programaci n J net Framework versi n 1 10 2011 Interfaz Web A continuaci n se es
32. anterior Eliminar registro Impresi n a impresora Registro siguiente 60 StartFrame Net Framework Manual Programaci n net Framework versi n 1 10 2011 CONVENCIONES DE NOMBRES Se definen a continuaci n las reglas que deber n utilizarse para nombrar cada objeto dentro del sistema y su entorno El objetivo es lograr una estandarizaci n tal del sistema de modo que cualquier programador contando con la especificaci n de dise o pueda modificar cualquier programa aunque no haya sido l qui n lo confeccion Adem s esto facilitar en gran manera las tareas de control de calidad Sin embargo podr an adoptarse otras convenciones totalmente diferentes a las expresadas a continuaci n Lo importante es que exista alguna convenci n y cuente con el consenso de la mayor a del equipo de desarrollo Elementos de la Aplicaci n Se entiende por elementos de la aplicaci n a todos aquellos objetos que se pueden individualizar e identificar con un nombre determinado como ser variables matrices punteros de objetos instanciados controles de pantalla formularios reportes etc A continuaci n se dictar n las reglas utilizadas para nominar todos ellos Variables de Memoria Si bien se parti de las convenciones propuestas por Microsoft para Visual Studio se simplificaron para unos fines m s convenientes y pr cticos La siguiente tabla muestra la estructura del nombre de una variable POSICI N DESCRIPCI N 1er Elemento nicam
33. arias Display Handles MyBase Display Borra los datos de la grilla y actualiza sus datos _dataSet Tables Clear _dataSet Merge End Sub 15 Para trapear errores y mostrarlos en un formato m s amigable para el usuario utilizar el siguiente evento Se aclara que los errores por excepciones vienen en formato de string en tanto que los dem s vienen informados en el dataset Intercepta los errores Private Sub Paises MostrarErrores ByVal ds As System Data DataSet ByVal textoErrores As String ByRef cancela As Boolean Handles MyBase MostrarErrores Dim valRet As String Texto a mostar Dim findError As Boolean True Indica si se trapearon todos los errores Try If ds HasErrors Then Busca errores recorriendo el dataset Dim t As Integer Table Dim r As Integer Row Dim c As Integer Gol Dim tabError As DataTable Tabla con el error Dim colErrors As DataColumn Columnas con errores Dim textError As String Texto con el error original Recorre cada tabla registro y columna del dataset For t O To ds Tables Count 1 tabError ds Tables t For r 0 To tabError Rows Count 1 colErrors tabError Rows r GetColumnsInError For c 0 To colErrors GetUpperBound 0 Error a trapear textError tabError Rows r GetColumnError colErrors r ColumnName Trapeo de errores If tabError TableName wad provincias _ And colErrors c ColumnName cd provincia _ And textError Like v
34. ber Try Columnas de la grilla Dim nCol_cd operador As Integer Dim nCol_nm operador As Integer l il Po Valida el c digo del operador y carga su nombre If dgl tp operador Textbox Text supervisor Then dgl_cd_operador LvWhere st _supervisor 1 End If Catch ex As Exception End Try End Sub 360 5 E A F Ef fa E AA e StartFrame Net Framework Manual Programaci n versi n 1 10 2011 Net Framework Validaciones especiales Existen algunas validaciones que si bien son aplicables a cualquier tabla son muy t picas de las grillas por ello se describen en este cap tulo Para validar que no se puedan insertar o eliminar registros en una grilla deber realizarse la validaci n en las reglas de negocios dentro del evento Validando de la clase que maneja la grilla Private Sub grupoAccesos Validando ByRef cancela As Boolean ByRef paramDataTable _ As System Data DataTable Handles MyBase Validando No deben eliminarse registros en esta grilla If Not paramDataTable GetChanges DataRowState Deleted Is Nothing Then cancela True Throw New Exception No se pueden eliminar registros en la grilla de accesos End If No deben insertarse registros en esta grilla If Not paramDataTable GetChanges DataRowState Added Is Nothing Then cancela True Throw New Exception No se pueden insertar registros en la grilla de accesos End If End Sub Columnas no mapeadas En caso de necesitar ag
35. d ByVal sender As Object ByVal e As System EventArgs Handles Me Load Campos de filtado si esta vacio los incluye a todos Dim cf As String cd prueba fe prueba nu prueba nm prueba nm programa sad Columnas de la grilla si esta vacio las incluye a todas Dim cg As String fe prueba nm programa nm prueba Columnas del formulario de alta modificacion si esta vacio los incluye a todos Dim ce As String cd prueba fe prueba nu prueba nm prueba nm programa Alias de columnas si esta vacio pone los nombres de los campos Dim ac As New Hashtable ac Add cd prueba C digo ac Add fe prueba Fecha ac Add nu prueba N Prueba ac Add nm prueba Detalle ac Add nm programa Funcionalidad Instancia de la clase masterpage AbmBase masterpage CType Page Master AbmBase Asigna los atributos del AbmBase masterpage lblTitulo Registro de Pruebas Realizadas masterpage FiltrosBusqueda cf masterpage ColumnasGrilla cg 8 r Las tareas que figuran con la vi eta en KOAI son obligatorias 23 O E E E F Ef i E PA e StartFrame Net Framework Manual Programaci n net Framework versi n 1 10 2011 masterpage CamposEdicion ce masterpage AliasCampos ac Instancia del objeto de reglas del negocio Dim obr As New BR Web Utilitarios Abms Pruebas Inicializaci n de la p gina Abmbase enlazada al objeto de negocios masterpage InicializarPagina obr End Sub 3
36. dForm ByRef reportCollection As Reports Handles MyBase OnLoadForm Trey Crea los rangos Dim rpt As Report Dim As New Rango 1 bj Ma Dim As New Rango Crea los reportes rpt New Report rpt Rangos Add rpt Rangos Add reportCollection Add rpt Catch ex As Exception StartFrame Us Display ShowError ex message End Try End Sub Vincular el formulario de US a la clase de BR modificando el OnLoadForm del formulario agregando el siguiente c digo y modificando los valores resaltados Ejemplo Private Sub Auditoria OnLoadForm ByRef reportCollection As Reports Handles _ MyBase OnLoadForm Try Agrega los reportes Dim rpt As Report Dim rangoRubro As New Rango 1 cd rubro cd rubro rpt New Report 1 TLRubros_rubros rpt Rangos Add rangoRubro reportCollection Add rpt Rubros tlrubros rubros Referencia el objeto de negocios relacionado Tauditoria CType RemotingHelper getObject GetType TAuditoria TAuditoria Me ObjetoReglasNegocio 510 StartFrame Net Framework Manual Programaci n met aran versi n 1 10 2011 Catch ex As Exception StartFrame Us Display ShowError ex message End Try End Sub 8 Pueden realizarse validaciones previas o con posterioridad a la carga de datos para la impresi n del formulario Esto puede hacerse en los eventos AntesDeCargarDatos y DespuesDeCargarDatos del formulario En ambos casos podr ponerse
37. datos Tener en cuenta que se deben colocar como par metros del SP los rangos de pantalla del listador en el mismo orden de ubicaci n que tengan en el formulario 2 Generar un archivo XML ejecutando la opci n correspondiente del listador desde el Sistema E Utilizar el XML generado para dise ar el reporte Para el dise o del reporte es v lido copiar un reporte similar ambos archivos y guardarlo con el nombre correspondiente para aprovechar el formato del mismo Para cambiar el archivo XML vinculado al reporte es necesario desvincular el anterior log off antes de seleccionar el nuevo Este reporte puede crearse en el assembly indicado en su definici n en el listador o bien en el assembly que contiene los reportes a medida del cliente par metro REPORTSCTE 7 pa r P Las que figuran con la vi eta en video inverso son obligatorias 540 StartFrame Net Framework Manual Programaci n net Framework versi n 1 10 2011 4 El formato del reporte estandar se especifica m s abajo a modo de sugerencia Diccio rio de Datos s Programas M a s int Time T Ordenado Subsistema BOperado 5 Empresa 55 O StartFrame Net Framework Manual Programaci n net Framework versi n 1 10 2011 CONTROL DE CALIDAD Con el fin de poder asegurar un determinado nivel de control de calidad funcional del sistema previo al control operativo que el propietario o usuario l der de la aplicaci n deber realizar
38. e HeaderText Common Display FieldToText im total Common Display FormatoMnemotecnicos CORTO Alignment HorizontalAlignment Center Width avgCharWidth 10 NullText 0 Format c formato num rico Minimo 0 Maximo 999999999 End With Add dg1_im_total 32 O 5 E A F Eh f E AA e StartFrame Net Framework Manual Programaci n J net Framework versi n 1 10 2011 End With End With Configuraci n de la grilla With TableStyles Add table gridTableStyle DataSource dataSet Tables NO End With End Sub End Region Refrezco de Datos Para obtener los datos de la grilla y conseguir que se refrezquen con el movimiento entre registros deber agregarse en la capa de negocios el siguiente m todo sin olvidar declarar su interfaz como corresponde Tal vez sea necesario reemplazar el uso del m todo base Buscar por la ejecuci n de un DA Select Retorna los registros para la grilla de cuentas de proveedores Public Function getCuentas ByVal As String As DataSet Implements Return cuentas Buscar Ped cuenta 118 CcuentalD 6 10 End Function En la capa de usuario deber llamarse al m todo anteriormente mencionado en el evento Display Al moverse entre registros Private Sub Proveedores Display Handles MyBase Display Borra los datos de las grillas _dataSet Tables Kid cuentas provesdores Clear Actualiza los datos de las grillas _da
39. e BR Utilitarios UnidadesMonetarias BR objecturi inidadesMonetarias gt 4 Si son necesarias nuevas clases con reglas de negocios espec ficas crear dentro del mismo componente tantas clases como entidades relacionadas existan para efectuar las validaciones correspondientes Adem s si se utilizan m todos que no son propios de la clase heredada se debe referenciar la interfaz si desea que dichos m todos sean visibles desde el front end Windows desktop a trav s de Remoting Public Class UnidadesMonetarias Nombre de la clase Inherits Abm Herencia Implements IUnidadesMonetarias Referencia de interfaz Dim _ cotizaciones As New Cotizaciones Clase asociada subclase Sub New Modificar nombre de programa y tabla principal relacionada a la clase MyBase New Operador Password waunidmon wad unidades monetarias End Sub End Class Public Class Cotizaciones Nombre de la clase 5 r sa Sl Las que figuran con la vi eta en video inverso son obligatorias 6 ak A Ver tutorial para una ilustraci n paso a paso de las tareas a realizar 190 E E E F Ef i E PA e StartFrame Net Framework Manual Programaci n versi n 1 10 2011 Net Framework Inherits Abm Herencia Sub New Modificar nombre de programa y tabla principal relacionada a la clase MyBase New Operador Password waunidmon wld cotizaciones End Sub End Class 5 Para crear una grilla o tabla secundaria
40. e alineados Presionando el bot n de ayuda se llame a la documentaci n de ayuda en l nea apropiada Procesos Deber controlarse que Y Y Y Y Y Y Si Todos los controles est n alineados correctamente El orden de tabulaci n sea el apropiado Presionando el bot n de ayuda se llame a la documentaci n de ayuda en l nea apropiada Todos los campos vinculados posean ventana de apoyo y sus carteles descriptivos relacionados El proceso est detalladamente documentado No se permita confirmar el proceso con alg n rango vac o o inv lido que sea de car cter obligatorio El proceso ponga carteles indicativos del estado de avance del mismo y no parezca que se colg la m quina El proceso termine correctamente y su resultado sea coherente con su finalidad completando todas y cada uno de las tablas que correspondan Se informen apropiadamente todos los errores ocurridos durante el proceso con la informaci n suficiente para que el operador pueda resolverlos Se contemplen todas las validaciones posibles incluso las que aparentemente no se puedan dar En otras palabras no dejar ning n F sin su correspondiente ELSE 580 StartFrame Net Framework Manual Programaci n net Framework versi n 1 10 2011 Controles Avanzados Estos controles figuran en la planilla de especificaci n de dise o Los mismos aunque se llaman avanzados deben efectuarse con anterioridad a los controles b sicos ya que estos cont
41. ealizarse los mismos pasos mencionados para Abms E con algunas salvedades las cuales se detallan a continuaci n Los ejemplos dados a continuaci n har n referencia al enlace del di logo con un componente de negocios del tipo Abm que es el uso m s complejo que puede d rsele a esta clase 1 Agregar la interfaz puede que no se requiera una nueva interfaz ya que el di logo suele utilizar un componente de negocios ya existente 2 Agregar el formulario en este caso heredado de StartFrame US Dialogo E Declaraci n de la clase var a dependiendo del tipo de uso que se le quiera dar Imports StartFrame BR Interfaces Procedencia de las referencias utilizadas Namespace Namespace de la clase Public Class Nombre de la clase Inherits Herencia Dim As Componente de negocios Para poder utilizar BR Abm Protected dataset As DataSet Protected tablaPrincipal As String End Class End Namespace 4 Vinculaci n a BR deber vincularse el di logo a alg n componente de la capa BR a fin de poder controlar la seguridad Private Sub EvolucionOficina Load ByVal sender As Object ByVal e As _ System EventArgs Handles MyBase Load Try CType RemotingHelper getObject GetType Ievolucion levolucion Me ObjetoReglasNegocio LTevolucion Para poder utilizar BR Abm _tablaPrincipal getTablaPrincipal _dataset getDataSet Catch ex As Exception StartFrame Us Display ShowError ex
42. ear utilizar algunos filtros a modo de buscadores que al elegirlos refresquen la tabla principal deber n ubicarse los mismos sin un bindeo directo a la tabla en todo caso asignarle valor al campo bindeado equivalente Una forma de hacer esto es utilizando un control del tipo LnkTextboxFK en modo Combo como en el siguiente ejemplo Al seleccionar un valor para el filtro Private Sub e OnSelectedChanged ByVal sender As Object _ ByVal e As System EventArgs Handles BSTIoperados onSelectedChanged Try Rearma la grilla principal Dim filtro As String CType Me sel operador cboDescription SelectedValue String Me RefrescarGrilla t e filtro E Trnj Restablece los valores de pantalla que ya se hab an cargado Me Text filtro Me cboDescription SelectedValue filtro Catch ex As Exception Ignora errores por estar sin datos End Try End Sub Controles del tipo localizadores Interfaz Windows Desktop A diferencia de los controles del tipo filtro se entiende por localizador a un control utilizado para posicionarse en un registro pero sin realizar una nueva b squeda sino tan solo movi ndose en los registros del dataset actual Se asume que dicho posicionamiento se desea realizar a trav s de la evaluaci n de una serie de condiciones Para hacer lo descripto deber utilizar un c digo similar al del siguiente ejemplo para un abmGrilla Al seleccionar un valor para el localizador Private Sub BSlISperador OnS
43. ecto Por ej StartFrame 3er Elemento Capa a la cual pertenece el formulario Por ej BR o BR Web 4to Elemento M dulo al cual pertenece en forma prioritaria Ejemplo Utilitarios Por ltimo la clase recibe el mismo nombre que el archivo f sico del formulario pero sin los mnemot cnicos tal cual el nombre de la clase de la capa de usuario Ejemplo de un nombre completo StartFrame BR Utilitarios Operadores o StartFrame ERP BR Ventas Clientes Reportes Los nombres de los reportes en entornos Windows desktop utilizar n las siguientes reglas POSICI N DESCRIPCI N 1er Elemento Nombre del formulario listador con el cual se vincula el reporte 2to Elemento Gui n bajo _ como separador de elementos 3er Elemento Nombre que identifica al reporte en s Un ejemplo de un nombre de reporte v lido puede ser wloperadores_porgrupo 90 StartFrame Net Framework Manual Programaci n net arameo versi n 1 10 2011 Etiquetas del Archivo de Recursos El archivo de recursos se utilizar para facilitar las traducciones del sistema para otras culturas Por ello es indispensable que se utilice para almacenar cualquier tipo de informaci n de ndole cultural gr ficos mensajes de cualquier ndole textos en pantalla etc La siguiente tabla muestra las etiquetas utilizadas en dicho archivo POSICI N CONTENIDO 1er elemento Tipo de etiqueta e Sin prefijo si es una imagen gen rica e 16 Icono de 16x16 pixeles e 132 Icono de 32
44. electedChanged ByVal sender As Object _ ByVal e As System EventArgs Handles Sel Toperados onSelectedChanged Try Rearma la grilla principal Dim filtro As String CType Me sel operador cboDescription SelectedValue String Dim cols As New ArrayList Dim vals As New ArrayList Condiciones cols Add Ed Operador vals Add filtro cols Add e vals Add 0 Busca el registro Me MovePosition cols vals Marca el registro seleccionado en la grilla Me grdTablaPrincipal Select Me CurrentPosition Me grdTablaPrincipal CurrentRowIndex Me CurrentPosition Catch ex As Exception Ignora errores por estar sin datos End Try End Sub 420 5 E a F Eh i E PA e StartFrame Net Framework Manual Programaci n 1 net Framework versi n 1 10 2011 Consultores Como en los cap tulos anteriores el objetivo del presente punto es lograr una estandarizaci n total en la programaci n de todo el sistema de forma tal que sea imperceptible el paso de varios programadores diferentes facilitar el mantenimiento y minimizar la posibilidad de errores Casi cualquier porci n de c digo utilizada en esta secci n puede ser creada mediante el uso de los code snippets incluidos en StartFrame Interfaz Windows Desktop A continuaci n se especifica el procedimiento para cualquiera de las arquitecturas Windows Desktop En este caso para confeccionar un Consultor deber n realizarse los mismos pasos que para realizar un Abm obviando todos
45. ente aplicable si el alcance de la variable es global pero privada a nivel de clase En tal caso deber llevar un gui n bajo _ Si dicha variable es p blica por convenciones de Net no podr utilizarse dicho prefijo _ En su defecto se reemplazar por m_ 2do Elemento Indica el tipo de dato de la variable e s string e b boolean e d date datetime e n num rica de cualq tipo integer double etc u tipos definidos por el usuario e a array obj para objetos en forma gen rica ver e Objetos 3er Elemento en adelante Nombre de la variable que no supere los 30 caracteres Siempre que sea posible pueden utilizarse los mismos mnemot cnicos que los recomendados para los nombres de los campos ver Campos Capitalizar cada palabra en el nombre de la variable Un ejemplo de un nombre de variable global privada del tipo string para el c digo del operador puede ser sCd Operador 7O StartFrame Net Framework Manual Programaci n net Framework versi n 1 10 2011 Objetos En los abms debido a una raz n t cnica interna del funcionamiento autom tico de la interfaz de programaci n los nombres de los controles de pantalla que est n vinculados a campos de tablas deben tener el mismo nombre que el campo con el cual se vincula En el caso del resto de los formularios los nombres de los controles responden a su contenido o funcionalidad con la anteposici n de un prefijo que indica su tipo Capital
46. ento El mismo tambi n se utiliza para realizar validaciones y asignar valores por defecto Tener presente que cuando se posee una columna con un localizador habilitado puede utilizarse OnTextValidated para optar por una alternativa a este ltimo tipo de validaci n Region Declaraciones Private grdMG_col_ant As Integer 0 Private grdMG_row_ant As Integer EndRegion l o Al cambiar de celda Private Sub Cameos CurrentCellChanged ByVal sender As Object ByVal e As System EventArgs _ Handles wld miembros grupo CurrentCellChanged Variables de trabajo Dim cel As DataGridCell wld miembros grupo CurrentCell Dim col As Integer cel ColumnNumber Dim row As Integer cel RowNumber Dim tabla As DataTable CType ld miembros grupo DataSource DataTable 340 StartFrame Net Framework Manual Programaci n met aran versi n 1 10 2011 No realiza validaciones si la grilla es de s lo lectura If Not Wwld miembros grupo Enabled Or Wwld miembros grupo Readonly Then Exit Sub End If Try Columnas a validar Dim nCol_cd operador As Integer 0 Dim nCol_nm operador As Integer Dim nCol tp operador As Integer 2 Dim nCol_ po pago As Integer 3 m Valida el ingreso a las celdas Dim bEdit As Boolean wld miembros grupo Item row 0 N A Me col im neto ReadOnly bEdit Me col_im iva ReadOnly bEdit Me col im total ReadOnly bEdit Asigna un valor al campo descriptivo y saltea la celda
47. er documentaci n de ayuda online para mayores detalles 5 si fuera necesario podr cear m s p ginas del tipo Web Content Form Para ello deber ingresar el siguiente c digo en el evento load de la p gina Cantidad de tabs a utilizar m ximo 8 Dim tp As Integer 8 Asigna los atributos del AbmBase masterpage TabsAdicionales tp Nombre de los tabs a utilizar masterpage lblTabs P gina 1 masterpage lblTabsl P gina 2 masterpage lblTabs2 P gina 3 masterpage lblTabs3 P gina 4 masterpage lblTabs4 P gina 5 masterpage lblTabs5 P gina 6 masterpage lblTabs6 P gina 7 masterpage lblTabs7 P gina 8 Luego en el c digo HTML de la p gina se ingresar n porciones de c digo similares a lt asp Content ID Contentll ContentPlaceHolderib FormulariorRdicion runat server gt lt asp Panel ID panelEdicion runat server gt lt asp Panel gt lt asp Content gt lt asp Content ID ContentA ContentPlaceHolderID FormularioEdicionl1 runat server gt lt asp Panel ID panelEdicionl runat server gt lt asp Panel gt lt asp Content gt lt asp Content ID Content9 ContentPlaceHolderID FormularioEdicion8 runat server gt lt asp Panel ID panelEdicion8 runat server gt lt asp Panel gt lt asp Content gt 300 5 E A F Ef fa E AA e StartFrame Net Framework Manual Programaci n J net Framework versi n 1 10 2011 Grillas int
48. erfaz Windows Desktop 9 Y A Ya se mencionaron algunos aspectos relativos a las grillas en el cap tulo que describe los abms sin embargo aqu se detalla todo lo relativo a estos controles que suelen ser los m s complicados de cualquier formulario Windows Desktop Creaci n Para crear la grilla tanto la grilla en s como sus columnas deber n utilizarse los controles provistos para tales fines Sin embargo cabe se alar que hay que crear las columnas y las caracter sticas de la grilla mediante c digo y no mediante un generador o el seteo de propiedades en forma visual En el Load del formulario hay que llamar a un procedimiento que se encargue de crear cada grilla Private Sub UnidadesMonetarias_Load ByVal sender As Object ByVal e As _ System EventArgs Handles MyBase Load Try _unidadesMonetarias _ CType RemotingHelper getObject GetType IUnidadesMonetarias IUnidadesMonetarias Me ObjetoReglasNegocio unidadesMonetarias Grillas Catch ex As Exception StartFrame Us Display ShowError ex message End Try End Sub Ese procedimiento tendr la siguiente estructura Tener en cuenta que se muestran varias columnas para que pueda apreciarse la diferencia en la creaci n de los diferentes tipos de campos Crear s lo las columnas que deben mostrarse en la grilla no crear columnas ocultas Tener muy presente que el nombre de la grilla debe ser igual al nombre de la tabla de detalle a la cual est
49. guiente esquema modificando los valores resaltados Public Interface TRubros Inherits IAbm Agregar las declaraciones de funciones que correspondan End Interface 2 Agregar un nuevo formulario heredado en la capa de usuario desde StartFrame US Listador E Realizar la declaraci n de la clase Imports StartFrame BR Interfaces Procedencia de las referencias utilizadas especificar otras si es necesario 15 E aj Ver tutorial para una ilustraci n paso a paso de las tareas a realizar 16 i ss A Las que figuran con la vi eta en video inverso son obligatorias 50 O StartFrame Net Framework Manual Programaci n versi n 1 10 2011 net Framework Namespace Namespace de la clase Public Class Nombre de la clase Inherits Herencia Dim _Rubros As IRubros End Class End Namespace 4 Modificar el Text del t tulo del formulario g Pegar los controles de pantalla utilizando la clase StartFrame LnkControls No es necesario colocar etiquetas de t tulo para los rangos ya que no son necesarias en modo dise o 6 Agregar los reportes a la colecci n y vincular los rangos para cada reporte modificando el OnLoadForm del formulario agregando el siguiente c digo y modificando los valores resaltados Tener en cuenta que estas instrucciones son case sensitive El orden de los rangos debe ser el mismo aplicado en el stored procedure Private Sub Auditoria OnLoa
50. ipal GetChanges DataRowState Deleted Is Nothing Then 370 5 E A F Ef f E AA e StartFrame Net Framework Manual Programaci n J net Framework versi n 1 10 2011 _grupoMiembros ActualizarDatos paramDataSet cn tran En la capa de usuario la definici n de la columna vinculada se realizar normalmente aunque ser por lo general de s lo lectura pero deber declararse privado utilizando Private en lugar de Dim cualquier control de columna del cual desee posteriormente consultar sus propiedades T picamente esto ocurrir con los controles del tipo DataGridLnkTextBoxFKColumn que posean alguna columna vinculada Private dgTextBoxColumn2 As New DataGridLnkTextBoxFKColumn _ n r Grilla Cuentas Private Sub InicializarGrillaMiembros Crea las columnas With gridTablestyle Mapeo MappingName kld cuentas proveedores Agrega las columnas With GridColumnStyles cd operador columna del tipo TextboxFK With dgTextBoxColumn2 MappingName cd operador HeaderText Common Display FieldToText Ed_operador _ Common Display FormatoMnemotecnicos CORTO Width avgCharWidth LvCamposRetorno i AbmModo DataGridLnkTextBoxFKColumn Modos NoPermiteOperaciones End With Add dgTextBoxColumn2 nm operador columna asociada a cd operador With dgTextBoxColumn3 MappingName nm operador HeaderText Common Display FieldToText Am operador _ Common Di
51. izar cada palabra componente de un nombre para mayor claridad La siguiente lista es s lo indicativa PREFIJO TIPO DE OBJETO No corresponde prefijo para los objetos vinculados a campos de los abms del sistema ibl Label txt Textbox de cualquier tipo cbo Combo box de cualquier tipo y contenido lst List box de cualquier tipo y contenido opt Option button chk Check box cmd Command button de cualquier tipo forma y contenido img Image picture y cualquier tipo de control gr fico spn Spinner tab Panel tab frame grd Grid de cualquier tipo forma contenido y fabricante frm Form mnu Men ds Dataset drd Datareader dv Dataview dt Datatable dr Datarow dc Datacolumn ex Exeption obj Control de cualquier tipo que no entre en ninguna de las clasificaciones antes descriptas en esta tabla Formularios y p ginas Hay que hacer una salvedad al hablar de nombres de formularios en entornos Windows desktop o p ginas en entornos Web Primero hay que distinguir perfectamente la diferencia entre el nombre f sico con el cual el formulario o p gina se guarda en disco el cual coincide con el nombre con el cual Visual Studio lo reconoce y por otro lado est el nombre l gico compuesto por un nombre de clase y el espacio de nombre namespace a la cual esa clase pertenece Por otro lado los espacios de nombre para las capas de usuario y negocios tienen una estructura muy similar Para los nombres f sicos se utilizar n
52. l getTablaPrincipal _dataSet getDataSet Catch ex As Exception StartFrame Us Display ShowError ex message End Try End Sub 13 E aj Ver tutorial para una ilustraci n paso a paso de las tareas a realizar 14 A so A Las que figuran con la vi eta en video inverso son obligatorias 480 StartFrame Net Framework Manual Programaci n met aran versi n 1 10 2011 5 Entrada en config esto ser necesario nicamente si el programa utiliza alg n nuevo componente de negocios 6 Aspecto visual Deber n realizarse todas aquellas tareas que tengan que ver con el aspecto visual del programa y acceso al programa a saber a Eliminar las p ginas sobrantes ejecutando en el evento Load el m todo RemovePage Siempre deber n eliminarse las p ginas intermedias nunca la primera ni ltima p gina comenzando desde la pen ltima b Cambiar las etiquetas de las p ginas que quedaron los labels de las p ginas de inicio fin e intermedias c Agregar una entrada en el men Evento CambioPagina Utilizar este evento para poner el c digo requerido cada vez que se acceda a una p gina diferente E Evento Ejecutar En este evento deber ubicarse todo el c digo que ejecute el proceso para el cual se cre esta pantalla ya que el mismo se dispara cuando el usuario confirma la operaci n 490 5 E E F Ef fa E AA e StartFrame Net Framework Manual Programaci n net Framework versi n 1 10 20
53. la elecci n anterior cambiar la clase base de la cual hay que heredar e Dialogo Esta clase deber usarse para funcionalidades que tengan como obtetivo dialogar con el usuario y realizar alg n proceso de relativamente corto tiempo de ejecuci n liviano Un ejemplo de este tipo de programas puede ser un logueo con cambio de password e Wizard Es el caso de los procesos que son relativamente pesados en cuanto a su ejecuci n y que requieren una cierta comunicaci n con el usuario un poco m s compleja o interactiva Esta es la opci n m s recomendable por lo amigable de su funcionalidad Un ejemplo de este tipo de programas puede ser una generaci n masiva de facturas en base a ciertos datos de abonos o pedidos de facturaci n e Proceso Deber usarse para ejecutar procesos batch pesados sino deber a usarse la clase Dialogo los cuales tengan poca o nula comunicaci n con el usuario sino deber a usarse la clase Wizard Podr a decirse que debe utilizarse esta clase cuando no sean apropiadas ninguna de las anteriores 450 E E E F Eh i a PA e StartFrame Net Framework Manual Programaci n H J net Framework versi n 1 10 2011 Di logos Para el uso de esta clase se har menci n nicamente a la parte correspondiente a la capa de usuario Windows Desktop ya que puede utilizar cualquier componente de negocios con el cual el di logo podr a enlazarse 6 z 11 En l neas generales puede decirse que deber n r
54. las siguientes reglas POSICI N DESCRIPCI N 1er D gito Indica el subsistema al que pertenece el formulario seg n se registr en la tabla wap_subsistemas por ej W para utilitarios 2do D gito Indica el tipo de programa e A abm e C consulta e L listado P proceso 80 StartFrame Net Framework Manual Programaci n net arameo versi n 1 10 2011 e R rutina 3er D gito en adelante Nombre del formulario En cuanto a los espacios de nombre para la capa de usuario se utilizar el siguiente rbol NAMESPACE DESCRIPCI N 1er Elemento Copyright del producto o la empresa Por ej StartFrame 2er Elemento Opcionalmente puede indicarse el nombre en clave del proyecto Por ej ERP 3er Elemento Capa a la cual pertenece el formulario Por ej US o Web 4to Elemento M dulo al cual pertenece en forma prioritaria Ejemplo Utilitarios 5to Elemento Tipo de programa a saber e Abms e Consultas e Listados e Procesos e Rutinas Por ltimo la clase recibe el mismo nombre que el archivo f sico del formulario pero sin los mnemot cnicos Ejemplo de un nombre completo StartFrame US Utilitarios Abms Operadores o StartFrame ERP US Ventas Abms Clientes En cuanto a los espacios de nombre para la capa de negocios se utilizar el siguiente rbol NAMESPACE DESCRIPCI N 1er Elemento Copyright del producto o la empresa Por ej StartFrame 2er Elemento Opcionalmente puede indicarse el nombre en clave del proy
55. los campos se utilizan caracteres en min sculas con un gui n bajo _ separando las palabras No se opt por un esquema de nombres capitalizados para obtener una mayor compatibilidad con los diferentes motores con respecto al case sensitive Tablas Las tablas respetan las siguientes reglas de nombres POSICI N DESCRIPCI N 1er D gito Indica el subsistema al que pertenece la tabla seg n se registr en la tabla wap subsistemas por ej w para utilitarios 2do D gito Indica el tipo de tabla e a abm maestro e c cabecera e l neas o detalle 3er D gito Indica la forma de ingresar datos en la tabla e d directo por el usuario e p proceso por el sistema como por ej un log e v vista 4to D gito Gui n bajo _ separando los mnemot cnicos del nombre de la tabla 5to D gito en adelante Nombre de la tabla en plural en min sculas y separando las palabras con guiones bajos Un ejemplo de un nombre de tabla v lido puede ser wad_operadores Relaciones En cuanto a las relaciones estas llevan el nombre encabezado por el texto FK_ seguido del nombre de la tabla hija extremo muchos de una relaci n un gui n bajo y el nombre de la tabla padre extremo uno de una relaci n Un ejemplo de un nombre de relaci n v lido puede ser FK_wap_tracking_wad_operadores ndices Los ndices llevan nombres diferentes seg n su tipo TIPO DE NDICE NOMBRE Clave primaria Encabeza el nombre el texto PK_
56. los puntos referentes a validaciones y grabaciones de datos En resumen deber Agregar un nuevo componente Declarar la clase Agregar la entrada en el archivo de configuraci n Agregar las nuevas clases si hubiera E U nn A Agregar las grillas si hubiera al dataset Interfaz Web En este caso las consultas toman la forma de listados contenidos en tablas HTML en realidad grillas paginadas A continuaci n se especifica el procedimiento para la arquitectura Web Application Deben realizarse las siguientes tareas en la p gina Web algunas corresponden al html de la p gina ASPX y otras al code behing subyacente Agregar un nuevo componente clase en la capa de reglas de negocios que herede de StartFrame BR Abm o StartFrame BR Consulta Realizar la declaraci n de la clase y asegurarse de apuntar a la tabla o vista origen de la consulta a realizar Imports Common Env Imports StartFrame DA Sql Public Class Nombre de la clase Inherits Herencia Sub New Modificar nombre de programa y tabla principal relacionada a la clase MyBase New Operador Password wad operadores End Sub End Class 2 Crear un stored procedure con el origen de datos Tener en cuenta que se deben colocar como par metros del SP los rangos a utilizar como filtros en la p gina web 10 m E Las tareas que figuran con la vi eta en Ke eA son obligatorias 430 5 E A F Eh fa a AA e StartFrame Net Framework
57. matoMnemotecnicos CORTO Alignment HorizontalAlignment Left Width avgCharWidth NullText Obligatorio True End With Add dgl_cd proveedor cd banco columna del tipo TextboxFK With Me dgl cd banco MappingName cd banco TextBox Name MappingName HeaderText Common Display FieldToText Ed_banco Common Display FormatoMnemotecnicos CORTO Alignment HorizontalAlignment Left Width avgCharWidth 10 NullText LvCamposRetorno AbmModo DataGridLnkTextBoxFKColumn Modos PermiteTodas AbmForm AbmWhere p End With Add dg1_cd banco tp cuenta bancaria columna del tipo Combobox With Me dgl_tp cuenta bancaria MappingName HeaderText Common Display FieldToText Ep cuenca bancaria _ Common Display FormatoMnemotecnicos CORTO Alignment HorizontalAlignment Left Width avgCharWidth 15 NullText End With Add dgl_tp cuenta bancaria st _noalaorden columna del tipo Checkbox With Me dgl_st_noalaorden MappingName HeaderText Common Display FieldToText SE noalaorden _ Common Display FormatoMnemotecnicos CORTO Alignment HorizontalAlignment Center Width avgCharWidth 9 NullValue False valor por defecto para este tipo de campos AllowNull False End With Add dgl_st_noalaorden im total columna del tipo TextBoxNum rico With Me dgl_im total MappingName im total TextBox Name MappingNam
58. me Net Framework Manual Programaci n met aran versi n 1 10 2011 Creaci n de Objetos Debido a la utilizaci n de la tecnolog a Remoting para la ejecuci n remota de objetos en entornos desktop deber n respetarse ciertas reglas para la creaci n de dichos objetos Dimensiona una variable del tipo Interfaz Private objOperadores As IOperadores Instancia el objeto a trav s de Remoting objOperadores CType RemotingHelper GetObject GetType IOperadores IOperadores Lo anterior es aplicable nicamente cuando se utilizan objetos remotos entre capas Si se utilizan objetos locales dentro de la misma capa como es el caso del code behing en las aplicaciones Web podr usarse la sintaxis com n de Net Ahora bien si se instancian objetos de BR desde US desktop cabe destacar que el operador con el cual lo instancia es el operador del sistema ServerUsr ya que la capa servidora usando remoting es totalmente ciega en lo que respecta al llamador se limita a responder un llamado sin saber a qui n Luego valida la seguridad con el operador actualmente logueado nk_NombreOperador propiedad de StartFrame BR ClaseBase Esta inteligencia la realizan operaciones en conjunto entre las clases base de US desktop o web y BR Por ende si se requiere instanciar un objeto de BR desde el mismo BR el programador deber tomar las precauciones necesarias para identificarse correctamente Esto podr a hacerse por ejempl
59. message 11 E aj Ver tutorial para una ilustraci n paso a paso de las tareas a realizar 12 A so A Las que figuran con la vi eta en video inverso son obligatorias 460 E E E F Ef i E PA e StartFrame Net Framework Manual Programaci n net Framework versi n 1 10 2011 End Try End Sub 5 Entrada en config esto ser necesario nicamente si el programa utiliza alg n nuevo componente de negocios 6 Aspecto visual Deber n realizarse todas aquellas tareas que tengan que ver con el aspecto visual del programa t tulo controles y la entrada del mismo en el men Uso con BR Abm A fin de que pueda enlazarse el di logo de la capa US con un componente del tipo Abm de la capa BR para poder utilizar toda su funcionalidad elemental deber n crearse algunas funciones internas obtenidas de las clases ConsultaBase o Abm a saber SetErrors dsErrorsToString ClearErrors E Evento Ejecutar En este evento deber ubicarse todo el c digo que ejecute el proceso para el cual se cre esta pantalla ya que el mismo se dispara cuando el usuario confirma la operaci n 470 E E E F Eh i a PA e StartFrame Net Framework Manual Programaci n H J net Framework versi n 1 10 2011 Wizards Para el uso de esta clase se har menci n nicamente a la parte correspondiente a la capa de usuario ya que puede utilizar cualquier componente de negocios con el cual el wizard podr a enla
60. min sculas y separando las palabras con guiones bajos Procedimientos Almacenados Los procedimientos almacenados respetan las siguientes reglas de nombres POSICI N DESCRIPCI N ler D gito Indica el subsistema al que pertenece el procedimiento seg n se registr en la tabla wap subsistemas por ej w para utilitarios 2do D gito Indica el tipo de programa asociado al mismo e a abm e c consulta e listado e p proceso e r rutina 3er D gito en adelante Nombre del procedimiento en min sculas y separando las palabras con guiones bajos generalmente y siempre que sea posible deber utilizarse el mismo nombre que el programa vinculado al procedimiento En caso de haber m s de un procedimiento relacionado al mismo programa deber utilizarse un nuevo gui n bajo y a continuaci n deber ingresarse alguna palabra que act e como diferenciador e identificador de la naturaleza del procedimiento Un ejemplo de un nombre de procedimiento almacenado v lido puede ser waoperadores_alta o wp_obtener_usuarios 120 StartFrame Net Framework Manual Programaci n met arameo versi n 1 10 2011 CONFECCIONES EST NDAR Una Nueva Soluci n StartFrame est dise ado como una herramienta para desarrollar nuevas soluciones Dado que el producto se instala como una extensi n de Visual Studio para crear una nueva soluci n tan s lo deber seleccionar la opci n Nuevo Proyecto del men principal de Visual Studio
61. nfirmaci n MsgBoxResult Yes Then ProcID Shell pathnameBcos AppWinStyle NormalFocus ChDir curPath End If End If 4 aj a Puede utilizar los code snippets provistos por StartFrame para agregar una nueva entrada al men 150 5 E A F Ef f E AA e StartFrame Net Framework Manual Programaci n J net Framework versi n 1 10 2011 Catch ex As Exception MsgBox Se produjo un error al ejecutar el proceso e ex Message MsgBoxStyle 0Ok0nly End Try Impide que se ejecute la opci n desde el men Return True Case Else Llamado est ndar desde el men Return False End Select End Function En cuanto al TAG principal MainMenu se pueden ingresar los siguientes atributos e Name Nombre del m dulo t tulo del formulario MDI e Collapse Es un atributo opcional que permite ingresar true o false opci n por defecto Para lograr que el splitter que oculta o muestra el men de rbol aparezca colapsado deber ingresar true en este atributo lt xml version 1 0 encoding UTF 8 gt lt MainMenu Name M dulo Testing Collapse false gt lt Menu Name samp Tablas Shortcut Icon Checked False Enabled True Id gt lt Menu Name samp Tablas de Uso Compartido Shortcut Icon I16 TABLASVARIASM Checked False Enabled True Id gt lt Menu Name eamp Paises y Provincias Shortcut Icon 116_ PAISES Checked False Enabled True Mdichild True Nforms False
62. o ejecutando el m todo SetOperadorLogueado pas ndole el valor del operador actualmente logueado Ink NombreOperador Esto es v lido si ambas clases la que se llama y la llamadora heredan de ClaseBase o cualquiera de sus clases heredadas Instancia una clase de negocios Private objOperadores As New Operadores ObjOperadores setOperadorLogueado 1nk NombreOperador Teclas de Corte Shortcuts La siguiente tabla enumera las teclas de corte que StartFrame Net Framework tiene reservadas para distintos formularios en la plantilla Windows desktop TECLA FORMULARIO CLASE ACCI N AC Men Edici n Copiar NE Men Edici n Seleccionar todo Ap Consulta Abm Imprimir U Men Edici n Deshacer y Men Edici n Pegar AX Men Edici n Cortar Alt nro Consulta Abm Se desplaza al n mero de TAB tipeado en nro F1 Consulta Abm Listado Men Ayuda AFI Men Ayuda Ayuda sobre el uso del sistema Shift F1 Men Ayuda Ayuda Qu es esto Alt F4 Men Archivo Salir del m dulo F9 Grabar Graba altas o modificaciones AF9 Consulta Abm B squeda puntual 1 z Ver el Manual T cnico para mayores detalles sobre Remoting 50 7 net Framework F10 AF10 F11 F11 AF11 F12 F12 AF12 Abm Consulta Abm Abm Listador Consulta Abm Abm Listador Consulta Abm StartFrame Net Framework Manual Programaci n versi n 1 10 2011 Nuevo registro B squeda global Modificar registro Impresi n preliminar Registro
63. o anteponiendo el prefijo Ib E Alinear y ordenar los controles seg n la importancia Se sugiere utilizar grilla de 8 x8 Verificar el llamado al programa en el men dentro del archivo XML del m dulo que corresponda Adem s agregar la correspondiente entrada en el diccionario de datos de programas y tablas si es que estas no existen 11 si fuera necesario restringir el acceso a un campo se deber escribir c digo en el evento When del control con el siguiente esquema modificando los valores resaltados Private Sub va_obs When ByVal sender As Object ByVal e As System ComponentModel CancelEventArgs Handles va_obS When e Cancel True End Sub 12 para reconfigurar propiedades u otros seteos iniciales como creaci n de listas utilizar el evento Clase Load Las propiedades que pueden afectarse en este evento son 240 StartFrame Net Framework Manual Programaci n met aran versi n 1 10 2011 a TablaBusquedas por defecto para las b squedas se utilizar la tabla principal pero puede optarse por utilizar alguna vista que contenga m s par metros de localizaci n En este caso es necesario que la tabla de b squedas contenga todos los campos que contiene la tabla principal Caso contrario habr que hacer un override del m todo OnLoadDataset Para que todo esto sea aplicable deber realizarse un override en la clase de negocios del m todo Buscar para que tome en cuenta que debe retornar los
64. o en la mencionada columna Para poder hacer esto el control debe declararse a nivel del formulario y con la cl usula withevents Al ingresar un c digo de operador Private Sub dglIcdlSperador OnTextValidated ByVal sender As Object _ ByVal e As System EventArgs Handles dgl cd operador OnTextValidated Variables de trabajo Dim cel As DataGridCell Wld miembros grupo CurrentCell Dim col As Integer cel ColumnNumber Dim row As Integer cel RowNumber Try Columnas de la grilla Dim nCol_cd operador As Integer Dim nCol_nm operador As Integer po eo Valida el c digo del operador y carga su nombre If Not IsNothing dgl_cd_operador LvRetorno Then Item row nCol nm operador dgl cd operador LvRetorno End If Catch ex As Exception End Try End Sub En caso de necesitar realizar alguna validaci n en un control DataGridLnkTextBoxFKColumn previo al llamado del localizador podr utilizarse el evento OnLocate propio del mencionado control y que se ejecuta antes de llamar a una ventana de apoyo Para poder hacer esto el control debe declararse a nivel del formulario y con la cl usula withevents Al ingresar un c digo de operador Private Sub dgilcdlsperador OnLocate ByVal sender As Object _ ByVal e As System EventArgs Handles dgl cd _operador Onlocate Variables de trabajo Dim cel As DataGridCell ld miembros grupo CurrentCell Dim col As Integer cel ColumnNumber Dim row As Integer cel RowNum
65. o por defecto el valor True dentro del MDI Los valores v lidos son True y False e Nforms indica si el formulario a llamar soporta m ltiples instancias o no En caso de que no las soporte al llamar al formulario por segunda vez se pasar a poner el foco en la instancia activa del mismo Este par metro es opcional asumiendo por defecto el valor True m ltiples instancias permitidas Los valores v lidos son True y False Este par metro es s lo aplicable cuando MdiChild es igual a True e id nombre de la clase y el assembly que la contiene tal cual se indica en el diccionario de datos de programas en el campo nm_clase Esta celda puede llegar a contener una determinada etiqueta la cual podr ser interceptada por el evento OnltemSelected para ejecutar alg n programa externo o directamente incluir c digo para dicha opci n Public Shared Function OnltemSelected ByVal item As String ByVal tipoLllamado As Tipollamado As Boolean Select Case item ToUpper Substring 0 5 Case IDO01 Ejecuta un proceso externo Dim curPath As String CurDir Dim pathnameBcos As String Dim ProcID As Integer Try Pathname Common Env GetConfigValue pathProcZ amp Common Env GetConfigValue exeProcZ If Not IO File Exists pathnameBcos Then MsgBox No se encuentra instalado el proceso en esta PC MsgBoxStyle OkO0nl y Else If MsgBox Confirma la ejecuci n MsgBoxStyle YesNo Co
66. ondo blanco en una imagen muy tenue marca de agua y con bordes difusos MENU_LOGO 220 57 Imagen del selector de m dulos Windows Desktop con fondo met lico verde APP_SPLASH 455 350 Imagen de fondo de la pantalla de Spash y el Acerca de MENU_ 48 48 conos del selector de m dulos Corresponde a las im genes referenciadas en el archivo MenuModulos xml 2 S A PA Referirse al Tutorial que demuestra los pasos necesarios para realizar esta tarea de creaci n de una nueva soluci n o bien al Manual T cnico para detalles espec ficos 13 O StartFrame Net Framework Manual Programaci n met aran versi n 1 10 2011 116_ 16 16 conos de cada opci n de cada men de m dulo Corresponde a las im genes referenciadas en los archivos de men es Otro aspecto que deber a modificar en cada soluci n creada son los valores de los siguientes par metros tabla wap_parametros VA_PARAMETRO DESCRIPCI N EMPRESA Nombre de la empresa a nombre de la cual se emite la licencia Este par metro no puede editarse directamente desde el abm Debe grabarse encriptado APPNAME Nombre de la aplicaci n el cual figura en el Splash y el About VERSION Nombre de la versi n de la aplicaci n el cual figura en el Splash y el About Men es Esta parte del manual explica c mo agregar o editar un tem de men e incluso c mo agregar un nuevo m dulo con su propio men La operatoria var a de acuerdo a la arquitectura utilizada
67. os paramDataSet lnk_cn tran Actualiza tabla principal MyBase ActualizarDatos paramDataSet lnk cn tran End If Confirma o anula la transacci n If paramDataSet HasErrors Then tran Rollback Else tran Commit End If 210 5 E E F Ef f E AA e StartFrame Net Framework Manual Programaci n net Framework versi n 1 10 2011 Catch e As Exception tran Rollback Throw New Exception e Message e Finally Cierra la transacci n y la conexi n tran Nothing 1nk_cn Close 1lnk_cn Nothing End Try End Function 9 Para retornar los registros de la grilla a la capa US deber crearse un m todo que en base a una condici n la cual lo vincula con la tabla de cabecera retorne los mencionados registros en forma de dataset A continuaci n se muestra un ejemplo sencillo solo retornando las columnas de la tabla bindeada Retorna los registros para la grilla de cotizaciones Public Function fetCotizaciones ByVal As String As DataSet Implements Return _cotizaciones Buscar cd unidad monetaria 4 cotizacionID amp End Function 220 StartFrame Net Framework Manual Programaci n s net Framework versi n 1 10 2011 Parte Il Clase US La capa de presentaci n o interfaz con el usuario depender de la arquitectura de soluci n elegida Windows Web etc Interfaz Windows Desktop A continuaci n se especifica el procedimiento para cualquiera de las
68. pecifica el procedimiento para la arquitectura Web Application Deben realizarse las siguientes tareas en la p gina Web algunas corresponden al html de la p gina ASPX y otras al code behing subyacente Crear una nueva p gina del tipo Web Content Form dentro del proyecto WebSite en la carpeta UserPages En el evento load de la p gina deber ponerse c digo para relacionar a la misma con el objeto de negocios correspondiente y vincularla con una instancia de AbmBase Imports StartFrame BR Web Utilitarios Partial Public Class ABRMPEUEBAS Inherits System Web UlI Page Public masterpage As AbmBase Protected Sub Page Load ByVal sender As Object ByVal e As System EventArgs Handles Me Load Instancia de la clase masterpage AbmBase masterpage CType Page Master AbmBase Asigna los atributos del AbmBase masterpage lblTitulo Instancia del objeto de reglas del negocio Dim obr As New BR Web Utilitarios Abms Inicializaci n de la p gina Abmbase enlazada al objeto de negocios masterpage InicializarPagina obr End Sub Protected Overloads Sub OnPrelInit Handles Me Prelnit Aplicacion de Tema If Not Session Tema Is Nothing Then Page Theme Session Tema ToString End If End Sub End Class 2 Podr n utilizarse ciertas propiedades de la plantilla para configurar el aspecto y funcionamiento del abm sobre todo si va a crear un abm autom tico y no uno con dise o expl cito Protected Sub Page _Loa
69. r defecto mensajes de estado orden de tabulaci n ventanas de apoyo Aspecto funcional de cada reporte que respete los rangos que el orden sea el indicado que los totales correspondan a campos apropiados que los agrupamientos funcionen apropiadamente Aspecto visual de cada reporte t tulos y encabezados alineaci n valores repetidos campos num ricos aspecto general Ayuda en l nea verificaci n de su correcta vinculaci n y correcci n o ampliaci n de la documentaci n desarrollada 59 O StartFrame Net Framework Manual Programaci n net Framework versi n 1 10 2011 Consultas Deber contemplar Y Y Y Y Disposici n de los controles T tulos de los labels Actualizaci n de los campos vinculados y las grillas Ayuda en l nea verificaci n de su correcta vinculaci n y correcci n o ampliaci n de la documentaci n desarrollada Procesos Deber contemplar SN 5 5 S S y Disposici n de los controles T tulos de los labels Ventanas de apoyo Validaciones en l nea Ayuda en l nea verificaci n de su correcta vinculaci n y correcci n o ampliaci n de la documentaci n desarrollada Estructura interna del c digo del proceso Lote de prueba para verificar su apropiado funcionamiento dentro del entorno 6o O
70. r _scheduleHS png Enabled false gt lt ccl CalendarExtender gt lt asp TableCel1l gt lt asp TableRow gt lt Combobox gt lt asp TableRow gt lt asp TableHeaderCel1 gt lt asp Label ID Labell class label runat server Text Nombre gt lt asp Label gt lt asp TableHeaderCel1 gt lt asp TableCel1 gt lt asp DropDownList id nm_ campo runat server class dropdownlist gt lt asp DropDownList gt lt asp TableCel1 gt lt asp TableRow gt lt l Radio button gt lt asp TableRow gt lt asp TableHeaderCel1 gt lt asp Label ID Label2 class label runat server Text Filtro gt lt asp Label gt lt asp TableHeaderCel1 gt lt asp TableCel1 gt lt asp RadioButtonList ID tp filtro runat server gt lt asp ListItem Selected True Value U Text Unico gt lt asp Listltem gt lt asp ListItem Value D Text Desde Hasta gt lt asp ListItem gt 290 E E a F Eh fi E AR a StartFrame Net Framework Manual Programaci n J net Framework versi n 1 10 2011 lt asp RadioButtonList gt lt asp TableCel11 gt lt asp TableRow gt lt asp Table gt lt asp Panel gt lt asp Content gt 4 Existen varios eventos que podr n utilizarse en el caso de que desee realizar validaciones asignar valores por defecto a los controles completar datos antes de grabar etc En cualquier caso deber crearse un manejador para cada evento en cuesti n v
71. regar columnas a la grilla que no se correspondan con ninguna columna de la tabla deber realizarse lo siguiente En primer lugar deber modificarse el m todo que realiza la b squeda de registros de la capa de negocios que retorna los registros de la grilla para que retorne todas las columnas necesarias ya sea con un DA Sql Select como en el siguiente ejemplo o bien ejecutando un stored procedure Public Function getMiembros ByVal As String As DataSet _ Implements Consulta para buscar los datos necesarios Dim ds As DataSet Dim sSelect As String Dim sFrom As String g Dim sWhere As String amp O ds DA Sql Select Common Env ConnectionString sSelect sFrom sWhere Renombra la tabla para poder hacer un Merge ds Tables 0 TableName wld miembros grupo Return ds End Function Las columnas agregadas al datatable que no pertenezcan a la tabla a grabar deber n ser removidas del dataset antes de que el mismo sea grabado en el m todo ActualizarDatos Public Overloads Overrides Function ActualizarDatos _ ByRef paramDataSet As System Data DataSet As Boolean Dim tran As OleDbTransaction Nothing Try InicializarConeccion _cn Open tran cn BeginTransaction Elimina las columnas no mapeadas paramDataSet Tables wld miembros grupo Columns Remove nm_operador Si se esta eliminando la cabecera primero se borran los detalles If Not paramDataSet Tables _tablaPrinc
72. rk Parte l Clase BR Sin importar el tipo de plantilla arquitect nica seleccionada los componentes de reglas del negocio son gen ricos y reutilizables desde todos los tipos de soluciones Windows Web Servicios etc Deben A A 5 a 6 realizarse las siguientes tareas en el componente de la capa de negocios Agregar un nuevo componente clase en la capa de reglas de negocios que herede de StartFrame BR Abm Dentro del mismo componente se pueden crear tantas clases como sea necesario ver punto 4 2 Realizar la declaraci n de la clase y modificar los valores resaltados del c digo Asegurarse de no dejar c digo innecesario al efectuar este paso En caso de tratarse de un componente para utilizar en forma local del lado del servidor no es necesario que implemente ninguna interfaz Imports System Data Oledb Imports Common Env Imports StartFrame DA Sql Public Class UnidadesMonetarias Nombre de la clase Inherits Abm Herencia Implements IUnidadesMonetarias Interfaz Sub New Modificar nombre de programa y tabla principal relacionada a la clase MyBase New Operador Password waunidmon wad unidades monetarias Habilita el tracking para esta clase Me Tracking True End Sub End Class El s lo para componentes accesibles desde el front end Windows desktop Agregar una entrada con el nombre de la clase en el archivo XML de configuraci n lt wellknown mode Singleton type StartFram
73. roles avanzados son algunas veces muy complejos y pueden ocasionar que los controles b sicos que en un principio funcionan correctamente dejen de hacerlo Prestar especial atenci n de no tildar con demasiada ligereza estos controles sino asegurarse adecuadamente de su correcto funcionamiento Control General Este control es ejercido por un analista funcional o bien por el l der del proyecto Es muy importante realizar este trabajo a conciencia y tomarse su debido tiempo ya que es el ltimo control antes que el m dulo llegue al usuario El mecanismo de control var a dependiendo del tipo de programa y la arquitectura de la soluci n Abms Debe contemplar Y Aspecto visual en general nombres de los labels disposici n de los controles mensajes de estado carteles relacionados Y Aspecto funcional elemental orden de tabulaci n ventanas de apoyo validaciones simples Y Aspecto funcional avanzado controles al azar de las validaciones especificadas en la planilla de dise o manejo de las grillas Y Aspecto funcional global coherencia de la informaci n con el contexto general del sistema v Ayuda en l nea verificaci n de su correcta vinculaci n y correcci n o ampliaci n de la documentaci n desarrollada Listados Debe contemplar Y Y Existencia de todos los informes enumerados en la planilla Rangos en general todos y c u de los indicados en la planilla seg n cada informe valores po
74. s procesos de armado especialmente los complicados est n detalladamente documentados En cuanto a cada uno de los reportes deber controlarse que S OS S S Se haya respetado el formato general del informe tipograf a colores posiciones etc Imprima informaci n coherente con el origen de datos especificado tanto en relaci n al contenido de los campos como a la cantidad de registros esto es por si el SQL de armado retorn m s registros de los debidos por una uni n incorrecta con otra tabla El orden de los registros sea el especificado Los agrupamientos funcionen correctamente Existan todos y cada uno de los campos estipulados en la especificaci n Se hayan respetado todas las observaciones a los campos de cada reporte que se hicieron en la especificaci n Los campos se encuentren alineados apropiadamente seg n su tipo de dato Existan subtotales por cada agrupamiento y totales finales de los campos num ricos que expresen cantidades o importes 57 O Y StartFrame Net Framework Manual Programaci n net Framework versi n 1 10 2011 Cada uno de los rangos sean tomados en cuenta Consultas Deber controlarse que Y Y Y Y Y Figuren en pantalla todos y cada uno de los controles determinados en la especificaci n El orden de la informaci n sea el especificado Las grillas y los campos vinculados se actualicen apropiadamente con el movimiento entre registros Los datos est n correctament
75. se aconseja proceder seg n se explica en este cap tulo Este procedimiento de control de calidad QA del c digo es de car cter orientativo y el mismo puede ser modificado sin afectar en modo alguno la programaci n realizada con StartFrame Sin embargo el mismo tiene en cuenta los diferentes aspectos del producto y las mejores pr cticas en cuanto a evitar los errores u omisiones que se cometen con mayor frecuencia en este tipo de desarrollos Cabe destacar que es posible realizar unit test dentro de StartFrame siguiendo las indicaciones del Manual T cnico Se destaca que este proceso de control de calidad es independiente de la arquitectura de la soluci n pero en algunos casos ser n aplicables ciertos controles que en otros casos ser an irrelevantes o inaplicables Existen tres niveles de control de calidad funcional Y Controles b sicos son llevados a cabo por el programador que desarroll la funcionalidad Consiste en una serie de controles fundamentales de nivel general que var an seg n el tipo de programa ver m s adelante Y Controles espec ficos son controles puntuales que se enumeran expl citamente en la planilla de especificaci n de dise o si hubiera Son realizados por un programador en jefe testeador o analista Son controles particulares de cada programa Y Control general es realizado por el analista funcional o el l der del proyecto Consiste en un control general de todos los aspectos del programa
76. se masterpage AbmBase masterpage CType Page Master Reporte Asigna los atributos del AbmBase masterpage lblTitulo Instancia del objeto de reglas del negocio Dim obr As New BR Web Utilitarios Abms Inicializaci n de la p gina Abmbase enlazada al objeto de negocios masterpage InicializarPagina obr End Sub Protected Overloads Sub OnPrelInit Handles Me Prelnit Aplicacion de Tema If Not Session Tema Is Nothing Then Page Theme Session Tema ToString End If End Sub End Class 530 StartFrame Net Framework Manual Programaci n met aran versi n 1 10 2011 4 En SQL Server crear un StoredProcedure y en el select agregar todos los campos de la tabla del listado CREATE PROCEDURE dbo listcategent_log res Add the parameters for the stored procedure here aid categ entidad varchar Gid perfil varchar descripcion varchar AS BEGIN SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements SET NOCOUNT ON Insert statements for procedure here select s id categ entidad s id perfil Ss descripci n from categ_entidad s where s id categ entidad BETWEEN 000 AND zzz and s id perfil BETWEEN 000 AND zzz and s descripcion BETWEEN 000 AND zzz ORDER BY s id categ entidad END Parte Il Reporte a A A 17 A A Deben realizarse las siguientes tareas en el formulario de la capa de usuario Crear un stored procedure con el origen de
77. silente das loca ITA da 10 ELEMENTOS DELMOTORDEBD o ccoo o oo da o 11 TADAS ensaia O NON ON Relaciones ANT CAMPOS Naiara ada iaaao aia UNA NUEVA SOLUCI N Suscrito DA DITA an Eso cies de 13 Cambios del Aspecto VISUQU oia diia 13 PPP A A A AS 14 interfaz WindOWSs DesKktO Pi adriana iia ea TA a 14 Agregado de n N Evo modUlOnrenien e TIRAR ATA RADA AR 14 Edici n del men Interaz We A NN Edici n del men Parte lI Clase BR PORC USAS AA AR A RA AA A A AA Interaz Windows Desktops aa 23 A A e Ae e EA Eaa 28 Grillas interfaz Windows Desktop ooooocconococociconononanancnnnn nono nonononano corn nn ran n ron rr naar c ron rra n AMA nr rar cra deco 31 CON ta AA Ai 31 Re rezco de Dato dao do 33 Validaciones locales ess ist ic 34 Malidaciones especiale unit 37 Columnas no MP Sister iaa 37 Validaciones Est ndal ciisioianicni i nica cidade DU EUA raara AAAA EREA EA Da AAA cai 40 etartfirame StartFrame Net Framework Manual Programaci n net Framework versi n 1 10 2011 Dato sin duplicado ci AE A dad 40 BE deso 9 11 9 o eE PE O O RES EREA E AREA ATE RESTANTES 40 E O e a A ea A a a aia Tin 40 Dato predeterminado aligralb l naos dA dea en E AENA ANA CINTA EEES 40 Registro Dolce FK contra otra tabla Rango de valores aceptables DI e O UE ASIA REA 41 Campos del tipo dentista osa iaa beis rado inca 42 Controlesidel tipo tl NES 42 Controles del tipo localizador ES issin aa 42
78. splay FormatoMnemotecnicos CORTO Width avgCharWidth 30 ReadO0nly True Columna de s lo lectura End With Add dgTextBoxColumn3 Deber asignarse el valor a la columna asociada cuando cambie el valor de la columna principal Esto puede hacerse en el evento CurrentCellChanged Private Sub grilla CurrentCellChanged ByVal sender As Object _ ByVal e As DataColumnChangeEventArgs Completa el nombre del operador If grdMG_col ant nCol cd operador _ AndAlso Not IsNothing col_ cd operador LvRetorno Then wld miembros grupo Item grdMG_row_ant nCol cd operador col cd operador LvRetorno Trim End TE End Sub En el evento _editando y en _eliminado deber llamar al evento _display para que aparezcan las columnas no mapeadas en la grilla Private Sub grilla Eliminado ByVal ds As System Data DataSet Handles MyBase Eliminado Refrezca datos de la grilla Me Proveedores Display 33 O StartFrame Net Framework Manual Programaci n net Framework versi n 1 10 2011 End Sub Private Sub grilla Editando ByRef cancela As Boolean _ Handles MyBase Editando Refrezca datos de la grilla If Me Estado Estados Alta Then Me BESVESASESS Display End If End Sub 39 O 5 E E F Ef fa E AA e StartFrame Net Framework Manual Programaci n net Framework versi n 1 10 2011 Validaciones Est ndar A continuaci n se especificar la manera de realizar las distintas
79. tasSet Merge Broveedores getCuentas Me cd proveedor Text End Sub Tambi n deber llamarse al evento Display despu s de eliminar y al iniciar la edici n en las altas a efectos de que refresque la grilla Despu s de eliminar Private Sub Provesdores Eliminado ByVal ds As System Data DataSet Handles MyBase Eliminado Refrezca datos de la grilla Me Proveedores Display End Sub Al iniciar la edici n Private Sub Proveedores Editando ByRef cancela As Boolean _ Handles MyBase Editando Refrezca datos de la grilla If Me Estado Estados Alta Then Me Proveedores Display End If End Sub Adem s deber n completarse los campos de la tabla que no se muestran en la grilla y son generalmente los que vinculan la grilla con la tabla padre del abm 330 5 E a F Eh i E PA e StartFrame Net Framework Manual Programaci n 1 net Framework versi n 1 10 2011 Antes de grabar Private Sub Provesdores CompletarDatos ByRef ds As System Data DataSet _ Handles MyBase CompletarDatos Completa los campos ocultos de las grillas Dim row As DataRow For Each row In ds Tables kld cuentas proveedores Rows If row RowState lt gt DataRowState Deleted Then If IsDBNull row Item Then row Item Me Text TrimEnd End If End If Next End Sub Validaciones locales Pueden realizarse dos tipos de validaciones cuando cambia de celda columna o fila y a nivel de la grilla
80. validaci n debe realizarse colocando c digo en el evento CompletarDatos Otra posibilidad es agregar un Textbox invisible y asignarle su valor en el evento Actualizando Private Sub Operadores CompletarDatos ByRef ds As System Data DataSet Handles MyBase CompletarDatos Completa el dato va clave acceso cd operador en el caso de un alta If Me Estado Estados Alta Then Dim row As DataRow For Each row In ds Tables Mwad operadores Rows If row RowState lt gt DataRowState Deleted Then row Item fiva_clave_acceso End If Next End If End Sub 400 5 E a F Eh i E PA e StartFrame Net Framework Manual Programaci n 1 net Framework versi n 1 10 2011 Registro inborrable La validaci n debe realizarse colocando c digo en el evento Eliminando A modo de ejemplo en el caso de la interfaz Windows Desktop utilizar la siguiente estructura modificando los valores resaltados Si el campo condicionante de esta validaci n figura en el formulario tratar como cualquier error caso contrario dirigir el error al campo clave que figure en pantalla Private Sub TipoTelefonos Eliminando ByRef cancela As Boolean ByRef row As _ System Data DataRow Handles MyBase Eliminando Valida que no elimine un registro marcado como de sistema If CType row Item st interno sistema DataRowVersion Original ETUE Then row SetColumnError EpTtelefono Nose puede eliminar el registro End If End Sub
81. x32 pixeles e LOGO Logotipo de alguna clase e PANEL Panel de controles e TIP Tooltip e LBL Label e MSG Mensaje e CMD Texto de un bot n de comando e GRD Encabezado de columna de grilla 2do elemento Gui n bajo _ separando los campos 3er elemento Opcionalmente puede indicarse el tipo de programa que utiliza el recurso e ABM Abms e CON Consultas e LIS Listados e PRO Procesos e RUT Rutinas e MENU Men 4to Elemento Gui n bajo _ separando los campos 5to Elemento Identificaci n del recurso en may sculas y separando cada palabra por guiones bajos Siempre que corresponda deber coincidir con el nombre del campo asociado al control Por ejemplo LBL_ABM_cd_operador o CMD_PRO_configurar_impresora o MSG_LIS_rango_obligatorio Existen dos archivos de recursos e Lnkfrmwrk es AR resources Archivo de recursos del Framework No debe tocarse ya que se sobreescribe con cada actualizaci n de dicho marco de trabajo Tambi n puede existir un archivo id ntico pero para la cultura neutral para espa ol es resources e App es AR resources Archivo de recursos de cada soluci n desarrollada con StartFrame Este es el archivo en el que deben a adirse todas las etiquetas deseadas Ambos archivos de recursos compilan con el proyecto Common de cada aplicaci n 100 StartFrame Net Framework Manual Programaci n net aframe versi n 1 10 2011 Elementos del Motor de BD Tanto para los nombres de las tablas como para
82. zables st bloqueado st estado Me FiltroGlobal not st bloqueado Me TablaBusquedas wav operadores activos Me OrdenBusquedas nm apellido nm nombres Me CargaAutom False er getO0bject GetType IUn c AltasOk al ponerla en false se inhabilita la posibilidad de realizar altas en el abm d BajasOk al ponerla en false se inhabilita la posibilidad de realizar bajas en el abm e ModifOk al ponerla en false se inhabilita la posibilidad de realizar modificaciones en el abm f MovimOk al ponerla en false se inhabilita la posibilidad de realizar movimientos internos entre registros del abm o consultor Todas estas propiedades deben setearse despu s de asignarle valor al ObjetoReglasNegocio para que sobreescriba la seguridad est ndar 250 5 E a F Eh i E PA e StartFrame Net Framework Manual Programaci n 1 net Framework versi n 1 10 2011 13 Para destruir objetos externos al manejo de la clase que pudieron crearse en el programa deber ponerse c digo en el evento Clase_Dispose 14 En caso de tener que realizar alg n refrezco de los datos de pantalla como carga de datos de las grillas durante el movimiento entre registros podr utilizarse para ello el evento Clase_Display Tener en cuenta que hay que crear un m todo en la capa BR para que retorne todos los registros de la grilla en base a una determinada condici n la cual lo vincula con la tabla de cabecera Private Sub UnidadesMonet
83. zarse En l neas generales su uso es muy similar a los Di logos y puede decirse que deber n realizarse los a 13 14 mismos pasos mencionados en Abms con algunas salvedades las cuales se detallan a continuaci n Los ejemplos dados a continuaci n har n referencia al enlace del wizard con un componente de negocios del tipo ClaseBase sin embargo puede enlazarse con cualquier tipo de componente 1 Agregar la interfaz puede que no se requiera una nueva interfaz ya que el di logo suele utilizar un componente de negocios ya existente 2 Agregar el formulario en este caso heredado de StartFrame US Wizard E Declaraci n de la clase var a dependiendo del tipo de uso que se le quiera dar Imports StartFrame BR Interfaces Procedencia de las referencias utilizadas Namespace Namespace de la clase Public Class Nombre de la clase Inherits Herencia Dim As Componente de negocios Para poder utilizar BR Abm Protected dataset As DataSet Protected tablaPrincipal As String End Class End Namespace 4 Vinculaci n a BR deber vincularse el di logo a alg n componente de la capa BR a fin de poder controlar la seguridad Private Sub GeneracionFacturas Load ByVal sender As Object ByVal e As _ System EventArgs Handles MyBase Load Try Igenfact CType RemotingHelper getObject Get Type Igenfact Igenfact Me ObjetoReglasNegocio Para poder utilizar BR Abm _tablaPrincipa

Download Pdf Manuals

image

Related Search

Related Contents

Ryobi Outdoor P2600 User's Manual  #DD DISPOSITIF DÉCROCHAGE  NIS-Elements Advanced Research User's Guide (Ver. 4.00)  Minka Lavery 1621-613 Installation Guide  エレコム(6750) - シェアードリサーチ  Manual  OWNER`S MANUAL MANUEL D`UTILISATION - Migros  取扱説明書 - キクタニミュージック    2000 GMC Sierra Owners Manual  

Copyright © All rights reserved.
Failed to retrieve file