Necesito Ideas De Diseño


Ir a la página 1, 2  Siguiente

Objetivo: Necesito Ideas De Diseño
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


ideat
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

Perfil MP  
BrunoIV
Objetivo: Re: Necesito Ideas De Diseño
Yo estoy empezando algo por el estilo, es una agenda (algo cutre) con una base de patos datos en sqlite. Al hacer doble click sobre un elemento del grid este se muestra en la parte de arriba y con un botón se actualiza.

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...

agenda_1311979104_526357

PD: Está un poco caos porque la he empezado esta mañana y no hay gran cosa (aun)

Objetivo: Re: Necesito Ideas De Diseño
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

Objetivo: Re: Necesito Ideas De Diseño

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


BrunoIV escribió: [Ver mensaje]
Yo estoy empezando algo por el estilo, es una agenda (algo cutre) con una base de patos datos en sqlite. Al hacer doble click sobre un elemento del grid este se muestra en la parte de arriba y con un botón se actualiza.
....... agenda_1311979104_526357

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

Perfil MP  
Objetivo: Re: Necesito Ideas De Diseño
Pues el mio es por Textbox:

lo de la gridview no lo veo tan importante como la de las textbox:


modificar_y_eliminar_coordinadores

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

consultas_de_coordinadores_con_opciones

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:

acceso_principal_del_sistema agregar_asesor_datos_completos asistencia_de_asesores

última edición por jousseph el Domingo, 31 Julio 2011, 07:12; editado 2 veces
Objetivo: Re: Necesito Ideas De Diseño
Yo use este sistema (todo en un formulario: gridviews + etiquetas y textbox ):

01proveedores

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
BrunoIV
Objetivo: Re: Necesito Ideas De Diseño
@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:
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


[...] No dice gran cosa de tu proyecto

Saludos

Objetivo: Re: Necesito Ideas De Diseño
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:

Private $iContador as Integer

Dim sNombre as String
Dim dFcha as Date
Dim aRegistros[] as String[]


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

Perfil MP  
Objetivo: Re: Necesito Ideas De Diseño
Si hermanos lo se gracias por sus consejos jejeje.

Objetivo: Re: Necesito Ideas De Diseño
algo distinto
solo borro el numero y coloco el nombre descriptivo
y en los eventos no código solo llamadas a sub y funciones


PUBLIC SUB TextBox8_GotFocus()
limpiar()
END

sub limpiar()
TextBox_nombre.text = ""
TextBox_movil.text = ""
'..."
end



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..

Perfil MP  
Ir a la página 1, 2  Siguiente

Página 1 de 2


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

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:: 3.9964s (PHP: 79% SQL: 21%)
Consultas SQL: 46 - Debug off - GZIP Activado