Silvio,
> have you ever tried to draw the boxes and lines and move them on the sheet?
Fixed. Please download and test a new FWH 21.06 build
many thanks for your feedback
Silvio,
> have you ever tried to draw the boxes and lines and move them on the sheet?
Fixed. Please download and test a new FWH 21.06 build
many thanks for your feedback
Antonio Linares wrote:Silvio,
> have you ever tried to draw the boxes and lines and move them on the sheet?
Fixed. Please download and test a new FWH 21.06 build
many thanks for your feedback


Silvio,
Seriously, I think you are the right one to build it ![]()
Antonio,
I still get the same error: xxx is not a valid file.
Or, you may simply have to enter the Extras - Databases option, and select the path corresponding to the location of the database in your installation.
Keep in mind that the examples that came in the original version have not been deleted to check their compatibility, which does not mean that it does not work, it is simply possible that there is an example that gives a problem like the one I described before.
Please, try another example and report the file with which you had problems to remove it from the installation
Thanks
O, es posible que simplemente tenga que entrar en la opción Extras - Databases, y seleccionar el path correspondiente a la ubicación de la base de datos en su instalación.
Tengan en cuenta que no se han borrado los ejemplos que venían en la versión original para comprobar su compatibilidad, lo que no significa que no funcione, simplemente es posible que haya algún ejemplo que dé algún problema como el que he descrito antes.
Por favor, prueben con otro ejemplo e informe del fichero con el que ha tenido problemas para eliminarlo de la instalación
Gracias
No puedo abrir ninguno de los ejemplos, ni crear tampoco un nuevo informe.
Por favor, prueba a descargarte el fichero y lo descomprimes en c:\downloads y verás que no se puede hacer nada.
Muchas gracias.
joseluispalma wrote:No puedo abrir ninguno de los ejemplos, ni crear tampoco un nuevo informe.
Por favor, prueba a descargarte el fichero y lo descomprimes en c:\downloads y verás que no se puede hacer nada.
Muchas gracias.
Sí, esta versión funciona.
Pero el mover los objetos no sigue siendo preciso, para poder alinearlos por ejemplo.
Gracias.
Jose Luis,
Acabo de probar lo que comentas y se pueden alinear perfectamente, es más,
solo tienes que inspeccionar las propiedades de un item y ponerle las coordenadas exactas que quieras.
Pero que esto no hace falta para alinear un item con otro. Con el ratón es suficiente.
Si puedes poner un GIF animado para que veamos lo que comentas, ayudaría, gracias
Antonio, ¿un ejemplo para crear etiquetas postales con EasyReport con imágenes y códigos de barras?




METHOD RgFuss()
local cKurtaxe := ""
local cTeilzhg := ""
local cAnZHG := ""
local cRgEnd1 := ""
local cRgEnd2 := ""
local nNetto := 0
local aID_Strings := {}
local aID := {}
local aStrings := {}
local nSummeMWST := 0
local nSummeBrutto := 0
local nSummeNetto := 0
*----------------------------------------------------------
nSummeNetto := ::s_WERT_ERM_1 / 110 * 100 + ::s_WERT_NORM / 120 * 100 + ::s_WERT_ERM_2 / (100 + Setup():nMWST3 ) * 100 + ::s_WERT_NULL
nSummeBrutto := ::s_WERT_ERM_1 + ::s_WERT_NORM + ::s_WERT_ERM_2 + ::s_WERT_NULL
nSummeMWST := nSummeBrutto - nSummeNetto
aID_Strings := {;
{ "RGBetrag", 101, ALLTRIM(transform( ::rgsumm, "999,999.99" ) ) }, ;
{ "Rabatt", 105, ALLTRIM(transform( ::rabattSumm , "999,999.99" ) ) }, ;
{ "Teilzahlung", 102, cTeilzhg }, ;
{ "Anzahlung", 103, cAnZHG }, ;
{ "Total", 104, ALLTRIM(transform( ::rgsumm - ::nTeilZhgSumme - (::nAnZhgSumme) ,"999,999.99")) }, ;
{ "Kurtaxe", 601, cKurtaxe}, ;
{ "Bemessungsgr 10% ", 1010, transform( ::s_WERT_ERM_1 / 110 * 100 , "999,999.99") }, ;
{ "Bemessungsgr 20%", 1020, transform( ::s_WERT_NORM / 120 * 100 , "999,999.99") }, ;
{ "Bemessungsgr " + ALLTRIM( STR( Setup():nMWST3 ) ) + "%", 1013, transform( ::s_WERT_ERM_2 / (100 + Setup():nMWST3 ) * 100 , "999,999.99") }, ;
{ "Bemessungsgr 0%", 1000, transform( ::s_WERT_NULL , "999,999.99") },;
{ "Betrag 0%", 1100, transform( ::s_WERT_NULL , "999,999.99") } ,;
{ "Betrag 10% ", 1110, transform( ::s_WERT_ERM_1, "999,999.99") }, ;
{ "Betrag 20%", 1120, transform( ::s_WERT_NORM, "999,999.99") }, ;
{ "Betrag " + ALLTRIM( STR( Setup():nMWST3 ) ) + "%", 1113, transform( ::s_WERT_ERM_2, "999,999.99") }, ;
{ "MWSt 10% ", 1310, transform( ::s_WERT_ERM_1 - ::s_WERT_ERM_1 / 110 * 100 ,"999,999.99") }, ;
{ "MWSt 20%", 1320, transform( ::s_WERT_NORM - ::s_WERT_NORM / 120 * 100 ,"999,999.99") }, ;
{ "MWSt " + ALLTRIM( STR( Setup():nMWST3 ) ) + "%", 1313, transform( ::s_WERT_ERM_2 - ::s_WERT_ERM_2 / (100 + Setup():nMWST3 ) * 100 ,"999,999.99") } , ;
{ "Summe netto", 5000, transform( nSummeNetto, "999,999.99") }, ;
{ "Summe MWST", 5001, transform( nSummeMWST, "999,999.99") }, ;
{ "Summe Brutto", 5002, transform( nSummeBrutto, "999,999.99") },;
{ "QRCode", 888, ::cQRDatei } }
AEval( aID_Strings, { |a| AADD( aID, a[2] ), AADD( aStrings, a[3] ) } )
PRINTAREA 18 OF ::oVrd ;
ITEMIDS aID;
ITEMVALUES aStrings
cRgEnd1 := left(::oRechnung:cEndtext1,(len(::oRechnung:cEndtext1)-120))
cRgEnd2 := right(::oRechnung:cEndtext1,120)
//Print order footer on last page
PRINTAREA 5 OF ::oVrd ;
ITEMIDS { 101, 102, 700 } ;
ITEMVALUES { ALLTRIM( cRgEnd1 ),;
ALLTRIM(cRgEnd2),;
"ID: 200" }
RETURN nil
//----------------------------------------------------------------------------//
********************************************************************************
METHOD imprimeFactNotaria() CLASS cFact
local oReport,Pagina:=nLinea := 1
local vArea := 0
local aAreaItem,aAreaSeri,aAreaTota,vFactor
local vCanti:=0; local vSubto:=0; local vVrIva:=0; local vTotal:=0; local nTNtles:=0
local nTRecud:=0; local nTNtiva:=0; local nTNtsub:=0
local vEfect:=0
local cNombrePDF := ::cRutaPDF+Retorna_Caracter(::hEncabezado["numero"])+".pdf"
local aTiposRet := {}
local aValorRet := {}
local aNombrRet := {}
local nLargo := 40
local aControValFoot := {0,0,0}
*/DEFINIMOS AL AREA DE LOS ITEMS*/
local area := hash()
area["FC"] := 1
area["RM"] := 2
area["FP"] := 3
//TPrinter():lUseHaruPDF := .t.
if Empty(::cPreterminada)
::cPreterminada := GetDefaultPrinter()
endif
if Empty(::hOtros["rutavrd"])
Msginfo("Falta Por Definir Ruta Reporte","Error Datos")
else
uFec:=dtoc(date())
uTim:=subs(time(),1,8)
//BUSCAMOS EL NOMBRE DEL VENDEDOR
oVnr:= cBusc():New(::oCnx,"vendedores")
oVnr:solodatos(::hSucursal["idvendedor"])
vTNoTer := oVnr:hRetorna["nombre"]
if ::hEncabezado["fecha"]#::hEncabezado["fvence"]
cFormaPago := "CRÉDITO"
else
cFormaPago := "CONTADO"
endif
nDias := ::hEncabezado["fvence"]-::hEncabezado["fecha"]
if ::lPrevisual
EASYREPORT oVRD NAME ::hOtros["rutavrd"] TO ::cPreterminada PREVIEW (.T.) MODAL
else
if ::lPdf
EASYREPORT oVRD NAME ::hOtros["rutavrd"] TO ::cPreterminada PREVIEW (.F.) FILE cNombrePDF
else
EASYREPORT oVRD NAME ::hOtros["rutavrd"] TO ::cPreterminada PREVIEW (.F.)
endif
endif
IF oVRD:lDialogCancel = .T.
RETURN( .F. )
ENDIF
//RECUPERAMOS LA INFORMACIÓN ADICIONAL TURNO DE LA FACTURA
oVar := "SELECT * FROM "+oLamcla:tMoad+" WHERE itemfa="+cValtoChar(::hOtros["id_factura"])+;
" AND titulo LIKE 'Turno%'"
oRsTu := FW_OPENRECORDSET(oCnFtr,oVar,adLockOptimistic,adOpenKeyset)
if oRsTu:RecordCount()!=0
oRsTu:MoveFirst()
cAdTur := alltrim( oRsTu:Fields( "valor" ):Value )
else
cAdTur := ""
endif
oRsTu:close()
PRINTAREA 1 OF oVRD;
ITEMIDS { 161,162,163,164,165,166,190,191,170,171,172,173,101,102,103,104,105,106,107,108,109,174,175,176,177,178 };
ITEMVALUES {alltrim(oLamcla:vGnom),;
"NIT: "+alltrim(oLamcla:vGnit)+" - "+alltrim(oLamcla:vGdig),;
"REGIMEN COMUN",;
"Dirección: "+if(nulo(oLamcla:vDire),space(0),oLamcla:vDire),;
"Teléfono: "+if(nulo(oLamcla:vTele),space(0),alltrim(oLamcla:vTele)),;
alltrim(::hOtros["resolucion"]),;
alltrim(cValtoChar(::hEncabezado["numero"])) ,;
alltrim(::hOtros["prefijo"]),;
alltrim(dtoc(::hEncabezado["fecha"])),;
subs(time(),1,8),;
alltrim(dtoc(::hEncabezado["fvence"])),;
alltrim(cFormaPago),;
alltrim(cValtoChar(::hEncabezado["nit"])),;
alltrim(::hTercero["razonsocial"]),;
subs(alltrim(::hSucursal["direccion1"]),1,35),;
alltrim(::hSucursal["movil"]),;
alltrim(::hSucursal["ciudad"]),;
alltrim(cValtoChar(::hSucursal["idvendedor"])),;
alltrim(vTNoTer),;
alltrim(cValtoChar(::hOtros["telefono2"])),;
alltrim(cValtoChar(::hOtros["telefono"])),;
alltrim(cValtoChar(nDias)+" días"),;
alltrim(cValtoChar(::hOtros["ubica1"])),;
alltrim(::hSucursal["emailfe"]),;
if(!Empty(cAdTur),"TURNO : "+cAdTur,""),;
alltrim(cValtoChar(::hEncabezado["ordencompra"]));
}
//PRIMERO LANZAMOS LOS DATOS DE LOS COMPARECIENTES
oVar := "SELECT CMP.*,CONCAT(TER.t_razons,' ',TER.t_prinom,' ',TER.t_segnom,' ',"+;
"TER.t_priape,' ',TER.t_segape) AS nombre,TER.t_tipote FROM "+oLamcla:tMocm+" CMP LEFT JOIN "+;
oLamcla:tTerc+" TER ON CMP.tercero=TER.t_tercer WHERE CMP.itemfa="+cValtoChar(::hOtros["id_factura"])
oRsCm := FW_OPENRECORDSET(oCnFtr,oVar,adLockOptimistic,adOpenKeyset)
oRsCm:MoveFirst()
Do While !oRsCm:Eof()
PRINTAREA 2 OF oVRD ;
ITEMIDS { 201 , 202 , 203 , 204 } ;
ITEMVALUES { alltrim(oRsCm:Fields( "nombre" ):Value),;
alltrim(oRsCm:Fields( "tercero" ):Value),;
alltrim(oRsCm:Fields( "participa" ):Value),;
alltrim(cTipoNombre( oRsCm:Fields( "t_tipote" ):Value ) );
}
oRsCm:MoveNext()
EndDo
oRsCm:close()
//CAMBIAMOS EL ALTO DEL AREA
oVRD:aAreaheight[2] := 3
//LUEGO LA INFORMACION ADICIONAL SOBRE EL PROYECTO
oVar := "SELECT * FROM "+oLamcla:tMoad+" WHERE itemfa="+cValtoChar(::hOtros["id_factura"])+;
" AND titulo LIKE 'Proyecto%'"
oRsPr := FW_OPENRECORDSET(oCnFtr,oVar,adLockOptimistic,adOpenKeyset)
if oRsPr:RecordCount()!=0
oRsPr:MoveFirst()
nCnAd := 1
Do While !oRsPr:Eof()
aIdRep := { 201 , 205 }
aIdVal := { if(nCnAd=1,alltrim(oRsPr:Fields( "titulo" ):Value ),""),;
alltrim(oRsPr:Fields( "valor" ):Value);
}
oVRD:AreaStart( 2 , .T. , aIdRep , aIdVal)
oItem := oVRD:GetItem( 2, 205 )
oItem:nColtext := 3
oVRD:PrintArea( 2 )
oRsPr:MoveNext()
nCnAd++
EndDo
endif
oRsPr:close()
//LUEGO LA INFORMACION ADICIONAL SOBRE EL ACTO DEL PROYECTO
oVar := "SELECT * FROM "+oLamcla:tMoad+" WHERE itemfa="+cValtoChar(::hOtros["id_factura"])+;
" AND titulo LIKE 'Acto%'"
oRsPr := FW_OPENRECORDSET(oCnFtr,oVar,adLockOptimistic,adOpenKeyset)
if oRsPr:RecordCount()!=0
oRsPr:MoveFirst()
nCnAd := 1
Do While !oRsPr:Eof()
PRINTAREA 2 OF oVRD ;
ITEMIDS { 201 , 205 } ;
ITEMVALUES { if(nCnAd=1,alltrim(oRsPr:Fields( "titulo" ):Value ),""),;
alltrim(oRsPr:Fields( "valor" ):Value);
}
oRsPr:MoveNext()
nCnAd++
EndDo
endif
oRsPr:close()
//IMPRESION DEL AREA 3
//SI HAY REGISTROS EN LA INFORMACION DE LOS ACTOS HACEMOS LA IMPRESIÓN DE LAS AREAS
nActos := 0
FOR z:=1 TO len(::detalle)
if ::detalle[z]["es_acto"] == "S"
nActos++
endif
NEXT
if nActos!=0
PRINTAREA 3 OF oVRD
//LUEGO LANZAMOS LOS DATOS DE LOS ACTOS
FOR i:=1 TO len(::detalle)
if ::detalle[i]["es_acto"] == "S"
nTNtles := nTNtles + ::detalle[i]["subtotal"] + ::detalle[i]["iva"]
nTNtiva := nTNtiva + ::detalle[i]["iva"]
nTNtsub := nTNtsub + ::detalle[i]["subtotal"]
PRINTAREA 4 OF oVRD ;
ITEMIDS { 401 , 402 , 403 , 404 , 405 , 406 } ;
ITEMVALUES { alltrim( ::detalle[i]["idproducto"] ),;
transform( ::detalle[i]["base"] , oLamcla:PIC7 ),;
transform( ::detalle[i]["total"] , oLamcla:PIC7 ),;
transform( ::detalle[i]["iva"] , oLamcla:PIC7 ),;
transform( ::detalle[i]["porciva"] , oLamcla:PIC7 ),;
transform( ::detalle[i]["subtotal"] , oLamcla:PIC7 );
}
endif
NEXT
nTopArea4 := oVRD:aAreaTop[3]
//TOTALES DERECHOS NOTARIALES
PRINTAREA 5 OF oVRD ;
ITEMIDS { 501 , 502 , 503 } ;
ITEMVALUES { transform( nTNtles , oLamcla:PIC7 ),;
transform( nTNtiva , oLamcla:PIC7 ),;
transform( nTNtsub , oLamcla:PIC7 ) }
//SI NO HAY ACTOS CAMBIAMOS EL TITULO DE LA SECCION DE ITEMS
//SE VE REFLEJADO EN EL AREA 6 QUE SIEMPRE SE DEBE ENVIAR MINIMO UN ITEM
cTtSinActos := "GASTOS ESCRITURACIÓN"
cTtSinActo2 := "TOTAL ESCRIT."
else
cTtSinActos := "GASTOS VARIOS"
cTtSinActo2 := "TOTAL VARIOS"
nTopArea4 := oVRD:aAreaTop[3]
endif
//IMPRESION DEL AREA 6
PRINTAREA 6 OF oVRD ;
ITEMIDS { 601 } ITEMVALUES { cTtSinActos }
//IMPRESION DE LOS GASTOS DE ESCRITURACION
nLargo := 45
FOR i:=1 TO len(::detalle)
if ::detalle[i]["es_acto"] == "N"
//DESDE AQUI ES EL CODIGO DE HACE LA MAGIA DE IMPRIMIR CAMPOS "MEMO"
//ESTO FUE LO QUE NOS ENVIO ARMANDO ESTRADA
nLineas := MLCOUNT(ALLTRIM(::detalle[i]["nombreproducto"]),nLargo)
FOR nLoop := 1 TO nLineas
cDes := MEMOLINE(ALLTRIM(::detalle[i]["nombreproducto"]),nLargo,nLoop)
IF nLoop == 1
PRINTAREA 7 OF oVRD ;
ITEMIDS { 701,702,703,;
704,705,706,;
707,708,709,710,711} ;
ITEMVALUES { str(::detalle[i]["id"]),;
subs(alltrim(::detalle[i]["idproducto"]),1,8),;
alltrim(cDes),;
transform(::detalle[i]["cantidad"],"99999"),;
transform(::detalle[i]["precio"],"999,999,999"),;
transform(::detalle[i]["subtotal"],"999,999,999"),;
transform(::detalle[i]["iva"],"999,999,999"),;
transform(::detalle[i]["total"],"999,999,999"),;
transform(::detalle[i]["porcdcto"],"99")+"%",;
alltrim(str(i)),;
transform(::detalle[i]["porciva"],"99")+"%";
}
ELSE
PRINTAREA 7 OF oVRD ;
ITEMIDS {703} ;
ITEMVALUES { alltrim(cDes) }
ENDIF
NEXT
//AQUI TERMINA LO DE ARMANDO
vCanti := vCanti + ::detalle[i]["cantidad"]
vSubto := vSubto + ::detalle[i]["subtotal"]
vVrIva := vVrIva + ::detalle[i]["iva"]
vTotal := vTotal + ::detalle[i]["subtotal"] + ::detalle[i]["iva"]
endif
NEXT
//AREA DE LOS TOTALES
PRINTAREA 8 OF oVRD ;
ITEMIDS { 801,802,803,804,805} ;
ITEMVALUES { transform(vCanti,"99999"),;
transform(vSubto,"999,999,999"),;
transform(vVrIva,"999,999,999"),;
transform(vTotal,"999,999,999"),;
cTtSinActo2 ;
}
//SE IMPRIME LOS RECAUDOS A TERCEROS
oVar := "SELECT MRT.*,RTC.codigo,RTC.descripcion FROM "+oLamcla:tMore+;
" MRT LEFT JOIN "+oLamcla:tRete+" RTC ON MRT.id_retencion=RTC.id_retencion"+;
" WHERE MRT.itemfa="+cValtoChar(::hOtros["id_factura"])
oRsRt := FW_OPENRECORDSET(oCnFtr,oVar,adLockOptimistic,adOpenKeyset)
oRsRt:MoveFirst()
//ANTES DE IMPRIMIR LAS AREAS DE LOS RECAUDOS A TERCEROS VERIFICAMOS QUE TENGAN ALGUN VALOR
nTRecud := 0
nTRec := 0
Do While !oRsRt:Eof()
nTRec := nTRec + oRsRt:Fields( "valor" ):Value
oRsRt:MoveNext()
EndDo
if nTRec != 0
//AREA DEL TITULO DE LOS RECAUDOS A TERCEROS
oVRD:aAreaTop[9] := nTopArea4
PRINTAREA 9 OF oVRD
oRsRt:MoveFirst()
Do While !oRsRt:Eof()
nTRecud := nTRecud + oRsRt:Fields( "valor" ):Value
PRINTAREA 10 OF oVRD ;
ITEMIDS { 1001 , 1002 , 1003 } ;
ITEMVALUES { alltrim( oRsRt:Fields( "descripcion" ):Value ),;
alltrim( oRsRt:Fields( "codigo" ):Value ),;
transform( oRsRt:Fields( "valor" ):Value , oLamcla:PIC7 );
}
oRsRt:MoveNext()
EndDo
oRsRt:close()
//AREA DE LOS TOTALES DE LOS RECAUDOS A TERCEROS
PRINTAREA 11 OF oVRD ;
ITEMIDS { 1101} ;
ITEMVALUES { transform( nTRecud,oLamcla:PIC7 ) }
endif
::hOtros["totalfctra"] := vSubto+nTRecud+nTNtsub+vVrIva+nTNtiva
//LOS TOTALES DE LA FACTURA Y LAS OBSERVACIONES
vLetras := UPPER(LetrasDecimales( ::hOtros["totalfctra"] , ::hOtros["dc_div"] ,;
::hOtros["cd_div"] , ::oCnx ))
//RECUPERAMOS LA INFORMACIÓN CUANDO HAY CREDITO EN LA FACTURA
oVar := "SELECT * FROM "+oLamcla:tMoad+" WHERE itemfa="+cValtoChar(::hOtros["id_factura"])+;
" AND titulo LIKE 'Cr%'"
oRsCr := FW_OPENRECORDSET(oCnFtr,oVar,adLockOptimistic,adOpenKeyset)
nRegFtCre := oRsCr:RecordCount()
if nRegFtCre!=0
aControValFoot := {}
oRsCr:MoveFirst()
aCrAbo := DescomponeCadena(alltrim(oRsCr:Fields( "titulo" ):Value ),":")
cCrAbo := alltrim(aCrAbo[2])
AADD(aControValFoot,val(cCrAbo))
//nCrAbo := val(cCrAbo)
cCrCre := alltrim(oRsCr:Fields( "valor" ):Value )
AADD(aControValFoot,val(cCrCre))
//nCrCre := val(cCrCre)
cCrAnt := alltrim(oRsCr:Fields( "otros" ):Value )
AADD(aControValFoot,val(cCrAnt))
//nCrAnt := val(cCrAnt)
//AJUSTAMOS LA DIFERENCIA ENTRE LO QUE VIENE Y EL VALOR TOTAL DE LA FACTURA
nPosUlDifCero := 1
nSumaTres := 0
//RECOREMOS EL ARRAY PARA IDENTIFICAR SI HAY DIFERENCIA
FOR s:=1 TO len(aControValFoot)
if aControValFoot[s] != 0
nPosUlDifCero := s
endif
nSumaTres += aControValFoot[s]
NEXT
//SI HAY DIFERENCIA AJUSTAMOS EL VALOR TOTAL EN EL ULTUMO VALOR DIFERENTE DE 0
if ::hOtros["totalfctra"] != nSumaTres
nDifeTot := ::hOtros["totalfctra"] - nSumaTres
nNuevoValor := aControValFoot[nPosUlDifCero] + nDifeTot
aControValFoot[nPosUlDifCero] = nNuevoValor
endif
else
cCrAnt := cCrCre := cCrAbo := ""
nCrAbo := nCrCre := nCrAnt := 0
endif
oRsCr:close()
PRINTAREA 12 OF oVRD ;
ITEMIDS { 501 , 502 , 503 , 507 , 508 , 509 , 510 , 511 , 512 , 513 , 514 , 515 , 516 , 517 , 518 } ;
ITEMVALUES { transform(vSubto+nTRecud+nTNtsub,oLamcla:PIC7),; //LA SUMA DE LOS SUBTOTALES Y RECAUDOS
transform(vVrIva+nTNtiva,oLamcla:PIC7),; //LA SUMA DE LOS IVAS
transform(::hOtros["totalfctra"],oLamcla:PIC7),; //LA SUMA FINAL
alltrim(vLetras),; //VALOR EN LETRAS
transform(vSubto,oLamcla:PIC7),; //SUB TOTAL DERECHOS NOTARIALES
transform(nTNtsub,oLamcla:PIC7),; //SUB TOTAL GASTOS ESCRITURACION
transform(nTRecud,oLamcla:PIC7),; //SUB TOTAL RECAUDOS A TERCEROS
if(!empty(cCrAbo),transform(aControValFoot[1],oLamcla:PIC7),""),;
if(!empty(cCrCre),transform(aControValFoot[2],oLamcla:PIC7),""),;
if(!empty(cCrAnt),transform(aControValFoot[3],oLamcla:PIC7),""),;
if(!empty(cCrAbo),"ABONADO",""),;
if(!empty(cCrCre),"CREDITO",""),;
if(!empty(cCrAnt),"ANTICIPO",""),;
transform(vSubto+nTNtsub,oLamcla:PIC7),; //POR SOLICITUD USUARIO SUMA DERECHOS + GASTOS
cTtSinActos ; //TITULO DESCRICION CUANDO NO HAY ACTOS
}
if Empty(::cCufe)
::cCufe := "Sin CUFE"
::cInfo := "Sin CUFE"
::cFope := space(0)
endif
//RECUPERAMOS LA INFORMACIÓN ADICIONAL USUARIO DEL PROYECTO
oVar := "SELECT * FROM "+oLamcla:tMoad+" WHERE itemfa="+cValtoChar(::hOtros["id_factura"])+;
" AND titulo LIKE 'Usuario%'"
oRsUs := FW_OPENRECORDSET(oCnFtr,oVar,adLockOptimistic,adOpenKeyset)
if oRsUs:RecordCount()!=0
oRsUs:MoveFirst()
cAdUsu := alltrim( oRsUs:Fields( "valor" ):Value )
else
cAdUsu := ""
endif
oRsUs:close()
PRINTAREA 13 OF oVRD;
ITEMIDS { 701 , 702 , 703 , 704 , 705 , 706 } ;
ITEMVALUES { alltrim(::hEncabezado["comentarios"]),;
::cCufe,;
::cInfo,;
::cFope,;
if(!Empty(cAdUsu),"Código de Usuario : "+cAdUsu,""),;
alltrim(cValtoChar(::hEncabezado["ordencompra"]));
}
END EASYREPORT oVRD
endif
RETURN NIL