FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Crear una tabla dinamica con un enlace externo desde fivewin
Posts: 346
Joined: Mon Oct 05, 2009 03:35 PM
Crear una tabla dinamica con un enlace externo desde fivewin
Posted: Wed Jun 20, 2018 03:39 PM

Estimados Colegas:

Necesito crear tabla dinámica desde fivewin directamente con OLE o con alguna clase ya creada con anterioridad, busqué en los foros y hablan de la clase texcel ( texcelscript ), pero los enlaces ya no están disponibles, necesito enganchar el ODBC creado en windows que apunta al servidor de SQL, en donde se encuentra la vista que genera las columnas necesarias.

todo funciona ok, desde el excel directo, siguiendo los pasos que el mismo excel realiza para conectarse al ODBC y seleccionar la vista y decirle que es tabla dimanica, pero la verdad necesito que si existe alguna función o procedimiento que lo haga directamente desde fivewin.

Saludos.

SkyPe: armando.lagunas@hotmail.com

Mail: armando.lagunas@gmail.com
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: Crear una tabla dinamica con un enlace externo desde fivewin
Posted: Wed Jun 20, 2018 06:56 PM
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 346
Joined: Mon Oct 05, 2009 03:35 PM
Re: Crear una tabla dinamica con un enlace externo desde fivewin
Posted: Tue Jun 26, 2018 12:20 PM
Ejemplo funcional probado con excel 2013, base de datos sql server 2012 express

como se usa:

Code (fw): Select all Collapse
STATIC FUNCTION TablaDinamica()
LOCAL Conn, cSql

Conn := "OLEDB;Provider=SQLOLEDB;Data Source=SERVER\SQLEXPRESS;Initial Catalog=VIKING_SYSTEM;User Id='user';Password='admin';"
cSql := "SELECT * FROM dbo.PRUEBA"    

// "prueba" es una vista construida específicamente con lo que quiero mostrar en la tabla dinámica con campos calculados y con nombres entendibles para el usuario de excel

ExcelDinamicConstructorSql( Conn, cSql )

return nil


funcion donde se construye:

Code (fw): Select all Collapse
FUNCTION ExcelDinamicConstructorSql( cConnStr, cQuery )
 LOCAL oExcel, oWorkbook, oPivotCache, xWin, oTargetRange, oTargetSheet, oPivot

  oExcel    :=    CreateObject( "excel.application" )
                   oExcel:DisplayAlerts      := .F.
                   oExcel:ScreenUpdating     := .F.
 
                  oWorkbook       := oExcel:Workbooks:Add()
                  oTargetSheet    := oWorkbook:Get( 'ActiveSheet' )
                  oTargetRange    := oTargetSheet:range("A4")
                  
                                     oTargetSheet:Cells:Font:Name := "Roboto Cn"
                                     oTargetSheet:Cells:Font:Size := 12
                                     oTargetSheet:Name            := "Tabla Dinámica"

                  oPivotCache     := oWorkbook:PivotCaches:Add(2)

                                     oPivotCache:Connection  := cConnStr
                                     oPivotCache:Commandtext := cQuery

                                     oPivotCache:CreatePivotTable( oTargetRange, "Tabla Dinámica Pruebas" )


      oTargetSheet:Cells( 4, 1 ):Select()
      xWin                      := oExcel:ActiveWindow
      oExcel:Visible            := .T.
      oExcel:DisplayAlerts      := .T.
      oExcel:ScreenUpdating     := .T.

      ShowWindow( oExcel:hWnd, 3 )
      BringWindowToTop( oExcel:hWnd )

 RETURN NIL


Resultado:



Acepto sugerencias de mis colegas, y espero de que le sea de utilidad.

Saludos!
SkyPe: armando.lagunas@hotmail.com

Mail: armando.lagunas@gmail.com
Posts: 346
Joined: Mon Oct 05, 2009 03:35 PM
Re: Crear una tabla dinamica con un enlace externo desde fivewin
Posted: Tue Jul 03, 2018 12:22 PM

