El siguiente es un trozo de un fichero .ppo. Te lo muestro para que veas que puedes recuperar tu prg corrupto, si usaste en su momento la opcion /p de tu compilador (en mi caso Pellesc), y por supuesto, si tienes respaldo.
Como puedes observar, tu código se convierte a código nativo de las funciones. Cuando tuve necesidad de actualizar algún antiguo programa en Clipper, utilicé mucho estos .ppo. Recuerdo que una vez tomé muchas funciones completas, tal como estaban en el .ppo, y las compilé normalmente.
Function ImpRDefMult(dFecha,oGopDefi)
LOCAL oFont1, oFont2, oFont3, oPen1, oPen2, oReport, oPrn
local Fecha, nCancelar,oControl
oControl:=oServer:Query("SELECT * FROM control ;")
Fecha := "PERIODO "+ Fechador(oControl:Pfisc1,dFecha)
oGopDefi:GOTOP()
nCancelar:=PrinterSetup(oPrn)
if nCancelar=0
return nil
endif
oFont1 := TFont():New( "ARIAL", 0, -09,,,,,,,,,,,,,, )
oFont2 := TFont():New( "ARIAL", 0, -09,, .T.,,,,,,,,,,,, )
oFont3 := TFont():New( "ARIAL", 0, -12,, .T.,,,,,,,,,,,, )
oPen1 := TPen():New(, 1,, )
oPen2 := TPen():New(, 1,, )
oReport := RptBegin({{|| " "}, {||" "}, {||IF(!SHAREWARE, "FRANCISCO J. ALEGRIA P.","EMPRESARIOS ORGANIZADOS")}, {||IF(!SHAREWARE, "FAPSOFTWARE","WINCONT-FAPSOFTWARE-DEMO")}, {|| "ESTADO DE RESULTADOS"}, {|| Fecha}, {|| ""}}, {{|| OemtoAnsi("Pag: ")+str(oReport:nPage,3)}}, {{|| space(30)+ocontrol:firma1+space(60)+ocontrol:firma2}, {|| space(30)+ocontrol:cargo1+Space(60)+ocontrol:cargo2}, {|| " "}, {||" "}, {||" "}}, {oFont1, oFont2, oFont3}, {oPen1, oPen2}, .F.,,,, .T.,,, "ResuDef "+Fecha,, UPPER("RIGHT"), UPPER("CENTERED") )
RptAddColumn( {{|| " D E S C R I P C I O N"}}, , {{|| IF(!oGOPDEFI:TP1="IR",oGOPDEFI:NOMBRE1, ALLTRIM(oGOPDEFI:NOMBRE1)+" "+ALLTRIM(STR(oCONTROL:PISR))+" %")}}, 40, {} , {|| if(empty(oGOPDEFI:cta1) .OR. oGOPDEFI:cta1="****",2,1)}, .F., ,, .F., .T., 2, .F., .F.,,, .F., )
RptAddColumn( {{|| "SALDO ANTER "}}, , {{|| oGOPDEFI:MES_ANT1}}, 14, {"@Z) 9,999,999,999.99"} , {|| if(empty(oGOPDEFI:cta1) .OR. oGOPDEFI:cta1="****",2,1)}, .F., ,, .F., .T., 2, .F., .F.,,, .F., )
RptAddColumn( {{|| "MES ACTUAL "}}, , {{|| oGOPDEFI:ESTE_MES1}}, 14, {"@Z) 9,999,999,999.99"} , {|| if(empty(oGOPDEFI:cta1) .OR. oGOPDEFI:cta1="****",2,1)}, .F., ,, .F., .T., 2, .F., .F.,,, .F., )
RptAddColumn( {{|| " ACUMULADO "}}, , {{|| oGOPDEFI:ACUMULAD1}}, 14, {"@Z) 9,999,999,999.99"} , {|| if(empty(oGOPDEFI:cta1) .OR. oGOPDEFI:cta1="****",2,1)}, .F., ,, .F., .T., 2, .F., .F.,,, .F., )
RptAddColumn( {{|| "% "}}, , {{|| oGOPDEFI:PORC1}}, 6, {"@Z) 999,999.99"} , {|| if(empty(oGOPDEFI:cta1) .OR. oGOPDEFI:cta1="****",2,1)}, .F., ,, .F., .T., 2, .F., .F.,,, .F., )
RptEnd()
IF oReport:lCreated
oReport:oTitle:aFont[3] := {|| 3 }
oReport:oTitle:aFont[4] := {|| 3 }
oReport:oTitle:aFont[5] := {|| 3 }
oReport:oTitle:aFont[6] := {|| 3 }
oReport:nTitleUpLine := 1
oReport:nTitleDnLine := 1
oReport:nTotalLine := 1
oReport:bEndPage:= {||oReport:lPageTotal:=.F., oReport:TotalLine(oReport:nGroupLine, 0)}
ENDIF
oReport:bPreInit := {|| oGopDefi:GoTop() }
oReport:bSkip := {|| oGopDefi:Skip() }
oReport:Activate(, {|| !oGopDefi:eof()},,, {|| IconsEmp(oReport,"IcoEmpre.BMP")},, {|oGrp|oReport:NewLine()},,,,,,, )
oControl:End()
oFont1:End()
oFont2:End()
oFont3:End()
oPen1:End()
oPen2:End()
PrnPortrait()
PrnSetSize(2100,2790)
RETURN NIL
Saludos.