Bom dia galera!
Implementei a função cGetFile, e ao usar no SmartClientHTML (com WEBAPP.DLL), não apresenta as unidades C:/ e D:/ (no meu caso),
somente o RootPah.
Já no SmartClient.exe é apresentado.
No TDN pelo link [http://tdn.totvs.com/pages/viewpage.action?pageId=118885352#SmartClientHTML-Diferen%C3%A7asentreasvers%C3%B5esHTMLeDesktop-CGetFile],
onde se descreve sobre a função cGetFile, não está claro o porque (pelo menos pra mim), de não apresentar as unidades locais da maquina.
Poderiam me explicar o motivo para poder explicar ao cliente ?
Agradecido tchê.
Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.
Olá, quando o comando é enviado para o server via smartclient ele sabe onde é a instalação do exe, pois ele é um arquivo físico. Com o web isto não é possível pois a mensagem do navegador pode estar vindo de qualquer lugar. Não há garantia de onde o navegador está sendo chamado.
O mais correto é realizar no seu fonte um tratamento verificando se é web ou não. Caso seja smartclient você chama a função. Caso seja web você pode chamar a CpyS2TW (http://tdn.totvs.com/display/tec/CpyS2TW) que ela vai carregar o arquivo para ser baixado no navegador e a regra fica correta.
Boa tarde Jandir!
Não entendi muito, desculpa.

Pra ser bem " dâmis ".
Se usar a função CpyS2TW, vai aparecer as unidades locais na janela do cGetFile ?
Porque se estou entendendo a funcionalidade do cGetfile, com base nos parâmetros da função vai mostrar arquivos para serem selecionados.
Como ao apresentar a janela, já não aparece as unidades locais, como poderei escolher e consequentemente copiar o arquivo que está em uma unidade (pasta) local ?
Abraço!
Pra esclarecer: o usuário vai escolher um arquivo pra importar para a base de dados.
Luciano, não. Você vai criar o arquivo no server para o usuário e chamar esta função. Dependendo da configuração de navegadores dele o arquivo será enviado diretamente para a pasta de downloads ou o próprio navegador vai abrir a tela de seleção de drivers para que ele escolha o local para salvar o arquivo. Abs!
Luciano, pelo que já vi não tem como o usuário estar no Navegador e abrir uma tela para que o usuário informe um arquivo para ser importado. Sugiro que se o usuário estiver usando o navegador tu mostre uma tela diferente, mostrando uma campo onde ele informe o diretório e o nome do arquivo para que seja utilizada a função CpyT2S() conforme a documentação.
http://tdn.totvs.com/display/tec/CpyT2S
Jorge, não é possível utilizar esta função pois não existe SmartClient. A única solução é utilizar a CpyS2Tw. Imagina que o server não tem acesso a maquina onde o navegador está sendo acessado, e a informação dos diretórios também não é informada por ele (pois isto é uma falha de segurança).