Informes de pedidos de proveedor adaptados al resumen

git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@881 0c75b7a4-871f-7646-8a2f-f78d34cc349f
This commit is contained in:
roberto 2009-01-23 17:54:44 +00:00
parent 1109c4fb6e
commit a8fd42f4df
11 changed files with 540 additions and 336 deletions

View File

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

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

@ -178,6 +178,9 @@ inherited fEditorInformePedidosReport: TfEditorInformePedidosReport
inherited TBXAlignmentPanel1: TTBXAlignmentPanel inherited TBXAlignmentPanel1: TTBXAlignmentPanel
Width = 182 Width = 182
ExplicitWidth = 182 ExplicitWidth = 182
inherited cbxDesglosado: TCheckBox
Caption = 'Solo pedidos que superen:'
end
inherited eImporte: TcxSpinEdit inherited eImporte: TcxSpinEdit
Style.LookAndFeel.SkinName = '' Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = ''

View File

@ -49,7 +49,7 @@ implementation
{$R *.dfm} {$R *.dfm}
uses uROTypes, uGestorInformesController, uFactuGES_App; uses uROTypes, DateUtils, uGestorInformesController, uFactuGES_App;
{ TfEditorGestorInformesReport } { TfEditorGestorInformesReport }
@ -82,6 +82,10 @@ end;
function TfEditorInformePresupuestosReport.GetFechaFin: Variant; function TfEditorInformePresupuestosReport.GetFechaFin: Variant;
begin begin
Result := frViewPeriodoFechas1.edtFechaFin.EditValue; Result := frViewPeriodoFechas1.edtFechaFin.EditValue;
//Esto es para quitar la hora del timestamp para que luego no me redondee al dia siguiente
if not VarIsNull(Result) then
Result := DateOf(frViewPeriodoFechas1.edtFechaFin.Date);
end; end;
function TfEditorInformePresupuestosReport.GetFechaInicio: Variant; function TfEditorInformePresupuestosReport.GetFechaInicio: Variant;

View File

@ -11,7 +11,7 @@ uses
uEditorRegistryUtils, uEditorRegistryUtils,
uEditorInformeIVAClientesReport, uEditorInformeFacturasClienteReport, uEditorInformeFacturasClientePendientesReport, uEditorInformeIVAClientesReport, uEditorInformeFacturasClienteReport, uEditorInformeFacturasClientePendientesReport,
uEditorInformeRecibosClienteReport, uEditorInformeRecibosCliPendientesReport, uEditorInformeRecibosClienteReport, uEditorInformeRecibosCliPendientesReport,
uEditorInformePresupuestosReport, uEditorInformePresupuestosReport, uEditorInformePedidosReport,
uEditorInformeIVAProveedoresReport, uEditorInformeFacturasProveedorReport, uEditorInformeFacturasProveedorPendientesReport, uEditorInformeIVAProveedoresReport, uEditorInformeFacturasProveedorReport, uEditorInformeFacturasProveedorPendientesReport,
uEditorInformeRecibosProveedorReport, uEditorInformeRecibosProvPendientesReport; uEditorInformeRecibosProveedorReport, uEditorInformeRecibosProvPendientesReport;
@ -19,6 +19,7 @@ uses
procedure RegisterViews; procedure RegisterViews;
begin begin
EditorRegistry.RegisterClass(TfEditorInformePresupuestosReport, 'EditorInformePresupuestosReport'); EditorRegistry.RegisterClass(TfEditorInformePresupuestosReport, 'EditorInformePresupuestosReport');
EditorRegistry.RegisterClass(TfEditorInformePedidosReport, 'EditorInformePedidosReport');
EditorRegistry.RegisterClass(TfEditorInformeIVAClientesReport, 'EditorInformeIVAClientesReport'); EditorRegistry.RegisterClass(TfEditorInformeIVAClientesReport, 'EditorInformeIVAClientesReport');
EditorRegistry.RegisterClass(TfEditorInformeFacturasClienteReport, 'EditorInformeFacturasClienteReport'); EditorRegistry.RegisterClass(TfEditorInformeFacturasClienteReport, 'EditorInformeFacturasClienteReport');
EditorRegistry.RegisterClass(TfEditorInformeFacturasClientePendientesReport, 'EditorInformeFacturasClientePendientesReport'); EditorRegistry.RegisterClass(TfEditorInformeFacturasClientePendientesReport, 'EditorInformeFacturasClientePendientesReport');
@ -35,6 +36,7 @@ end;
procedure UnregisterViews; procedure UnregisterViews;
begin begin
EditorRegistry.UnRegisterClass(TfEditorInformePresupuestosReport); EditorRegistry.UnRegisterClass(TfEditorInformePresupuestosReport);
EditorRegistry.UnRegisterClass(TfEditorInformePedidosReport);
EditorRegistry.UnRegisterClass(TfEditorInformeIVAClientesReport); EditorRegistry.UnRegisterClass(TfEditorInformeIVAClientesReport);
EditorRegistry.UnRegisterClass(TfEditorInformeFacturasClienteReport); EditorRegistry.UnRegisterClass(TfEditorInformeFacturasClienteReport);
EditorRegistry.UnRegisterClass(TfEditorInformeFacturasClientePendientesReport); EditorRegistry.UnRegisterClass(TfEditorInformeFacturasClientePendientesReport);

