miércoles, 3 de diciembre de 2014

RUNNING VALUE EJEMPLO acumulado reporting services 2008

Me surgio el problema de querer hacer un reporte de antigüedad de saldo de proveedores.

la respuesta fue utilizar la función runningvalue, esta funciona va generando el acumulado cuando tu ingresas los siguientes parámetros.

=RunningValue(Fields!Cost.Value, Sum, Nothing), en mi caso  lo que deseaba es que desde el valor de otro dataset me diera la sumatoria acumulativa del saldo en la fecha que indicaba el renglón.

para esto la variable del primer dataset lo colgué como text.

=Sum(Fields!saldo.Value, "DataSet1")

y enseguida
=reportitems!Textbox1.Value+runningvalue(fields!Saldo_Total.Value,sum,nothing) jalo el valor del textbox y lo voy sumando al valor sumado actual.


runninvalue no se puede usar con ordenación o filtros en el reporte, esta es una condicionante.


 


 

 

viernes, 28 de noviembre de 2014

parámetros iniciales qlikview 11

en Qlikview cuando quieres dejar ciertas selecciones al momento de abrir un documento lo que puedes hacer es utilizar el trigger onOpen dentro de propiedades del documento.

puedes agregar las acciones al momento de abrir, por ejemplo, en ciertos parámetros agregar sus selecciones iniciales.

Esto te puede ayudar para que siempre que entre el usuario no haya necesidad de estar quitando y poniendo filtros. En este ejemplo yo selecciono campos y les pongo su selección inicial. también se pueden guardar bookmark y éstos inicializarlos con este evento. OnOpen


 
las siguientes ligas te pueden ser de mucha ayuda también.
 
 
 

martes, 2 de septiembre de 2014

Extraer Datos de una BD MYSQL desde EXCEL 2010


En office te tiene le das clic a la pestaña de datos, luego desde ahí te vas a de OTRAS FUENTES. 


En otras fuentes tu le das clic a Desde MICROSOFT QUERY , Después de esto


Te vas a la pestaña de elegir origen de datos, y le das nuevo origen de datos

Le pones el nombre a tu conexión y seleccionas el driver de mysql ODBC 5.1 driver
Enseguida te sale el conector ODBC, y agregar tu IP, el puerto 3306 debe estar abierto.
El usuario y el password y debe aparecer la base de datos. Le das test para checar que realmente marque una conexión exitosa.
Luego una vez que seleccionas una tabla en el asistente le das aceptar y te la guarda.
Vuelves a donde mismo pero ya generaste tu conexión y le das clic, te vuelve a pedir el usuario y la contraseña y la metes y luego te manda a generar la consulta.

lunes, 1 de septiembre de 2014

Qlikview ejemplo If en LOAD

 Condiciones Qlikview


if(NombreGrupoT<>'GRUPO1',ApplyMap('MapTourFoto', NombreGrupoT, null( )),
if(Ps='DEL' and NombreGrupoT='GRUPO1','Fotos GRUPO1A',

if( Ps='SJD' and NombreGrupoT='GRUPO1','Fotos GRUPO1B','Fotos GRUPO1A') )
) as
NombreGrupof



puede aplicarse el APPLY MAP EN main para que este quede en memoria y pueda asociarse a un campo de otro QVD

en Main esta esto.


MapTourFoto:
Mapping LOAD * INLINE [
NTour, NTourFoto
'GRUPO2', 'Fotos GRUPO2'
'GRUPO3', 'Fotos GRUPO3'
'GRUPO4', 'Fotos  GRUPO4']
;

jueves, 10 de julio de 2014

Macro Exporta de excel a Outlook Calendario

Este pequeño macro genera una varias tareas de Excel a el calendario de Outlook.
para esto tendremos que agregar la referencia al api de Outlook. en herramientas/referencia con esto podremos trabajar con Outlook.apliccation y todos sus objetos.




