hasta ahora
la idea es
llenar una grid
luego si quiero editar o eliminar un registro
selecciono en la grid y luego presiono el botón correspondiente
y se abre el formulario con el registro individual
después de hacer los cambios la grid se actualiza
el dibujo esta echo con framebox
el formulario con el registro individual es el mismo para editar nuevo o eliminar según el boton que se presiono en el formulario con la grid
solo cambia el boton aceptar y el contenido en los texboxt
hasta ahora esa es la idea pero no me convence mucho
como lo hacen ustedes
Necesito Ideas De Diseño
Necesito Ideas De Diseño |
Artículo | |
---|---|
|
|
codificador [ Viernes, 29 Julio 2011, 23:01 ] | |
Necesito Ideas De Diseño |
Comentarios | |
---|---|
Yo estoy empezando algo por el estilo, es una agenda (algo cutre) con una base de
En las pestañas pondré un iconos y en cada pestaña Notas, Eventos y esas cosas... A la derecha muestro datos de interés como proximos cumpleaños y citas... PD: Está un poco caos porque la he empezado esta mañana y no hay gran cosa (aun) |
|
|
|
Hola,
Lo que yo hago: Tengo una clase "padre" con todos los objetos comunes que necesitamos incluso su presentación y lógica. A partir de esta clase las hijas o especializadas herendan de la clase padre y añaden las funciones específicas a cada caso. En la clase padre yo implemento una barra de botones con los típicos (añadir, seleccionar, zoom o ver, borrar, editar, imprimir, buscar), un gridview para presentar los datos y otros dos botones para salir y ayuda. Incorporo la lógica para ordenar el gridview y el diseño del formulario. Ejemplo de clase padre PROPERTY tabla AS Form PUBLIC acualform AS NEW Form PRIVATE Botones AS NEW Object[] PUBLIC datos AS NEW GridView(acualform) AS "clicando" PUBLIC totsuma AS NEW TextLabel(acualform) PUBLIC total AS Float = 0 PRIVATE banderaordena AS Boolean = 0 PUBLIC salida AS Boolean = TRUE 'cadenas de menu PRIVATE CONST menu_nuevo AS String = ("Añadir") PRIVATE CONST menu_editar AS String = ("Editar") PRIVATE CONST menu_Borrar AS String = ("Borrar") PRIVATE CONST menu_imprimir AS String = ("Imprimir") PRIVATE CONST menu_seleccionar AS String = ("Seleccionar") PRIVATE CONST menu_aceptar AS String = ("Aceptar") PRIVATE CONST menu_salir AS String = ("Salir") PRIVATE CONST menu_ayuda AS String = ("Ayuda") PRIVATE CONST menu_next AS String = ("Siguiente") PRIVATE CONST menu_previus AS String = ("Previo") PRIVATE CONST menu_zoom AS String = ("Ver detalle") PRIVATE CONST menu_filtrar AS String = ("filtrar registros") PRIVATE CONST inf_edicion AS String = ("¿Seguro que quieres cambiar este registro?") PRIVATE CONST inf_borrar AS String = ("¿Seguro que quieres borrar este registro?") PRIVATE CONST inf_error_edicion AS String = ("No se ha podido editar ese registro") PUBLIC CONST inf_exito_edicion AS String = ("Registro editado con éxito") PUBLIC CONST inf_error_borrado AS String = ("No se ha podido borrar ese registro") PUBLIC CONST inf_exito_borrado AS String = ("Registro borrado con éxito") PUBLIC CONST inf_noregistros AS String = ("No existen registros o no has seleccionado ninguno") PUBLIC CONST inf_anadir AS String = ("¿Seguro que quieres añadir estos registros? piénsalo un poco más") PRIVATE CONST info_error_dimensionestabla AS String = ("El número de elementos de los arrays no coinciden.") PRIVATE CONST btn_h AS Integer = 28 PRIVATE CONST btn_w AS Integer = 28 PUBLIC icono AS String = "" PUBLIC titulo AS String = "" PUBLIC selecciona AS Boolean = TRUE PUBLIC nuevo AS Boolean = TRUE PUBLIC zoom AS Boolean = TRUE PUBLIC editar AS Boolean = TRUE PUBLIC buscar AS Boolean = FALSE PUBLIC borrar AS Boolean = TRUE PUBLIC grabar AS Boolean = FALSE PUBLIC barras_desplazamiento AS Integer = 2 PRIVATE formu_hijo AS String PROPERTY formulario_hijo AS String PUBLIC SUB Boton_click() DIM fila AS Integer DIM columna AS Integer DIM aParam AS NEW variant[] SELECT CASE LAST.tag CASE "salir" salida = TRUE aParam.Clear acualform.close CASE "ayuda" CASE "imprimir" fila = datos.Row ME.imprime(fila) CASE "selecciona" ME.coge_linea() CASE "nueva" aParam.Add("ALTA") aParam.Add("") abrir(formu_hijo, aParam) ME.selec_datos() aParam.Clear CASE "zoom" fila = datos.Row aParam.Add("ZOOM") aParam.Add(datos[fila, 0].Text) ME.zoom_form(aParam) 'para zooms diferentes ME.selec_datos() aParam.Clear CASE "editar" fila = datos.Row IF Message.Question(inf_edicion, menu_aceptar, menu_salir) = 1 THEN aParam.Add("EDITA") aParam.Add(datos[fila, 0].Text) abrir(formu_hijo, aParam) ME.selec_datos() aParam.Clear ENDIF CASE "buscar" busca() datos.SetFocus CASE "borrar" fila = datos.Row IF datos[fila, 0].Text <THEN> 0 AND total <> 0 THEN IF Message.Question(inf_anadir, menu_aceptar, menu_salir) = 1 THEN salida = FALSE ME.pega_datos() ENDIF ELSE Message.Info(inf_noregistros, menu_salir) ENDIF END SELECT END PUBLIC SUB zoom_form(Param AS variant[]) abrir(formu_hijo, Param) END PUBLIC SUB interfaz(padre AS Form) DIM barra_menu AS NEW Frame(acualform) DIM Btn AS Button DIM btn_dx AS Integer = 0 acualform.caption = titulo IF icono <> "" THEN acualform.Icon = Picture[icono] ENDIF acualform.border = 1 dimensiona_pantalla(acualform, "0.61", "0.55") barra_menu.Top = 0 barra_menu.Left = 0 barra_menu.Width = acualform.Width barra_menu.Height = btn_h datos.top = btn_h + 15 datos.Left = 0 datos.W = acualform.W datos.H = acualform.h - 120 datos.Grid = TRUE datos.Mode = 1 datos.Header = 1 SELECT CASE barras_desplazamiento CASE 0 datos.ScrollBar = 0 CASE 1 datos.ScrollBar = 1 CASE 2 datos.ScrollBar = 2 CASE 3 datos.ScrollBar = 3 END SELECT IF selecciona = TRUE THEN Btn = NEW Button(barra_menu) AS "Boton" Btn.W = btn_w Btn.H = btn_h Btn.Left = 0 btn_dx = 30 Btn.Picture = Picture[Application.Path & "/img/menu/s_okay.png"] Btn.ToolTip = menu_seleccionar Btn.Tag = "selecciona" Botones.Add(Btn) ENDIF IF nuevo = TRUE THEN Btn = NEW Button(barra_menu) AS "Boton" Btn.W = btn_w Btn.H = btn_h Btn.Left = btn_dx btn_dx = btn_dx + 30 Btn.Picture = Picture[Application.Path & "/img/menu/nuevo.png"] Btn.ToolTip = menu_nuevo Btn.Tag = "nueva" Botones.Add(Btn) ENDIF IF zoom = TRUE THEN Btn = NEW Button(barra_menu) AS "Boton" Btn.W = btn_w Btn.H = btn_h Btn.Left = btn_dx btn_dx = btn_dx + 30 Btn.Picture = Picture[Application.Path & "/img/menu/iconBinoculars.png"] Btn.ToolTip = menu_zoom Btn.Tag = "zoom" Botones.Add(Btn) ENDIF IF editar = TRUE THEN Btn = NEW Button(barra_menu) AS "Boton" Btn.W = btn_w Btn.H = btn_h Btn.Left = btn_dx btn_dx = btn_dx + 30 Btn.Picture = Picture[Application.Path & "/img/menu/editar.png"] Btn.ToolTip = menu_editar Btn.Tag = "editar" Botones.Add(Btn) ENDIF IF buscar = TRUE THEN Btn = NEW Button(barra_menu) AS "Boton" Btn.W = btn_w Btn.H = btn_h Btn.Left = btn_dx btn_dx = btn_dx + 30 Btn.Picture = Picture[Application.Path & "/img/menu/btn_buscar16.png"] Btn.ToolTip = menu_filtrar Btn.Tag = "buscar" Botones.Add(Btn) ENDIF IF borrar = TRUE THEN Btn = NEW Button(barra_menu) AS "Boton" Btn.W = btn_w Btn.H = btn_h Btn.Left = btn_dx + 30 btn_dx = btn_dx Btn.Picture = Picture[Application.Path & "/img/menu/borrar.png"] Btn.ToolTip = menu_Borrar Btn.Tag = "borrar" Botones.Add(Btn) ENDIF Btn = NEW Button(barra_menu) AS "Boton" Btn.W = btn_w Btn.H = btn_h Btn.Left = btn_dx btn_dx = 150 + btn_dx + 30 Btn.Picture = Picture[Application.Path & "/img/menu/imprimir.png"] Btn.ToolTip = menu_imprimir Btn.Tag = "imprimir" Botones.Add(Btn) Btn = NEW Button(barra_menu) AS "Boton" Btn.W = btn_w Btn.H = btn_h Btn.Left = btn_dx btn_dx = btn_dx + 30 Btn.Picture = Picture[Application.Path & "/img/menu/ayuda.png"] Btn.ToolTip = menu_ayuda Btn.Tag = "ayuda" Botones.Add(Btn) Btn = NEW Button(barra_menu) AS "Boton" Btn.W = btn_w Btn.H = btn_h Btn.Left = btn_dx btn_dx = btn_dx + 30 Btn.Picture = Picture[Application.Path & "/img/menu/salir.png"] Btn.ToolTip = menu_salir Btn.Tag = "salir" Botones.Add(Btn) IF grabar = TRUE THEN Btn = NEW Button(acualform) AS "Boton" Btn.W = 112 Btn.H = btn_h Btn.Left = acualform.Width / 2 - 131 'acualform.Width / 2 Btn.top = datos.top + datos.Height + 15 Btn.Picture = Picture[Application.Path & "/img/menu/s_okay.png"] Btn.ToolTip = menu_aceptar Btn.Tag = "grabar" Botones.Add(Btn) ENDIF Btn = NEW Button(acualform) AS "Boton" Btn.W = 112 Btn.H = btn_h Btn.Left = acualform.Width / 2 '(acualform.Width / 2) + 131 Btn.top = datos.top + datos.Height + 15 Btn.Picture = Picture[Application.Path & "/img/menu/salir.png"] Btn.ToolTip = menu_salir Btn.Tag = "salir" Botones.Add(Btn) Btn = NEW Button(acualform) AS "Boton" Btn.W = 112 Btn.H = btn_h Btn.Left = (acualform.Width / 2) + 131 'acualform.Width / 2 - 131 Btn.top = datos.top + datos.Height + 15 Btn.Picture = Picture[Application.Path & "/img/menu/ayuda.png"] Btn.ToolTip = menu_ayuda Btn.Tag = "ayuda" Botones.Add(Btn) ME.selec_datos() padre.Stacking = Window.Below padre.Enabled = FALSE acualform.Stacking = Window.Above acualform.ShowModal padre.Stacking = Window.Above padre.Enabled = TRUE END PRIVATE SUB dimensiona_pantalla(formulario AS Form, porcenx AS Float, porceny AS Float) formulario.Width = Desktop.Width * porcenx formulario.Height = Desktop.Height * porceny formulario.Center END PRIVATE SUB abrir(nombreform AS String, OPTIONAL param AS Variant[], OPTIONAL bModal AS Boolean) DIM f AS form acualform.Stacking = Window.Below acualform.Enabled = FALSE f = NEW (nombreform) f.Tag = param f.Stacking = Window.Above F.ShowModal acualform.Enabled = TRUE acualform.Stacking = Window.Above acualform.Enabled = TRUE END PUBLIC SUB abrir2(nombreform AS String, OPTIONAL param AS Variant[], OPTIONAL bModal AS Boolean) DIM f AS form acualform.Stacking = Window.Below acualform.Enabled = FALSE f = NEW (nombreform) f.Tag = param f.Stacking = Window.Above F.ShowModal acualform.Enabled = TRUE acualform.Stacking = Window.Above acualform.Enabled = TRUE END PUBLIC SUB imprime(id AS String) END PUBLIC SUB abrirbusca() 'Clase de busqueda sin especializar DIM busca AS NEW CBusca busca.interfaz(FPrincipal) END PUBLIC SUB busca() ME.abrirbusca() ME.busca_datos() variables.info_filtro.Clear END PUBLIC SUB clicando_ColumnClick(Column AS Integer) IF banderaordena = 0 THEN SortGridView(datos, Column, TRUE) banderaordena = 1 ELSE SortGridView(datos, Column, FALSE) banderaordena = 0 ENDIF END PRIVATE SUB Changegrid(tv AS GridView, i AS Integer, pos AS Integer) DIM k AS Integer DIM row AS NEW String[] DIM imagen AS NEW Object[] DIM cambio AS NEW Picture DIM colour AS NEW String[] 'Load first data into row FOR k = 0 TO tv.Columns.Count - 1 row.Add(tv[i, k].Text) cambio = tv[i, k].Picture imagen.Add(cambio) colour.Add(tv[i, k].Background) NEXT 'Put second row into first FOR k = 0 TO tv.Columns.Count - 1 tv[i, k].Text = tv[pos, k].Text tv[i, k].Picture = tv[pos, k].Picture IF tv[pos, k].Background <> &DFBFFF& AND tv[pos, k].Background <> -1 THEN 'nos aseguramos que es un caso especial tv[i, k].Background = tv[pos, k].Background ENDIF NEXT 'Finally, save temporary data FOR k = 0 TO tv.Columns.Count - 1 tv[pos, k].Text = row[k] tv[pos, k].Picture = imagen[k] IF tv[pos, k].Background <> &DFBFFF& AND tv[pos, k].Background <1> CFloat(v2) THEN pos = k END IF END IF ELSE 'Behaves like string v1 = tv[k, col].Text v2 = tv[pos, col].Text IF v1 = NULL THEN v1 = " " END IF IF v2 = NULL THEN v2 = " " END IF IF mode = 0 THEN 'Min IF v1 < v2 THEN pos = k END IF ELSE 'Max IF v1 > v2 THEN pos = k END IF END IF END IF NEXT RETURN pos END PUBLIC FUNCTION cargadatos(Resultado AS Result) AS Boolean END PRIVATE FUNCTION formulario_hijo_Read() AS String RETURN formu_hijo END PRIVATE SUB formulario_hijo_Write(Value AS String) formu_hijo = Value END PRIVATE FUNCTION tabla_Read() AS Form RETURN acualform END PRIVATE SUB tabla_Write(Value AS Form) acualform = Value END Ejemplo clase hija para clientes INHERITS CTabla PUBLIC formpadre AS Form PUBLIC SUB visualiza(padre AS Form) ME.titulo = constantes.programa & " Versión " & constantes.version & " Maestro de clientes" ME.icono = Application.Path & "/img/tux_currito.png" ME.formulario_hijo = "FClienteAlta" ME.nuevo = FPrincipal.mapa_perfil["cliente_nuevo"] ME.zoom = FPrincipal.mapa_perfil["cliente_zoom"] ME.editar = FPrincipal.mapa_perfil["cliente_editar"] ME.buscar = FPrincipal.mapa_perfil["cliente_buscar"] ME.borrar = FPrincipal.mapa_perfil["cliente_borrar"] ME.selecciona = FALSE formpadre = padre ME.interfaz(padre) FINALLY IF ERROR THEN coge_error() ENDIF END PUBLIC SUB selec_datos() IF cargadatos(dbfunciones.selec_datos_clientes()) = FALSE THEN Message.Error(constantes.error_cargadatos) ENDIF END PUBLIC SUB busca_datos() IF variables.info_filtro.Count > 0 THEN IF cargadatos(dbfunciones.filtra_datos_clientes(variables.info_filtro)) = FALSE THEN Message.Error(constantes.error_cargadatos) ENDIF ENDIF END PUBLIC SUB borra_datos(id AS Integer) IF dbfunciones.borra_datos_cliente(id) = TRUE THEN Message.Info(ME.inf_exito_borrado) ELSE Message.Error(ME.inf_error_borrado) ENDIF END PUBLIC FUNCTION cargadatos(Resultado AS Result) AS Boolean DIM Reaux AS Result DIM i AS Integer = 0 DIM u AS Integer = 0 IF Resultado <> NULL THEN ME.datos.Clear Resultado.MoveFirst WITH ME.datos .COLUMNS.Count = 4 .Rows.Count = Resultado.Count .COLUMNS[0].WIDTH = 0 .COLUMNS[1].WIDTH = 90 .COLUMNS[1].Title = "Cod." .COLUMNS[2].WIDTH = 210 .COLUMNS[2].Title = "Razón / Nombre" .COLUMNS[3].WIDTH = ME.datos.Width - 300 .COLUMNS[3].Title = "Dirección" END WITH FOR EACH Resultado IF funcionesg.par_impar(i) = TRUE THEN FOR u = 0 TO (ME.datos.COLUMNS.Count - 1) ME.datos[i, u].Background = &DFBFFF& ME.datos[i, u].Alignment = Align.Right NEXT ELSE FOR u = 0 TO (ME.datos.COLUMNS.Count - 1) ME.datos[i, u].Alignment = Align.Right NEXT ENDIF ME.datos[i, 0].text = Resultado["id_cliente"] ME.datos[i, 1].text = Resultado["id_cliente"] ME.datos[i, 2].Alignment = Align.Left ME.datos[i, 2].text = Resultado["nombre_cl"] ME.datos[i, 3].Alignment = Align.Left ME.datos[i, 3].text = Resultado["direccion"] i = i + 1 NEXT RETURN TRUE ELSE ME.datos.Rows.Count = 0 ME.datos.Clear ME.datos.Refresh RETURN FALSE ENDIF END PUBLIC SUB clicando_DblClick() IF ME.tabla.Tag = "sel" THEN coge_linea() ENDIF END PUBLIC SUB coge_linea() DIM fila AS Integer DIM matriz2 AS NEW String[] fila = ME.datos.Row matriz2.Add(ME.datos[fila, 0].Text) matriz2.Add(ME.datos[fila, 1].Text) matriz2.Add(ME.datos[fila, 2].Text) formpadre.Tag = matriz2 ME.tabla.close END PRIVATE SUB coge_error(OPTIONAL datos AS String[]) DIM texto_error AS String = error.Text DIM donde_error AS String = error.Where DIM err AS String DIM Backtrace_error AS String FOR EACH err IN Error.Backtrace Backtrace_error = Backtrace_error & "//" & err NEXT IF datos <NULL> 0 THEN IF cargadatos(dbfunciones.filtra_datos_articulo(variables.info_filtro)) = FALSE THEN Message.Error(constantes.error_cargadatos) ENDIF ENDIF END PUBLIC SUB borra_datos(id AS Integer) IF dbfunciones.borra_datos_articulo(id) = TRUE THEN Message.Info(ME.inf_exito_borrado) ELSE Message.Error(ME.inf_error_borrado) ENDIF END PUBLIC FUNCTION cargadatos(Resultado AS Result) AS Boolean DIM i AS Integer = 0 DIM u AS Integer = 0 DIM Reaux AS Result IF Resultado <> NULL THEN ME.datos.Clear Resultado.MoveFirst WITH ME.datos .COLUMNS.Count = 7 .Rows.Count = Resultado.Count .COLUMNS[0].WIDTH = 0 .COLUMNS[1].WIDTH = 90 .COLUMNS[1].Title = "Cod." .COLUMNS[2].WIDTH = ME.datos.Width - 430 .COLUMNS[2].Title = "Descripción" .COLUMNS[3].WIDTH = 110 .COLUMNS[3].Title = "Familia" .COLUMNS[4].WIDTH = 45 .COLUMNS[4].Title = "TPV" .COLUMNS[5].WIDTH = 90 .COLUMNS[5].Title = "IVA C." .COLUMNS[6].WIDTH = 90 .COLUMNS[6].Title = "IVA V." END WITH FOR EACH Resultado IF funcionesg.par_impar(i) = TRUE THEN FOR u = 0 TO (ME.datos.COLUMNS.Count - 1) ME.datos[i, u].Background = &DFBFFF& ME.datos[i, u].Alignment = Align.Right NEXT ELSE FOR u = 0 TO (ME.datos.COLUMNS.Count - 1) ME.datos[i, u].Alignment = Align.Right NEXT ENDIF ME.datos[i, 0].text = Resultado["id_articulo"] ME.datos[i, 1].text = Resultado["codigo_a"] ME.datos[i, 2].Alignment = Align.Left ME.datos[i, 2].text = Resultado["descripcion_a"] ME.datos[i, 3].Alignment = Align.Left ME.datos[i, 3].text = Resultado["descripcion"] ME.datos[i, 4].Alignment = Align.Center ME.datos[i, 4].text = Resultado["tpva"] Reaux = dbfunciones.zoom_datos_iva(Resultado["idivacompra"]) ME.datos[i, 5].Alignment = Align.Left ME.datos[i, 5].text = Reaux["descripcion"] Reaux = dbfunciones.zoom_datos_iva(Resultado["idivaresta"]) ME.datos[i, 6].Alignment = Align.Left ME.datos[i, 6].text = Reaux["descripcion"] i = i + 1 NEXT RETURN TRUE ELSE ME.datos.Rows.Count = 0 ME.datos.Clear ME.datos.Refresh RETURN FALSE ENDIF END PUBLIC SUB clicando_DblClick() IF formpadre.Name <> "FPrincipal" THEN coge_linea() ENDIF END PUBLIC SUB abrirbusca() DIM busca AS NEW CBuscaArt busca.interfaz(FPrincipal) END PUBLIC SUB coge_linea() DIM fila AS Integer DIM columna AS Integer DIM datostag AS NEW String[] fila = ME.datos.Row IF fila > -1 THEN IF Message.Question(constantes.inf_edicion & " " & ME.datos[fila, 2].Text, constantes.menu_aceptar, constantes.menu_salir) = 1 THEN datostag.Add(ME.datos[fila, 0].Text) datostag.Add(ME.datos[fila, 1].Text) datostag.Add(ME.datos[fila, 2].Text) formpadre.Tag = datostag ME.tabla.CLOSE ENDIF ENDIF END PRIVATE SUB coge_error(OPTIONAL datos AS String[]) DIM texto_error AS String = error.Text DIM donde_error AS String = error.Where DIM err AS String DIM Backtrace_error AS String FOR EACH err IN Error.Backtrace Backtrace_error = Backtrace_error & "//" & err NEXT IF datos <> NULL THEN funcionesg.logea(texto_error, donde_error, Backtrace_error, datos) ELSE funcionesg.logea(texto_error, donde_error, Backtrace_error) ENDIF END Para las altas empleo un formulario específico Ejemplo de clientes: PRIVATE estado AS String PRIVATE id_registro AS String PRIVATE SUB inicializa(modo AS String, registro AS String) ME.caption = constantes.programa & " Versión " & constantes.version & " CLIENTES" Button1.ToolTip = constantes.menu_aceptar Button1.Enabled = FALSE Button2.ToolTip = constantes.menu_salir Button3.ToolTip = constantes.menu_ayuda TabStrip1[1].Enabled = FALSE estado = modo id_registro = registro vertarifas() IF estado = "EDITA" THEN editadatos(id_registro) 'edita registro seleccionado ENDIF IF estado = "ZOOM" THEN zoomdatos(id_registro) 'ver registro seleccionado ENDIF END PRIVATE SUB editadatos(id AS String) DIM RS AS Result RS = dbfunciones.edit_datos_cliente(id) IF RS <> NULL THEN TabStrip1[1].Enabled = TRUE TextBox1.Text = RS["id_cliente"] TextBox2.Text = RS["nombre_cl"] TextBox3.Text = RS["direccion"] TextBox4.Text = RS["poblacion"] TextBox5.Text = RS["provincia"] TextBox6.Text = RS["cpostal"] TextBox7.Text = RS["phone"] TextBox8.Text = RS["phone2"] TextBox9.Text = RS["fax"] TextBox10.Text = RS["web"] TextBox11.Text = RS["email"] TextBox12.Text = RS["cif"] IF RS["tpv"] = "Y" THEN 'Ver en TPV CheckBox1.Value = TRUE ELSE CheckBox1.Value = FALSE ENDIF ENDIF END FUNCTION zoomdatos(id AS String) DIM RS AS Result RS = dbfunciones.zoom_datos_clientes(id) IF RS <> NULL THEN TabStrip1[1].Enabled = TRUE Frame1.Enabled = FALSE TextBox1.Text = RS["id_cliente"] TextBox2.Text = RS["nombre_cl"] TextBox3.Text = RS["direccion"] TextBox4.Text = RS["poblacion"] TextBox5.Text = RS["provincia"] TextBox6.Text = RS["cpostal"] TextBox7.Text = RS["phone"] TextBox8.Text = RS["phone2"] TextBox9.Text = RS["fax"] TextBox10.Text = RS["web"] TextBox11.Text = RS["email"] TextBox12.Text = RS["cif"] IF RS["tpv"] = "Y" THEN 'Ver en TPV CheckBox1.Value = TRUE ELSE CheckBox1.Value = FALSE ENDIF CheckBox1.Enabled = FALSE TextBox1.Enabled = FALSE TextBox2.Enabled = FALSE TextBox3.Enabled = FALSE TextBox4.Enabled = FALSE TextBox5.Enabled = FALSE TextBox6.Enabled = FALSE TextBox7.Enabled = FALSE TextBox8.Enabled = FALSE TextBox9.Enabled = FALSE TextBox10.Enabled = FALSE TextBox11.Enabled = FALSE TextBox12.Enabled = FALSE Button1.Enabled = FALSE Label1.Enabled = FALSE Label2.Enabled = FALSE Label3.Enabled = FALSE Label4.Enabled = FALSE Label5.Enabled = FALSE Label6.Enabled = FALSE Label7.Enabled = FALSE Label8.Enabled = FALSE Label9.Enabled = FALSE Label10.Enabled = FALSE Label11.Enabled = FALSE Label12.Enabled = FALSE Label13.Enabled = FALSE ENDIF END PRIVATE SUB liberagrabar() IF TextBox2.Text <> "" AND TextBox12.Text <THEN> 0 AND tarifas.Rows.Count > fila THEN IF Message.Question(constantes.inf_edicion & " " & tarifas[fila, 1].Text, constantes.menu_aceptar, constantes.menu_salir) = 1 THEN IF estado = "EDITA" THEN IF dbfunciones.borra_datos_clientetarifa(tarifas[fila, 0].Text) = TRUE THEN 'borra registro seleccionado tarifas.Rows.Remove(fila) tarifas.Refresh tarifas.SetFocus ENDIF ELSE tarifas.Rows.Remove(fila) tarifas.Refresh tarifas.SetFocus ENDIF ENDIF ENDIF END PUBLIC SUB Button4_Click() DIM tarifascl AS NEW CTarifas DIM datostag AS NEW String[] DIM i AS Integer tarifascl.visualiza(FClienteAlta) IF FClienteAlta.tag <NULL> 0 THEN i = tarifas.Rows.Count IF comprueba_id(datostag[0]) = TRUE THEN tarifas.Rows.Count = i + 1 tarifas[i, 4].text = datostag[0] tarifas[i, 1].text = datostag[1] tarifas[i, 2].Alignment = Align.Left tarifas[i, 2].text = datostag[2] tarifas[i, 3].text = datostag[3] ELSE Message.Error(("Tarifa repetida")) ENDIF ENDIF ENDIF datostag.Clear FClienteAlta.Tag = datostag ''limpiamos END PRIVATE FUNCTION comprueba_id(id AS String) AS Boolean DIM i AS Integer FOR i = 0 TO (tarifas.Rows.Count - 1) IF tarifas[i, 4].text = id THEN RETURN FALSE ENDIF NEXT RETURN TRUE END Espero que te sirva Saludos |
|
ljma [ Viernes, 29 Julio 2011, 23:57 ] | |
hola e estado tratando de encontrar de este tema en google pero no encuentra nada aparte de lo básico básico algo dificil quotear [quote user="ljma" post="10304"]Hola, ......................... [quote] si es buena hare algo parecido pero distinto
base de patos cuack un caballo de mar con movil xd la duda es como sera el añadir eliminar y el editar al menos necesitara 3 de estos |
|
codificador [ Domingo, 31 Julio 2011, 04:57 ] | |
Pues el mio es por Textbox:
lo de la gridview no lo veo tan importante como la de las textbox: PUBLIC SUB MovieBox1_MouseDown() verregistrosCO.Show Message.Info("BIENVENIDO AQUÍ PODRÁ VER REGISTROS DE COORDINADORES") END PRIVATE asiscon AS Connection PRIVATE asisresul AS Result PUBLIC SUB Form_Open() ValueBox1.Enabled = FALSE TextBox1.Enabled = FALSE TextBox2.Enabled = FALSE TextBox3.Enabled = FALSE TextBox4.Enabled = FALSE TextBox5.Enabled = FALSE ComboBox1.Enabled = FALSE ComboBox2.Enabled = FALSE ComboBox3.Enabled = FALSE ValueBox2.Enabled = FALSE asiscon = NEW Connection asiscon.Type = "sqlite" asiscon.Host = "/home/jousseph/DESARROLLO-JOU/GAMBAS/control_asistencia" asiscon.Name = "asistencia_asesores" TRY asiscon.Open() IF ERROR THEN Message.Error("ERROR AL CONECTAR BASE DE DATOS DEBE SER EL CODIGO MAL COMPILADO.") asiscon = NULL ELSE asisresul = asiscon.Exec("Select * from coordinador") IF asisresul.Available THEN MostrarCampos END IF END PUBLIC SUB MostrarCampos() ValueBox1.Value = asisresul["codigo"] TextBox1.text = asisresul["cedula"] TextBox2.text = asisresul["nombres"] TextBox3.text = asisresul["apellidos"] TextBox4.text = asisresul["direccion"] ComboBox3.text = asisresul["codigo_cel"] TextBox5.text = asisresul["telefono"] ComboBox1.text = asisresul["sexo"] ComboBox2.Text = asisresul["area"] ValueBox2.Value = asisresul["fecha"] END PUBLIC SUB Button3_Click() Message.Info("SE HA HABILITADO EL REGISTRO PARA QUE LO MODIFIQUE SI LO LIMPIA QUEDARÁ DESHABILITADO") TextBox1.Enabled = TRUE TextBox2.Enabled = TRUE TextBox3.Enabled = TRUE TextBox4.Enabled = TRUE TextBox5.Enabled = TRUE ComboBox1.Enabled = TRUE ComboBox2.Enabled = TRUE ComboBox3.Enabled = TRUE END PUBLIC SUB Button2_Click() TextBox1.text = "" TextBox2.text = "" TextBox3.text = "" TextBox4.text = "" TextBox5.text = "" ValueBox1.Enabled = FALSE TextBox1.Enabled = FALSE TextBox2.Enabled = FALSE TextBox3.Enabled = FALSE TextBox4.Enabled = FALSE TextBox5.Enabled = FALSE ComboBox1.Enabled = FALSE ComboBox2.Enabled = FALSE ComboBox3.Enabled = TRUE Message.Info("SE DESHABILITÓ EL REGISTRO PERO PODRA HABILITARLO DE NUEVO") END PUBLIC SUB Button4_Click() DIM VarResult AS Result Message.Info("CUIDADO ELIJA BIEN SI DESEA ELIMINAR ALGÚN REGISTRO") IF Message.Question("¿DESEA ELIMINAR EL REGISTRO?", "SI", "NO") = 1 THEN VarResult = asiscon.Edit("coordinador", "codigo=" & asisresul["codigo"]) VarResult.Delete asisresul = asiscon.Exec("Select * from coordinador") Message.Delete("SU REGISTRO HA SIDO ELIMINADO CON ÉXITO") ME.Close modificaryborrarCO.Show END IF END PUBLIC SUB Button6_Click() asisresul.MoveNext() IF NOT (asisresul.Available) THEN asisresul.MoveLast() MostrarCampos END PUBLIC SUB Button7_Click() asisresul.MovePrevious() IF NOT asisresul.Available THEN asisresul.Movefirst() MostrarCampos END PUBLIC SUB Button5_Click() DIM VarResult AS Result Message.Info("CUIDADO ELIJA BIEN SI DESEA MODIFICAR ALGÚN REGISTRO") IF Message.Question("¿DESEA MODIFICAR EL REGISTRO?", "SI", "NO") = 1 THEN VarResult = asiscon.Edit("coordinador", "codigo=" & asisresul["codigo"]) VarResult["cedula"] = TextBox1.text VarResult["nombres"] = TextBox2.text VarResult["apellidos"] = TextBox3.text VarResult["direccion"] = TextBox4.text VarResult["codigo_cel"] = ComboBox2.text VarResult["telefono"] = TextBox5.text VarResult["sexo"] = ComboBox1.text VarResult["area"] = ComboBox2.text VarResult["fecha"] = ValueBox2.text VarResult.Update asisresul = asiscon.Exec("Select * from coordinador") Message.Info("SU MODIFICACIÓN SE HA EFECTUADO EXITOSAMENTE") Message.Info("SI QUIERE VER LOS CAMBIOS EFECTUADOS PUEDE VER DE NUEVO LOS REGISTROS") ME.Close modificaryborrarCO.Show ENDIF END PUBLIC SUB Button8_Click() asisresul.MoveLast() MostrarCampos END PUBLIC SUB TextBox7_KeyPress() END PUBLIC SUB Button1_Click() ME.Close END PUBLIC SUB PictureBox6_MouseDown() Button5.Enabled = TRUE END PUBLIC SUB PictureBox7_MouseDown() Button4.Enabled = TRUE END PUBLIC SUB PictureBox8_MouseDown() Button5.Enabled = FALSE END PUBLIC SUB PictureBox10_MouseDown() Button4.Enabled = FALSE END PUBLIC SUB PictureBox5_MouseDown() END PUBLIC SUB PictureBox1_MouseDown() END PUBLIC SUB Button9_Click() DIM I AS Integer DIM rs AS Result DIM found AS Boolean found = FALSE rs = asiscon.Exec("select *from coordinador") I = 0 IF TextBox8.Text = "" THEN Message.Info("DEBE LLENAR EL CAMPO REQUERIDO") ELSE rs.MoveFirst WHILE I < rs.Count ' rs = coneccion.asiscon.Exec("SELECT * FROM asesores WHERE codigo = &1", textbox8.text) IF rs.Available THEN IF rs!codigo LIKE "*" & TextBox8.Text & "*" THEN found = TRUE EXIT ELSE rs.MoveNext ENDIF ELSE EXIT ENDIF WEND ENDIF ' IF asisresul.Available THEN IF found THEN ValueBox1.Value = rs["codigo"] TextBox1.text = rs["cedula"] TextBox2.text = rs["nombres"] TextBox3.text = rs["apellidos"] TextBox4.text = rs["direccion"] ComboBox3.Text = rs["codigo_cel"] TextBox5.text = rs["telefono"] ComboBox1.text = rs["sexo"] ComboBox2.Text = rs["area"] ValueBox2.Value = rs["fecha"] Button9.SetFocus ELSE Message.Error("CODIGO O REGISTRO NO ENCONTRADO") ENDIF END PUBLIC SUB TextBox8_Change() CInt(TextBox8.Text) 'Convierte el numero en entero CATCH TextBox8.Text = Mid$(TextBox8.Text, 1, -1) 'Si no es un numero borra el caracter STOP EVENT END PUBLIC SUB TextBox8_GotFocus() ValueBox1.Value = "" TextBox1.text = "" TextBox2.text = "" TextBox3.text = "" TextBox4.text = "" TextBox5.text = "" ComboBox1.text = "" ComboBox2.Text = "" ComboBox3.Text = "" ValueBox2.Value = "" END La idea es hacer una mini consulta ese mismo usuario o personal se puede agregar modificar o eliminar. Luego donde esta el dibujito del asesorse le da click para ver una tableview puede ver el registro e imprimirlo por supuesto guardarlo en html Este posee a la ves un registro general y la persona que se quiere consultar en tableview pero el que me interesa hacer modificaciones es en la textbox y le hago un ME.CLOSE luego un abrir de nuevo.show para actualizar lo visto en textbox este es el codigo: Ejemplos: PUBLIC SUB Form_Open() Label1.Text = ComboBox2.Text IF coneccion.conectarbase() THEN RETURN tabla.Clear() tabla.Columns.Count = 10 tabla.Columns[0].Text = "codigo" tabla.Columns[1].Text = "cedula" tabla.Columns[2].Text = "nombres" tabla.Columns[3].Text = "apellidos" tabla.Columns[4].Text = "direccion" tabla.Columns[5].Text = "codigo_cel" tabla.Columns[6].Text = "telefono" tabla.Columns[7].Text = "sexo" tabla.Columns[8].Text = "area" tabla.Columns[9].Text = "fecha" END PUBLIC SUB Button1_Click() DIM fila AS Integer Button1.Enabled = FALSE Button7.Enabled = FALSE IF Label1.Text = "CODIGO" THEN coneccion.asisresul = coneccion.asiscon.Exec("Select *from coordinador where codigo='" & TextBox2.Text & "'") fila = 0 DO WHILE coneccion.asisresul.Available tabla.Rows.Insert(fila) tabla[fila, 0].Text = coneccion.asisresul["codigo"] tabla[fila, 1].Text = coneccion.asisresul["cedula"] tabla[fila, 2].Text = coneccion.asisresul["nombres"] tabla[fila, 3].Text = coneccion.asisresul["apellidos"] tabla[fila, 4].Text = coneccion.asisresul["direccion"] tabla[fila, 5].Text = coneccion.asisresul["codigo_cel"] tabla[fila, 6].Text = coneccion.asisresul["telefono"] tabla[fila, 7].Text = coneccion.asisresul["sexo"] tabla[fila, 8].Text = coneccion.asisresul["area"] tabla[fila, 9].Text = coneccion.asisresul["fecha"] coneccion.asisresul.MoveNext() fila = fila + 1 LOOP tabla.Refresh ENDIF IF Label1.Text = "CEDULA" THEN coneccion.asisresul = coneccion.asiscon.Exec("Select *from coordinador where cedula='" & TextBox2.Text & "'") fila = 0 DO WHILE coneccion.asisresul.Available tabla.Rows.Insert(fila) tabla[fila, 0].Text = coneccion.asisresul["codigo"] tabla[fila, 1].Text = coneccion.asisresul["cedula"] tabla[fila, 2].Text = coneccion.asisresul["nombres"] tabla[fila, 3].Text = coneccion.asisresul["apellidos"] tabla[fila, 4].Text = coneccion.asisresul["direccion"] tabla[fila, 5].Text = coneccion.asisresul["codigo_cel"] tabla[fila, 6].Text = coneccion.asisresul["telefono"] tabla[fila, 7].Text = coneccion.asisresul["sexo"] tabla[fila, 8].Text = coneccion.asisresul["area"] tabla[fila, 9].Text = coneccion.asisresul["fecha"] coneccion.asisresul.MoveNext() fila = fila + 1 LOOP tabla.Refresh ENDIF fila = fila + 1 IF Label1.Text = "NOMBRES" THEN coneccion.asisresul = coneccion.asiscon.Exec("Select *from coordinador where nombres='" & TextBox2.Text & "'") fila = 0 DO WHILE coneccion.asisresul.Available tabla.Rows.Insert(fila) tabla[fila, 0].Text = coneccion.asisresul["codigo"] tabla[fila, 1].Text = coneccion.asisresul["cedula"] tabla[fila, 2].Text = coneccion.asisresul["nombres"] tabla[fila, 3].Text = coneccion.asisresul["apellidos"] tabla[fila, 4].Text = coneccion.asisresul["direccion"] tabla[fila, 5].Text = coneccion.asisresul["codigo_cel"] tabla[fila, 6].Text = coneccion.asisresul["telefono"] tabla[fila, 7].Text = coneccion.asisresul["sexo"] tabla[fila, 8].Text = coneccion.asisresul["area"] tabla[fila, 9].Text = coneccion.asisresul["fecha"] coneccion.asisresul.MoveNext() fila = fila + 1 LOOP ENDIF IF Label1.Text = "SEXO" THEN coneccion.asisresul = coneccion.asiscon.Exec("Select *from coordinador where sexo='" & TextBox2.Text & "'") fila = 0 DO WHILE coneccion.asisresul.Available tabla.Rows.Insert(fila) tabla[fila, 0].Text = coneccion.asisresul["codigo"] tabla[fila, 1].Text = coneccion.asisresul["cedula"] tabla[fila, 2].Text = coneccion.asisresul["nombres"] tabla[fila, 3].Text = coneccion.asisresul["apellidos"] tabla[fila, 4].Text = coneccion.asisresul["direccion"] tabla[fila, 5].Text = coneccion.asisresul["codigo_cel"] tabla[fila, 6].Text = coneccion.asisresul["telefono"] tabla[fila, 7].Text = coneccion.asisresul["sexo"] tabla[fila, 8].Text = coneccion.asisresul["area"] tabla[fila, 9].Text = coneccion.asisresul["fecha"] coneccion.asisresul.MoveNext() fila = fila + 1 LOOP ENDIF IF Label1.Text = "ÁREA" THEN coneccion.asisresul = coneccion.asiscon.Exec("Select *from coordinador where area='" & TextBox2.Text & "'") fila = 0 DO WHILE coneccion.asisresul.Available tabla.Rows.Insert(fila) tabla[fila, 0].Text = coneccion.asisresul["codigo"] tabla[fila, 1].Text = coneccion.asisresul["cedula"] tabla[fila, 2].Text = coneccion.asisresul["nombres"] tabla[fila, 3].Text = coneccion.asisresul["apellidos"] tabla[fila, 4].Text = coneccion.asisresul["direccion"] tabla[fila, 5].Text = coneccion.asisresul["codigo_cel"] tabla[fila, 6].Text = coneccion.asisresul["telefono"] tabla[fila, 7].Text = coneccion.asisresul["sexo"] tabla[fila, 8].Text = coneccion.asisresul["area"] tabla[fila, 9].Text = coneccion.asisresul["fecha"] coneccion.asisresul.MoveNext() fila = fila + 1 LOOP ENDIF IF Label1.Text = "FECHA DE INGRESO" THEN coneccion.asisresul = coneccion.asiscon.Exec("Select *from coordinador where fecha='" & TextBox2.Text & "'") fila = 0 DO WHILE coneccion.asisresul.Available tabla.Rows.Insert(fila) tabla[fila, 0].Text = coneccion.asisresul["codigo"] tabla[fila, 1].Text = coneccion.asisresul["cedula"] tabla[fila, 2].Text = coneccion.asisresul["nombres"] tabla[fila, 3].Text = coneccion.asisresul["apellidos"] tabla[fila, 4].Text = coneccion.asisresul["direccion"] tabla[fila, 5].Text = coneccion.asisresul["codigo_cel"] tabla[fila, 6].Text = coneccion.asisresul["telefono"] tabla[fila, 7].Text = coneccion.asisresul["sexo"] tabla[fila, 8].Text = coneccion.asisresul["area"] tabla[fila, 9].Text = coneccion.asisresul["fecha"] coneccion.asisresul.MoveNext() fila = fila + 1 LOOP ENDIF END PUBLIC SUB ComboBox2_Click() Label1.Text = ComboBox2.Text END PUBLIC SUB Button5_Click() ME.Close END PUBLIC SUB Button4_Click() tabla.Clear Button1.Enabled = TRUE Button7.Enabled = TRUE END PUBLIC SUB Button7_Click() DIM fila AS Integer coneccion.asisresul = coneccion.asiscon.Exec("Select *from coordinador ") fila = 0 DO WHILE coneccion.asisresul.Available tabla.Rows.Insert(fila) tabla[fila, 0].Text = coneccion.asisresul["codigo"] tabla[fila, 1].Text = coneccion.asisresul["cedula"] tabla[fila, 2].Text = coneccion.asisresul["nombres"] tabla[fila, 3].Text = coneccion.asisresul["apellidos"] tabla[fila, 4].Text = coneccion.asisresul["direccion"] tabla[fila, 5].Text = coneccion.asisresul["codigo_cel"] tabla[fila, 6].Text = coneccion.asisresul["telefono"] tabla[fila, 7].Text = coneccion.asisresul["sexo"] tabla[fila, 8].Text = coneccion.asisresul["area"] tabla[fila, 9].Text = coneccion.asisresul["fecha"] coneccion.asisresul.MoveNext() fila = fila + 1 LOOP tabla.Refresh Button7.Enabled = FALSE Button1.Enabled = FALSE END PUBLIC SUB Button6_Click() DIM ruta AS String DIM archivo AS File DIM i, j AS Integer ruta = User.Home &/ "Reporte de Coordinadores.html" Message.Warning("RECUERDE GUARDAR CADA REPORTE APARTE, DEBIDO A QUE SOBRECRIBE EL ANTERIOR!") IF Message.Question(" ¿DESEA GUARDAR UN REPORTE DE COORDINADORES?", "SI", "NO") = 1 THEN OPEN ruta FOR WRITE CREATE AS #archivo PRINT #archivo, "<html>" PRINT #archivo, "<head><title>Reporte en HTML de Administradores</title></head>" PRINT #archivo, "<body topmargin='0' leftmargin='0'" PRINT #archivo, ">" PRINT #archivo, "<table border='1' width='500' cellpadding='4' cellspacing='2'>" PRINT #archivo, " <tr>" PRINT #archivo, " <td colspan='20' align='center'>" PRINT #archivo, " <h3>Listado de Administradores</h3>" PRINT #archivo, " <tr>" PRINT #archivo, " <td width='15%' align='center'>Codigo</td>" PRINT #archivo, " <td align='center'>Cedula</td>" PRINT #archivo, " <td align='center'>Nombres</td>" PRINT #archivo, " <td align='center'>Apellidos</td>" PRINT #archivo, " <td align='center'>Direccion</td>" PRINT #archivo, " <td align='center'>Codigo telefono</td>" PRINT #archivo, " <td align='center'>Telefono</td>" PRINT #archivo, " <td align='center'>Sexo</td>" PRINT #archivo, " <td align='center'>Area</td>" PRINT #archivo, " <td align='center'>Fecha de Ingreso</td>" PRINT #archivo, " </tr>" FOR i = 0 TO tabla.rows.Count - 1 PRINT #archivo, " <tr>" FOR j = 0 TO tabla.Columns.Count - 1 PRINT #archivo, " <td>" & tabla[i, j].Text & "</td>" NEXT PRINT #archivo, " </tr>" NEXT PRINT #archivo, "</table>" PRINT #archivo, "</body>" PRINT #archivo, "</html>" CLOSE #archivo Message.Info("SE HA CREADO UN REPORTE EN MODO HTML CON ÉXITO (GUARDADO EN EL DIRECTORIO PRINCIPAL)") ENDIF END ESTOS SON OTROS EJEMPLOS DE DISEÑOS POSIBLES: última edición por jousseph el Domingo, 31 Julio 2011, 07:12; editado 2 veces |
|
jousseph [ Domingo, 31 Julio 2011, 06:33 ] | |
Yo use este sistema (todo en un formulario: gridviews + etiquetas y textbox ):
Para hacer: Edicion:Al hacer click en la fila del gridview, pasaba a la parte superior los datos para editarlos (modificarlos o borrarlos) Añadir: Boton Nuevo, que activa todas los textbox para poder introducir los nuevos datos. El programa lo podeis descargar en: https://sites.google.com/site/gestiondeobrasgambas/ No usa base de datos, sino ficheros planos, pero el "concepto" del diseño es igualmente aplicable, usando bases de datos. última edición por jsbsan el Domingo, 31 Julio 2011, 08:43; editado 3 veces |
|
jsbsan [ Domingo, 31 Julio 2011, 08:36 ] | |
@jousseph, no tomes esto a mal, es una recomendación que te ayudará...
Te diré lo que mi profesor de java repite... Pon nombres descriptivos.. Si usas nombres descriptivos ahorrarás algo de tiempo y quedara mucho más claro... Pero esto: [...] No dice gran cosa de tu proyecto Saludos |
|
|
|
Estoy con Bruno.
Por ejemplo, yo uso un esquema muy sencillo de seguir y que en todo momento resultará de ayuda al programador y al que lea el código. Los nombres de controles suelo poner un prefijo que es la abreviatura del nombre del control, por ejemplo: txt para textbox cbo para combobox chk para checkbox grd para gridview etc.. así, a continuación le doy un nombre descriptivo en función de su uso: txtNombre, cboCiudades, chkConfirmar, grdUsuarios, etc. Los nombres de variables también son importantes, debiendo distinguir también su ámbito. Por ejemplo para variables de clase Private antepongo el símbolo $, así de un vistazo sé lo que son y cómo usarlas. También es interesante poner otro prefijo que indique el tipo de variable, si es integer, float, string o lo que sea: Por supuesto, esto son convenciones un tanto arbitrarias, pero en todos los lenguajes existen unas recomendaciones para escribir código y no son muy diferentes unas de otras. Saludos |
|
jguardon [ Domingo, 31 Julio 2011, 10:14 ] | |
Si hermanos lo se gracias por sus consejos jejeje.
|
|
jousseph [ Domingo, 31 Julio 2011, 17:07 ] | |
algo distinto
solo borro el numero y coloco el nombre descriptivo y en los eventos no código solo llamadas a sub y funciones para las variables algo parecido un nombre descriptivo y que indique el ámbito lo que no estoy seguro es la forma de diseñar la interfaz como la grid principal como jbsan o el directorio telefonico o como el programa de registros o nose.. |
|
codificador [ Domingo, 31 Julio 2011, 20:24 ] | |
Página 1 de 2 Ir a la página 1, 2 Siguiente |
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno |
Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.
Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo
Página generada en:: 4.155s (PHP: 82% SQL: 18%)
Consultas SQL: 47 - Debug off - GZIP Activado