- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Funções AdvPL
- Exportar arquivo TXT
Perguntas Exportar arquivo TXT
- caiotec
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 219
- Obrigados Recebidos: 0
9 anos 5 meses atrás #28240
por caiotec
Exportar arquivo TXT foi criado por caiotec
Prezados
Estou criando um programa que exporta os dados da SRA para integração com o programa DMP REP - REP Print Point II, até então consegui gerar os arquivo texto porém ai que começa a briga:
- o arquivo texto é gerado com o conteúdo da query (select RA_MAT, RA_ADMISSA, from...)
- criei um objeto para o botão parâmetros, com intuito de passar o grupo de perguntas que criei, como posso fazer isso?
- para os testes, eu aumentei o tamanho dos campos, etc porém preciso fazer o tratamento dos campos RA_MAT (tamanho 6 mas para o arquivo tem que ser 20 - posso usar STRZERO(VAL(SRA->RA_MAT)+20, RA_NOME tamanho 30 mas layout pede 52 - preencher com espaços em branco, dai esse não sei como fazer;
Desde já
agradeço pela atenção.
Estou criando um programa que exporta os dados da SRA para integração com o programa DMP REP - REP Print Point II, até então consegui gerar os arquivo texto porém ai que começa a briga:
- o arquivo texto é gerado com o conteúdo da query (select RA_MAT, RA_ADMISSA, from...)
- criei um objeto para o botão parâmetros, com intuito de passar o grupo de perguntas que criei, como posso fazer isso?
- para os testes, eu aumentei o tamanho dos campos, etc porém preciso fazer o tratamento dos campos RA_MAT (tamanho 6 mas para o arquivo tem que ser 20 - posso usar STRZERO(VAL(SRA->RA_MAT)+20, RA_NOME tamanho 30 mas layout pede 52 - preencher com espaços em branco, dai esse não sei como fazer;
Desde já
agradeço pela atenção.
Por favor Acessar ou Registrar para participar da conversa.
- RonaldoLopes
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 478
- Obrigados Recebidos: 2
9 anos 5 meses atrás #28377
por RonaldoLopes
Respondido por RonaldoLopes no tópico Exportar arquivo TXT
Vamos por parte, para pegar os parâmetros das perguntas:
Local cPergPar := 'nome_sua_pergunda'
Pergunte(cPergPar,.T.) //faz aparecer as perguntas e guarda o valor nas mv_par que criou, basta ler as mesmas.
para preencher com espaços em branco faça:
SCACE(o tamanho que deseja).
Local cPergPar := 'nome_sua_pergunda'
Pergunte(cPergPar,.T.) //faz aparecer as perguntas e guarda o valor nas mv_par que criou, basta ler as mesmas.
para preencher com espaços em branco faça:
SCACE(o tamanho que deseja).
Por favor Acessar ou Registrar para participar da conversa.
- caiotec
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 219
- Obrigados Recebidos: 0
9 anos 5 meses atrás #28397
por caiotec
Respondido por caiotec no tópico Exportar arquivo TXT
Boa Noite
Beleza Ronaldo, fiz as alterações aqui - fiz um teste e está OK agora só falta gravar os funcionários no arquivo txt. Segue o fonte com as alterações.
Beleza Ronaldo, fiz as alterações aqui - fiz um teste e está OK agora só falta gravar os funcionários no arquivo txt. Segue o fonte com as alterações.
Por favor Acessar ou Registrar para participar da conversa.
- RonaldoLopes
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 478
- Obrigados Recebidos: 2
9 anos 5 meses atrás #28401
por RonaldoLopes
Respondido por RonaldoLopes no tópico Exportar arquivo TXT
Caio, desculpa a demora, mas vamos lá.
Seguinte, vi seu fonte e gostaria de fazer algumas ressalvas:
Seguinte, vi seu fonte e gostaria de fazer algumas ressalvas:
- Você está colocando dois user functions no mesmo fonte, como uma função chama outra, aconselho mudar para static(funciona do mesmo jeito)
- Você está tentando gerar um txt em um local e depois copiando, no seu caso, não vejo necessidade, faça geração direta no diretório
- É possível você permitir escolher o local de salvamento na hora de gerar
- Testou seu SQL? Está retornando os dados? Caso sim, adicione o retorno em um array e trabalhe com ele na geração do txt.
- Por último, idente seu código, fonte todo alinhado a esquerda é ruim de ler, no seu caso o fonte está pequeno, imagina um fonte da nfe todo alinha a esquerda...
Por favor Acessar ou Registrar para participar da conversa.
- caiotec
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 219
- Obrigados Recebidos: 0
9 anos 5 meses atrás #28405
por caiotec
Respondido por caiotec no tópico Exportar arquivo TXT
Boa Tarde
Primeiro obrigado penas dicas, que estou começando a programar agora e alguns detalhes ainda são meio complicados para mim.
1 - OK vou ajustar para static function;
2 - Pensei em deixar travado o diretório bem como o nome do arquivo para evitar problemas com usuários pois geral diversas rotinas onde o resultado é arquivo TXT (SD WEB, SEFIP, etc);
3 - Não é possível pois travei tudo no fonte
4 - Fiz o teste está trazendo os dados sim, essa é a minha principal dúvida pois não estou conseguindo tratar o resultado da query, ele grava o conteúdo da variável cQuery no arquivo txt;
5 - Ok, vou me lembrar desse detalhe.
Obrigado.
Primeiro obrigado penas dicas, que estou começando a programar agora e alguns detalhes ainda são meio complicados para mim.
1 - OK vou ajustar para static function;
2 - Pensei em deixar travado o diretório bem como o nome do arquivo para evitar problemas com usuários pois geral diversas rotinas onde o resultado é arquivo TXT (SD WEB, SEFIP, etc);
3 - Não é possível pois travei tudo no fonte
4 - Fiz o teste está trazendo os dados sim, essa é a minha principal dúvida pois não estou conseguindo tratar o resultado da query, ele grava o conteúdo da variável cQuery no arquivo txt;
5 - Ok, vou me lembrar desse detalhe.
Obrigado.
Por favor Acessar ou Registrar para participar da conversa.
- RonaldoLopes
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 478
- Obrigados Recebidos: 2
9 anos 5 meses atrás - 9 anos 5 meses atrás #28406
por RonaldoLopes
Respondido por RonaldoLopes no tópico Exportar arquivo TXT
Caio, tente fazer assim:
//sua query
cQuery += "SELECT RA_MAT, RA_PIS, RA_SENHA, RA_ADMISSA, RA_NOME, RA_SGOFEF"
cQuery += " FROM "+RETSQLNAME("SRA")+"
cQuery += " WHERE"
cQuery += " RA_CC BETWEEN '(MV_PAR01)' AND '(MV_PAR02)' AND"
cQuery += " D_E_L_E_T_='' AND"
cQuery += " RA_MAT BETWEEN '(MV_PAR03)' AND '(MV_PAR04)' AND"
cQuery += " RA_ADMISSA BETWEEN '(MV_PAR05)' AND '(MV_PAR06)'"
//coloque depois
DbUseArea(.T., "TOPCONN", TCGENQRY(,,cQueryF), "RH", .T., .T.)//cria uma area de trabalho
DbSelectArea("RH")
RH->(DbGoTop())
While RH->(!Eof())
//gera txt por exemplo
//RH->RA_MAT //pega o valor do campo da query
SB1->(DbSkip())
End
RH->(DbCloseArea())//fecha a área criada
Não precisa nem passar para um array, faça direto mesmo.
//sua query
cQuery += "SELECT RA_MAT, RA_PIS, RA_SENHA, RA_ADMISSA, RA_NOME, RA_SGOFEF"
cQuery += " FROM "+RETSQLNAME("SRA")+"
cQuery += " WHERE"
cQuery += " RA_CC BETWEEN '(MV_PAR01)' AND '(MV_PAR02)' AND"
cQuery += " D_E_L_E_T_='' AND"
cQuery += " RA_MAT BETWEEN '(MV_PAR03)' AND '(MV_PAR04)' AND"
cQuery += " RA_ADMISSA BETWEEN '(MV_PAR05)' AND '(MV_PAR06)'"
//coloque depois
DbUseArea(.T., "TOPCONN", TCGENQRY(,,cQueryF), "RH", .T., .T.)//cria uma area de trabalho
DbSelectArea("RH")
RH->(DbGoTop())
While RH->(!Eof())
//gera txt por exemplo
//RH->RA_MAT //pega o valor do campo da query
SB1->(DbSkip())
End
RH->(DbCloseArea())//fecha a área criada
Não precisa nem passar para um array, faça direto mesmo.
Ultima edição: 9 anos 5 meses atrás por RonaldoLopes.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Funções AdvPL
- Exportar arquivo TXT
Tempo para a criação da página:0.089 segundos