Algoritmia - We are geeks, after all ;)
  Crear una cuenta
Inicio Buscar Foros Chat Downloads Login
 [Login]
Foros
Ir a los foros 

Menú Trucos Ax
 Inicio(Noticias) :
 Inicio
 Enviar Noticias
 Archivo de noticias
 Buscar
 Temas

 Miembros :
 Lista de miembros
 Tu Cuenta(Regístrate)

 Comunidad :
 Chat

 Foros

 Links

 Downloads

 Estadísticas :
 Estadísticas
 Top 10
 Encuestas

 Otros Servicios :
 Publicidad


 Miscelanea :
Añadir a favoritos
Contactar


Hemos recibido

impresiones desde Diciembre 2005


 Enlázanos :
Copia el código siguiente en tu web para enlazarnos :


Trucos Ax


Mensajes rápidos

Sólo los usuarios registrados pueden escribir login o crear una cuenta.

Trucos
Ir a trucos programación
Ir a trucos consultoría

AxSearch

AxSearch
Es un motor de búsqueda
específico sobre temas
de Axapta (Dynamics Ax)

Anuncios



Mapa

¿De donde venimos?
Ubicación de visitantes de esta página

Webs Amigas
[axapta-links.com] - The startpage for Axapta
DaxGuy


Fred Shen

Comunidad Ax
Conunidad AX

Anuncios



Trucos Ax: Foros

Trucos Ax :: View topic - Acceso COM desde Excel
 Forum FAQForum FAQ   SearchSearch   UsergroupsUsergroups   ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Acceso COM desde Excel

 
Post new topic   Reply to topic    Trucos Ax Forum Index -> Trucos configuración
View previous topic :: View next topic  

Valora este truco (sobre 5)
5
66%
 66%  [ 6 ]
4
22%
 22%  [ 2 ]
3
11%
 11%  [ 1 ]
2
0%
 0%  [ 0 ]
1
0%
 0%  [ 0 ]
Total Votes : 9

Author Message
Manekaze
Site Admin
Site Admin


Joined: Dec 02, 2005
Posts: 384

PostPosted: Sat Dec 17, 2005 1:49 pm    Post subject: Acceso COM desde Excel Reply with quote

//**********************************************************
// Tipo : Implantación/Consultoria
// Titulo : Acceso COM desde Excel
// Codigo : TC0001
// Keywords : Configuracion, Consultoria, Programacion, Axapta 3.0
// Sub-keywords : COM, Excel, Macro
//
//**********************************************************

Hola a todos,

Este es un truco que no sabia exactamente si ponerlo en el apartado de consultoria o bien en desarrollo, al final me he decidido por consultoria debido a la utilidad que supone para muchos consultores/implantadores...

Bien, el tema consiste en realizar una extracción de datos de Axapta desde Excel usando la conectividad COM. En este truco se asume que tenemos una licencia COM y que este esta bien configurado. Explicar la configuración COM nos llevaria a otro truco entero (que no descarto publicar un dia de estos).

Al ataque !

Bien, lo primero es ejecutar el Excel Wink

Ahora, como lo que vamos hacer es una macro pues ... nos vamos al editor de Visual basic que lleva el Excel



Para poder conectarnos a Axapta desde Excel, debemos activar la referencia desde Excel a Axapta para que el primero sepa como debe interactuar con el segundo. Una imagen vale más que mil palabras Razz


Una vez aquí, y si tenemos bien instalado y configurado el COM connector de Axapta ... deberiamos poder localizar en la lista de componentes uno llamado "Axapta COM connector 1.2 Type library" o parecido.



Bien pues lo marcamos para poder usarlo en nuestra macro.
Una vez tengamos referenciado el Axapta COM connector desde Excel disponemos de una opción de mucha utilidad ...

El examinador de objetos

Aquí podemos "navegar" entre los distintos objetos de que disponemos, incluidos los que acabamos de referenciar de Axapta, y poder tener una idea de que metodos y propiedades nos ofrecen, asi como la sintaxis de cada uno de esos métodos.

Bien, ahora que Excel y Axapta ya se conocen Razz ha llegado el momento de crear nuestra macro. Para ello nos basta con hacer click con el botón derecho del ratón en el arbol de proyectos de la izquierda y darle a "Insertar/Módulo" (ver imagen)


Ahora nos aparece una pantalla con un editor de código, pues bien, aquí debemos escribir esto (copiar y pegar por supuesto Very Happy )
VisualBASIC:

Sub GetClientes()

 Dim Axapta As Object
 Dim CustTable As IAxaptaRecord
 Dim Worksheets As Object
 Dim CurWorkSheet As Object
 Dim Cells As Object
 Dim Lin As Integer
 Dim Cell As Range
 
Set Axapta = CreateObject("AxaptaCOMConnector.Axapta2")
Axapta.Logon "admin", "", "", ""

 Set CustTable = Axapta.CreateRecord("CustTable")
 Set Worksheets = Application.Worksheets
 Set CurWorkSheet = Worksheets.Item(1)
 Set Cells = CurWorkSheet.Cells
 
 Lin = 1
 
 While CustTable.Next()
    Set Cell = Cells.Item(Lin, 1)
    Cell.Value = CustTable.field("AccountNum")
    Set Cell = Cells.Item(Lin, 2)
    Cell.Value = CustTable.field("Name")
    Lin = Lin + 1
 Wend
 
 Axapta.Logoff
 Set Axapta = Nothing

End Sub



Podeis apreciar que en la parte ...
VisualBASIC:

Axapta.Logon "admin", "", "", ""

Estamos asumiendo que vamos a logarnos con el usuario admin y el password de este está en blanco, supongo que debereis cambiar esto Smile


Como podreis comprobar si ejecutais esta macro, lo que hace es conectarse a Axapta y traerse el codigo y nombre de todos los clientes mediante un pequeño bucle por la tabla CustTable.


Bien, visto así ... parece que no tiene mucha utilidad esta macro pero ... si os quedais con la idea de lo facil que es conectarse a Axapta desde cualquier aplicación Office y la cantidad de clases y componentes de que disponemos para interactuar con Axapta desde "fuera" ... os dareis cuenta de la potencia y posibilidades que esto os puede dar.

Fijaros en el bucle ...
VisualBASIC:

While CustTable.Next()
    Set Cell = Cells.Item(Lin, 1)
    Cell.Value = CustTable.field("AccountNum")
    Set Cell = Cells.Item(Lin, 2)
    Cell.Value = CustTable.field("Name")
    Lin = Lin + 1
 Wend

Sencillamente estamos cogiendo los campos AccountNum y Name, si quereis añadir más pues ... vosotros mismos Wink


Saludos.
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Trucos Ax Forum Index -> Trucos configuración All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©

 
Trucos Axapta 
Comunidad aprobada por :
Microsoft corp. MVP LogoVisit community


Axapta y Dynamics Ax son marcas registradas de Microsoft corporation.
Todos los logos y marcas son propiedad de sus respectivos propietarios.
Excepto trucosAx.com que este si que es mio :-). (c) 2005 by Manel Querol (Mkz)
TrucosAx.com no pertenece ni está asociada a Microsoft corporation.
Los fragmentos de código y proyectos importables que aquí se muestren están realizados sobre bancos de pruebas. No nos hacemos responsables de cualquier daño o pérdida de datos que se pudiera originar del hecho de instalar alguno de estos ejemplos en un sistema productivo. Es responsabilidad del usuario ser consciente del impacto que puede ocasionar en sus aplicaciones el uso del código que de aquí extraiga.