Informes de recibos de proveedor adaptados al resumen

git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@887 0c75b7a4-871f-7646-8a2f-f78d34cc349f
This commit is contained in:
roberto 2009-01-26 18:36:47 +00:00
parent b1f9d3ca3e
commit ac6d6bfa85
14 changed files with 1106 additions and 386 deletions

View File

@ -54,58 +54,58 @@
<DelphiCompile Include="Base.dpk"> <DelphiCompile Include="Base.dpk">
<MainSource>MainSource</MainSource> <MainSource>MainSource</MainSource>
</DelphiCompile> </DelphiCompile>
<DCCReference Include="..\Modulos\Gestor de informes\adortl.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\cxDataD11.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\cxEditorsD11.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\cxExportD11.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\cxExtEditorsD11.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\cxGridD11.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\cxIntl6D11.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\cxIntlPrintSys3D11.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\cxLibraryD11.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\cxPageControlD11.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\dbrtl.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\dclIndyCore.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\designide.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\dsnap.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\dxGDIPlusD11.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\dxPSCoreD11.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\dxThemeD11.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\GUISDK_D11.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\IndyCore.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\IndyProtocols.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\IndySystem.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\Jcl.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\JclVcl.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\JSDialog100.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\JvCmpD11R.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\JvCoreD11R.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\JvCtrlsD11R.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\JvDlgsD11R.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\JvMMD11R.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\JvNetD11R.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\JvPageCompsD11R.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\JvStdCtrlsD11R.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\JvSystemD11R.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\pckMD5.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\pckUCDataConnector.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\pckUserControl_RT.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\PngComponentsD10.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\PNG_D10.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\RemObjects_Core_D11.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\RemObjects_Indy_D11.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\rtl.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\TB2k_D10.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\tbx_d10.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\vcl.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\vclactnband.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\vcldb.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\vcljpg.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\VclSmp.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\vclx.dcp" />
<DCCReference Include="..\Modulos\Gestor de informes\xmlrtl.dcp" />
<DCCReference Include="..\Servicios\FactuGES_Intf.pas" /> <DCCReference Include="..\Servicios\FactuGES_Intf.pas" />
<DCCReference Include="C:\Documents and Settings\Usuario\adortl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxDataD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxEditorsD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxExportD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxExtEditorsD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxGridD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxIntl6D11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxIntlPrintSys3D11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxLibraryD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxPageControlD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\DataAbstract_Core_D11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dbrtl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dclIndyCore.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\designide.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dsnap.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxGDIPlusD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxPSCoreD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxThemeD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\GUISDK_D11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\IndyCore.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\IndyProtocols.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\IndySystem.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\Jcl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JclVcl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JSDialog100.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvCmpD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvCoreD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvCtrlsD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvDlgsD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvMMD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvNetD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvPageCompsD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvStdCtrlsD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvSystemD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\pckMD5.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\pckUCDataConnector.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\pckUserControl_RT.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\PngComponentsD10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\PNG_D10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\RemObjects_Core_D11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\RemObjects_Indy_D11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\rtl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\TB2k_D10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\tbx_d10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vcl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vclactnband.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vcldb.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vcljpg.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\VclSmp.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vclx.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\xmlrtl.dcp" />
<DCCReference Include="Conexion\uConfigurarConexion.pas"> <DCCReference Include="Conexion\uConfigurarConexion.pas">
<Form>fConfigurarConexion</Form> <Form>fConfigurarConexion</Form>
<DesignClass>TForm</DesignClass> <DesignClass>TForm</DesignClass>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -2,7 +2,7 @@ object RptRecibosProveedor: TRptRecibosProveedor
OldCreateOrder = True OldCreateOrder = True
OnCreate = DataModuleCreate OnCreate = DataModuleCreate
Height = 405 Height = 405
Width = 654 Width = 873
object DADataCabecera: TDADataSource object DADataCabecera: TDADataSource
DataSet = tbl_Cabecera.Dataset DataSet = tbl_Cabecera.Dataset
DataTable = tbl_Cabecera DataTable = tbl_Cabecera
@ -206,7 +206,7 @@ object RptRecibosProveedor: TRptRecibosProveedor
StreamingOptions = [soDisableEventsWhileStreaming] StreamingOptions = [soDisableEventsWhileStreaming]
RemoteFetchEnabled = False RemoteFetchEnabled = False
LocalSchema = schReport LocalSchema = schReport
LocalDataStreamer = DABINAdapter LocalDataStreamer = Bin2DataStreamer
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
LogicalName = 'Informe_Cabecera' LogicalName = 'Informe_Cabecera'
@ -214,10 +214,6 @@ object RptRecibosProveedor: TRptRecibosProveedor
Left = 264 Left = 264
Top = 128 Top = 128
end end
object DABINAdapter: TDABINAdapter
Left = 48
Top = 80
end
object frxRichObject1: TfrxRichObject object frxRichObject1: TfrxRichObject
Left = 48 Left = 48
Top = 296 Top = 296
@ -283,9 +279,11 @@ object RptRecibosProveedor: TRptRecibosProveedor
'iento)'#10'when extract (month from fecha_vencimiento) = 12 then '#39'DI' + 'iento)'#10'when extract (month from fecha_vencimiento) = 12 then '#39'DI' +
'CIEMBRE - '#39' || extract (year from fecha_vencimiento)'#10'end as TITU' + 'CIEMBRE - '#39' || extract (year from fecha_vencimiento)'#10'end as TITU' +
'LO,'#10'REFERENCIA, ID_PROVEEDOR, NOMBRE_PROVEEDOR, SITUACION, NIF_' + 'LO,'#10'REFERENCIA, ID_PROVEEDOR, NOMBRE_PROVEEDOR, SITUACION, NIF_' +
'CIF_PROVEEDOR, fecha_vencimiento, FECHA_EMISION,'#10'IMPORTE_TOTAL'#10#10 + 'CIF_PROVEEDOR, fecha_vencimiento, FECHA_EMISION,'#10'IMPORTE_TOTAL,'#10 +
'from V_recibos_proveedor'#10'where {where}'#10'order by ANO, MES, NOMBRE' + 'case'#10'when strlen(DATOS_BANCARIOS) = 0 then '#39'Sin cuenta bancaria'#39 +
'_PROVEEDOR'#10#10 #10'else DATOS_BANCARIOS'#10'end as DATOS_BANCARIOS'#10#10'from V_recibos_pro' +
'veedor'#10'where {where}'#10'order by ANO, MES, FECHA_VENCIMIENTO, NOMBR' +
'E_PROVEEDOR'#10#10
StatementType = stSQL StatementType = stSQL
ColumnMappings = < ColumnMappings = <
item item
@ -335,9 +333,13 @@ object RptRecibosProveedor: TRptRecibosProveedor
item item
DatasetField = 'ANO' DatasetField = 'ANO'
TableField = 'ANO' TableField = 'ANO'
end
item
DatasetField = 'DATOS_BANCARIOS'
TableField = 'DATOS_BANCARIOS'
end> end>
end> end>
Name = 'InformeListadoRecibos' Name = 'InformeListadoRecibosPendientes'
Fields = < Fields = <
item item
Name = 'ID_EMPRESA' Name = 'ID_EMPRESA'
@ -391,6 +393,11 @@ object RptRecibosProveedor: TRptRecibosProveedor
item item
Name = 'IMPORTE_TOTAL' Name = 'IMPORTE_TOTAL'
DataType = datCurrency DataType = datCurrency
end
item
Name = 'DATOS_BANCARIOS'
DataType = datString
Size = 255
end> end>
end end
item item
@ -812,6 +819,310 @@ object RptRecibosProveedor: TRptRecibosProveedor
Name = 'LOGOTIPO' Name = 'LOGOTIPO'
DataType = datBlob DataType = datBlob
end> end>
end
item
Params = <>
Statements = <
item
Connection = 'IBX'
TargetTable = 'V_recibos_proveedor'
SQL =
'select ID_EMPRESA,'#10'extract (year from fecha_vencimiento) as ANO,' +
#10'extract (month from fecha_vencimiento) as MES,'#10'case'#10'when extrac' +
't (month from fecha_vencimiento) = 1 then '#39'ENERO - '#39' || extract ' +
'(year from fecha_vencimiento)'#10'when extract (month from fecha_ven' +
'cimiento) = 2 then '#39'FEBRERO - '#39' || extract (year from fecha_venc' +
'imiento)'#10'when extract (month from fecha_vencimiento) = 3 then '#39'M' +
'ARZO - '#39' || extract (year from fecha_vencimiento)'#10'when extract (' +
'month from fecha_vencimiento) = 4 then '#39'ABRIL - '#39' || extract (ye' +
'ar from fecha_vencimiento)'#10'when extract (month from fecha_vencim' +
'iento) = 5 then '#39'MAYO - '#39' || extract (year from fecha_vencimient' +
'o)'#10'when extract (month from fecha_vencimiento) = 6 then '#39'JUNIO -' +
' '#39' || extract (year from fecha_vencimiento)'#10'when extract (month ' +
'from fecha_vencimiento) = 7 then '#39'JULIO - '#39' || extract (year fro' +
'm fecha_vencimiento)'#10'when extract (month from fecha_vencimiento)' +
' = 8 then '#39'AGOSTO - '#39' || extract (year from fecha_vencimiento)'#10'w' +
'hen extract (month from fecha_vencimiento) = 9 then '#39'SEPTIEMBRE ' +
'- '#39' || extract (year from fecha_vencimiento)'#10'when extract (month' +
' from fecha_vencimiento) = 10 then '#39'OCTUBRE - '#39' || extract (year' +
' from fecha_vencimiento)'#10'when extract (month from fecha_vencimie' +
'nto) = 11 then '#39'NOVIEMBRE - '#39' || extract (year from fecha_vencim' +
'iento)'#10'when extract (month from fecha_vencimiento) = 12 then '#39'DI' +
'CIEMBRE - '#39' || extract (year from fecha_vencimiento)'#10'end as TITU' +
'LO,'#10'case'#10'when strlen(DATOS_BANCARIOS) = 0 then '#39'Sin cuenta banca' +
'ria'#39#10'else DATOS_BANCARIOS'#10'end as DATOS_BANCARIOS,'#10'sum(IMPORTE_TO' +
'TAL) as importe_total'#10#10'from V_recibos_proveedor'#10#10'group by 1,2,3,' +
'4,5'#10'order by 1,2,3,4,5'#10#10#10
StatementType = stSQL
ColumnMappings = <
item
DatasetField = 'ID_EMPRESA'
TableField = 'ID_EMPRESA'
end
item
DatasetField = 'ANO'
TableField = 'ANO'
end
item
DatasetField = 'MES'
TableField = 'MES'
end
item
DatasetField = 'TITULO'
TableField = 'TITULO'
end
item
DatasetField = 'DATOS_BANCARIOS'
TableField = 'DATOS_BANCARIOS'
end
item
DatasetField = 'IMPORTE_TOTAL'
TableField = 'IMPORTE_TOTAL'
end>
end>
Name = 'InformeListadoRecibosPendientesResumen'
Fields = <
item
Name = 'ID_EMPRESA'
DataType = datInteger
end
item
Name = 'ANO'
DataType = datSmallInt
end
item
Name = 'MES'
DataType = datSmallInt
end
item
Name = 'TITULO'
DataType = datString
Size = 19
end
item
Name = 'DATOS_BANCARIOS'
DataType = datString
Size = 255
end
item
Name = 'IMPORTE_TOTAL'
DataType = datCurrency
end>
end
item
Params = <>
Statements = <
item
Connection = 'IBX'
TargetTable = 'V_recibos_proveedor'
SQL =
'select ID_EMPRESA,'#10'extract (year from fecha_emision) as ANO,'#10'ext' +
'ract (month from fecha_emision) as MES,'#10'case'#10'when extract (month' +
' from fecha_emision) = 1 then '#39'ENERO - '#39' || extract (year from f' +
'echa_emision)'#10'when extract (month from fecha_emision) = 2 then '#39 +
'FEBRERO - '#39' || extract (year from fecha_emision)'#10'when extract (m' +
'onth from fecha_emision) = 3 then '#39'MARZO - '#39' || extract (year fr' +
'om fecha_emision)'#10'when extract (month from fecha_emision) = 4 th' +
'en '#39'ABRIL - '#39' || extract (year from fecha_emision)'#10'when extract ' +
'(month from fecha_emision) = 5 then '#39'MAYO - '#39' || extract (year f' +
'rom fecha_emision)'#10'when extract (month from fecha_emision) = 6 t' +
'hen '#39'JUNIO - '#39' || extract (year from fecha_emision)'#10'when extract' +
' (month from fecha_emision) = 7 then '#39'JULIO - '#39' || extract (year' +
' from fecha_emision)'#10'when extract (month from fecha_emision) = 8' +
' then '#39'AGOSTO - '#39' || extract (year from fecha_emision)'#10'when extr' +
'act (month from fecha_emision) = 9 then '#39'SEPTIEMBRE - '#39' || extra' +
'ct (year from fecha_emision)'#10'when extract (month from fecha_emis' +
'ion) = 10 then '#39'OCTUBRE - '#39' || extract (year from fecha_emision)' +
#10'when extract (month from fecha_emision) = 11 then '#39'NOVIEMBRE - ' +
#39' || extract (year from fecha_emision)'#10'when extract (month from ' +
'fecha_emision) = 12 then '#39'DICIEMBRE - '#39' || extract (year from fe' +
'cha_emision)'#10'end as TITULO,'#10'REFERENCIA, ID_PROVEEDOR, NOMBRE_PR' +
'OVEEDOR, SITUACION, NIF_CIF_PROVEEDOR, fecha_emision, FECHA_venc' +
'imiento,'#10'IMPORTE_TOTAL'#10#10'from V_recibos_proveedor'#10'where {where}'#10'o' +
'rder by ANO, MES, NOMBRE_PROVEEDOR'#10#10
StatementType = stSQL
ColumnMappings = <
item
DatasetField = 'ID_EMPRESA'
TableField = 'ID_EMPRESA'
end
item
DatasetField = 'ANO'
TableField = 'ANO'
end
item
DatasetField = 'MES'
TableField = 'MES'
end
item
DatasetField = 'TITULO'
TableField = 'TITULO'
end
item
DatasetField = 'REFERENCIA'
TableField = 'REFERENCIA'
end
item
DatasetField = 'ID_PROVEEDOR'
TableField = 'ID_PROVEEDOR'
end
item
DatasetField = 'NOMBRE_PROVEEDOR'
TableField = 'NOMBRE_PROVEEDOR'
end
item
DatasetField = 'SITUACION'
TableField = 'SITUACION'
end
item
DatasetField = 'NIF_CIF_PROVEEDOR'
TableField = 'NIF_CIF_PROVEEDOR'
end
item
DatasetField = 'FECHA_EMISION'
TableField = 'FECHA_EMISION'
end
item
DatasetField = 'FECHA_VENCIMIENTO'
TableField = 'FECHA_VENCIMIENTO'
end
item
DatasetField = 'IMPORTE_TOTAL'
TableField = 'IMPORTE_TOTAL'
end>
end>
Name = 'InformeListadoRecibos'
Fields = <
item
Name = 'ID_EMPRESA'
DataType = datInteger
end
item
Name = 'ANO'
DataType = datSmallInt
end
item
Name = 'MES'
DataType = datSmallInt
end
item
Name = 'TITULO'
DataType = datString
Size = 19
end
item
Name = 'REFERENCIA'
DataType = datString
Size = 255
end
item
Name = 'ID_PROVEEDOR'
DataType = datInteger
end
item
Name = 'NOMBRE_PROVEEDOR'
DataType = datString
Size = 255
end
item
Name = 'SITUACION'
DataType = datString
Size = 9
end
item
Name = 'NIF_CIF_PROVEEDOR'
DataType = datString
Size = 15
end
item
Name = 'FECHA_EMISION'
DataType = datDateTime
end
item
Name = 'FECHA_VENCIMIENTO'
DataType = datDateTime
end
item
Name = 'IMPORTE_TOTAL'
DataType = datCurrency
end>
end
item
Params = <>
Statements = <
item
Connection = 'IBX'
TargetTable = 'V_recibos_proveedor'
SQL =
'select ID_EMPRESA,'#10'extract (year from fecha_emision) as ANO,'#10'ext' +
'ract (month from fecha_emision) as MES,'#10'case'#10'when extract (month' +
' from fecha_emision) = 1 then '#39'ENERO - '#39' || extract (year from f' +
'echa_emision)'#10'when extract (month from fecha_emision) = 2 then '#39 +
'FEBRERO - '#39' || extract (year from fecha_emision)'#10'when extract (m' +
'onth from fecha_emision) = 3 then '#39'MARZO - '#39' || extract (year fr' +
'om fecha_emision)'#10'when extract (month from fecha_emision) = 4 th' +
'en '#39'ABRIL - '#39' || extract (year from fecha_emision)'#10'when extract ' +
'(month from fecha_emision) = 5 then '#39'MAYO - '#39' || extract (year f' +
'rom fecha_emision)'#10'when extract (month from fecha_emision) = 6 t' +
'hen '#39'JUNIO - '#39' || extract (year from fecha_emision)'#10'when extract' +
' (month from fecha_emision) = 7 then '#39'JULIO - '#39' || extract (year' +
' from fecha_emision)'#10'when extract (month from fecha_emision) = 8' +
' then '#39'AGOSTO - '#39' || extract (year from fecha_emision)'#10'when extr' +
'act (month from fecha_emision) = 9 then '#39'SEPTIEMBRE - '#39' || extra' +
'ct (year from fecha_emision)'#10'when extract (month from fecha_emis' +
'ion) = 10 then '#39'OCTUBRE - '#39' || extract (year from fecha_emision)' +
#10'when extract (month from fecha_emision) = 11 then '#39'NOVIEMBRE - ' +
#39' || extract (year from fecha_emision)'#10'when extract (month from ' +
'fecha_emision) = 12 then '#39'DICIEMBRE - '#39' || extract (year from fe' +
'cha_emision)'#10'end as TITULO,'#10'sum(IMPORTE_TOTAL) as importe_total'#10 +
#10'from V_recibos_proveedor'#10'where {where}'#10'group by 1,2,3,4'#10'order b' +
'y 1,2,3,4'#10#10
StatementType = stSQL
ColumnMappings = <
item
DatasetField = 'ID_EMPRESA'
TableField = 'ID_EMPRESA'
end
item
DatasetField = 'ANO'
TableField = 'ANO'
end
item
DatasetField = 'MES'
TableField = 'MES'
end
item
DatasetField = 'TITULO'
TableField = 'TITULO'
end
item
DatasetField = 'IMPORTE_TOTAL'
TableField = 'IMPORTE_TOTAL'
end>
end>
Name = 'InformeListadoRecibosResumen'
Fields = <
item
Name = 'ID_EMPRESA'
DataType = datInteger
end
item
Name = 'ANO'
DataType = datSmallInt
end
item
Name = 'MES'
DataType = datSmallInt
end
item
Name = 'TITULO'
DataType = datString
Size = 19
end
item
Name = 'IMPORTE_TOTAL'
DataType = datCurrency
end>
end> end>
JoinDataTables = <> JoinDataTables = <>
UnionDataTables = <> UnionDataTables = <>
@ -837,7 +1148,7 @@ object RptRecibosProveedor: TRptRecibosProveedor
PrintOptions.Printer = 'Por defecto' PrintOptions.Printer = 'Por defecto'
PrintOptions.PrintOnSheet = 0 PrintOptions.PrintOnSheet = 0
ReportOptions.CreateDate = 37800.807714351900000000 ReportOptions.CreateDate = 37800.807714351900000000
ReportOptions.LastChange = 39743.775704560180000000 ReportOptions.LastChange = 39839.760718449080000000
ScriptLanguage = 'PascalScript' ScriptLanguage = 'PascalScript'
ScriptText.Strings = ( ScriptText.Strings = (
'procedure frxReportOnStartReport(Sender: TfrxComponent);' 'procedure frxReportOnStartReport(Sender: TfrxComponent);'
@ -934,7 +1245,7 @@ object RptRecibosProveedor: TRptRecibosProveedor
StreamingOptions = [soDisableEventsWhileStreaming] StreamingOptions = [soDisableEventsWhileStreaming]
RemoteFetchEnabled = False RemoteFetchEnabled = False
LocalSchema = schReport LocalSchema = schReport
LocalDataStreamer = DABINAdapter LocalDataStreamer = Bin2DataStreamer
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
LogicalName = 'Informe_Compensados' LogicalName = 'Informe_Compensados'
@ -999,7 +1310,7 @@ object RptRecibosProveedor: TRptRecibosProveedor
StreamingOptions = [soDisableEventsWhileStreaming] StreamingOptions = [soDisableEventsWhileStreaming]
RemoteFetchEnabled = False RemoteFetchEnabled = False
LocalSchema = schReport LocalSchema = schReport
LocalDataStreamer = DABINAdapter LocalDataStreamer = Bin2DataStreamer
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
LogicalName = 'InformeListadoRecibos' LogicalName = 'InformeListadoRecibos'
@ -1020,4 +1331,149 @@ object RptRecibosProveedor: TRptRecibosProveedor
Left = 496 Left = 496
Top = 16 Top = 16
end end
object tbl_InformeListadoRecibosResumen: TDAMemDataTable
RemoteUpdatesOptions = []
Fields = <>
Params = <>
MasterMappingMode = mmDataRequest
LogChanges = False
StreamingOptions = [soDisableEventsWhileStreaming]
RemoteFetchEnabled = False
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
IndexDefs = <>
Left = 504
Top = 304
end
object DADSInformeListadoRecibosResumen: TDADataSource
DataSet = tbl_InformeListadoRecibosResumen.Dataset
DataTable = tbl_InformeListadoRecibosResumen
Left = 504
Top = 248
end
object frxDBInformeListadoRecibosResumen: TfrxDBDataset
UserName = 'frxDBInformeListadoRecibosResumen'
CloseDataSource = True
DataSource = DADSInformeListadoRecibosResumen
Left = 504
Top = 192
end
object Bin2DataStreamer: TDABin2DataStreamer
Left = 48
Top = 88
end
object frxDBInformeListadoRecibosPendientes: TfrxDBDataset
UserName = 'frxDBInformeListadoRecibosPendientes'
CloseDataSource = True
DataSource = DADSInformeListadoRecibosPendientes
Left = 704
Top = 16
end
object DADSInformeListadoRecibosPendientes: TDADataSource
DataSet = tbl_InformeListadoRecibosPendientes.Dataset
DataTable = tbl_InformeListadoRecibosPendientes
Left = 704
Top = 72
end
object tbl_InformeListadoRecibosPendientes: TDAMemDataTable
RemoteUpdatesOptions = []
Fields = <
item
Name = 'ID_EMPRESA'
DataType = datInteger
end
item
Name = 'ANO'
DataType = datSmallInt
end
item
Name = 'MES'
DataType = datSmallInt
end
item
Name = 'TITULO'
DataType = datString
Size = 19
end
item
Name = 'REFERENCIA'
DataType = datString
Size = 255
end
item
Name = 'ID_PROVEEDOR'
DataType = datInteger
end
item
Name = 'NOMBRE_PROVEEDOR'
DataType = datString
Size = 255
end
item
Name = 'SITUACION'
DataType = datString
Size = 9
end
item
Name = 'NIF_CIF_PROVEEDOR'
DataType = datString
Size = 15
end
item
Name = 'FECHA_VENCIMIENTO'
DataType = datDateTime
end
item
Name = 'FECHA_EMISION'
DataType = datDateTime
end
item
Name = 'IMPORTE_TOTAL'
DataType = datCurrency
end
item
Name = 'DATOS_BANCARIOS'
DataType = datString
Size = 255
end>
Params = <>
LogChanges = False
StreamingOptions = [soDisableEventsWhileStreaming]
RemoteFetchEnabled = False
LocalSchema = schReport
LocalDataStreamer = Bin2DataStreamer
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
LogicalName = 'InformeListadoRecibosPendientes'
IndexDefs = <>
Left = 704
Top = 128
end
object frxDBInformeListadoRecibosPendResumen: TfrxDBDataset
UserName = 'frxDBInformeListadoRecibosPendResumen'
CloseDataSource = True
DataSource = DADSInformeListadoRecibosPendResumen
Left = 704
Top = 192
end
object DADSInformeListadoRecibosPendResumen: TDADataSource
DataSet = tbl_InformeListadoRecibosPendResumen.Dataset
DataTable = tbl_InformeListadoRecibosPendResumen
Left = 704
Top = 248
end
object tbl_InformeListadoRecibosPendResumen: TDAMemDataTable
RemoteUpdatesOptions = []
Fields = <>
Params = <>
MasterMappingMode = mmDataRequest
LogChanges = False
StreamingOptions = [soDisableEventsWhileStreaming]
RemoteFetchEnabled = False
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
IndexDefs = <>
Left = 704
Top = 304
end
end end

View File

@ -7,13 +7,12 @@ uses
Dialogs, frxClass, frxDBSet, uDAScriptingProvider, Dialogs, frxClass, frxDBSet, uDAScriptingProvider,
uDADataTable, uDAMemDataTable, DB, uDAClasses, frxChart, frxGradient, uDADataTable, uDAMemDataTable, DB, uDAClasses, frxChart, frxGradient,
frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes, frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes,
uDAInterfaces, uDADataStreamer, FactuGES_Intf; uDAInterfaces, uDADataStreamer, FactuGES_Intf, uDABin2DataStreamer;
type type
TRptRecibosProveedor = class(TDataModule) TRptRecibosProveedor = class(TDataModule)
DADataCabecera: TDADataSource; DADataCabecera: TDADataSource;
tbl_Cabecera: TDAMemDataTable; tbl_Cabecera: TDAMemDataTable;
DABINAdapter: TDABINAdapter;
frxRichObject1: TfrxRichObject; frxRichObject1: TfrxRichObject;
frxBarCodeObject1: TfrxBarCodeObject; frxBarCodeObject1: TfrxBarCodeObject;
frxOLEObject1: TfrxOLEObject; frxOLEObject1: TfrxOLEObject;
@ -29,12 +28,32 @@ type
tbl_InformeListadoRecibos: TDAMemDataTable; tbl_InformeListadoRecibos: TDAMemDataTable;
DADSInformeListadoRecibos: TDADataSource; DADSInformeListadoRecibos: TDADataSource;
frxDBInformeListadoRecibos: TfrxDBDataset; frxDBInformeListadoRecibos: TfrxDBDataset;
tbl_InformeListadoRecibosResumen: TDAMemDataTable;
DADSInformeListadoRecibosResumen: TDADataSource;
frxDBInformeListadoRecibosResumen: TfrxDBDataset;
Bin2DataStreamer: TDABin2DataStreamer;
frxDBInformeListadoRecibosPendientes: TfrxDBDataset;
DADSInformeListadoRecibosPendientes: TDADataSource;
tbl_InformeListadoRecibosPendientes: TDAMemDataTable;
frxDBInformeListadoRecibosPendResumen: TfrxDBDataset;
DADSInformeListadoRecibosPendResumen: TDADataSource;
tbl_InformeListadoRecibosPendResumen: TDAMemDataTable;
schReport: TDASchema; schReport: TDASchema;
DataDictionary: TDADataDictionary; DataDictionary: TDADataDictionary;
procedure DataModuleCreate(Sender: TObject); procedure DataModuleCreate(Sender: TObject);
private private
FConnection: IDAConnection; FConnection: IDAConnection;
function _GenerarInforme(const TipoInforme: String; const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const ImporteMinimo: Currency): Binary; FIdEmpresa: Integer;
FFechaInicio: Variant;
FFechaFin: Variant;
FFechaVenInicio: Variant;
FFechaVenFin: Variant;
FListaIDProveedores: TIntegerArray;
FImporteMinimo: Currency;
procedure PrepararTablaInforme(ATabla: TDAMemDataTable);
procedure PrepararTablaResumenInforme(ATabla: IDADataset);
function _GenerarInforme(const TipoInforme: String): Binary;
public public
function GenerarInformeListadoRecibos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; function GenerarInformeListadoRecibos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
function GenerarInformeListadoRecibosPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; function GenerarInformeListadoRecibosPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
@ -45,7 +64,7 @@ implementation
{$R *.dfm} {$R *.dfm}
uses uses
uSistemaFunc, uDataModuleServer, schRecibosProveedorClient_Intf; uSistemaFunc, StrUtils, uDataModuleServer, schRecibosProveedorClient_Intf;
const const
rptInforme = 'InfReciboProveedor.fr3'; rptInforme = 'InfReciboProveedor.fr3';
@ -57,6 +76,9 @@ const
{ Dataset names for schReport } { Dataset names for schReport }
ds_InformeCabecera = 'Informe_Cabecera'; ds_InformeCabecera = 'Informe_Cabecera';
ds_InformeCompensados = 'Informe_Compensados'; ds_InformeCompensados = 'Informe_Compensados';
ds_InformeListadoRecibosResumen = 'InformeListadoRecibosResumen';
ds_InformeListadoREcibosPendientesResumen = 'InformeListadoRecibosPendientesResumen';
{ TRptReciboProveedor } { TRptReciboProveedor }
@ -78,15 +100,61 @@ function TRptRecibosProveedor.GenerarInformeListadoRecibos(
const ImporteMinimo: Currency): Binary; const ImporteMinimo: Currency): Binary;
var var
ATipoInforme: String; ATipoInforme: String;
begin AStream: TMemoryStream;
dsMaster: IDADataset;
//DESGLOSADO POR PROVEEDOR EN ESTE INFORME NO SE DESGLOSARÁ POR PROVEEDOR begin
FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
AStream := TMemoryStream.Create;
try
//Inicializamos parametros
FIdEmpresa := IdEmpresa;
FFechaInicio := FechaInicio;
FFechaFin := FechaFin;
FFechaVenInicio := FechaVenInicio;
FFechaVenFin := FechaVenFin;
FImporteMinimo := ImporteMinimo;
if Assigned(FListaIDProveedores) then
FListaIDProveedores.Free;
FListaIDProveedores := ListaIDProveedores;
//Se prepara la tabla del listado general del informe
if tbl_InformeListadoRecibos.Active then
tbl_InformeListadoRecibos.Active := False;
PrepararTablaInforme(tbl_InformeListadoRecibos);
//Se prepara la tabla del listado resumen del informe
if tbl_InformeListadoRecibosResumen.Active then
tbl_InformeListadoRecibosResumen.Active := False;
dsMaster := schReport.NewDataset(FConnection, ds_InformeListadoRecibosResumen, [], [], False);
PrepararTablaResumenInforme(dsMaster);
// Filtrar el informe por situacion
//Esto se hace para rellenar la tabla del datamodule que usa el informe.
dsMaster.Open;
AStream.Clear;
Bin2DataStreamer.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1);
Bin2DataStreamer.ReadDataset(AStream, tbl_InformeListadoRecibosResumen, TRUE, '', TRUE, TRUE);
//DESGLOSADO POR PROVEEDOR EN ESTE INFORME NO SE DESGLOSARÁ POR PROVEEDOR
if Desglosado then if Desglosado then
ATipoInforme := rptInformeListadoRecibosProveedorDesglosado ATipoInforme := rptInformeListadoRecibosProveedorDesglosado
else else
ATipoInforme := rptInformeListadoRecibosProveedor; ATipoInforme := rptInformeListadoRecibosProveedor;
Result := _GenerarInforme(ATipoInforme, IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDProveedores, ImporteMinimo); //Finalmente se abren las tablas del informe
tbl_InformeListadoRecibos.Active := True;
tbl_InformeListadoRecibosResumen.Active := True;
Result := _GenerarInforme(ATipoInforme);
finally
AStream.Free;
dsMaster := Nil;
FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
end;
end; end;
function TRptRecibosProveedor.GenerarInformeListadoRecibosPendientes( function TRptRecibosProveedor.GenerarInformeListadoRecibosPendientes(
@ -97,15 +165,35 @@ function TRptRecibosProveedor.GenerarInformeListadoRecibosPendientes(
var var
Condicion: TDAWhereExpression; Condicion: TDAWhereExpression;
ATipoInforme: String; ATipoInforme: String;
AStream: TMemoryStream;
dsMaster: IDADataset;
begin begin
if tbl_InformeListadoRecibos.Active then FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
tbl_InformeListadoRecibos.Active := False;
AStream := TMemoryStream.Create;
try
//Inicializamos parametros
FIdEmpresa := IdEmpresa;
FFechaInicio := FechaInicio;
FFechaFin := FechaFin;
FFechaVenInicio := FechaVenInicio;
FFechaVenFin := FechaVenFin;
FImporteMinimo := ImporteMinimo;
if Assigned(FListaIDProveedores) then
FListaIDProveedores.Free;
FListaIDProveedores := ListaIDProveedores;
//Se prepara la tabla del listado general del informe
if tbl_InformeListadoRecibosPendientes.Active then
tbl_InformeListadoRecibosPendientes.Active := False;
PrepararTablaInforme(tbl_InformeListadoRecibosPendientes);
// Filtrar el informe por situacion // Filtrar el informe por situacion
with tbl_InformeListadoRecibos.DynamicWhere do with tbl_InformeListadoRecibosPendientes.DynamicWhere do
begin begin
// (ID_EMPRESA >= ID) // (SITUACION <> PAGADO)
Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorSITUACION), NewConstant('PAGADO', datString), dboNotEqual); Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorSITUACION), NewConstant('PAGADO', datString), dboNotEqual);
if IsEmpty then if IsEmpty then
Expression := Condicion Expression := Condicion
@ -113,126 +201,186 @@ begin
Expression := NewBinaryExpression(Expression, Condicion, dboAnd); Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end; end;
//Se prepara la tabla del listado resumen del informe
if tbl_InformeListadoRecibosPendResumen.Active then
tbl_InformeListadoRecibosPendResumen.Active := False;
//DESGLOSADO POR PROVEEDOR EN ESTE INFORME NO SE DESGLOSARÁ POR PROVEEDOR dsMaster := schReport.NewDataset(FConnection, ds_InformeListadoRecibosPendientesResumen, [], [], False);
PrepararTablaResumenInforme(dsMaster);
// Filtrar el informe por situacion
dsMaster.Where.AddText(' AND (SITUACION <> ''PAGADO'')');
//Esto se hace para rellenar la tabla del datamodule que usa el informe.
dsMaster.Open;
AStream.Clear;
Bin2DataStreamer.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1);
Bin2DataStreamer.ReadDataset(AStream, tbl_InformeListadoRecibosPendResumen, TRUE, '', TRUE, TRUE);
//DESGLOSADO POR PROVEEDOR EN ESTE INFORME NO SE DESGLOSARÁ POR PROVEEDOR
if Desglosado then if Desglosado then
ATipoInforme := rptInformeListadoRecibosProvPendientesDesglosado ATipoInforme := rptInformeListadoRecibosProvPendientesDesglosado
else else
ATipoInforme := rptInformeListadoRecibosProvPendientes; ATipoInforme := rptInformeListadoRecibosProvPendientes;
Result := _GenerarInforme(ATipoInforme, IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDProveedores, ImporteMinimo); //Finalmente se abren las tablas del informe
tbl_InformeListadoRecibosPendientes.Active := True;
tbl_InformeListadoRecibosPendResumen.Active := True;
Result := _GenerarInforme(ATipoInforme);
finally
AStream.Free;
dsMaster := Nil;
FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
end;
end; end;
function TRptRecibosProveedor._GenerarInforme(const TipoInforme: String; procedure TRptRecibosProveedor.PrepararTablaInforme(ATabla: TDAMemDataTable);
const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
const FechaVenInicio, FechaVenFin: Variant;
const ListaIDProveedores: TIntegerArray;
const ImporteMinimo: Currency): Binary;
var var
Condicion: TDAWhereExpression; Condicion: TDAWhereExpression;
i: Integer; i: Integer;
AInforme: Variant;
begin begin
Result := Binary.Create; // Filtrar el informe por empresa
FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" with ATabla.DynamicWhere do
begin
// (ID_EMPRESA >= ID)
Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorID_EMPRESA), NewConstant(FIdEmpresa, datInteger), dboEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
try // Filtrar el informe por fechas
if not VarIsNull(FFechaInicio)
if tbl_InformeListadoRecibos.Active then and not VarIsNull(FFechaFin) then
tbl_InformeListadoRecibos.Active := False; begin
with ATabla.DynamicWhere do
// Filtrar el informe por empresa
with tbl_InformeListadoRecibos.DynamicWhere do
begin begin
// (ID_EMPRESA >= ID) // (FECHA_INICIO between FECHA_FIN)
Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorID_EMPRESA), NewConstant(IdEmpresa, datInteger), dboEqual); Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorFECHA_EMISION), NewConstant(FFechaInicio, datDateTime), dboGreaterOrEqual);
Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_RecibosProveedorFECHA_EMISION), NewConstant(FFechaFin, datDateTime), dboLessOrEqual), Condicion, dboAnd);
if IsEmpty then if IsEmpty then
Expression := Condicion Expression := Condicion
else else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd); Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end; end;
end;
// Filtrar el informe por fechas // Filtrar el informe por fechas de vencimiento
if not VarIsNull(FechaInicio) if not VarIsNull(FFechaVenInicio)
and not VarIsNull(FechaFin) then and not VarIsNull(FFechaVenFin) then
begin
with ATabla.DynamicWhere do
begin begin
with tbl_InformeListadoRecibos.DynamicWhere do // (FECHA_VENCIMIENTO_INICIO between FECHA_VENCIMIENTO_FIN)
Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorFECHA_VENCIMIENTO), NewConstant(FFechaVenInicio, datDateTime), dboGreaterOrEqual);
Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_RecibosProveedorFECHA_VENCIMIENTO), NewConstant(FFechaVenFin, datDateTime), dboLessOrEqual), Condicion, dboAnd);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
end;
// Filtrar el informe por proveedor
if Assigned(FListaIDProveedores) then
begin
with ATabla.DynamicWhere do
begin
for i := 0 to FListaIDProveedores.Count - 1 do
begin begin
// (FECHA_INICIO between FECHA_FIN)
Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorFECHA_EMISION), NewConstant(FechaInicio, datDateTime), dboGreaterOrEqual); // (ID_PROVEEDOR = ID)
Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_RecibosProveedorFECHA_EMISION), NewConstant(FechaFin, datDateTime), dboLessOrEqual), Condicion, dboAnd); Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorID_PROVEEDOR), NewConstant(FListaIDProveedores.Items[i], datInteger), dboEqual);
if IsEmpty then if IsEmpty then
Expression := Condicion Expression := Condicion
else else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd); Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end; end;
end; end;
end;
// Filtrar el informe por fechas de vencimiento // Filtrar el informe por importe minimo
if not VarIsNull(FechaVenInicio) if (FImporteMinimo > 0) then
and not VarIsNull(FechaVenFin) then begin
with ATabla.DynamicWhere do
begin begin
with tbl_InformeListadoRecibos.DynamicWhere do // (IMPORTE_TOTAL > ImporteMinimo)
begin Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorIMPORTE_TOTAL), NewConstant(FImporteMinimo, datCurrency), dboGreaterOrEqual);
// (FECHA_VENCIMIENTO_INICIO between FECHA_VENCIMIENTO_FIN) if IsEmpty then
Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorFECHA_VENCIMIENTO), NewConstant(FechaVenInicio, datDateTime), dboGreaterOrEqual); Expression := Condicion
Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_RecibosProveedorFECHA_VENCIMIENTO), NewConstant(FechaVenFin, datDateTime), dboLessOrEqual), Condicion, dboAnd); else
if IsEmpty then Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
end; end;
// Filtrar el informe por proveedor
if Assigned(ListaIDProveedores) then
begin
with tbl_InformeListadoRecibos.DynamicWhere do
begin
for i := 0 to ListaIDProveedores.Count - 1 do
begin
// (ID_PROVEEDOR = ID)
Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorID_PROVEEDOR), NewConstant(ListaIDProveedores.Items[i], datInteger), dboEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
end;
end;
// Filtrar el informe por importe minimo
if (ImporteMinimo > 0) then
begin
with tbl_InformeListadoRecibos.DynamicWhere do
begin
// (IMPORTE_TOTAL > ImporteMinimo)
Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorIMPORTE_TOTAL), NewConstant(ImporteMinimo, datCurrency), dboGreaterOrEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
end;
tbl_InformeListadoRecibos.Active := True;
AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, IntToStr(IdEmpresa));
if VarIsNull(AInforme) then
raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe ' + TipoInforme));
frxReport.LoadFromFile(AInforme, True);
frxReport.Variables.Variables['FechaInicio'] := FechaInicio;
frxReport.Variables.Variables['FechaFin'] := FechaFin;
frxReport.PrepareReport(False);
frxReport.PreviewPages.SaveToStream(Result);
finally
FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
end; end;
end; end;
procedure TRptRecibosProveedor.PrepararTablaResumenInforme(ATabla: IDADataset);
var
i: Integer;
AWhereStr : String;
begin
// Filtrar el informe por empresa
AWhereStr := ' (' + fld_RecibosProveedorID_EMPRESA + ' = ' + IntToStr(FIdEmpresa) + ') ';
// Filtrar el informe por fechas
if not VarIsNull(FFechaInicio)
and not VarIsNull(FFechaFin) then
begin
if Length(AWhereStr) > 0 then
AWhereStr := AWhereStr + 'AND';
AWhereStr := AWhereStr + ' (' + fld_RecibosProveedorFECHA_EMISION + ' between ''' + ReplaceStr(VarToStr(FFechaInicio),'/','.') + ''' and ''' + ReplaceStr(VarToStr(FFechaFin),'/','.') + ''') ';
end;
// Filtrar el informe por fechas de vencimiento
if not VarIsNull(FFechaVenInicio)
and not VarIsNull(FFechaVenFin) then
begin
if Length(AWhereStr) > 0 then
AWhereStr := AWhereStr + 'AND';
AWhereStr := AWhereStr + ' (' + fld_RecibosProveedorFECHA_VENCIMIENTO + ' between ''' + ReplaceStr(VarToStr(FFechaVenInicio),'/','.') + ''' and ''' + ReplaceStr(VarToStr(FFechaVenFin),'/','.') + ''') ';
end;
// Filtrar el informe por proveedor
if Assigned(FListaIDProveedores) then
begin
for i := 0 to FListaIDProveedores.Count - 1 do
begin
if Length(AWhereStr) > 0 then
AWhereStr := AWhereStr + 'AND';
AWhereStr := AWhereStr + ' (' + fld_RecibosProveedorID_PROVEEDOR + ' = ' + IntToStr(FListaIDProveedores.Items[i]) + ') ';
end;
end;
// Filtrar el informe por importe minimo
if (FImporteMinimo > 0) then
begin
if Length(AWhereStr) > 0 then
AWhereStr := AWhereStr + 'AND';
AWhereStr := AWhereStr + ' (' + fld_RecibosProveedorIMPORTE_TOTAL + ' >= ' + CurrToStr(FImporteMinimo) + ') ';
end;
ATabla.Where.AddText(AWhereStr);
end;
function TRptRecibosProveedor._GenerarInforme(const TipoInforme: String): Binary;
var
AInforme: Variant;
begin
Result := Binary.Create;
AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, IntToStr(FIdEmpresa));
if VarIsNull(AInforme) then
raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe ' + TipoInforme));
frxReport.LoadFromFile(AInforme, True);
frxReport.Variables.Variables['FechaInicio'] := FFechaInicio;
frxReport.Variables.Variables['FechaFin'] := FFechaFin;
frxReport.PrepareReport(False);
frxReport.PreviewPages.SaveToStream(Result);
end;
end. end.

Binary file not shown.

View File

@ -14,7 +14,7 @@ BEGIN
BEGIN BEGIN
VALUE "FileVersion", "1.6.5.0\0" VALUE "FileVersion", "1.6.5.0\0"
VALUE "ProductVersion", "1.6.5.0\0" VALUE "ProductVersion", "1.6.5.0\0"
VALUE "CompileDate", "jueves, 22 de enero de 2009 16:22\0" VALUE "CompileDate", "viernes, 23 de enero de 2009 18:57\0"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"