En ocasiones queremos que un buscador esté accesible para otros usuarios de la aplicación. Para esto se hizo la gestión de Buscadores y Scripts predefinidos. Un administrador puede crear scripts o buscadores y ponerlos como predefinidos.

Para acceder basta con seleccionar desde el panel de favoritos, Agregar -> Buscadores predefinidos



Saldrá un formulario con un árbol de buscadores, categorizado por colecciones. El usuario debe seleccionar el buscador que quiera y pulsar “Aceptar” para tenerlo disponible en su panel.



Si el usuario que añade el buscador, pertenece al grupo de seguridad de administradores, podrá establecer seguridad, o eliminar buscadores de este repositorio.

 

VBScript

VBScript es un lenguaje de programación interpretado por el Windows Scripting Host, con una sintaxis muy parecida a Visual Basic. Mediante la inclusión de los objetos propios de la aplicación, nos permite el acceso a toda la información, así como la ejecución de código personalizado.

Para crear uno nuevo, seleccionaremos “Agregar” -> “Scripts”


 

Objetos disponibles

  • gCn: Objeto conexión. A través de el se tiene acceso a la base de datos.
  • Obj: Objeto Objetos. A través de el se tiene acceso a las colecciones y objetos de la aplicación
  • Iitem: Representa un objeto de la aplicación instanciado

A continuación se muestra un resumen de las principales propiedades y métodos


Objeto

Nombre

Descripción

Ejemplo

gCn

DameValorCampo

Obtiene el valor de un campo de tabla/vista de bbdd.

Variable = gcn.DameValorcampo(“Select RazonSocial From Clientes_Datos Where IdCliente = ‘00000’”)

 

DameNewCollection

Retorna un objeto de tipo Collection al que se le puede añadir objetos o variables. Es útil cuando queremos ejecutar una Stored Procedure y necesitamos pasarle parámetros.

Set lCol = gcn.DamenewCollection

lCol.Add 1

lCol.Add “esta es la descripción”

 

EjecutaStoreCol

Ejecuta un procedimiento almacenado en la BBDD, enviando los parámetros en una colección.

Set lCOlParam = gcn.DameNewCollection

lColParam.add “00001”

Gcn.EjecutaStoreCol(“NombreProceso”,lColParam)

 

EsAdmonUser

Devuelve un booleano indicando si el usuario actual pertenece al grupo Desarrollo

Variable = gcn.EsAdmonUser

 

ExecuteSQL

Ejecuta una instrucción SQL en la base de datos

Gcn.ExecuteSql “INSERT INTO Conta_Subcuentas(IdEjercicio,Subcuenta,Descrip) VALUES (1,’70000000’,’Ventas’)”

 

IdDelegacion

Obtiene la delegación donde se ha logueado el usuario

Variable = gcn.IdDelegacion

 

IdDepartamento

Obtiene el departamento donde se ha logueado el usuario.

Variable = gcn.IdDepartamento

 

IdEmpleado

Obtiene el Id Empleado del usuario

Variable = gcn.IdEmpleado

 

IdEmpresa

Obtiene la empresa donde se ha logueado el usuario.

Variable = gcn.Idempresa

 

OpenResultSet

Obtiene un conjunto de registros de BBDD

Set lRecordset = gcn.OpenResultSet(“Select * From Clientes_Tipos”)

 

 

 

 

Obj

DameColeccion

Obtiene una colección de objetos con un criterio

Set lCol = gcn.Obj.DameColeccion("Facturas","WHERE IdCliente = ‘00010’”,,False)

 

DameObjeto

Obtiene un objeto en concreto

Set lFactura=gcn.Obj.DameObjeto(“Facturas_Deudores”,”Where IdFactura = 1”)

 

DameObjStr

Obtiene un nuevo objeto

Set lArticulo = gcn.obj.DameObjStr(“Articulo”)

 

 

 

 

Iitem

Imprimir

Imprime el objeto

Set lFactura=gcn.Obj.DameObjeto(“Facturas_Deudores”,”Where IdFactura = 1”)

lFactura.Imprimir

 

Modificado

Indica si el objeto ha sido modificado

Variable = lFactura.Modificado

 

Nuevo

Indica si el objeto es nuevo (no se ha grabado en BBDD)

Variable = lFactura.Nuevo

 

Objetos

Nos da acceso a la Colección de objetos dependientes del objeto

lFactura.Objetos(“Factura_Deudor_Lineas”)

 

Propiedades

Devuelve o establece el valor de las distinas propiedades (campos) del objeto

lFactura.Propiedades(“DescripcionFact”)=”Ejemplo descripción”

 

Show

Muestra el objeto en pantalla

lFactura.Show

 

Update

Guarda el objeto en BBDD

lFactura.Update

Ejemplo: Buscador VBScript de Facturas por Año y descripción de cliente.

 

Crearemos un nuevo script e introduciremos el siguiente código.

Sub Main()

  frmAux.Descargar

  lDescCliente=InputBox("Introduzca la descripción de cliente:")

  If len(lDescCliente)=0 Then

    exit sub

  end If 

  lFecha=InputBox("Introduzca el año:")

  If len(lFecha)=0 Then

    exit sub

  end If

  Set lCol=Gcn.Obj.DameColeccion("Facturas","WHERE IdFactura IN (SELECT DISTINCT IdFactura from Facturas_Cli_Cab a1 inner join clientes_datos a2 on a1.idcliente=a2.idcliente WHERE  a2.cliente like '%" & lDescCliente & "%' AND DATEPART(yyyy,a1.FechaFact)= " & lFecha & ")",,False)

  If lCol is Nothing then

    Msgbox "No existen facturas para esa descripción de cliente y año.", vbExclamation,"Atención"

  Else

    lcol.show

  End If

  End Sub

El resultado de este script serán dos pantallas donde nos preguntará la descripción del cliente y el año, y como resultado nos mostrará en una nueva ventana la colección de facturas correspondiente.

 

Ejemplo: Mantenimiento VBScript de Efectos

Sub Main()

frmAux.descargar

Set lFrm = ceesi_apoyo.GetFormByName("frmMantenimientos")

With lFrm.Grid("Cartera Cliente")

  .Agregar = False

  .Editar = False

  .Eliminar = False

  .CargaObjetos = False

  .EditarPorObjeto = False

  .AgregaColumna "IdDoc", 0, "IdDoc", True

  .AgregaColumna "IdFactura", 0, "IdFactura", True

  .AgregaColumna "NumFactCliente", 800, "NumFact", True

  .AgregaColumna "IdCliente", 800, "IdCliente", True

  .AgregaColumna "Cliente", 4000, "Cliente", True

  .AgregaColumna "Tipo", 800, "Tipo", True

  .AgregaColumna "IdEstado", 800, "Estado", True

  .AgregaColumna "FechaVencimiento", 1000, "Fecha Vto", True

  .AgregaColumna "FechaCobro", 1000, "Fecha Cobro", True

  .AgregaColumna "Observaciones", 2000, "Observaciones", True

  .AgregaColumna "ImporteTotal", 1000, "Importe", True,,,"#,##0.00"

  .Campo("NumFactCliente").Coleccion="Facturas"

  .Campo("NumFactCliente").ColeccionWhere="WHERE IdFactura=@IdFactura"

  .Campo("IdCliente").Coleccion="Clientes"

  .Campo("IdCliente").ColeccionWhere="WHERE IdCliente=@IdCliente"

  .From = "vClientes_Efectos"

  .Orden="Orden"

  .Where = ""

  .Refresca = True

End With

lFrm.form.Width=13600

lFrm.Form.Caption = "Efectos clientes"

lFrm.MuestraFiltro("Efecto Cliente") = True

lFrm.Carga , True, 4

End Sub

Con En este ejemplo obtenemos un mantenimiento rapido de efectos de cartera, pudiendo desde el mismo acceder a las facturas o las fichas de los clientes.

 

Ejemplo: Generación de factura de acreedor mediante VBScript

Sub Main()

  frmAux.Descargar   

  Set lFrm = ceesi_apoyo.getformbyname("frmMantenimientos")

  Set lFra = gcn.Obj.DameObjStr("Factura_Acreedor")

  lIdProveedor = InputBox("Indique Proveedor:")

  If Len(lIdProveedor)= 0 Then

    Exit Sub

  End If

  lImporte = InputBox("Indique Importe:")

  If Len(lImporte) = 0 Then

    Exit Sub

  End If

  lCuenta = InputBox("Indique Cuenta Contable:")

  If Len(lCuenta) = 0 Then

    Exit Sub

  End If

  lIdContacto = gcn.damevalorcampo("SELECT TOP 1 IdContacto FROM Prov_Contactos WHERE IdProveedor = '" & lIdProveedor & "'")

  lFra.Propiedades("IdProveedor") = lIdProveedor

  lFra.Propiedades("IdContactoF") = lIdContacto

  lFra.Propiedades("NumFactProv") = 1

  lFra.Propiedades("SerieFactura") = 0

  lFra.Update

  Set lLinea = lFra.Objetos("Factura_Acreedor_Lineas").Add

  lLinea.Propiedades("IdIva") = 0

  lLinea.Propiedades("BaseEuros") = lImporte

  lLinea.Update

  Set lDesglose = lfra.objetos("Factura_Acreedor_Desgloses").Add

  lDesglose.Propiedades("Subcuenta") = lCuenta

  lDesglose.Propiedades("ImporteEuros") = lImporte

  lDesglose.Update

  lFra.Update

  lFra.Show

End Sub

El resultado de este código será la generación de una factura de acreedor introduciendo el IdProveedor, el importe y la cuenta contable. Nos la mostrará para continuar editándola.