Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Necesito Ideas De Diseño
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje 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
 



 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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)
 



 
 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 



 
ljma - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 



 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
CONTROL SYSTEMS-((CELIS))
 
última edición por jousseph el Domingo, 31 Julio 2011, 07:12; editado 2 veces 
jousseph - Ver perfil del usuarioEnviar mensaje privadoVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Domingo, 31 Julio 2011, 08:43; editado 3 veces 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 



 
 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Necesito Ideas De Diseño 
 
Si hermanos lo se gracias por sus consejos   jejeje.
 




===================
CONTROL SYSTEMS-((CELIS))
 
jousseph - Ver perfil del usuarioEnviar mensaje privadoVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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..
 



 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Tengo Un Proyecto Y Necesito Ideas cyberx0x General 1 Domingo, 13 Diciembre 2009, 17:18 Ver último mensaje
bies88
No hay nuevos mensajes Formularios Muchos Formularios Ideas De D... codificador General 5 Viernes, 07 Junio 2013, 07:22 Ver último mensaje
codificador
No hay nuevos mensajes Ideas Locas O Cientificas No Se!! v3ctor General 7 Domingo, 06 Septiembre 2015, 18:46 Ver último mensaje
v3ctor
No hay nuevos mensajes Necesito Opinión Sobre Duda De Diseño gambafeliz General 15 Viernes, 03 Julio 2020, 13:53 Ver último mensaje
calcena
 

Publicar nuevo tema  Responder al tema  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


 
Lista de permisos
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



  

 

cron