#INCLUDE "PROTHEUS.CH" /* {Protheus.doc} GPM022LOG Punto de entrada Muestra una pantalla para elegir el directorio donde será guardada una copia del archivo log @author Alfredo Medrano @version 1.0 @since 27/04/2021 @return String @sample */ User Function GPM022LOG() Local cPath := PARAMIXB[1] //Directorio Local cArquivo := PARAMIXB[2] //Nombre Archivo Local cRetorno := PARAMIXB[3] //Texto de log Local lGerLog := SuperGetMv("MV_LOGLOC",.T.,.F.) //parametro creado por el cliente Local cDirC := "" Local cPathAbs := "" Local lCopy := .F. Local lOk := .F. Local lSave := .F. Local oDlgDir Local oDirC
Default cPath := "" Default cArquivo:= "" Default cRetorno:= ""
cPathRel := GetPvProfString( GetEnvServer() , "StartPath" , "" , GetAdv97() ) cPathRel += "LOG_CALC\" + cArquivo // ruta relativa con archivo cPathAbs := cPath + cArquivo // ruta absoluta con archivo
If lGerLog
DEFINE MSDIALOG oDlgDir FROM 10,05 TO 15, 40 TITLE " Guardar Archivo " // "Directorio" @ 6,2 Say "Directorio: " SIZE 31,07 OF oDlgDir PIXEL @ 5,35 MSGET oDirC VAR cDirC SIZE 100, 08 OF oDlgDir PIXEL HASBUTTON ; VALID {|| cDirC:= cGetFile(,"Selecione el directorio",,,.F.,GETF_LOCALFLOPPY+GETF_LOCALHARD+GETF_NETWORKDRIVE+GETF_RETDIRECTORY), IIF(cDirC!="", .T., .f.)} DEFINE SBUTTON FROM 20,76 TYPE 1 ACTION (lOk:=.T.,oDlgDir:End()) ENABLE OF oDlgDir DEFINE SBUTTON FROM 20, 106 TYPE 2 ACTION oDlgDir:End() ENABLE OF oDlgDir ACTIVATE MSDIALOG oDlgDir CENTERED
If lOk //Verifica si el archivo existe en el directorio del server If File(cPathRel,0 ) //Verifica si el directorio destino existe If ExistDir( cDirC ) lSave := .T. If substr(cDirC, len(cDirC),len(cDirC) ) != "\" cDirC+= "\" EndIf //Verifica si el archivo existe en el directorio destino If File(cDirC+cArquivo) If !(MsgYesNo("El Archivo " + cArquivo + " ya existe en la ruta especificada. Desea sobrescribirlo ?",; "Atención" )) lSave := .F. EndIf EndIf Else MsgInfo( "El directorio especificado " + cDirC + " no existe. Asigne un directorio valido.", "Atención" ) EndIf EndIf EndIf Else cDirC := GetClientDir() // obtiene el directorio en donde se esta ejecutando el SmartClient lSave := .T. EndIf
If lSave //Copia el archivo de la carpeta del servidor a la carpeta especificada lCopy := CpyS2T( cPathRel, cDirC) If lCopy cRetorno += "El Archivo " + cArquivo + " se envio a la siguiente ruta " + cDirC // MsgInfo( "El archivo " + cArquivo + " se guardo correctamente", "Atención" ) Endif
If Ferror() # 0 .And. !lCopy cRetorno += "Error de grabación de archivo - Codigo DOS: " + STR(Ferror(),3) //MsgInfo( "Error de grabación de archivo - Codigo DOS: " + STR(Ferror(),3), "Atención" ) EndIf EndIf
return cRetorno
|