Estou desenvolvendo um sistema e nele eu abro uma janela (estilo a do windows) para escolher um arquivo com o Get_file_name. O problema é que ele só me permite escolher um arquivo por vez e eu preciso que ele escolha vários. Alguém sabe como fazer isso??? Existe algum parâmetro específico?
Obrigada,
Juliana
Abertura/Escolha de arquivos pelo Forms
- tfg
- Rank: Analista Júnior
- Mensagens: 83
- Registrado em: Seg, 03 Mai 2004 3:38 pm
- Localização: Novo Hamburgo - RS
Oi Juliana
Eu não tenho certeza (estou sem o forms help aqui pra ver).
Mas eu acho que o máximo que você conesegue definir é escolher diretório OU arquivo com o get_file_name... Creio que não dá pra escolher vários arquivos... Me avisem se eu estou enganado!
O que você pode fazer pra solucionar isso é fazer uma rotina manual. Algo assim:
* Crie um bloco e popule ele com todos arquivos do diretório que você quer.
* Crie um outro bloco vazio onde você colocará os arquivos "selecionados".
* Coloque um botão que MOVE o nome do arquivo pra esse outro bloco.
Assim o cara pode escolher os arquivos que ele quer e jogar ele pro lado (pro outro bloco). Dá um pouco de trabalho, mas funciona, heheheh
[]s
Eu não tenho certeza (estou sem o forms help aqui pra ver).
Mas eu acho que o máximo que você conesegue definir é escolher diretório OU arquivo com o get_file_name... Creio que não dá pra escolher vários arquivos... Me avisem se eu estou enganado!
O que você pode fazer pra solucionar isso é fazer uma rotina manual. Algo assim:
* Crie um bloco e popule ele com todos arquivos do diretório que você quer.
* Crie um outro bloco vazio onde você colocará os arquivos "selecionados".
* Coloque um botão que MOVE o nome do arquivo pra esse outro bloco.
Assim o cara pode escolher os arquivos que ele quer e jogar ele pro lado (pro outro bloco). Dá um pouco de trabalho, mas funciona, heheheh
[]s
-
- Rank: Estagiário Sênior
- Mensagens: 11
- Registrado em: Qui, 16 Jun 2005 7:59 am
- Localização: Sapiranga - RS
A minha dúvida é a seguinte: eu tenho um formulário que exporta alguns dados, para um aquivo .slk (abre no excel). Eu faço um get_file_name, mas o usuário pode digitar o diretório que ele quiser. Se ele digitar um diretório que não existir ocorre erro. Como eu faço para saber se o diretório que ele digitou existe?
- dr_gori
- Moderador
- Mensagens: 5024
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Essa rotina abaixo abre uma janela pra escolher o diretório.
Também, pega cada arquivo TXT daquele diretório e lista num bloco!
Talvez ajude...
Também, pega cada arquivo TXT daquele diretório e lista num bloco!
Talvez ajude...
declare
VDIR VARCHAR2(200);
--
hSearch PLS_INTEGER;
vcFile VARCHAR2(60);
bIsDir BOOLEAN;
vcLDir VARCHAR2(1);
vcRDir VARCHAR2(1);
begin
:CONTROLE.LOCAL := get_file_name(:CONTROLE.LOCAL,NULL,NULL,'Selecione um Diretório',OPEN_FILE,FALSE); --||'\*.*'
GO_BLOCK('LISTA_ARQS');
CLEAR_BLOCK;
hSearch := win_api_directory_list.FirstFile(:CONTROLE.LOCAL||'\EXP_*.TXT', vcFile, bIsDir, FALSE);
IF vcFile IS NULL
THEN RETURN;
END IF;
:CONTROLE.ARQ := IsDir(vcFile, bIsDir);
LOOP
win_api_directory_list.NextFile(hSearch, vcFile, bIsDir, FALSE);
EXIT when vcFile is null;
CREATE_RECORD;
:LISTA_ARQS.ARQ := IsDir(vcFile, bIsDir);
end LOOP;
GO_BLOCK('LISTA_ARQS');
FIRST_RECORD;
win_api_directory_list.CloseSearch(hSearch);
end;
Editado pela última vez por dr_gori em Sex, 19 Ago 2005 4:45 pm, em um total de 1 vez.
-
- Rank: Estagiário Sênior
- Mensagens: 11
- Registrado em: Qui, 16 Jun 2005 7:59 am
- Localização: Sapiranga - RS
Obrigado pela ajuda. Mas é que eu fui ver somente agora e resolvi este problema de saber se o diretório informado pelo usuário existia ou não da seguinte forma(utilizei na when-validate-item):
Este código acima cria um diretório qualquer e depois apaga. O interessante é que se ele criar é porque o diretório informado existe e prossegue. Caso não exista ele da um raise (deve estar como TRUE para dar raise exception).
Qualquer dúvida, sugestão, correção ... etc...... serão bem vindas.
Atenciosamente,
Vinícius Benetti
DECLARE
V_DIR VARCHAR2(100);
V_OK BOOLEAN;
BEGIN
-- verifica se foi digitado algum diretório
IF :CONTROLE.LOCAL IS NULL THEN
MSG.PUSH('Necessário informar um diretório!', 'E', TRUE);
END IF;
IF SUBSTR(:CONTROLE.LOCAL, LENGTH(:CONTROLE.LOCAL), LENGTH(:CONTROLE.LOCAL)) <> '\' THEN
V_DIR := :CONTROLE.LOCAL||'\';
ELSE
V_DIR := :CONTROLE.LOCAL;
END IF;
-- Cria um diretorio qualquer: se criar, o diretório informado
-- existe, caso contrário não
BEGIN
WIN_API_UTILITY.CREATE_DIRECTORY(V_DIR||'_TESTE_\', TRUE);
V_OK := TRUE;
-- apaga o diretório teste
WIN_API_UTILITY.DELETE_DIRECTORY(V_DIR||'_TESTE_\');
EXCEPTION
WHEN OTHERS THEN
V_OK := FALSE;
END;
IF NOT V_OK THEN
MSG.PUSH('Diretório inexistente!', 'E', TRUE);
END IF;
END;
Este código acima cria um diretório qualquer e depois apaga. O interessante é que se ele criar é porque o diretório informado existe e prossegue. Caso não exista ele da um raise (deve estar como TRUE para dar raise exception).
Qualquer dúvida, sugestão, correção ... etc...... serão bem vindas.
Atenciosamente,
Vinícius Benetti
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 6 visitantes