Sub CREARTAREA()
   Dim ol As Outlook.Application
  ' Dim NewTask As Outlook.TaskItem/* Objeto de lista de tarea*/
   Dim newtask As Outlook.AppointmentItem ' objeto de tarea en calendario
   Dim i As Integer ' variable contador para ciclo
   ' Set the Application object.
   Set ol = New Outlook.Application ' Crea un set de outlook
   ' Create a new standard task.
   ' Display the new task form so the user can fill it out.
   For i = 10 To 1 Step -1 ' Determinamos un ciclo para llenar nuestro calendario con tareas de excel
    Set newtask = ol.CreateItem(olAppointmentItem) ' Crea el objeto del calendario
      newtask.Subject = Sheets(1).Cells(i, "A").Value 'Agregamos la linea que contiene el asunto de tarea
      newtask.Body = "esto es una prueba" ' Cuerpo de la tarea
      'newtask.Display (evento que funciona para que despliegue el formato de calendario, o tarea)
      newtask.Start = Sheets(1).Cells(i, "B").Value ' Agrega campo fecha con hora del evento en calendario
      'newtask.End = Sheets(1).Cells(i, "B").Value
      newtask.Duration = 60 ' duracion del evento en minutos
      'newtask.End = Now (tiempo de terminacion del evento)
      newtask.Save 'evento que guarda la tarea
      newtask.ClearRecurrencePattern
    Set newtask = Nothing 'Vaciamos el objeto para que se pueda volver a utilizar
  Next i 'Volvemos al ciclo
End Sub

Espero que les pueda servir de ayuda.

miércoles, 9 de julio de 2014

Mi incursion en macros macro EXCEL a SAP B1 Anticipos

Jamás me había interesado esto, pensé siempre que era mejor una aplicación desde cualquier lenguaje, sin embargo el poco tiempo y la necesidad me han hecho ver las macros como una buena herramienta para mitigar ciertas tareas repetitivas y tediosas.

para empezar genere esta pequeña macro para poder enlazar a objetos de SAP. necesitaba cerrar anticipos de manera automática por ser un número grande.

para esto primero agregar herramientas/referencia dentro de vb en la pestaña de programador en Excel.



agregamos este código, explico en cada renglón por que el objeto o la variable.

Sub SAP()
'---Datos SAP...
Dim oCompany As SAPbobsCOM.Company 'objeto de compañías de sapbobscom
Dim lRetCode, ErrorCode As Long 'variables para errores
Dim ErrorMessage As String 'mensaje de error variable
Dim Retval As Long 'variable de error regresado por sap
Dim vItem As SAPbobsCOM.Documents 'objeto de documento en SAP
Dim numdocentry As Long 'variable para mover el registro del objeto
' Importar
  Set oCompany = New SAPbobsCOM.Company 'asignas al objeto para manejar la bd.
    oCompany.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_MSSQL2005 'tipo de base de datos,
                  'hay diferentes dependiendo del manejador de la bd
    oCompany.DbUserName = "Tudbuser"
    oCompany.DbPassword = "tupasswordsql"
    oCompany.Server = "127.0.0.1"
    oCompany.CompanyDB = "basededatosSAP"
    oCompany.UserName = "userSAP"
    oCompany.Password = "passSAP"
    oCompany.UseTrusted = False
    lRetCode = oCompany.Connect()
    Set vItem = oCompany.GetBusinessObject(oDownPayments)
    Row = 2
    Do While Sheets(1).Cells(Row, "A") <> ""
        numdocentry = Sheets(1).Cells(Row, "A")
        vItem.GetByKey (numdocentry)
        'vItem.NumAtCard = Sheets(7).Cells(Row, "C")
        vItem.Comments = "anticipo cancelado macro"
        vItem.Update ' El objeto se actualiza puede ser create, delete, update
        Retval = vItem.Cancel
        Row = Row + 1
    Loop
    oCompany.Disconnect 'desconectar compañía
    MsgBox "Exportado "
'Importar a SAP
MsgBox "Exportado ..!"
End Sub



tengo poco tiempo pero esto lo posteo a ver si puede servir a alguien, cabe mencionar que la DI API es de la versión 2007.