en la cita anterior es como me funciona correctamente

SkyPe: armando.lagunas@hotmail.com

Mail: armando.lagunas@gmail.com
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Crear una tabla dinamica con un enlace externo desde fivewin
Posted: Tue Jul 03, 2018 04:26 PM

Armando, como siempre, ofreciendo "detalles" de calidad

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 400
Joined: Fri May 11, 2007 08:20 PM
Re: Crear una tabla dinamica con un enlace externo desde fivewin
Posted: Thu Dec 03, 2020 07:14 PM
armando.lagunas wrote:Ejemplo funcional probado con excel 2013, base de datos sql server 2012 express

como se usa:

Code (fw): Select all Collapse
STATIC FUNCTION TablaDinamica()
LOCAL Conn, cSql

Conn := "OLEDB;Provider=SQLOLEDB;Data Source=SERVER\SQLEXPRESS;Initial Catalog=VIKING_SYSTEM;User Id='user';Password='admin';"
cSql := "SELECT * FROM dbo.PRUEBA"    

// "prueba" es una vista construida específicamente con lo que quiero mostrar en la tabla dinámica con campos calculados y con nombres entendibles para el usuario de excel

ExcelDinamicConstructorSql( Conn, cSql )

return nil


funcion donde se construye:

Code (fw): Select all Collapse
FUNCTION ExcelDinamicConstructorSql( cConnStr, cQuery )
 LOCAL oExcel, oWorkbook, oPivotCache, xWin, oTargetRange, oTargetSheet, oPivot

  oExcel    :=    CreateObject( "excel.application" )
                   oExcel:DisplayAlerts      := .F.
                   oExcel:ScreenUpdating     := .F.
 
                  oWorkbook       := oExcel:Workbooks:Add()
                  oTargetSheet    := oWorkbook:Get( 'ActiveSheet' )
                  oTargetRange    := oTargetSheet:range("A4")
                  
                                     oTargetSheet:Cells:Font:Name := "Roboto Cn"
                                     oTargetSheet:Cells:Font:Size := 12
                                     oTargetSheet:Name            := "Tabla Dinámica"

                  oPivotCache     := oWorkbook:PivotCaches:Add(2)

                                     oPivotCache:Connection  := cConnStr
                                     oPivotCache:Commandtext := cQuery

                                     oPivotCache:CreatePivotTable( oTargetRange, "Tabla Dinámica Pruebas" )


      oTargetSheet:Cells( 4, 1 ):Select()
      xWin                      := oExcel:ActiveWindow
      oExcel:Visible            := .T.
      oExcel:DisplayAlerts      := .T.
      oExcel:ScreenUpdating     := .T.

      ShowWindow( oExcel:hWnd, 3 )
      BringWindowToTop( oExcel:hWnd )

 RETURN NIL


Resultado:



Acepto sugerencias de mis colegas, y espero de que le sea de utilidad.

Saludos!

Armando podrias mostrar el resultado de tu tabla dinamica ya que el enlace a la imagen q subiste ya no funciona, por favor

Gracias
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
Posts: 346
Joined: Mon Oct 05, 2009 03:35 PM
Re: Crear una tabla dinamica con un enlace externo desde fivewin
Posted: Wed Feb 03, 2021 03:34 PM
artu01 wrote:
armando.lagunas wrote:Ejemplo funcional probado con excel 2013, base de datos sql server 2012 express

como se usa:

Code (fw): Select all Collapse
STATIC FUNCTION TablaDinamica()
LOCAL Conn, cSql

Conn := "OLEDB;Provider=SQLOLEDB;Data Source=SERVER\SQLEXPRESS;Initial Catalog=VIKING_SYSTEM;User Id='user';Password='admin';"
cSql := "SELECT * FROM dbo.PRUEBA"    

// "prueba" es una vista construida específicamente con lo que quiero mostrar en la tabla dinámica con campos calculados y con nombres entendibles para el usuario de excel