View File

@ -3,10 +3,6 @@ object RptPedidosProveedor: TRptPedidosProveedor
OnCreate = DataModuleCreate OnCreate = DataModuleCreate
Height = 522 Height = 522
Width = 766 Width = 766
object DABINAdapter: TDABINAdapter
Left = 48
Top = 80
end
object schReport: TDASchema object schReport: TDASchema
ConnectionManager = dmServer.ConnectionManager ConnectionManager = dmServer.ConnectionManager
DataDictionary = DataDictionary DataDictionary = DataDictionary
@ -472,6 +468,85 @@ object RptPedidosProveedor: TRptPedidosProveedor
Size = 255 Size = 255
end> end>
ReadOnly = True ReadOnly = True
end
item
Params = <>
Statements = <
item
Connection = 'IBX'
TargetTable = 'V_PEDIDOS_PROVEEDOR'
SQL =
#10' '#10'select ID_EMPRESA,'#10'extract (year from fecha_pedido) as ANO,'#10 +
'extract (month from fecha_pedido) as MES,'#10'case'#10'when extract (mon' +
'th from fecha_pedido) = 1 then '#39'ENERO - '#39' || extract (year from ' +
'fecha_pedido)'#10'when extract (month from fecha_pedido) = 2 then '#39'F' +
'EBRERO - '#39' || extract (year from fecha_pedido)'#10'when extract (mon' +
'th from fecha_pedido) = 3 then '#39'MARZO - '#39' || extract (year from ' +
'fecha_pedido)'#10'when extract (month from fecha_pedido) = 4 then '#39'A' +
'BRIL - '#39' || extract (year from fecha_pedido)'#10'when extract (month' +
' from fecha_pedido) = 5 then '#39'MAYO - '#39' || extract (year from fec' +
'ha_pedido)'#10'when extract (month from fecha_pedido) = 6 then '#39'JUNI' +
'O - '#39' || extract (year from fecha_pedido)'#10'when extract (month fr' +
'om fecha_pedido) = 7 then '#39'JULIO - '#39' || extract (year from fecha' +
'_pedido)'#10'when extract (month from fecha_pedido) = 8 then '#39'AGOSTO' +
' - '#39' || extract (year from fecha_pedido)'#10'when extract (month fro' +
'm fecha_pedido) = 9 then '#39'SEPTIEMBRE - '#39' || extract (year from f' +
'echa_pedido)'#10'when extract (month from fecha_pedido) = 10 then '#39'O' +
'CTUBRE - '#39' || extract (year from fecha_pedido)'#10'when extract (mon' +
'th from fecha_pedido) = 11 then '#39'NOVIEMBRE - '#39' || extract (year ' +
'from fecha_pedido)'#10'when extract (month from fecha_pedido) = 12 t' +
'hen '#39'DICIEMBRE - '#39' || extract (year from fecha_pedido)'#10'end as TI' +
'TULO,'#10'sum(IMPORTE_TOTAL) as importe_total'#10#10'from V_PEDIDOS_PROVEE' +
'DOR'#10'group by 1,2,3,4'#10'order by ANO, MES'#10
StatementType = stSQL
ColumnMappings = <
item
DatasetField = 'ID_EMPRESA'
TableField = 'ID_EMPRESA'
end
item
DatasetField = 'ANO'
TableField = '<unknown>'
SQLOrigin = 'ANO'
end
item
DatasetField = 'MES'
TableField = '<unknown>'
SQLOrigin = 'MES'
end
item
DatasetField = 'TITULO'
TableField = '<unknown>'
SQLOrigin = 'TITULO'
end
item
DatasetField = 'IMPORTE_TOTAL'
TableField = 'IMPORTE_TOTAL'
end>
end>
Name = 'InformeListadoPedidosResumen'
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 = <>
@ -496,68 +571,17 @@ object RptPedidosProveedor: TRptPedidosProveedor
PreviewOptions.Zoom = 1.000000000000000000 PreviewOptions.Zoom = 1.000000000000000000
PrintOptions.Printer = 'Por defecto' PrintOptions.Printer = 'Por defecto'
PrintOptions.PrintOnSheet = 0 PrintOptions.PrintOnSheet = 0
ReportOptions.CreateDate = 39065.872423495400000000 ReportOptions.CreateDate = 37800.807714351900000000
ReportOptions.LastChange = 39827.743311446760000000 ReportOptions.LastChange = 39836.753662280090000000
ScriptLanguage = 'PascalScript' ScriptLanguage = 'PascalScript'
ScriptText.Strings = ( ScriptText.Strings = (
'' 'procedure frxReportOnStartReport(Sender: TfrxComponent);'
'procedure DatosEmpresaOnBeforePrint(Sender: TfrxComponent);'
'var'
' Cadena: String;'
'begin' 'begin'
'{ DatosEmpresa.Lines.Clear;' ' Set('#39'Pagina'#39', 0);'
' if (<frxDBCabecera."TELEFONO_1_EMPRESA"> <> '#39#39') then' ' Set('#39'TotalPaginas'#39', 0); '
' Cadena := '#39'TLF: '#39' + <frxDBCabecera."TELEFONO_1_EMPRESA">;'
' if (<frxDBCabecera."FAX_EMPRESA"> <> '#39#39') then'
' Cadena := Cadena + '#39' FAX: '#39' + <frxDBCabecera."FAX_EMPRESA' +
'">;'
' DatosEmpresa.Lines.Add(Cadena);'
'}'
'end;' 'end;'
'' ''
'procedure NombreEmpresaOnBeforePrint(Sender: TfrxComponent);' 'procedure Band1OnBeforePrint(Sender: TfrxComponent);'
'begin'
'{ NombreEmpresa.Lines.Clear;'
' NombreEmpresa.Lines.Add(<frxDBCabecera."NOMBRE_EMPRESA">);'
'}'
'end;'
''
'procedure Memo11OnBeforePrint(Sender: TfrxComponent);'
'begin'
' if <frxDBCabecera."FECHA_ENTREGA"> = 0 then'
' Memo11.Visible := False ' +
' '
' else'
' Memo11.Visible := True; '
'end;'
''
'procedure Memo35OnBeforePrint(Sender: TfrxComponent);'
'begin'
' if not <ImprimirPrecio> then ' +
' '
' Memo35.Lines.Clear; '
'end;'
''
'procedure Memo36OnBeforePrint(Sender: TfrxComponent);'
'begin'
' if not <ImprimirPrecio> then ' +
' '
' Memo36.Lines.Clear; '
'end;'
''
'procedure Memo6OnBeforePrint(Sender: TfrxComponent);'
'begin'
' if not <ImprimirRefProveedor> then ' +
' '
' Memo6.Lines.Clear; '
'end;'
''
'procedure PageHeader2OnBeforePrint(Sender: TfrxComponent);'
'begin' 'begin'
' if not Engine.FinalPass then' ' if not Engine.FinalPass then'
' Set('#39'TotalPaginas'#39', (<TotalPaginas> + 1));' ' Set('#39'TotalPaginas'#39', (<TotalPaginas> + 1));'
@ -566,18 +590,26 @@ object RptPedidosProveedor: TRptPedidosProveedor
' Set('#39'Pagina'#39', (<Pagina> + 1)); ' ' Set('#39'Pagina'#39', (<Pagina> + 1)); '
'end;' 'end;'
'' ''
'procedure frxReportOnStartReport(Sender: TfrxComponent);' 'procedure mContinuaOnBeforePrint(Sender: TfrxComponent);'
'begin'
' Set('#39'Pagina'#39', 0);'
' Set('#39'TotalPaginas'#39', 0); '
'end;'
''
'procedure Memo34OnBeforePrint(Sender: TfrxComponent);'
'begin' 'begin'
' if Engine.FinalPass then'
' begin'
' if not <ImprimirPrecio> then ' + ' //A la vez que salta este salta la asignacion de pagina por ' +
' ' 'lo que no coincide nunca si no suponemos +1 ' +
' Memo34.Lines.Clear; ' ' ' +
' ' +
' ' +
' '
' if ((<Pagina> + 1) = <TotalPaginas>) then'
' begin '
' mContinua.Visible := True;'
' end '
' else'
' begin '
' mContinua.Visible := False;'
' end '
' end; '
'end;' 'end;'
'' ''
'begin' 'begin'
@ -913,7 +945,7 @@ object RptPedidosProveedor: TRptPedidosProveedor
StreamingOptions = [soDisableEventsWhileStreaming] StreamingOptions = [soDisableEventsWhileStreaming]
RemoteFetchEnabled = False RemoteFetchEnabled = False
LocalSchema = schReport LocalSchema = schReport
LocalDataStreamer = DABINAdapter LocalDataStreamer = DABin2DataStreamer1
DetailFields = 'ID_PEDIDO' DetailFields = 'ID_PEDIDO'
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]
@ -1005,7 +1037,7 @@ object RptPedidosProveedor: TRptPedidosProveedor
StreamingOptions = [soDisableEventsWhileStreaming] StreamingOptions = [soDisableEventsWhileStreaming]
RemoteFetchEnabled = False RemoteFetchEnabled = False
LocalSchema = schReport LocalSchema = schReport
LocalDataStreamer = DABINAdapter LocalDataStreamer = DABin2DataStreamer1
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'
@ -1096,7 +1128,7 @@ object RptPedidosProveedor: TRptPedidosProveedor
StreamingOptions = [soDisableEventsWhileStreaming] StreamingOptions = [soDisableEventsWhileStreaming]
RemoteFetchEnabled = False RemoteFetchEnabled = False
LocalSchema = schReport LocalSchema = schReport
LocalDataStreamer = DABINAdapter LocalDataStreamer = DABin2DataStreamer1
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 = 'InformeListadoPedidos' LogicalName = 'InformeListadoPedidos'
@ -1104,4 +1136,35 @@ object RptPedidosProveedor: TRptPedidosProveedor
Left = 600 Left = 600
Top = 136 Top = 136
end end
object frxDBInformeListadoPedidosResumen: TfrxDBDataset
UserName = 'frxDBInformeListadoPedidosResumen'
CloseDataSource = True
DataSource = DADSInformeListadoPedidosResumen
Left = 600
Top = 208
end
object DADSInformeListadoPedidosResumen: TDADataSource
DataSet = tbl_InformeListadoPedidosResumen.Dataset
DataTable = tbl_InformeListadoPedidosResumen
Left = 600
Top = 264
end
object tbl_InformeListadoPedidosResumen: 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 = 600
Top = 320
end
object DABin2DataStreamer1: TDABin2DataStreamer
Left = 48
Top = 80
end
end end

View File

@ -8,11 +8,10 @@ uses
uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient, uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient,
frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes, frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes,
uDAInterfaces, uDADataStreamer, IBCustomDataSet, IBQuery, IBDatabase, uDAInterfaces, uDADataStreamer, IBCustomDataSet, IBQuery, IBDatabase,
uDAMemDataTable, frxExportPDF, FactuGES_Intf; uDAMemDataTable, frxExportPDF, FactuGES_Intf, uDABin2DataStreamer;
type type
TRptPedidosProveedor = class(TDataModule) TRptPedidosProveedor = class(TDataModule)
DABINAdapter: TDABINAdapter;
frxDBCabecera: TfrxDBDataset; frxDBCabecera: TfrxDBDataset;
frxDBDetalles: TfrxDBDataset; frxDBDetalles: TfrxDBDataset;
frxReport: TfrxReport; frxReport: TfrxReport;
@ -63,16 +62,29 @@ type
frxDBInformeListadoPedidos: TfrxDBDataset; frxDBInformeListadoPedidos: TfrxDBDataset;
DADSInformeListadoPedidos: TDADataSource; DADSInformeListadoPedidos: TDADataSource;
tbl_InformeListadoPedidos: TDAMemDataTable; tbl_InformeListadoPedidos: TDAMemDataTable;
frxDBInformeListadoPedidosResumen: TfrxDBDataset;
DADSInformeListadoPedidosResumen: TDADataSource;
tbl_InformeListadoPedidosResumen: TDAMemDataTable;
schReport: TDASchema; schReport: TDASchema;
DataDictionary: TDADataDictionary; DataDictionary: TDADataDictionary;
DABin2DataStreamer1: TDABin2DataStreamer;
procedure DataModuleCreate(Sender: TObject); procedure DataModuleCreate(Sender: TObject);
procedure frxReportGetValue(const VarName: string; var Value: Variant); procedure frxReportGetValue(const VarName: string; var Value: Variant);
private private
FConnection: IDAConnection; FConnection: IDAConnection;
FIdEmpresa: Integer;
FFechaInicio: Variant;
FFechaFin: Variant;
FListaIDProveedores: TIntegerArray;
FImporteMinimo: Currency;
FImprimirPrecio : Boolean; FImprimirPrecio : Boolean;
FImprimirRefProveedor : Boolean; FImprimirRefProveedor : Boolean;
procedure _GenerarPedido(const ID : Integer); procedure _GenerarPedido(const ID : Integer);
function _GenerarInforme(const TipoInforme: String; const IdEmpresa: Integer; const FechaInicio: DateTime; const FechaFin: DateTime; const ListaIDClientes: TIntegerArray; const ImporteMinimo: Currency): Binary;
procedure PrepararTablaInforme(ATabla: TDAMemDataTable);
procedure PrepararTablaResumenInforme(ATabla: IDADataset);
function _GenerarInforme(const TipoInforme: String): Binary;
public public
function GenerarPedido(const ListaID : TIntegerArray; function GenerarPedido(const ListaID : TIntegerArray;
@ -83,7 +95,7 @@ type
const ImprimirPrecio: Boolean = True; const ImprimirPrecio: Boolean = True;
const ImprimirRefProveedor: Boolean = True): Binary; const ImprimirRefProveedor: Boolean = True): Binary;
function GenerarInformeListadoPedidos(const IdEmpresa: Integer; const FechaInicio, FechaFin: DateTime; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; function GenerarInformeListadoPedidos(const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
end; end;
implementation implementation
@ -91,7 +103,7 @@ implementation
{$R *.dfm} {$R *.dfm}
uses uses
uSistemaFunc, uDataModuleServer, schPedidosProveedorClient_Intf; uSistemaFunc, StrUtils, uDataModuleServer, schPedidosProveedorClient_Intf;
const const
rptInforme = 'InfPedidoProveedor.fr3'; rptInforme = 'InfPedidoProveedor.fr3';
@ -99,6 +111,7 @@ const
rptInformeListadoPedidos = 'InformeListadoPedidos.fr3'; rptInformeListadoPedidos = 'InformeListadoPedidos.fr3';
{ Dataset names for schReport } { Dataset names for schReport }
ds_InformeListadoPedidosResumen = 'InformeListadoPedidosResumen';
ds_InformeCabecera = 'Informe_Cabecera'; ds_InformeCabecera = 'Informe_Cabecera';
ds_InformeDetalles = 'Informe_Detalles'; ds_InformeDetalles = 'Informe_Detalles';
@ -114,7 +127,6 @@ begin
frxDBCabecera.DataSource := DADSCabecera; frxDBCabecera.DataSource := DADSCabecera;
frxDBDetalles.DataSource := DADSDetalles; frxDBDetalles.DataSource := DADSDetalles;
end; end;
procedure TRptPedidosProveedor.frxReportGetValue(const VarName: string; procedure TRptPedidosProveedor.frxReportGetValue(const VarName: string;
@ -127,22 +139,61 @@ begin
end; end;
function TRptPedidosProveedor.GenerarInformeListadoPedidos( function TRptPedidosProveedor.GenerarInformeListadoPedidos(
const IdEmpresa: Integer; const FechaInicio, FechaFin: DateTime; const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean;
const ImporteMinimo: Currency): Binary; const ImporteMinimo: Currency): Binary;
var var
ATipoInforme: String; ATipoInforme: String;
AStream: TMemoryStream;
dsMaster: IDADataset;
begin begin
FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
//DESGLOSADO POR CLIENTE EN ESTE INFORME NO SE DESGLOSARÁ POR CLIENTE AStream := TMemoryStream.Create;
try
//Inicializamos parametros
FIdEmpresa := IdEmpresa;
FFechaInicio := FechaInicio;
FFechaFin := FechaFin;
FImporteMinimo := ImporteMinimo;
if Assigned(FListaIDProveedores) then
FListaIDProveedores.Free;
FListaIDProveedores := ListaIDProveedores;
if tbl_InformeListadoPedidos.Active then
tbl_InformeListadoPedidos.Active := False;
PrepararTablaInforme(tbl_InformeListadoPedidos);
//Se prepara la tabla del listado resumen del informe
if tbl_InformeListadoPedidosResumen.Active then
tbl_InformeListadoPedidosResumen.Active := False;
dsMaster := schReport.NewDataset(FConnection, ds_InformeListadoPedidosResumen, [], [], False);
PrepararTablaResumenInforme(dsMaster);
//Esto se hace para rellenar la tabla del datamodule que usa el informe.
dsMaster.Open;
AStream.Clear;
DABin2DataStreamer1.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1);
DABin2DataStreamer1.ReadDataset(AStream, tbl_InformeListadoPedidosResumen, TRUE, '', TRUE, TRUE);
//DESGLOSADO POR PROVEEDOR EN ESTE INFORME NO SE DESGLOSARÁ POR PROVEEDOR
if Desglosado then if Desglosado then
ATipoInforme := rptInformeListadoPedidosDesglosado ATipoInforme := rptInformeListadoPedidosDesglosado
else else
ATipoInforme := rptInformeListadoPedidos; ATipoInforme := rptInformeListadoPedidos;
Result := _GenerarInforme(ATipoInforme, IdEmpresa, FechaInicio, FechaFin, ListaIDProveedores, ImporteMinimo); //Finalmente se abren las tablas del informe
tbl_InformeListadoPedidos.Active := True;
tbl_InformeListadoPedidosResumen.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 TRptPedidosProveedor.GenerarPedido(const ListaID : TIntegerArray; function TRptPedidosProveedor.GenerarPedido(const ListaID : TIntegerArray;
@ -164,99 +215,22 @@ begin
end; end;
end; end;
function TRptPedidosProveedor._GenerarInforme(const TipoInforme: String; function TRptPedidosProveedor._GenerarInforme(const TipoInforme: String): Binary;
const IdEmpresa: Integer; const FechaInicio, FechaFin: DateTime;
const ListaIDClientes: TIntegerArray; const ImporteMinimo: Currency): Binary;
var var
Condicion: TDAWhereExpression;
i: Integer;
AInforme: Variant; AInforme: Variant;
begin begin
Result := Binary.Create; Result := Binary.Create;
FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, IntToStr(FIdEmpresa));
if VarIsNull(AInforme) then
raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe ' + TipoInforme));
try frxReport.LoadFromFile(AInforme, True);
frxReport.Variables.Variables['FechaInicio'] := FFechaInicio;
frxReport.Variables.Variables['FechaFin'] := FFechaFin;
if tbl_InformeListadoPedidos.Active then frxReport.PrepareReport(False);
tbl_InformeListadoPedidos.Active := False; frxReport.PreviewPages.SaveToStream(Result);
// Filtrar el informe por empresa
with tbl_InformeListadoPedidos.DynamicWhere do
begin
// (ID_EMPRESA >= ID)
Condicion := NewBinaryExpression(NewField('', fld_PedidosProveedorID_EMPRESA), NewConstant(IdEmpresa, datInteger), dboEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
// Filtrar el informe por fechas
if not VarIsNull(FechaInicio)
and not VarIsNull(FechaFin) then
begin
with tbl_InformeListadoPedidos.DynamicWhere do
begin
// (FECHA_INICIO between FECHA_FIN)
Condicion := NewBinaryExpression(NewField('', fld_PedidosProveedorFECHA_PEDIDO), NewConstant(FechaInicio, datDateTime), dboGreaterOrEqual);
Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_PedidosProveedorFECHA_PEDIDO), NewConstant(FechaFin, datDateTime), dboLessOrEqual), Condicion, dboAnd);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
end;
// Filtrar el informe por cliente
if Assigned(ListaIDClientes) then
begin
with tbl_InformeListadoPedidos.DynamicWhere do
begin
for i := 0 to ListaIDClientes.Count - 1 do
begin
// (ID_CLIENTE = ID)
Condicion := NewBinaryExpression(NewField('', fld_PedidosProveedorID_PROVEEDOR), NewConstant(ListaIDClientes.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_InformeListadoPedidos.DynamicWhere do
begin
// (IMPORTE_TOTAL > ImporteMinimo)
Condicion := NewBinaryExpression(NewField('', fld_PedidosProveedorIMPORTE_TOTAL), NewConstant(ImporteMinimo, datCurrency), dboGreaterOrEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
end;
tbl_InformeListadoPedidos.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;
procedure TRptPedidosProveedor._GenerarPedido(const ID: Integer); procedure TRptPedidosProveedor._GenerarPedido(const ID: Integer);
@ -306,4 +280,110 @@ begin
end; end;
procedure TRptPedidosProveedor.PrepararTablaInforme(ATabla: TDAMemDataTable);
var
Condicion: TDAWhereExpression;
i: Integer;
begin
// Filtrar el informe por empresa
with ATabla.DynamicWhere do
begin
// (ID_EMPRESA >= ID)
Condicion := NewBinaryExpression(NewField('', fld_PedidosProveedorID_EMPRESA), NewConstant(FIdEmpresa, datInteger), dboEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
// Filtrar el informe por fechas
if not VarIsNull(FFechaInicio)
and not VarIsNull(FFechaFin) then
begin
with ATabla.DynamicWhere do
begin
// (FECHA_INICIO between FECHA_FIN)
Condicion := NewBinaryExpression(NewField('', fld_PedidosProveedorFECHA_PEDIDO), NewConstant(FFechaInicio, datDateTime), dboGreaterOrEqual);
Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_PedidosProveedorFECHA_PEDIDO), NewConstant(FFechaFin, 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
// (ID_PROVEEDOR = ID)
Condicion := NewBinaryExpression(NewField('', fld_PedidosProveedorID_PROVEEDOR), NewConstant(FListaIDProveedores.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 (FImporteMinimo > 0) then
begin
with ATabla.DynamicWhere do
begin
// (IMPORTE_TOTAL > ImporteMinimo)
Condicion := NewBinaryExpression(NewField('', fld_PedidosProveedorIMPORTE_TOTAL), NewConstant(FImporteMinimo, datCurrency), dboGreaterOrEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
end;
end;
procedure TRptPedidosProveedor.PrepararTablaResumenInforme(ATabla: IDADataset);
var
i: Integer;
AWhereStr : String;
begin
// Filtrar el informe por empresa
AWhereStr := ' (' + fld_PedidosProveedorID_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_PedidosProveedorFECHA_PEDIDO + ' between ''' + ReplaceStr(VarToStr(FFechaInicio),'/','.') + ''' and ''' + ReplaceStr(VarToStr(FFechaFin),'/','.') + ''') ';
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_PedidosProveedorID_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_PedidosProveedorIMPORTE_TOTAL + ' >= ' + CurrToStr(FImporteMinimo) + ') ';
end;
ATabla.Where.AddText(AWhereStr);
end;
end. end.

View File

@ -197,7 +197,7 @@ begin
for i := 0 to FListaIDClientes.Count - 1 do for i := 0 to FListaIDClientes.Count - 1 do
begin begin
// (ID_PROVEEDOR = ID) // (ID_CLIENTE = ID)
Condicion := NewBinaryExpression(NewField('', fld_PresupuestosClienteID_CLIENTE), NewConstant(FListaIDClientes.Items[i], datInteger), dboEqual); Condicion := NewBinaryExpression(NewField('', fld_PresupuestosClienteID_CLIENTE), NewConstant(FListaIDClientes.Items[i], datInteger), dboEqual);
if IsEmpty then if IsEmpty then
Expression := Condicion Expression := Condicion