Hola amigo: Tengo un problema con exportar un reporte a excel, quiero que contenga un logo y controlar el ancho de cada columna, colores y demás, ¿cua les la mejor forma?, ¿Tienes algo que haga eso? Y que una vez generado el archivo excel me salga una pantalla donde me pida un mail al cual quiero enviar este archivo excel. Gracias
1 respuesta
Respuesta de piraton
1
1
piraton, Desarrollo de Aplicaciones Visual Fox, ADO/ODBC Programador ASP...
Este código para adjuntar archivo: Local lcPath, hWindow, lcDelimiter, lcFiles, lcMsgSubj lcPath = Sys(5) + Sys(2003) lcDelimiter = ";" lcFiles = "C:\lista_precios.txt" lcMsgSubj = "Adjuntamos Lista de Precios Actualizada al "+xfecha Handle = GetActiveWindow() = MAPISendDocuments ( Handle, lcDelimiter, lcFiles, lcMsgSubj, 0) Set Default To (lcPath) Procedure FindWindow Declare Integer GetActiveWindow In user32 Declare Integer MAPISendDocuments In mapi32; INTEGER ulUIParam, String lpszDelimChar,; STRING lpszFullPaths, String lpszFileNames,; INTEGER ulReserved Endproc Para consultar otras cuestiones, genera una nueva consulta de tema. Éxitos !
Amigo, en que parte me pide el mail para mandarlo, puesto que quiero que se genere el .xls y en vez de ir al excel me salga una pantalla que me pida un mail y presinando un botón se envíe a ete mail el archivo .xls generado. Por otra parte amigo, ¿tu sabes porque en unas maquinas los reportes salen en idioma ingles y en otras no?, cuando uso cmonth() me salen en algunas en español y en otras en ingles, pero de ambas en el windows la fecha se muestra en español, ¿cómo hago para que en todas me salaga en español? Muchas gracias
Este es tu día de suerte ! Tengo exactamente lo que necesitas: Local lcWord, lcFileName Close database lcFileName="C:\preciosmin.xls" && este es el nombre del libro de Excel mresp=MessageBox("Está su versión de Excel en idioma Inglés ?",547,"Generación de Planilla") do case case mresp=2 return case mresp=6 lcword="Sheet1" case mresp=7 lcword="Hoja1" endcase * IF ! USED("C:\distribuidora\Bases\articulos") USE C:\distribuidora\Bases\articulos SHARE set filter to existe set order to descrip &&ALIAS ftempo ENDIF L=3 T=7 *!* SELECT * ; *!* FROM ftempo ; *!* INTO CURSOR ventas *!* SELECT Ventas * Creo el objeto de Excel ExcObj=CREATEOBJECT("EXCEL.APPLICATION") ExcObj.VISIBLE=.T. ExcObj.WORKBOOKS.add ExcObj.sheets(lcWord).Select Excobj.sheets(lcWord).Name= "Precios" * Encabezados * ExcObj.RANGE("A2:I3").SELECT ExcObj.RANGE("A2:I3").FONT.NAME="Times New Roman" ExcObj.RANGE("A2:I3").FONT.BOLD=.f. ExcObj.RANGE("A2:I3").FONT.SIZE=16 ExcObj.RANGE("A2:I3").VerticalAlignment = 3 * ExcObj.RANGE("A2:J2").SELECT ExcObj.selection.Borders(3).weight=4 && Derecho ExcObj.RANGE("A2").SELECT ExcObj.ACTIVECELL.VALUE= "DISTRIBUIDORA CLARA" ExcObj.RANGE("B3").SELECT ExcObj.ACTIVECELL.FONT.BOLD=.t. ExcObj.ACTIVECELL.FONT.SIZE=16 ExcObj.ACTIVECELL.VALUE= "LISTADO DE PRECIOS Y COSTOS MINORISTAS" ExcObj.RANGE("A4").SELECT ExcObj.ACTIVECELL.FONT.SIZE=9 ExcObj.ACTIVECELL.VALUE=" "+transform(datetime(),"@E") &&"" ExcObj.RANGE("E4").SELECT ExcObj.ACTIVECELL.FONT.BOLD=.t. ExcObj.ACTIVECELL.FONT.SIZE=13 *ExcObj.ACTIVECELL.VALUE="Versión Actual : "+dtoc( gdFecVerL ) &&"" ExcObj.Rows("5:5").RowHeight = 0.75 && Cambiamos el alto de la fila *ExcObj.Rows("A").ColumnWidth = 36 ExcObj.Columns("A").ColumnWidth = 45 ExcObj.RANGE("A6:J6").SELECT ExcObj.selection.Borders(3).weight=4 && Derecho ExcObj.selection.font.bold=.t. ExcObj.selection.font.size=10 ExcObj.selection.HorizontalAlignment = 3 ExcObj.RANGE("A7:J7").SELECT ExcObj.selection.Borders(3).weight=4 && Derecho ExcObj.RANGE("A6").SELECT ExcObj.ACTIVECELL.VALUE="Descripción" ExcObj.RANGE("B6").SELECT ExcObj.ACTIVECELL.VALUE="Pr. Costo" ExcObj.RANGE("C6").SELECT ExcObj.ACTIVECELL.VALUE="Pr. Lista" ExcObj.RANGE("D6").SELECT ExcObj.ACTIVECELL.VALUE="% Estimado" ExcObj.RANGE("E6").SELECT ExcObj.ACTIVECELL.VALUE="% Real" * Aqui se carga el detalle GO TOP SCAN WHILE !EOF() L=L+1 T=T+1 DO Detalle ENDSCAN *sele ftempo *use *erase ventas.dbf * guardo el Libro * *--------------------------- * ChDir "C:\" * defino el lugar donde se guardara el libro generado if file (lcFileName) && verifico si ya existe y borro una version previa erase &lcFileName endif ExcObj.ActiveWorkbook.saveas( lcFileName ) ExcObj.ActiveWorkbook.close ExcObj.quit rele ExcObj return PROCEDURE DETALLE CEL="A"+ALLT(STR(T)) ExcObj.RANGE(CEL).SELECT ExcObj.ACTIVECELL.VALUE=ALLT(descrip) CEL="B"+ALLT(STR(T)) ExcObj.RANGE(CEL).SELECT ExcObj.ACTIVECELL.VALUE=ALLT(str(precio_costo,7,2)) * ExcObj.ACTIVECELL.VALUE=iif (!empty(fecvers),"'"+ALLT(dtoc(fecvers))," ") CEL="C"+ALLT(STR(T)) ExcObj.RANGE(CEL).SELECT ExcObj.ACTIVECELL.VALUE=ALLT(str(precio_lista,7,2)) * ExcObj.ACTIVECELL.VALUE=iif(ALLT(upper(tamarc1))="NO","Sin cierres","'"+upper( ALLT( nomarc1 ))) CEL="D"+ALLT(STR(T)) ExcObj.RANGE(CEL).SELECT ExcObj.ACTIVECELL.VALUE=ALLT(str(porcentaje,3,3)) * ExcObj.ACTIVECELL.VALUE=iif( ALLT( upper( tamarc1 ))="NO","desde","'"+allt(tamarc1) ) CEL="E"+ALLT(STR(T)) ExcObj.RANGE(CEL).SELECT ExcObj.ACTIVECELL.VALUE=ALLT(str(porcenreal,3,3)) * ExcObj.ACTIVECELL.VALUE=iif( ALLT( upper( tamarc1 ))="NO","'"+dtoc(gdFecVerL-5),"'"+dtoc(fecarc1) ) Return