1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Duvida Localizar diretorio win- TOTVS12

Discussão em 'EMS , HCM e Totvs 11' iniciado por Rsacoman, Dezembro 17, 2015.

  1. jdchaves

    jdchaves Membro Participativo

    @bootstrapmaster

    Meu problema está semelhante ao @Rsacoman, quando clico em um botão para selecionar algum arquivo para importar por exemplo, o progress crasha e fecha toda a sessão.
    O componente SYSTEM-DIALOG GET-FILE está dando pau nos programas específicos, notei que na definição deste componente, os programadores fizeram desta forma:
    SYSTEM-DIALOG GET-FILE c-arq-digita
    FILTERS "*.csv" "*.csv",
    "*.*" "*.*"
    UPDATE l-ok.

    Porém, quando eu altero este programa por exemplo, incluo mais outras propriedades, para de dar esse pau..
    SYSTEM-DIALOG GET-FILE c-arq-digita
    FILTERS "*.csv" "*.csv",
    "*.*" "*.*"
    ASK-OVERWRITE
    DEFAULT-EXTENSION "csv"
    INITIAL-DIR "spool"
    SAVE-AS
    USE-FILENAME
    UPDATE l-ok.

    O negócio aqui é que o pessoal não quer alterar as centenas de programas que contem esse Componente.

    Uma alternativa que achei pra contornar isso é clicar ali na Lupa antes de executar o programa. No Padrão da TOTVS este componente é definido da mesma forma que eu coloquei acima, porém é em uma include, a partir do momento que é clicado na Lupa não da mais pau na sessão, pode ir abrindo os programas que usam o Componente que teoricamente já foi setado o diretório(com o click na Lupa). Eu estava achando que era este INITIAL-DIR ali do componente, pois incluindo essa propriedade já para com o problema.

    upload_2019-12-19_11-17-34.png
  2. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    bem, o initial-dir, como o nome já diz, é a pasta inicial pra quando for abrir a rotina, quando informa para de dar o erro, bem, a pasta default, que é quando vc não coloca nada de initial-dir deve ser uma pasta com problemas.
  3. af.dums

    af.dums Membro Ativo

    Chegou a tentar criar uma UPC na tela de login do Totvs chamando a regra da lupa do Ctrl-Alt-X ai sempre o usuário estará com o INITIAL-DIR setado...
  4. jdchaves

    jdchaves Membro Participativo

    Já sim, criei a UPC no Login, tentei realizar as todas as alterações possíveis de diretório, porém sem sucesso. Já essa logica do botão da Lupa no Ctrl+Alt+X fica meio forçado, ai todo Login abrirá uma janela pra selecionar algum arquivo, os usuários ficariam loucos.. hehe
    Tentei de alguma forma Abrir em backgroud e já fechar essa tela(System-Dialog Get-File) porém não consegui tbm...
  5. jdchaves

    jdchaves Membro Participativo

    Boa tarde Pessoal,
    Consegui de uma forma meio doida, mas foi.. rsrs

    Criei uma UPC no Login, nela coloquei a criação de um arquivo txt e depois executei a função FindExecutableA da ShellAPI, onde ele identifica o executável do arquivo criado. Agora o pq que isso funcionou exatamente eu não entendi, mas funcionou.. kkkk

    Código:
    output to value (session:temp-directory + "LoginX.txt").
        put unformatted
            "Login." skip.
        output close.
    
        assign c-exec = fill("x",255)
               c-doc  = "LoginX.txt".
    
    run FindExecutableA (input c-doc,
                             input session:temp-directory,
                             input-output c-exec,
                             output h-inst).
    
    
    PROCEDURE FindExecutableA EXTERNAL "Shell32.dll" persistent:
        define input parameter lpFile as char.
        define input parameter lpDirectory as char.
        define input-output parameter lpResult as char.
        define return parameter hInstance as long.
    
    END.

Compartilhe esta Página