Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Ole IDispath exception - como resolver
Message
 
À
23/12/2005 16:48:54
Peter Wagner
Point Informática Ltda.
Limeira, Brésil
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Versions des environnements
Visual FoxPro:
VFP 9
OS:
Windows XP SP2
Network:
Windows XP
Database:
Visual FoxPro
Divers
Thread ID:
01080557
Message ID:
01080729
Vues:
16
Peter e Claudio, muito obrigado mesmo pela ajuda.

Eu usava esse esquema de arquivo .ini no FPW mas no VFP não consegui fazer funcionar até agora.

Como estou com certa urgência (para variar hehehe...), consegui resolver colocando o sys(5) como segue abaixo e aparentemente resolveu:
lcmode	= sys(5) + apppath + "Modelo1.dot"
Depois vou tentar novamente com o arquivo .ini.

[ ]s,Roberto Barros - BH

>Roberto,
>o seu problema é que simplesmente para cada estação o path onde estão os documentos no servidor que vc deseja pode ser diferente.
>A solução para este seu problema como o Claudio esta apontando é armazenar o caminho para o servidor em cada estação.
>
>De forma resumida...
>Crie um arquivo tipo .ini onde vc armazena o caminho onde se encontra o diretorio dos documentos do servidor.
>Crie um formulário com um button onde vc solicita que o usuario informe ode estão os modelos dos documentos, algo assim:
>
>* codigo do evento click do button
>LOCAL x, loBIBLIO_Ini, caminho_atual, Arquivo_ini
>
>* Retorna o Drive e diretorio atual
>caminho_atual = SYS(5) + SYS(2003)
>
>* Caminho e nome do arquivo ini
>Arquivo_Inix = caminho_atual + "\ATUANTE.ini"
>
>x = GETDIR("","Selecionar a Pasta Definitiva dos Documentos no Servidor","Selecionar Diretório de Documentos no Servidor",16384)
>* se o usuário clica cancelar o retorno é vazio, do contrario sera o path do local...
>
>IF EMPTY(x)
>* Não selecionou o diretorio
>	WAIT WINDOW "Não foi selecionada nenhuma pasta onde ficam os Contratos no Servidor!" TIMEOUT 2.5
>ELSE
>* Criar um  objeto de arquivo ini
>	loBIBLIO_Ini = CREATEOBJECT("arquivos_INI", Arquivo_Inix)
>
>* Escrever um novo valor em  atuante.ini.
>* && Sequencia dos parametros a serem passados: (Nome_da_sessao, nome_da_chave, nome_do_valor, nome_arquivo_ini)
>	loBIBLIO_Ini.Grava_arq_ini("Diretorios", "Dir_Contrato_Remoto", x ,Arquivo_Inix)
>	MESSAGEBOX("Conteudo da localização foi salvo com sucesso",64,"Informação")
>ENDIF
>
>No meu exemplo acima tem uma classe que grava os dados em um arquivo .ini
>esta mesma classe permite que se leia o conteudo do arquivo .ini
>
>Quando se deseja criar um documento, ou saber onde este se encontra, basta ler o arquivo .ini e se obtem o path da pasta dos documentos, e este path será usado na automação para abertura do documento.
>
>Desta forma vc pode configurar o path para diferentes servidores e para diversas pastas nos servidor(es).
>
>Espero que tenha entendido.
>
>[ ]´s
>Peter
>
>>Olá Peter,
>>
>>no programa Geracarta tem o código abaixo:
>>
>>
>>*!* Verifica o modelo de carta a imprimir
>>if modecrt = "Modelo1"
>>	if file(apppath + "\Modelo1.dot")
>>		lcmode		= apppath + "\Modelo1.dot"
>>	else
>>		lcerro	= "(Modelo1)"
>>	endif
>>else
>>	if modecrt = "Modelo2"
>>		if file(apppath + "\Modelo2.dot")
>>			lcmode		= apppath + "\Modelo2.dot"
>>		else
>>			lcerro	= "(Modelo2)"
>>		endif
>>	else
>>		if modecrt = "Modelo3"
>>			if file(apppath + "\Modelo3.dot")
>>				lcmode		= apppath + "\Modelo3.dot"
>>			else
>>				lcerro	= "(Modelo3)"
>>			endif
>>		else
>>			if file(apppath + "\Modelo4.dot")
>>				lcmode		= apppath + "\Modelo4.dot"
>>			else
>>				lcerro	= "(Modelo4)"
>>			endif
>>		endif
>>	endif
>>endif
>>
>>if !empty(lcerro)
>>	messagebox("A carta de cobrança " + lcerro + " não foi encontrada. " + ;
>>		"Não será possivel gerar a carta de cobrança!", 0+16, "Erro...")
>>	return
>>endif
>>
>>
>>e no programa inicial estou fazendo assim:
>>
>>
>>local lcpath
>>
>>if _vfp.startmode = 0  && running inside the Visual FoxPro IDE
>>*!*	lcpath = left(sys(16,0), rat("\", sys(16,0), 2))
>>	lcpath = "\grupofs\aplica\"
>>	dbfpath = (lcpath + "Dados\")
>>	apppath = (lcpath + "Cobranca\")
>>	set default to (lcpath) && Specifies the default drive and directory
>>	set path to (lcpath + ";Cobranca\;Dados\;Forms\;Graficos\;Libs\;Menus\;Prgs\;Relats\") && Specifies a path for file searches
>>else
>>	lcpath = "\grupofs\"
>>	dbfpath = (lcpath + "Dados\")
>>	apppath = lcpath
>>*!*	lcpath = justpath(sys(16,0))
>>	set default to (lcpath) && Specifies the default drive and directory
>>	set path to (lcpath + "Dados\") && Specifies a path for file searches
>>endif
>>
>>
>>Se executo o sistema no servidor (onde está o executável) funciona, mas na rede......
>>
>>Grato pela ajuda e Feliz Natal.
>>
>>[ ]s,Roberto Barros - BH
>>
>>>Roberto,
>>>Se estou entendendo, ficaria mais facil ajudar se tivessemos algum código para ver, mas assim mesmo estou chutando que vc deve ter definido o caminho todo do arquivo desejado no seu prg, desta forma se o servidor for outro ou a mapeamento não 'bater' como conteudo do seu prg vai ter problemas...
>>>Procure deixar o código flexivel definido o caminho como uma variavel a ser obtida e armazenada em algum lugar.
>>>
>>>Algo do tipo:
>>>
>>>caminho_atual = SYS(5) + SYS(2003)
>>>diretoriox = "Z:\documenmtos"
>>>documentox = "vendas.doc"
>>>template = ALLTRIM(diretoriox) + documentox
>>>
>>>LOCAL oWord AS "Word.Application"
>>>* Cria instancia se não existir
>>>IF TYPE("oWord") <> "O"
>>>	oWord = CREATEOBJECT("Word.Application")
>>>ENDIF
>>>
>>>oWord.Documents.ADD(template)
>>>
>>>O melhor seria ter o caminho e os arquivos armazenados em um arquivo .ini
>>>No exemplo estou pressupondo que as variveis ja tenham sido obtidas de um arquivo .ini
>>>
>>>[]'s
>>>Peter
>>>
>>>
>>>
>>>>Olá pessoal,
>>>>
>>>>estou recebendo o seguinte erro quando executo o sistema em uma
>>>>máquina da rede:
>>>>
>>>>Ole IDispath exception code 0 from Microsoft Word: Este modelo de
>>>>documento não existe...
>>>>Programa: Geracarta.fxp
>>>>Número: 1429
>>>>
>>>>Como fazer para que o programa encontre o documento que está
>>>>no "servidor"????????
>>>>
>>>>Uso VFP 9.0 SP1 E WIN XP PRO SP2.
>>>>
>>>>OBS:- o documento não encontrado está na pasta do sistema no
>>>>servidor.
>>>>
>>>>Desde já agradeço qualquer ajuda.
>>>>
>>>>[ ]s,Roberto Barros - BH
_____________________________________________________
[ ]s,Roberto Barros - BH
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform