Página 2 de 2

Enviado: 13 Mar 2008 08:41
por Pablo César
Vinicius escreveu:

Código: Selecionar todos

SET PRINT TO ("PED"+STRZERO(NUMPED)+".TXT"
SET DEVICE TO PRINTER
Eu tinha perguntado sobre o tamanho maximo que pode chegar na numeração de pedidos. Apesar de não ter obtido resposta, ainda poderia salientar sobre a falta do tamanho da variável NUMPED na função STRZERO. Eu não deixaria assim. Considerando também que você quer gravar diretamente na pasta PEDIDOS no C: de cada terminal. Então basta você colocar o PATH junto com o nome do arquivo na hora de gerar, assim olha:

Código: Selecionar todos

// Antes verifique se a pasta C:\PEDIDOS existe:
VERDIR("C:\PEDIDOS")
VARQ:="PED"+STRZERO(NUMPED,5,0)+".TXT" // veja que o NUMPED tem 5
SET PRINT TO ("C:\PEDIDOS"+VARQ) // olha o parentese
SET DEVICE TO PRINTER

// linhas do relatório 

SET DEVI TO SCREEN // Atenção: aqui precisa fechar o direcionamento p/arquivo
SET DEVI TO PRINT

FUNCTION VERDIR(VDIR)
Local VDIRE
VDIRE:=DIRECTORY(VDIR,"D")
IF LEN(VDIRE)=0
   IF ALERT("A pasta "+VDIR+" não existe.;Deseja criá-la ?",{"Sim","Não"})=1
      IF DIRMAKE(VDIR)=0
         RETURN .T.
      ELSE
         RETURN .F.
      ENDIF
   ELSE
      RETURN .F.
   ENDIF
ELSE
   RETURN .T.
ENDIF
Uma vez você tenha conseguido gerar o relatório na pasta C:\PEDIDOS com o nome pre-definido, é só colocar para imprimir, e não precisa utilizar o RUN, faça assim:

Código: Selecionar todos

VPASTA:=DIRNAME() // obtém o nome da pasta no servidor (onde o sistema se encontra)
IF FILE("C:\PEDIDOS"+VARQ) // Lembrando que VARQ ja está definido acima
   COPY FILE("C:\PEDIDOS"+ARQ) TO (VPASTA+"\PEDIDOS"+VARQ) // copia para o servidor
   COPY FILE("C:\PEDIDOS"+ARQ) TO ("LPT1") // irá mandar p/impressora
ENDIF
Veja se é isso que você quer. Em sintese:

1. Verifica se a pasta C:\PEDIDOS existe, senão a cria. Direciona a impressão em arquivo texto para aquela pasta e ja define o nome do arquivo conforme o numero do pedido.
2. Copia o arquivo gerado no C:\PEDIDOS para a pasta \SISTEMA\PEDIDOS do servidor.
3. Imprime o arquivo gerado para a LPT1. Aqui pode mudar para o caminho que desejar: LPT2, \\MICRO\IMPRESSORA, etc...

Enviado: 13 Mar 2008 08:58
por Pablo César
Vinicius, eu acho que se você está gerando seu relatório ja com o nome definido conforme o número do pedido, não terias a necessidade de gerá-lo no C:\PEDIDOS. Você pode gerar o arquivo ja com nome definido numa pasta específica do servidor e como tinha eu comentado anteriormente, se você quiser diferenciar os arquivos conforme cada vendedor, em vez de escolher a extensão .TXT poderia fazer com extensão "."+STRZERO(nVendor,3,0) mas isso terias que relacionar um número para cada vendedor.

Enviado: 14 Mar 2008 11:32
por Vinicius
Amigos,

Consegui executando o procedimento que o Pablo Cesar enviou, valeu pelas dicas..

Muito obrigado!!!

Vinicius