Fórum Exportação de Dados para o MSPROJECT #16640
01/03/2010
0
Hélio Marques
Curtir tópico
+ 0Posts
02/03/2010
Rodrigo Mourão
A integração do DElphi com aplicativos Office se faz através de activex, exatamente como você postou no exemplo. Os ActiveX são idependentes de Sistema Operacinal ou versão do Delphi ficando apenas atrelados a versão do aplicativo que esta integrando, ou seja, se é MSPorject 2000 então termos que ter na maquina o Activex do MsProject 2000, se é MSPorject 2003 então termos que ter na maquina o Activex do MsProject 2003, e por ai vai.
Minha pergunta é o codigo que você mostrou abaixo não funciona no Delphi 2010 ?? Lembre-se que para testar na maquina onde roda o Delphi deverá ter instalado o MSProject ou pelo menos o arquivo TLB do memso.
Como citei, o código a principio parece esta correto.
Att,
Gostei + 0
02/03/2010
Hélio Marques
Gostei + 0
03/03/2010
Rodrigo Mourão
Todos os comandos exibidos no codigo que vc enviou estou disponiveis no delphi. Eu não consigo testar aqui pois como não tenho o MSProject Instalado a linha MSProject := CreateOleObject('MSProject.Application'); retonra nil e da um Access Violation.
Se eu possuisse a MSProject Instalado na minha maquina ele encontraria o ActiveX eeu conseguiria executrar o código. Verifique a versão do MsProject Istalado na sua maquina, se prerferir importa a TypeLibrary pelo delphi. Ele vai gerar uma unit para você e se desejar criar um componente inclusive.
Acesse o Menu Component->Import Component. Marque a opção Import a Type Library. Feito isso avance e procure na lista a TypeLibrary do MSProject. Selecione na lista e avance.
Nesta tela ele mostra as classes que o Delphi vai gerar, pede para você em qual paleta quer colocar os componentes o diretorio onde ele vai gerar as unit e o source path. Marcando o checkbox o delphi gerar um Wrapper para os componentes.
Na proxima tela você pode apenas gerar a unit, gerar e adicionar o um pacote novo ou um pacote exitente ou se vc estiver com seu projeto aberto pode gerar a unit e adicionar ao projeto. A ultima opção e a ideal pois ele cria e adiciona ao seu projeto. Lembre-se de abrir seu projeto antes.
Feito isso finalize.
Eu importei aqui o Excel, e ele gerou uma série de interfaces com metodos. Observe:
(...)
_ApplicationDisp = dispinterface
['{000208D5-0000-0000-C000-000000000046}']
property Application: ExcelApplication readonly dispid 148;
property Creator: XlCreator readonly dispid 149;
property Parent: ExcelApplication readonly dispid 150;
property ActiveCell: ExcelRange readonly dispid 305;
property ActiveChart: ExcelChart readonly dispid 183;
property ActiveDialog: DialogSheet readonly dispid 815;
property ActiveMenuBar: MenuBar readonly dispid 758;
property ActivePrinter[lcid: Integer]: WideString dispid 306;
property ActiveSheet: IDispatch readonly dispid 307;
property ActiveWindow: Window readonly dispid 759;
property ActiveWorkbook: ExcelWorkbook readonly dispid 308;
property AddIns: AddIns readonly dispid 549;
property Assistant: Assistant readonly dispid 1438;
(...)
Alguns metodos que podemos utilizar:
function Find;
procedure Select;
procedure Copy
Etc...
Os metodos do project podem ser diferente mas uma analise do codigo gerado irá lhe ajudar.
Att,
Gostei + 0
05/03/2010
Rodrigo Mourão
Gostei + 0
08/03/2010
Rodrigo Mourão
Estaremos colocando o chamado como concluido.
Caso tenha mais alguma duvida podera reabri-lo que voltaremos a atendê-lo.
Att,
Gostei + 0
08/03/2010
Hélio Marques
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)