Clarion - PARA ISAI

 
Vista:
sin imagen de perfil

PARA ISAI

Publicado por MARCOS (98 intervenciones) el 24/04/2008 15:17:12
HOLA ME SIRVIO LO Q ME MANDASTE Y GRACIA, PERO NECESITARIA UNA AYIDA MAS YA Q DESPUES DE RENEGAR UNLARGO RATO NO PUDE DEJAR EL EXEL COMO LO NECESITO POR ESO TE MANDE AL CORREO QUE PUSITE ([email protected]) UNA COPIA DEL EXEL QUE ME SACA Y COMO LO NECESITARIA AGRADECERIA MUCHO TU AYUDA YA Q ES UN TRABAJO Q TEMGO QUE ENTREGAR EN LA FACULTAD
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Excel

Publicado por Ricardo (196 intervenciones) el 25/04/2008 09:08:09
Coje todo el texto, lo metes en un window, colocando cada cosa en su lugar, replaza por los valores que usas y funcionara sin hacer mas, no tienes que declarar nada en el diccionario, ni usar templates o extensiones.

! * * * Variables declaradas * * *

DDERowS STRING(1) !Letra para Fila en Excel, según version puedes ser R, F, L u otra.
DDEColS STRING(1) !Letra pàra Columna en Excel, hasta ahora siempre he visto C.
DDEExcelPath STRING(254) !Ruta donde se encuentra inslada la aplicacion Excel. Aqui uso un DosFileLookup
ConfigTxt CSTRING(1000) !Texto mostrado en la ventana de configuración para el Usuario.
DDERowV LONG !Numero de Fila
DDEColV LONG !Numero de Columna
DDEChannel LONG !Canal
DDEFileName CString(254) !Nombre a dar a la hoja de Excel. Lo puedes asignar fijo o variable


! * * * R U T I N A S * * *

SetUp routine !Rutina llamada al abrir el window para leer valores del fichero INI de la Aplicación
!Estos valores lo pido/Muestro en una ventana de configuración.
DDERowS = GetIni('PrnXls','DDERowS','','AppName.Ini')
DDEColS = GetIni('PrnXls','DDEColS','','AppName.Ini')
DDEExcelPath = GetIni('PrnXls','DDEExcelPath','','AppName.Ini')
ConfigTxt = 'Para determinar los valores de Línea o Fila y Columna., Inicie "Excel", seleccione "Herramientas", ' &|
'"Opciones", "General". Observe los valores para "Estilo de referencia". No es necesario que marque ' &|
'la casilla, solo observe los valores utilidazos aquí y use estos para la configuración del informe.' &|
chr(13) & chr(10) & 'SE RECOMIENDA INICIAR "EXCEL" ANTES DE HACER ESTE PROCESO'

SetDown routine !Rutina llamada al cerrar el window para guardar valores en el fichero INI de la Aplicación
PutIni('PrnXls','DDERowS',DDERowS,'AppName.Ini')
PutIni('PrnXls','DDEColS',DDEColS,'AppName.Ini')
PutIni('PrnXls','DDEExcelPath',DDEExcelPath,'AppName.Ini')

Proceso routine !Rutina que escribe en Excel
If DDERowS = '' or DDEColS = ''
BEEP(Beep:SystemHand)
MESSAGE('Debe especificar los valores para Línea o Fila y Columna','ATENCION',ICON:Hand)
Exit
.

DDEFileName = ArchivoExcel & '.XLS' !Variable con el nombre que quieres dar al Archivo de Excel
If Exists(DDEFileName)
Beep(Beep:SystemQuestion)
Case Message('Ya existe el Archivo: ' & Clip(DDEFileName) & ' ¿Sobre escribir?', |&
'ATENCION',ICON:Question,'&Aceptar|&Cancelar',1,1)
Of 1
Remove(DDEFileName)
Of 2
Exit
. .

DDEChannel = DDEClient('Excel','System')
If Not DDEChannel
Run(DDEExcelPath,0)
If RunCode()
Beep(Beep:SystemExclamation)
Message('No se encuentra EXCEL en la Ruta especificada','ATENCION',ICON:Exclamation)
Exit
Else
Beep(Beep:SystemAsterisk)
Message('Iniciando Aplicación Excel, Pulse Aceptar para Continuar','ATENCION',ICON:Asterisk)
DDEChannel = DDECLIENT('Excel','System')
DDEEXECUTE(DDECHANNEL,'[CLOSE("Libro1.XLS")]')
. .

DDEEXECUTE(DDEChannel,'[NEW(1)]') !Create a new spreadsheet
DDEEXECUTE(DDEChannel,'[Save.As("' & Clip(DDEFileName) & '")]') !Save it as DDE_CHART.XLS
DDECLOSE(DDEChannel) !Close conversation
DDEChannel = DDECLIENT('Excel',Clip(DDEFileName)) !Open channel to new chart

DDERowV = 1 ;DDEColV = 1

!Escribo los encabezados de las columnas
DDEPOKE(DDEChannel,DDERowS & DDERowV & DDEColS & DDEColV,'Cabecera1') ;DDEColV+= 1
DDEPOKE(DDEChannel,DDERowS & DDERowV & DDEColS & DDEColV,'Cabecera2') ;DDEColV+= 1
DDEPOKE(DDEChannel,DDERowS & DDERowV & DDEColS & DDEColV,'CabeceraN') ;DDEColV+= 1

!Escribo valores a hoja de Excel
Clear(Pre:Record,-1)
Set(Pre:Key_1,Pre:Key_1)
Loop Until Eof(FileName)
Next(FileName)

!Filtros que necesites o salidas de loop

DDERowV+= 1 ;DDEColV = 1

DDEPOKE(DDEChannel,DDERowS & DDERowV & DDEColS & DDEColV,Pre:Variable1 ;DDEColV+= 1 !Texto
DDEPOKE(DDEChannel,DDERowS & DDERowV & DDEColS & DDEColV,Format(Pre:Variable2,@d6) ;DDEColV+= 1 !Fecha
DDEPOKE(DDEChannel,DDERowS & DDERowV & DDEColS & DDEColV,Format(Pre:Variable3,@p##-######p)) ;DDEColV+= 1 !Campo con formato
.
DDEClose(DDEChannel)
Post(Event:CloseWindow)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar