Buscadores y VBScript

Anuncio
Documentación Buscadores y VBScript
N. Documento
Revisión Nº:
Fecha:
1.0
09/02/09
ÍNDICE
BUSCADORES Y VBSCRIPT 1
BUSCADORES
Imprimir
Pasar a predefinido
Regenerar SQL.
BUSCADORES PREDEFINIDOS
VBScript
Objetos disponibles
1
5
5
6
6
8
8
Buscadores y VBScript
Buscadores y VBScript
BUSCADORES
Un buscador es una herramienta que nos permite acceder a colecciones de objetos, filtradas
en base a criterios fijos o variables, configurables por usuario.
Pueden ser personales o compartidos.
Se accede a ellos desde la ventana principal de la aplicación, seleccionando “Favoritos” en el
panel de exploración.
O también desde el panel de Tareas
Para explicar cómo se crea un buscador, haremos un ejemplo para listar los clientes de una
provincia.
Para crear uno nuevo desde el panel de favoritos, seleccionaremos “Agregar” ->
“Buscadores”
Se abrirá la pantalla de edición de buscadores, donde rellenaremos la colección sobre la cual
queremos realizar la búsqueda, y una descripción para el buscador. A continuación
pulsaremos el botón “Guardar”
Si además queremos que el buscador nos muestre los registros en el panel de inicio,
marcaremos el check de Panel de inicio. El campo “Número Registros Alerta”, es para pintar
1
Buscadores y VBScript
de rojo el encabezado del buscador en el panel de inicio, si el total de registros devueltos
iguala o supera el número especificado.
A continuación, nos mostrará 4 secciones. A la izquierda tenemos el panel de propiedades.
En el centro veremos las condiciones de filtro, a la derecha los valores que queremos filtrar
y debajo nos irá listando las condiciones de búsqueda que vayamos definiendo.
Existen distintos tipos de valores:
[?]: El buscador solicitará al usuario el valor
[Valor]: Se guardará en el buscador el valor deseado.
[(Usuario),(Empleado),(Hoy),(Mes Actual),(Año Actual)] El buscador reemplazará estos
valores por los correspondientes en cada sesión de usuario.
[SQL]: Se guardará en el buscador una subconsulta SQL para filtrar por ella.
Se añadirán tantas condiciones como se necesiten, pudiéndose establecer que se tengan
que cumplir todas (Operador AND) o bien solo alguna (Operador OR)
2
Buscadores y VBScript
Ejemplo: Buscador de Ficha de Cliente por Id.
Agregaremos un nuevo buscador, seleccionando el objeto “Clientes”, rellenaremos la
descripción y guardaremos. Seleccionaremos la propiedad “Id Cliente”, la Condición “=”,
haremos clic en el Valor “?” y luego pulsaremos el operador “Y”. Veremos que se añade un
registro en el panel inferior, con el campo, la condición y el valor indicado.
Al cerrar la ventana aparecerá un buscador nuevo con un Id. Seguido de la descripción.
Al ejecutarlo, el buscador abrirá este formulario de entrada de datos, donde rellenaremos el
valor deseado (el Id Cliente).
3
Buscadores y VBScript
Finalmente, pulsando “Aceptar”, obtendremos el resultado del buscador en una nueva
pestaña de la pantalla principal.
Ejemplo: Buscador de Clientes con varias condiciones
4
Buscadores y VBScript
Agregaremos un nuevo buscador, seleccionando el objeto “Clientes”, rellenaremos la
descripción y guardaremos.
Seleccionaremos la propiedad “Provincia”, la Condición “=” y en [Valor] introduciremos
“Valencia”
Seleccionaremos la propiedad “Tipo”, la Condición “=” y en [Valor] seleccionaremos
“Nacional”
Observamos como para el valor se despliega una lista de valores. Esto es configurable
mediante el Admon.
Seleccionaremos la propiedad “Bloqueado” (*), la condición “EN” y el valor “[SQL]”. En la
subconsulta escribiremos lo siguiente:
SELECT
DISTINCT
IdCliente
From
datepart(yyyy,fechafact)=datepart(yyyy,getdate())
facturas_cli_cab
where
Guardaremos.
(*) Si no encuentra la propiedad, se puede añadir mediante el ADMON.
Con estos pasos obtendremos un buscador que nos mostrará todos los clientes de la
provincia de Valencia, no bloqueados, a los que se les ha facturado en el año en curso.
Imprimir
Imprime el resultado de la búsqueda
Pasar a predefinido
Coloca al buscador en la gestión de buscadores y scripts predefinidos.
Primeramente debemos asignar permisos, para establecer qué usuarios o grupo de usuarios
pueden acceder al buscador. Si asignamos el grupo de seguridad “Grupo Ahora”, estará
accesible para todos los usuarios de la aplicación. Por defecto viene seleccionado. Una vez
asignada la seguridad, saldrá un mensaje de éxito, y el buscador estará disponible.
5
Buscadores y VBScript
Regenerar SQL.
En ocasiones, los scripts dejan de funcionar correctamente porque se realizan cambios en la
configuración de las colecciones, como puede ser el modificar la vista. Este botón nos
permite recompilar la consulta para establecer el correcto funcionamiento.
BUSCADORES PREDEFINIDOS
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.
6
Buscadores y VBScript
Si el usuario que añade el buscador, pertenece al grupo de seguridad de administradores,
podrá establecer seguridad, o eliminar buscadores de este repositorio.
7
Buscadores y VBScript
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
Objet
o
gCn
Nombre
Descripción
Ejemplo
DameValorCampo
Obtiene el valor de un
campo de tabla/vista
de bbdd.
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.
Ejecuta
un
procedimiento
almacenado
en
la
BBDD, enviando los
parámetros
en
una
colección.
Devuelve un booleano
Variable = gcn.DameValorcampo(“Select
RazonSocial From Clientes_Datos Where
IdCliente = ‘00000’”)
Set lCol = gcn.DamenewCollection
lCol.Add 1
lCol.Add “esta es la descripción”
DameNewCollecti
on
EjecutaStoreCol
EsAdmonUser
Set lCOlParam = gcn.DameNewCollection
lColParam.add “00001”
Gcn.EjecutaStoreCol(“NombreProceso”,lC
olParam)
Variable = gcn.EsAdmonUser
8
Buscadores y VBScript
ExecuteSQL
IdDelegacion
IdDepartamento
IdEmpleado
IdEmpresa
OpenResultSet
Obj
DameColeccion
DameObjeto
Iitem
indicando si el usuario
actual
pertenece
al
grupo Desarrollo
Ejecuta una instrucción
SQL en la base de
datos
Obtiene la delegación
donde se ha logueado
el usuario
Obtiene
el
departamento
donde
se ha logueado el
usuario.
Obtiene el Id Empleado
del usuario
Obtiene la empresa
donde se ha logueado
el usuario.
Obtiene un conjunto de
registros de BBDD
Obtiene una colección
de objetos con un
criterio
Obtiene un objeto en
concreto
DameObjStr
Obtiene
objeto
Imprimir
Imprime el objeto
Modificado
Indica si el objeto ha
sido modificado
Indica si el objeto es
nuevo
(no
se
ha
grabado en BBDD)
Nos da acceso a la
Colección de objetos
dependientes
del
objeto
Devuelve o establece el
valor de las distinas
propiedades (campos)
del objeto
Muestra el objeto en
pantalla
Guarda el objeto en
BBDD
Nuevo
Objetos
Propiedades
Show
Update
un
nuevo
Gcn.ExecuteSql
“INSERT
INTO
Conta_Subcuentas(IdEjercicio,Subcuenta,
Descrip) VALUES (1,’70000000’,’Ventas’)”
Variable = gcn.IdDelegacion
Variable = gcn.IdDepartamento
Variable = gcn.IdEmpleado
Variable = gcn.Idempresa
Set
lRecordset
gcn.OpenResultSet(“Select
Clientes_Tipos”)
*
=
From
Set
lCol
=
gcn.Obj.DameColeccion("Facturas","WHE
RE IdCliente = ‘00010’”,,False)
Set
lFactura=gcn.Obj.DameObjeto(“Facturas_
Deudores”,”Where IdFactura = 1”)
Set
lArticulo
=
gcn.obj.DameObjStr(“Articulo”)
Set
lFactura=gcn.Obj.DameObjeto(“Facturas_
Deudores”,”Where IdFactura = 1”)
lFactura.Imprimir
Variable = lFactura.Modificado
Variable = lFactura.Nuevo
lFactura.Objetos(“Factura_Deudor_Lineas
”)
lFactura.Propiedades(“DescripcionFact”)=
”Ejemplo descripción”
lFactura.Show
lFactura.Update
9
Buscadores y VBScript
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
IdFactura
from
Facturas_Cli_Cab
a1
inner
join
clientes_datos
a1.idcliente=a2.idcliente WHERE
a2.cliente like '%" & lDescCliente &
DATEPART(yyyy,a1.FechaFact)= " & lFecha & ")",,False)
If lCol is Nothing then
Msgbox "No existen
vbExclamation,"Atención"
Else
lcol.show
End If
facturas
para
esa
descripción
de
cliente
DISTINCT
a2
on
"%' AND
y
año.",
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
.AgregaColumna
.AgregaColumna
.AgregaColumna
.AgregaColumna
.AgregaColumna
.AgregaColumna
.AgregaColumna
.AgregaColumna
"IdDoc", 0, "IdDoc", True
"IdFactura", 0, "IdFactura", True
"NumFactCliente", 800, "NumFact", True
"IdCliente", 800, "IdCliente", True
"Cliente", 4000, "Cliente", True
"Tipo", 800, "Tipo", True
"IdEstado", 800, "Estado", True
"FechaVencimiento", 1000, "Fecha Vto", True
"FechaCobro", 1000, "Fecha Cobro", True
10
Buscadores y VBScript
.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
11
Buscadores y VBScript
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.
12
Descargar