Perguntas Exportar arquivo TXT

Mais
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á

Arquivo Anexo:

Nome do Arquivo: SRA.rar
Tamanho do Arquivo:57 KB

agradeço pela atenção.
Anexos:

Por favor Acessar ou Registrar para participar da conversa.

Mais
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).

Por favor Acessar ou Registrar para participar da conversa.

Mais
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.

Arquivo Anexo:

Nome do Arquivo: GeraTXT.rar
Tamanho do Arquivo:2 KB
Anexos:

Por favor Acessar ou Registrar para participar da conversa.

Mais
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:
  1. Você está colocando dois user functions no mesmo fonte, como uma função chama outra, aconselho mudar para static(funciona do mesmo jeito)
  2. 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
  3. É possível você permitir escolher o local de salvamento na hora de gerar
  4. Testou seu SQL? Está retornando os dados? Caso sim, adicione o retorno em um array e trabalhe com ele na geração do txt.
  5. 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...
Montei um exemplo simples de como fazer com o txt, dúvidas é só falar que respondo assim que possível.

Arquivo Anexo:

Nome do Arquivo: artexto.rar
Tamanho do Arquivo:0 KB
Anexos:

Por favor Acessar ou Registrar para participar da conversa.

Mais
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.

Por favor Acessar ou Registrar para participar da conversa.

Mais
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.
Ultima edição: 9 anos 5 meses atrás por RonaldoLopes.

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.125 segundos
Joomla templates by a4joomla