ExcelDinamicConstructorSql( Conn, cSql )

return nil


funcion donde se construye:

Code (fw): Select all Collapse
FUNCTION ExcelDinamicConstructorSql( cConnStr, cQuery )
 LOCAL oExcel, oWorkbook, oPivotCache, xWin, oTargetRange, oTargetSheet, oPivot

  oExcel    :=    CreateObject( "excel.application" )
                   oExcel:DisplayAlerts      := .F.
                   oExcel:ScreenUpdating     := .F.
 
                  oWorkbook       := oExcel:Workbooks:Add()
                  oTargetSheet    := oWorkbook:Get( 'ActiveSheet' )
                  oTargetRange    := oTargetSheet:range("A4")
                  
                                     oTargetSheet:Cells:Font:Name := "Roboto Cn"
                                     oTargetSheet:Cells:Font:Size := 12
                                     oTargetSheet:Name            := "Tabla Dinámica"

                  oPivotCache     := oWorkbook:PivotCaches:Add(2)

                                     oPivotCache:Connection  := cConnStr
                                     oPivotCache:Commandtext := cQuery

                                     oPivotCache:CreatePivotTable( oTargetRange, "Tabla Dinámica Pruebas" )


      oTargetSheet:Cells( 4, 1 ):Select()
      xWin                      := oExcel:ActiveWindow
      oExcel:Visible            := .T.
      oExcel:DisplayAlerts      := .T.
      oExcel:ScreenUpdating     := .T.

      ShowWindow( oExcel:hWnd, 3 )
      BringWindowToTop( oExcel:hWnd )

 RETURN NIL


Resultado:



Acepto sugerencias de mis colegas, y espero de que le sea de utilidad.

Saludos!

Armando podrias mostrar el resultado de tu tabla dinamica ya que el enlace a la imagen q subiste ya no funciona, por favor

Gracias
SkyPe: armando.lagunas@hotmail.com

Mail: armando.lagunas@gmail.com
Posts: 400
Joined: Fri May 11, 2007 08:20 PM
Re: Crear una tabla dinamica con un enlace externo desde fivewin
Posted: Sat Feb 20, 2021 02:32 AM
armando.lagunas wrote:
artu01 wrote:
armando.lagunas wrote:Ejemplo funcional probado con excel 2013, base de datos sql server 2012 express

como se usa:

Code (fw): Select all Collapse
STATIC FUNCTION TablaDinamica()
LOCAL Conn, cSql

Conn := "OLEDB;Provider=SQLOLEDB;Data Source=SERVER\SQLEXPRESS;Initial Catalog=VIKING_SYSTEM;User Id='user';Password='admin';"
cSql := "SELECT * FROM dbo.PRUEBA"    

// "prueba" es una vista construida específicamente con lo que quiero mostrar en la tabla dinámica con campos calculados y con nombres entendibles para el usuario de excel

ExcelDinamicConstructorSql( Conn, cSql )

return nil


funcion donde se construye:

Code (fw): Select all Collapse
FUNCTION ExcelDinamicConstructorSql( cConnStr, cQuery )
 LOCAL oExcel, oWorkbook, oPivotCache, xWin, oTargetRange, oTargetSheet, oPivot

  oExcel    :=    CreateObject( "excel.application" )
                   oExcel:DisplayAlerts      := .F.
                   oExcel:ScreenUpdating     := .F.
 
                  oWorkbook       := oExcel:Workbooks:Add()
                  oTargetSheet    := oWorkbook:Get( 'ActiveSheet' )
                  oTargetRange    := oTargetSheet:range("A4")
                  
                                     oTargetSheet:Cells:Font:Name := "Roboto Cn"
                                     oTargetSheet:Cells:Font:Size := 12
                                     oTargetSheet:Name            := "Tabla Dinámica"

                  oPivotCache     := oWorkbook:PivotCaches:Add(2)

                                     oPivotCache:Connection  := cConnStr
                                     oPivotCache:Commandtext := cQuery

                                     oPivotCache:CreatePivotTable( oTargetRange, "Tabla Dinámica Pruebas" )


      oTargetSheet:Cells( 4, 1 ):Select()
      xWin                      := oExcel:ActiveWindow
      oExcel:Visible            := .T.
      oExcel:DisplayAlerts      := .T.
      oExcel:ScreenUpdating     := .T.

      ShowWindow( oExcel:hWnd, 3 )
      BringWindowToTop( oExcel:hWnd )

 RETURN NIL


