Copy To

Comando que copia informações de um alias / arquivo para outro (ao utilizar Copy File pode se mandar para uma porta, como LPT1).

Exemplo da Rotina:

Copy [arquivo] to DESTINO

Exemplo 1- Exportando dados de um alias para o Excel:

Copy To - Exemplo 1

Copy To – Exemplo 1

//Bibliotecas
#Include "Protheus.ch"

/*/{Protheus.doc} zTeste
Função de Teste
@type function
@author Terminal de Informação
@since 13/11/2016
@version 1.0
    @example
    u_zTeste()
/*/
 
User Function zTeste()
	Local aArea     := GetArea()
	Local cArqExcel := "teste_sb1.xls"
	
	//Copiando tabela para o arquivo Excel
	DbSelectArea('SB1')
	Copy To &("\system\"+cArqExcel)
	
	//Copia o arquivo para a máquina
	__CopyFile("\system\"+cArqExcel, GetTempPath()+cArqExcel)
	
	//Se não extiver instalado o excel, encerra
	If ! ApOleClient("MsExcel")
		MsgAlert("MsExcel não instalado", "Atenção")
		Return
	EndIf
	
	//Abre o arquivo do Excel
	oExcelApp := MsExcel():New()
	oExcelApp:WorkBooks:Open(GetTempPath()+cArqExcel)
	oExcelApp:SetVisible(.T.)
	oExcelApp:Destroy()
	
	RestArea(aArea)
Return

Exemplo 2- Mandando um arquivo para ser impresso em uma porta LPT1:

//Bibliotecas
#Include "Protheus.ch"

/*/{Protheus.doc} zTeste
Função de Teste
@type function
@author Terminal de Informação
@since 13/11/2016
@version 1.0
    @example
    u_zTeste()
/*/
 
User Function zTeste()
	Local aArea  := GetArea()
	Local cTexto := ""
	
	//Copiando o aruqivo para uma porta
	cTexto := "teste"
	MemoWrite("c:\teste\arquivo.txt", cTexto)
	Copy File "c:\teste\arquivo.txt" To LPT1
	
	RestArea(aArea)
Return

Observações:

– Caso tenha dúvidas ou problemas com os exemplos, entre em contato;
– Se tiver sugestões de rotinas, pode entrar em contato;

Referências:

TDN