Boa noite!
não funciona testei quando colocado apenas um campo funciona, quando colocado vários campos na linha de comando funciona.
Fiz de uma outra maneira, mais trabalhosa mais funciona, segue código em anexo.
frazato
Código: Selecionar todos
Function Main()
// Joao Frazato
// Gerar uma saida xls, apartir de uma filtro e campos predefinidos usuario
// 4-petras
SETMODE(25,80)
close all
sele 1
use produto alias produto
set filter to fornecedor=='01401'
DadoCampo := DbStruct()
cCampos := {} // teste saber apenas nome dos campos
*For B:=1 to nTotCompos
*Aadd(cCampos,{Alltrim(Upper(DadoCampo[b,1])),DadoCampo[b,2],DadoCampo[b,3],DadoCampo[b,4]} )
*Next
//criar o dbf utlizando os campos solicitados
// lista de campos carregada pelo usuario
cCamposCriar := 'CODIGO_DESCRICAO_ESTOQUE_CUSTO_MARGEM_FORNECEDOR_DETO_GRUPO_POLITPRECO'
ccriar := {} // colocar os campos a serem criados
cFileSaida := 'c:\temp\'+ "Filtro_" + Dtos( Date() ) + StrTran( Time(), ":", "" ) + ".xls"
For i:= 1 to len(dadocampo)
? dadocampo[i,1]
if alltrim(dadocampo[i,1])$cCamposCriar
Aadd(cCriar,DadoCampo[i])
Endif
next
dbcreate(cFileSaida,cCriar)
// popular o dbf novos
sele 113
use (cFileSaida) alias tmp
sele produto
go top
do while !eof()
sele tmp
append blank
for x:=1 to fcount()
cCampo := FieldName(x)
repla Tmp->&cCampo With Produto->&cCampo
next
sele produto
skip+1
Enddo
Sele tmp
dbedit(00,00,maxrow(),maxCol())
alert('ok.... arquivo utilizar excel...'+cFileSaida)
close all
FUNCTION FiltroTeste()
LOCAL cPath := "c:\temp\", cFile, cFieldList := "ESTOQUE , DESCRICAO"
USE produto
*SET INDEX TO produto
SET FILTER TO field->FORNECEDOR == "01401"
COPY FIELDS FieldList TO ( cFile )
Alert( "Criando arquivo " + chr(10) + cFile )
RETURN NIL
quit
Do While .t.
Clear
@ 00,01 say "JAF Sistema de Automacao - Bobo envio de e-mail"
@ 01,01 say "Monitorando pasta....."+mDiretorio
Inkey(3)
if LastKey()==27
Exit
Endif
mListaArq := Directory(mDiretorio+mArquivo,"D")
nQtdLinha := Len(mListaArq)
For nPosic := 1 to nQtdLinha
@ 02,01 say "Enviando..."+Str(nPosic,7)+"/"+Str(nQtdLinha,7)
cComando := mDiretorio+mListaArq[nPosic,1]
@ 03,01 say 'Enviando email.........:'+cComando Color('R/W')
oShell := CreateObject("WScript.Shell")
//Ret := oShell:Run("%comspec% /C"+cComando,0,.T.)
Ret := oShell:Run("%comspec% /c"+cComando,1,.T.)
oShell := Nil
Inkey(3)
Delete File (cComando)
Next
Enddo
Return Nil