Resultado:



Acepto sugerencias de mis colegas, y espero de que le sea de utilidad.

Saludos!

Armando podrias mostrar el resultado de tu tabla dinamica ya que el enlace a la imagen q subiste ya no funciona, por favor

Gracias

Armando gracias por responder y cuales serian los parametros para el llenado de los campos : COLUMNAS, FILAS y VALORES
Llenado desde fw sin la intervencion del usuario
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Crear una tabla dinamica con un enlace externo desde fivewin
Posted: Mon Feb 22, 2021 01:19 PM
armando.lagunas wrote:
artu01 wrote:
armando.lagunas wrote:Ejemplo funcional probado con excel 2013, base de datos sql server 2012 express

como se usa:

Code (fw): Select all Collapse
STATIC FUNCTION TablaDinamica()
LOCAL Conn, cSql

Conn := "OLEDB;Provider=SQLOLEDB;Data Source=SERVER\SQLEXPRESS;Initial Catalog=VIKING_SYSTEM;User Id='user';Password='admin';"
cSql := "SELECT * FROM dbo.PRUEBA"    

// "prueba" es una vista construida específicamente con lo que quiero mostrar en la tabla dinámica con campos calculados y con nombres entendibles para el usuario de excel

ExcelDinamicConstructorSql( Conn, cSql )

return nil


funcion donde se construye:

Code (fw): Select all Collapse
FUNCTION ExcelDinamicConstructorSql( cConnStr, cQuery )
 LOCAL oExcel, oWorkbook, oPivotCache, xWin, oTargetRange, oTargetSheet, oPivot

  oExcel    :=    CreateObject( "excel.application" )
                   oExcel:DisplayAlerts      := .F.
                   oExcel:ScreenUpdating     := .F.
 
                  oWorkbook       := oExcel:Workbooks:Add()
                  oTargetSheet    := oWorkbook:Get( 'ActiveSheet' )
                  oTargetRange    := oTargetSheet:range("A4")
                  
                                     oTargetSheet:Cells:Font:Name := "Roboto Cn"
                                     oTargetSheet:Cells:Font:Size := 12
                                     oTargetSheet:Name            := "Tabla Dinámica"

                  oPivotCache     := oWorkbook:PivotCaches:Add(2)

                                     oPivotCache:Connection  := cConnStr
                                     oPivotCache:Commandtext := cQuery

                                     oPivotCache:CreatePivotTable( oTargetRange, "Tabla Dinámica Pruebas" )


      oTargetSheet:Cells( 4, 1 ):Select()
      xWin                      := oExcel:ActiveWindow
      oExcel:Visible            := .T.
      oExcel:DisplayAlerts      := .T.
      oExcel:ScreenUpdating     := .T.

      ShowWindow( oExcel:hWnd, 3 )
      BringWindowToTop( oExcel:hWnd )

 RETURN NIL


Resultado:



Acepto sugerencias de mis colegas, y espero de que le sea de utilidad.

Saludos!

Armando podrias mostrar el resultado de tu tabla dinamica ya que el enlace a la imagen q subiste ya no funciona, por favor

Gracias



Saludos Armando,

Que clase utilizas para crear el menu de la Izquierda ?

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 346
Joined: Mon Oct 05, 2009 03:35 PM
Re: Crear una tabla dinamica con un enlace externo desde fivewin
Posted: Wed Mar 10, 2021 03:41 PM
SkyPe: armando.lagunas@hotmail.com

Mail: armando.lagunas@gmail.com

Continue the discussion