Sistema de Gestión de Negocios "Hexa"

Base de datos de conocimiento.

Doc. Ref. 9722
Título: Ejemplo de alta de datos de cliente y contacto en un paso mediante un script
Autor: Philippe Calvó
Última actualización: 28/04/2015
#interacción #cliente #contacto #script #alta


Ejemplo de alta de datos de cliente y contacto en un paso mediante un script

Este script permite realizar altas de clientes y contactos en un sólo paso de forma rápida y adaptada a campos concretos. Utiliza el formulario de interacciones

Se puede modificar de forma sencilla para que:

  • Se puede solicitar campos diferentes.
  • La numeración se realice de forma diferente.
  • Se genere altas de registros en otras tablas.
  • Se disponga de valores por defecto para algunos campos.
  • Se calcule valores concretos para campos, como el caso de la fecha de alta.
  • Se realice comprobaciones antes del alta como que todos los campos sean obligatorios.
Sub Main (PS0, PS1, PS2)
    Interact.Reinicia "AltaCliente", "Alta de Cliente y Contacto"
    Interact.Cancelable = True
    Interact.NuevoValor "Nombre", "Nombre completo", "Texto", "1", ""
    Interact.NuevoValor "Direccion", "Dirección (Calle y número)", "Texto", "1", ""
    Interact.NuevoValor "Poblacion", "Población", "Texto", "1", ""
    Interact.NuevoValor "CP", "Código postal", "Texto", "1", ""
    Interact.NuevoValor "Provincia", "Provincia", "Texto", "1", ""
    Interact.NuevoValor "Pais", "País", "Pais", "1", ""
    Interact.NuevoValor "Telefono", "Teléfono", "Texto", "1", ""
    Interact.NuevoValor "Telefono2", "Segundo teléfono", "Texto", "1", ""
    Interact.NuevoValor "EMail", "EMail", "Texto", "1", ""
    Interact.NuevoValor "Nif", "Nif", "Texto", "1", ""
    Interact.NuevoValor "Observaciones", "Observaciones", "Memo", "1", ""
    Interact.NuevoValor "Familia0", "Forma jurídica", "Familia0Clientes", "1", ""
    Interact.NuevoValor "Familia1", "Prescriptor", "Familia1Clientes", "1", ""
    Interact.NuevoValor "Familia2", "Responsable", "Familia2Clientes", "1", ""
    Interact.NuevoValor "Familia3", "Tipo", "Familia3Clientes", "1", ""

    Interact.NuevoValor "ContactoNombre", "Nombre completo del contacto", "Texto", "1", ""
    Interact.NuevoValor "ContactoDireccion", "Dirección del contacto (Calle y número)", "Texto", "1", ""
    Interact.NuevoValor "ContactoPoblacion", "Población del contacto", "Texto", "1", ""
    Interact.NuevoValor "ContactoCP", "Código postal del contacto", "Texto", "1", ""
    Interact.NuevoValor "ContactoProvincia", "Provincia del contacto", "Texto", "1", ""
    Interact.NuevoValor "ContactoPais", "Pais del contacto", "Pais", "1", ""
    Interact.NuevoValor "ContactoTelefono", "Teléfono del contacto", "Texto", "1", ""
    Interact.NuevoValor "ContactoTelefono2", "Segundo teléfono del contacto", "Texto", "1", ""
    Interact.NuevoValor "ContactoEMail", "EMail del contacto", "Texto", "1", ""
    
    Formularios.MInteract
    If Not Interact.Aceptado Then Exit Sub
    If Interact.Cancelado=True Then Formularios.MBx ("Proceso cancelado") : Exit Sub

    Campos = "Codigo,Nombre,Alta,Direccion,Poblacion,CP,Provincia,Pais,Telefono,Telefono2,EMail,Nif,Observaciones,Familia0,Familia1,Familia2,Familia3"
    Valores  = FH.SQLT (Left (Interact.Valor ("Nombre"), 40)) & ","
    Valores = Valores & FH.SQLF (Now) & ","
    Valores = Valores & FH.SQLT (Left (Interact.Valor ("Direccion"), 40)) & ","
    Valores = Valores & FH.SQLT (Left (Interact.Valor ("Poblacion"), 40)) & ","
    Valores = Valores & FH.SQLT (Left (Interact.Valor ("CP"), 10)) & ","
    Valores = Valores & FH.SQLT (Left (Interact.Valor ("Provincia"), 40)) & ","
    Valores = Valores & FH.SQLT (Left (Interact.Valor ("Pais"), 50)) & ","
    Valores = Valores & FH.SQLT (Left (Interact.Valor ("Telefono"), 15)) & ","
    Valores = Valores & FH.SQLT (Left (Interact.Valor ("Telefono2"), 15)) & ","
    Valores = Valores & FH.SQLT (Left (Interact.Valor ("EMail"), 100)) & ","
    Valores = Valores & FH.SQLT (Left (Interact.Valor ("Nif"), 34)) & ","
    Valores = Valores & FH.SQLT (Interact.Valor ("Observaciones")) & ","
    Valores = Valores & FH.SQLT (Left (Interact.Valor ("Familia0"), 20)) & ","
    Valores = Valores & FH.SQLT (Left (Interact.Valor ("Familia1"), 20)) & ","
    Valores = Valores & FH.SQLT (Left (Interact.Valor ("Familia2"), 20)) & ","
    Valores = Valores & FH.SQLT (Left (Interact.Valor ("Familia3"), 20))
    
    CodigoCliente = BaseDeDatos.Siguiente ("Cliente", "Codigo", "", False)
    Valores = CodigoCliente & "," & Valores

    BaseDeDatos.Introduce "Cliente", "" & Campos, "" & Valores

    Campos = "Codigo,Cliente,Nombre,Alta,Direccion,Poblacion,CP,Provincia,Pais,Telefono,Telefono2,EMail"
    Valores  = FH.SQLT (Left (Interact.Valor ("ContactoNombre"), 40)) & ","
    Valores = Valores & FH.SQLF (Now) & ","
    Valores = Valores & FH.SQLT (Left (Interact.Valor ("ContactoDireccion"), 40)) & ","
    Valores = Valores & FH.SQLT (Left (Interact.Valor ("ContactoPoblacion"), 40)) & ","
    Valores = Valores & FH.SQLT (Left (Interact.Valor ("ContactoCP"), 10)) & ","
    Valores = Valores & FH.SQLT (Left (Interact.Valor ("ContactoProvincia"), 40)) & ","
    Valores = Valores & FH.SQLT (Left (Interact.Valor ("ContactoPais"), 50)) & ","
    Valores = Valores & FH.SQLT (Left (Interact.Valor ("ContactoTelefono"), 15)) & ","
    Valores = Valores & FH.SQLT (Left (Interact.Valor ("ContactoTelefono2"), 15)) & ","
    Valores = Valores & FH.SQLT (Left (Interact.Valor ("ContactoEMail"), 100))

    CodigoContacto = BaseDeDatos.Siguiente ("Contacto", "Codigo", "", False)
    Valores = CodigoContacto & "," & CodigoCliente & "," & Valores
    
    BaseDeDatos.Introduce "Contacto", "" & Campos, "" & Valores
    
    Formularios.MBx "Se ha creado el cliente " & CodigoCliente & " y el contacto " & CodigoContacto

End Sub

Volver a la búsqueda anterior