Primera subida de envio por e-mail (sin terminar todos los documentos).

git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES2/trunk@312 f4e31baf-9722-1c47-927c-6f952f962d4b
This commit is contained in:
David Arranz 2008-10-03 17:15:51 +00:00
parent 2d5918b06b
commit cd3f8276cb
49 changed files with 2338 additions and 429 deletions

Binary file not shown.

View File

@ -58,76 +58,76 @@
<DelphiCompile Include="Base.dpk"> <DelphiCompile Include="Base.dpk">
<MainSource>MainSource</MainSource> <MainSource>MainSource</MainSource>
</DelphiCompile> </DelphiCompile>
<DCCReference Include="..\Modulos\Recibos de cliente\adortl.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\adortl.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\cxIntl6D11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\cxIntl6D11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\cxIntlPrintSys3D11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\cxIntlPrintSys3D11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\cxLibraryD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\cxLibraryD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\DataAbstract_Core_D11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dbrtl.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dbrtl.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dclIndyCore.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dclIndyCore.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\designide.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\designide.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dsnap.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dsnap.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxDockingD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxDockingD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxGDIPlusD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxGDIPlusD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxNavBarD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxNavBarD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinBlackD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinBlackD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinBlueD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinBlueD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinCaramelD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinCaramelD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinCoffeeD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinCoffeeD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinGlassOceansD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinGlassOceansD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkiniMaginaryD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkiniMaginaryD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinLilianD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinLilianD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinLiquidSkyD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinLiquidSkyD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinLondonLiquidSkyD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinLondonLiquidSkyD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinMcSkinD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinMcSkinD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinMoneyTwinsD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinMoneyTwinsD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinOffice2007BlackD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinOffice2007BlackD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinOffice2007BlueD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinOffice2007BlueD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinOffice2007GreenD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinOffice2007GreenD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinOffice2007PinkD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinOffice2007PinkD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinOffice2007SilverD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinOffice2007SilverD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinsCoreD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinsCoreD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinscxPCPainterD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinscxPCPainterD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinsdxLCPainterD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinsdxLCPainterD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinsdxNavBar2PainterD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinsdxNavBar2PainterD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinSilverD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinSilverD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinStardustD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinStardustD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinValentineD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinValentineD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinXmas2008BlueD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinXmas2008BlueD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxThemeD11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\dxThemeD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\GUISDK_D11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\GUISDK_D11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\IndyCore.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\IndyCore.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\IndyProtocols.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\IndyProtocols.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\IndySystem.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\IndySystem.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\Jcl.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\Jcl.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\JclVcl.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\JclVcl.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\JSDialog100.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\JSDialog100.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\JvCmpD11R.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\JvCmpD11R.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\JvCoreD11R.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\JvCoreD11R.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\JvCtrlsD11R.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\JvCtrlsD11R.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\JvDlgsD11R.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\JvDlgsD11R.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\JvMMD11R.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\JvMMD11R.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\JvNetD11R.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\JvNetD11R.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\JvPageCompsD11R.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\JvPageCompsD11R.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\JvStdCtrlsD11R.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\JvStdCtrlsD11R.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\JvSystemD11R.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\JvSystemD11R.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\pckMD5.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\pckMD5.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\pckUCDataConnector.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\pckUCDataConnector.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\pckUserControl_RT.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\pckUserControl_RT.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\PluginSDK_D10R.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\PluginSDK_D10R.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\PngComponentsD10.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\PngComponentsD10.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\PNG_D10.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\PNG_D10.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\RemObjects_Core_D11.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\RemObjects_Core_D11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\rtl.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\rtl.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\TB2k_D10.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\TB2k_D10.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\tbx_d10.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\tbx_d10.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\vcl.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\vcl.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\vclactnband.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\vclactnband.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\vcldb.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\vcldb.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\vcljpg.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\vcljpg.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\VclSmp.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\VclSmp.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\vclx.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\vclx.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\xmlrtl.dcp" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\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>
@ -163,6 +163,7 @@
<DCCReference Include="Utiles\uDateUtils.pas" /> <DCCReference Include="Utiles\uDateUtils.pas" />
<DCCReference Include="Utiles\uDBSelectionListUtils.pas" /> <DCCReference Include="Utiles\uDBSelectionListUtils.pas" />
<DCCReference Include="Utiles\uDialogUtils.pas" /> <DCCReference Include="Utiles\uDialogUtils.pas" />
<DCCReference Include="Utiles\uEMailUtils.pas" />
<DCCReference Include="Utiles\uGridUtils.pas" /> <DCCReference Include="Utiles\uGridUtils.pas" />
<DCCReference Include="Utiles\uInfoProjectUtils.pas" /> <DCCReference Include="Utiles\uInfoProjectUtils.pas" />
<DCCReference Include="Utiles\uIntegerListUtils.pas" /> <DCCReference Include="Utiles\uIntegerListUtils.pas" />

View File

@ -3,7 +3,7 @@ unit uIntegerListUtils;
interface interface
uses uses
Classes; Classes, FactuGES_Intf;
type type
TIntegerList = class(TList) TIntegerList = class(TList)
@ -14,6 +14,7 @@ type
procedure Add(Value: integer); reintroduce; procedure Add(Value: integer); reintroduce;
function Find(Value: integer; var Index: Integer): Boolean; function Find(Value: integer; var Index: Integer): Boolean;
property Integers[index: integer]: integer read GetInteger write SetInteger; default; property Integers[index: integer]: integer read GetInteger write SetInteger; default;
function ToIntegerArray : TIntegerArray;
end; end;
implementation implementation
@ -28,6 +29,15 @@ begin
Items[index] := Pointer(Value); Items[index] := Pointer(Value);
end; end;
function TIntegerList.ToIntegerArray: TIntegerArray;
var
i : Integer;
begin
Result := TIntegerArray.Create;
for i := 0 to Count - 1 do
Result.Add(Integers[i]);
end;
procedure TIntegerList.Add(Value: integer); procedure TIntegerList.Add(Value: integer);
var var
Index: integer; Index: integer;

View File

@ -435,5 +435,4 @@ begin
Result := DarRutaTemporal + Cadena + '\'; Result := DarRutaTemporal + Cadena + '\';
end; end;
end.
end.

Binary file not shown.

View File

@ -87,6 +87,7 @@
<DCCReference Include="uDialogBase.pas"> <DCCReference Include="uDialogBase.pas">
<Form>fDialogBase</Form> <Form>fDialogBase</Form>
</DCCReference> </DCCReference>
<DCCReference Include="uDialogElegirEMail.pas" />
<DCCReference Include="uEditorBase.pas"> <DCCReference Include="uEditorBase.pas">
<Form>fEditorBase</Form> <Form>fEditorBase</Form>
<DesignClass>TCustomEditor</DesignClass> <DesignClass>TCustomEditor</DesignClass>
@ -135,7 +136,7 @@
<DesignClass>TFrame</DesignClass> <DesignClass>TFrame</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="uViewDocumentos.pas"> <DCCReference Include="uViewDocumentos.pas">
<Form>frViewGrid</Form> <Form>frViewDocumentos</Form>
<DesignClass>TFrame</DesignClass> <DesignClass>TFrame</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="uViewFiltroBase.pas"> <DCCReference Include="uViewFiltroBase.pas">

View File

@ -36,7 +36,9 @@ object fDialogBase: TfDialogBase
Width = 75 Width = 75
Height = 25 Height = 25
Action = actCancelar Action = actCancelar
TabOrder = 0 Cancel = True
ModalResult = 2
TabOrder = 1
end end
object Button2: TButton object Button2: TButton
AlignWithMargins = True AlignWithMargins = True
@ -49,7 +51,8 @@ object fDialogBase: TfDialogBase
Margins.Right = 15 Margins.Right = 15
Margins.Bottom = 0 Margins.Bottom = 0
Action = actAceptar Action = actAceptar
TabOrder = 1 ModalResult = 1
TabOrder = 0
end end
end end
object FlowPanel1: TFlowPanel object FlowPanel1: TFlowPanel

View File

@ -5,8 +5,8 @@ inherited fEditorPreview: TfEditorPreview
WindowState = wsMaximized WindowState = wsMaximized
OnDestroy = FormDestroy OnDestroy = FormDestroy
OnResize = FormResize OnResize = FormResize
ExplicitWidth = 803 ExplicitWidth = 954
ExplicitHeight = 492 ExplicitHeight = 543
PixelsPerInch = 96 PixelsPerInch = 96
TextHeight = 13 TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader inherited JvNavPanelHeader: TJvNavPanelHeader

View File

@ -11,7 +11,8 @@ uses
pngimage, frxExportImage, frxExportPDF, frxDCtrl, frxDMPExport, pngimage, frxExportImage, frxExportPDF, frxDCtrl, frxDMPExport,
frxGradient, frxChBox, frxCross, frxRich, frxOLE, frxBarcode, frxGradient, frxChBox, frxCross, frxRich, frxOLE, frxBarcode,
ExtCtrls, JvComponentBase, TBXStatusBars, JvExComCtrls, JvStatusBar, ExtCtrls, JvComponentBase, TBXStatusBars, JvExComCtrls, JvStatusBar,
frxExportMail, frxExportXLS, frxExportText, frxExportRTF; frxExportMail, frxExportXLS, frxExportText, frxExportRTF, uControllerBase,
uIntegerListUtils;
type type
IEditorPreview = interface(IEditorBase) IEditorPreview = interface(IEditorBase)
@ -28,6 +29,15 @@ type
procedure Print; procedure Print;
procedure Preview; procedure Preview;
function GetController : IControllerBase;
procedure SetController (const Value : IControllerBase);
property Controller : IControllerBase read GetController
write SetController;
function GetListaID : TIntegerList;
procedure SetListaID (const Value : TIntegerList);
property ListaID : TIntegerList read GetListaID
write SetListaID;
end; end;
TfEditorPreview = class(TfEditorBase, IEditorPreview) TfEditorPreview = class(TfEditorBase, IEditorPreview)
@ -133,14 +143,26 @@ type
procedure actExportarTextoExecute(Sender: TObject); procedure actExportarTextoExecute(Sender: TObject);
private private
FPreview : TfrViewPreview; FPreview : TfrViewPreview;
FTitle : TCaption;
FController : IControllerBase;
FListaID : TIntegerList;
procedure OnPageChanged(Sender: TfrxPreview; PageNo: Integer); procedure OnPageChanged(Sender: TfrxPreview; PageNo: Integer);
procedure UpdateZoom; procedure UpdateZoom;
protected protected
function GetReport: TfrxReport; virtual; function GetReport: TfrxReport; virtual;
procedure SetTitle(const Value: string); procedure SetTitle(const Value: string);
function GetTitle: string; function GetTitle: string;
procedure PonerTitulos(const ATitulo: String = ''); override;
function GetController : IControllerBase;
procedure SetController (const Value : IControllerBase);
procedure SetListaID (const Value : TIntegerList);
function GetListaID : TIntegerList;
public public
constructor Create(AOwner: TComponent); override; constructor Create(AOwner: TComponent); override;
property ListaID : TIntegerList read GetListaID
write SetListaID;
property Controller : IControllerBase read GetController
write SetController;
property Title: string read GetTitle write SetTitle; property Title: string read GetTitle write SetTitle;
property Report: TfrxReport read GetReport; property Report: TfrxReport read GetReport;
procedure Print; procedure Print;
@ -160,6 +182,16 @@ uses
{ TfEditorBase1 } { TfEditorBase1 }
function TfEditorPreview.GetController: IControllerBase;
begin
Result := FController;
end;
function TfEditorPreview.GetListaID: TIntegerList;
begin
Result := FListaID;
end;
function TfEditorPreview.GetReport: TfrxReport; function TfEditorPreview.GetReport: TfrxReport;
begin begin
Result := frxReport1; Result := frxReport1;
@ -168,7 +200,7 @@ end;
function TfEditorPreview.GetTitle: string; function TfEditorPreview.GetTitle: string;
begin begin
Result := Self.Caption; Result := FTitle;
end; end;
procedure TfEditorPreview.FormShow(Sender: TObject); procedure TfEditorPreview.FormShow(Sender: TObject);
@ -389,6 +421,21 @@ begin
FPreview.Preview.OnPageChanged := OnPageChanged; FPreview.Preview.OnPageChanged := OnPageChanged;
end; end;
procedure TfEditorPreview.PonerTitulos(const ATitulo: String);
var
AText : String;
begin
AText := 'Previsualizar';
if (Length(ATitulo) > 0) then
AText := AText + ' - ' + ATitulo
else
AText := AText + ' - ' + FTitle;
JvNavPanelHeader.Caption := AText;
Caption := AText;
end;
procedure TfEditorPreview.Preview; procedure TfEditorPreview.Preview;
begin begin
Self.ShowModal; Self.ShowModal;
@ -403,9 +450,20 @@ begin
Enabled := True; Enabled := True;
end; end;
procedure TfEditorPreview.SetController(const Value: IControllerBase);
begin
FController := Value;
end;
procedure TfEditorPreview.SetListaID(const Value: TIntegerList);
begin
FListaID := Value;
end;
procedure TfEditorPreview.SetTitle(const Value: string); procedure TfEditorPreview.SetTitle(const Value: string);
begin begin
Self.Caption := 'Previsualizar - ' + Value; FTitle := Value;
PonerTitulos(FTitle);
end; end;
function TfEditorPreview.ExportToFile: String; function TfEditorPreview.ExportToFile: String;

View File

@ -10,7 +10,10 @@ uses
StdActns, ExtActns, ActnList, TB2Item, TBX, TB2Dock, TB2Toolbar, cxGridLevel, StdActns, ExtActns, ActnList, TB2Item, TBX, TB2Dock, TB2Toolbar, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, ComCtrls, StdCtrls, JvExStdCtrls, cxControls, cxGridCustomView, cxGrid, ComCtrls, StdCtrls, JvExStdCtrls,
JvCombobox, JvColorCombo, ToolWin, uDAInterfaces; JvCombobox, JvColorCombo, ToolWin, uDAInterfaces, dxSkinsCore, dxSkinBlack,
dxSkinBlue, dxSkinOffice2007Black, dxSkinOffice2007Blue,
dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver,
dxSkinSilver, dxSkinsDefaultPainters, dxSkinscxPCPainter;
type type
IViewDetallesDTO = interface(IViewDetallesBase) IViewDetallesDTO = interface(IViewDetallesBase)

View File

@ -7,7 +7,10 @@ uses
Dialogs, uViewBase, ExtCtrls, StdCtrls, DB, uDADataTable, cxGraphics, Dialogs, uViewBase, ExtCtrls, StdCtrls, DB, uDADataTable, cxGraphics,
cxTextEdit, cxMaskEdit, cxDropDownEdit, cxDBEdit, cxControls, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxDBEdit, cxControls,
cxContainer, cxEdit, cxLabel, cxDBLabel, cxCurrencyEdit, cxSpinEdit, cxContainer, cxEdit, cxLabel, cxDBLabel, cxCurrencyEdit, cxSpinEdit,
cxCheckBox, cxMemo, uDAInterfaces; cxCheckBox, cxMemo, uDAInterfaces, dxSkinsCore, dxSkinBlack, dxSkinBlue,
dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green,
dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinSilver,
dxSkinsDefaultPainters;
type type
TfrViewIncidencias = class(TfrViewBase) TfrViewIncidencias = class(TfrViewBase)

View File

@ -17,6 +17,7 @@ inherited frViewTotales: TfrViewTotales
Align = alTop Align = alTop
ParentBackground = True ParentBackground = True
TabOrder = 0 TabOrder = 0
TabStop = False
AutoContentSizes = [acsWidth, acsHeight] AutoContentSizes = [acsWidth, acsHeight]
object Bevel1: TBevel object Bevel1: TBevel
Left = 104 Left = 104

View File

@ -8,7 +8,10 @@ uses
cxTextEdit, cxMaskEdit, cxDropDownEdit, cxDBEdit, cxControls, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxDBEdit, cxControls,
cxContainer, cxEdit, cxLabel, cxDBLabel, cxCurrencyEdit, cxSpinEdit, cxContainer, cxEdit, cxLabel, cxDBLabel, cxCurrencyEdit, cxSpinEdit,
ComCtrls, dxLayoutControl, dxLayoutLookAndFeels, cxLookupEdit, cxDBLookupEdit, ComCtrls, dxLayoutControl, dxLayoutLookAndFeels, cxLookupEdit, cxDBLookupEdit,
cxDBLookupComboBox, cxCheckBox, uDAInterfaces; cxDBLookupComboBox, cxCheckBox, uDAInterfaces, dxSkinsCore, dxSkinBlack,
dxSkinBlue, dxSkinOffice2007Black, dxSkinOffice2007Blue,
dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver,
dxSkinSilver, dxSkinsDefaultPainters, dxSkinsdxLCPainter;
type type
TfrViewTotales = class(TfrViewBase) TfrViewTotales = class(TfrViewBase)

View File

@ -132,6 +132,7 @@ type
AFechaRecibido : TDateTime = 0; AFechaRecibido : TDateTime = 0;
DoPost: Boolean = True) : Boolean; DoPost: Boolean = True) : Boolean;
procedure EnviarAlbaranPorEMail(AAlbaran : IBizAlbaranCliente);
procedure Preview(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false); procedure Preview(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false);
procedure Print(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false); procedure Print(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false);
procedure EtiquetasPreview(AAlbaran : IBizAlbaranCliente; Const withRefCliente: Boolean); procedure EtiquetasPreview(AAlbaran : IBizAlbaranCliente; Const withRefCliente: Boolean);
@ -144,16 +145,17 @@ implementation
uses uses
uROTypes, Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils, uROTypes, Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils,
uIEditorAlbaranesCliente, uIEditorAlbaranesDevCliente, uIEditorAlbaranDevCliente, uIEditorAlbaranesCliente, uIEditorAlbaranesDevCliente, uIEditorAlbaranDevCliente,
uDataModuleAlbaranesCliente, Variants, uBizDetallesAlbaranCliente, uDataModuleAlbaranesCliente, Variants, uBizDetallesAlbaranCliente, uSistemaFunc,
uBizContactos, uDataTableUtils, uDataModuleUsuarios, Classes, uFactuGES_App, uBizContactos, uDataTableUtils, uDataModuleUsuarios, Classes, uFactuGES_App,
schAlbaranesClienteClient_Intf, uDAInterfaces, uDateUtils, uIEditorAlbaranCliente, schAlbaranesClienteClient_Intf, uDAInterfaces, uDateUtils, uIEditorAlbaranCliente,
uIEditorElegirAlbaranesCliente, uIEditorDireccionEntregaAlbaranCliente, uIEditorElegirAlbaranesCliente, uIEditorDireccionEntregaAlbaranCliente,
schContactosClient_Intf, uAlbaranesClienteReportController, uControllerDetallesBase, schContactosClient_Intf, uAlbaranesClienteReportController,
uControllerDetallesBase, uEMailUtils, uDialogElegirEMail,
// Pedidos no estará en TECSITEL // Pedidos no estará en TECSITEL
// uPedidosClienteController, uBizPedidosCliente, uBizDetallesPedidoCliente, schPedidosClienteClient_Intf, // uPedidosClienteController, uBizPedidosCliente, uBizDetallesPedidoCliente, schPedidosClienteClient_Intf,
uDialogUtils, Windows, Forms, Dialogs, uGUIBase; uDialogUtils, Windows, Forms, Dialogs, uGUIBase, uIntegerListUtils;
@ -745,6 +747,50 @@ begin
end; end;
end; end;
procedure TAlbaranesClienteController.EnviarAlbaranPorEMail(
AAlbaran: IBizAlbaranCliente);
var
AReportController : IAlbaranesClienteReportController;
AFicheroTMP : TFileName;
AEMail : String;
AListaEmail : TStringList;
begin
if not Assigned(AAlbaran) then
raise Exception.Create ('Albarán no asignado (EnviarAlbaranPorEMail)');
if AAlbaran.DataTable.Active then
AAlbaran.DataTable.Active := True;
AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(AAlbaran.REFERENCIA));
AListaEmail := TStringList.Create;
try
RecuperarCliente(AAlbaran);
AAlbaran.Cliente.DataTable.Active := True;
if not AAlbaran.Cliente.EMAIL_1IsNull then
AListaEmail.Add(AAlbaran.Cliente.EMAIL_1);
if not AAlbaran.Cliente.EMAIL_2IsNull then
AListaEmail.Add(AAlbaran.Cliente.EMAIL_2);
if not ElegirEMail(AListaEmail, AEMail) then
Exit;
finally
FreeANDNIL(AListaEmail);
end;
ShowHourglassCursor;
AReportController := TAlbaranesClienteReportController.Create;
try
AReportController.ExportToPDF(AAlbaran.ID, AFicheroTMP);
SendMailMAPI('Albarán ' + AAlbaran.REFERENCIA, '', AFicheroTMP, '', '', AAlbaran.Cliente.NOMBRE, AEMail);
finally
SysUtils.DeleteFile(AFicheroTMP);
AReportController := NIL;
HideHourglassCursor;
end;
end;
function TAlbaranesClienteController.EsEliminable(AAlbaran: IBizAlbaranCliente): Boolean; function TAlbaranesClienteController.EsEliminable(AAlbaran: IBizAlbaranCliente): Boolean;
begin begin
if not Assigned(AAlbaran) then if not Assigned(AAlbaran) then
@ -942,12 +988,13 @@ end;
procedure TAlbaranesClienteController.Preview(AAlbaran: IBizAlbaranCliente; AllItems: Boolean = false); procedure TAlbaranesClienteController.Preview(AAlbaran: IBizAlbaranCliente; AllItems: Boolean = false);
var var
AReportController : IAlbaranesClienteReportController; AReportController : IAlbaranesClienteReportController;
ID_Albaranes: TStringList; ID_Albaranes: TIntegerList;
begin begin
AReportController := TAlbaranesClienteReportController.Create; AReportController := TAlbaranesClienteReportController.Create;
ID_Albaranes := TIntegerList.Create;
try try
ID_Albaranes := TStringList.Create;
//Si deseamos previsualizar todos los items del objeto albaran //Si deseamos previsualizar todos los items del objeto albaran
if AllItems then if AllItems then
@ -957,33 +1004,32 @@ begin
First; First;
while not EOF do while not EOF do
begin begin
ID_Albaranes.Add(IntToStr(AAlbaran.ID)); ID_Albaranes.Add(AAlbaran.ID);
Next; Next;
end; end;
end; end;
end end
//Solo previsualizamos el item seleccionado //Solo previsualizamos el item seleccionado
else else
ID_Albaranes.Add(IntToStr(AAlbaran.ID)); ID_Albaranes.Add(AAlbaran.ID);
AReportController.Preview(ID_Albaranes.CommaText); AReportController.Preview(ID_Albaranes);
finally finally
AReportController := NIL; AReportController := NIL;
ID_Albaranes.Free; FreeANDNIL(ID_Albaranes);
end; end;
end; end;
procedure TAlbaranesClienteController.Print(AAlbaran: IBizAlbaranCliente; AllItems: Boolean = false); procedure TAlbaranesClienteController.Print(AAlbaran: IBizAlbaranCliente; AllItems: Boolean = false);
var var
AReportController : IAlbaranesClienteReportController; AReportController : IAlbaranesClienteReportController;
ID_Albaranes: TStringList; ID_Albaranes: TIntegerList;
begin begin
AReportController := TAlbaranesClienteReportController.Create; AReportController := TAlbaranesClienteReportController.Create;
ID_Albaranes := TIntegerList.Create;
try try
ID_Albaranes := TStringList.Create;
//Si deseamos previsualizar todos los items del objeto albaran //Si deseamos previsualizar todos los items del objeto albaran
if AllItems then if AllItems then
begin begin
@ -992,20 +1038,20 @@ begin
First; First;
while not EOF do while not EOF do
begin begin
ID_Albaranes.Add(IntToStr(AAlbaran.ID)); ID_Albaranes.Add(AAlbaran.ID);
Next; Next;
end; end;
end; end;
end end
//Solo previsualizamos el item seleccionado //Solo previsualizamos el item seleccionado
else else
ID_Albaranes.Add(IntToStr(AAlbaran.ID)); ID_Albaranes.Add(AAlbaran.ID);
AReportController.Print(ID_Albaranes.CommaText); AReportController.Print(ID_Albaranes);
finally finally
AReportController := NIL; AReportController := NIL;
ID_Albaranes.Free; FreeANDNIL(ID_Albaranes);
end; end;
end; end;

View File

@ -5,15 +5,16 @@ interface
uses uses
Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleAlbaranesClienteReport, Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleAlbaranesClienteReport,
uClientesController, uAlbaranesClienteController, uDetallesAlbaranClienteController, uClientesController, uAlbaranesClienteController, uDetallesAlbaranClienteController,
uBizAlbaranesCliente; uBizAlbaranesCliente, uIntegerListUtils;
type type
IAlbaranesClienteReportController = interface(IControllerBase) IAlbaranesClienteReportController = interface(IControllerBase)
['{4BCC7A93-3322-494C-A3FA-118F4B62CB15}'] ['{4BCC7A93-3322-494C-A3FA-118F4B62CB15}']
procedure Preview(const AID : String); procedure Preview(const AListaID : TIntegerList);
procedure Print(const AID : String); procedure Print(const AListaID : TIntegerList);
procedure EtiquetasPreview(const AID : integer; Const withRefCliente: Boolean); procedure EtiquetasPreview(const AID : integer; Const withRefCliente: Boolean);
procedure EtiquetasPrint(const AID : integer; Const withRefCliente: Boolean); procedure EtiquetasPrint(const AID : integer; Const withRefCliente: Boolean);
function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean;
end; end;
TAlbaranesClienteReportController = class(TControllerBase, IAlbaranesClienteReportController) TAlbaranesClienteReportController = class(TControllerBase, IAlbaranesClienteReportController)
@ -25,10 +26,11 @@ type
constructor Create; constructor Create;
destructor Destroy; override; destructor Destroy; override;
procedure Preview(const AID : String); procedure Preview(const AListaID : TIntegerList);
procedure Print(const AID : String); procedure Print(const AListaID : TIntegerList);
procedure EtiquetasPreview(const AID : integer; const withRefCliente: Boolean); procedure EtiquetasPreview(const AID : integer; Const withRefCliente: Boolean);
procedure EtiquetasPrint(const AID : integer; const withRefCliente: Boolean); procedure EtiquetasPrint(const AID : integer; Const withRefCliente: Boolean);
function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean;
end; end;
@ -36,7 +38,8 @@ implementation
uses uses
uROTypes, uEditorRegistryUtils, uIEditorAlbaranesClientePreview, uROTypes, uEditorRegistryUtils, uIEditorAlbaranesClientePreview,
uEditorPreview, uDataModuleAlbaranesCliente, uEditorBase, cxControls; uEditorPreview, uDataModuleAlbaranesCliente, uEditorBase, cxControls,
uStringsUtils, uSistemaFunc, uFactuGES_App;
{ TAlbaranesClienteReportController } { TAlbaranesClienteReportController }
@ -112,7 +115,30 @@ begin
end; end;
end; end;
procedure TAlbaranesClienteReportController.Preview(const AID : String); function TAlbaranesClienteReportController.ExportToPDF(const AID: Integer;
const AFileName: String): Boolean;
var
AStream: Binary;
begin
Result := False;
if EsCadenaVacia(AFileName) then
Exit;
ShowHourglassCursor;
try
AStream := FDataModule.GetRptPDFAlbaran(AID);
try
AStream.SaveToFile(AFileName);
Result := True;
finally
FreeAndNil(AStream);
end;
finally
HideHourglassCursor;
end;
end;
procedure TAlbaranesClienteReportController.Preview(const AListaID : TIntegerList);
var var
AStream: Binary; AStream: Binary;
AEditor : IEditorAlbaranesClientePreview; AEditor : IEditorAlbaranesClientePreview;
@ -120,15 +146,20 @@ begin
AEditor := NIL; AEditor := NIL;
ShowHourglassCursor; ShowHourglassCursor;
try try
AStream := FDataModule.GetReport(AID); //Lista de seleccionados (Array de integers) AStream := FDataModule.GetRptAlbaranes(AListaID);
try try
CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor); CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor);
if Assigned(AEditor) then if Assigned(AEditor) then
with AEditor do
begin begin
LoadFromStream(AStream); try
Preview; AEditor.Controller := Self;
Release; AEditor.ListaID := AListaID;
AEditor.Title := 'Albarán - ' + AppFactuGES.EmpresaActiva.NOMBRE;
AEditor.LoadFromStream(AStream);
AEditor.Preview;
finally
AEditor.Release;
end;
end; end;
finally finally
FreeAndNil(AStream); FreeAndNil(AStream);
@ -139,7 +170,7 @@ begin
end; end;
end; end;
procedure TAlbaranesClienteReportController.Print(const AID : String); procedure TAlbaranesClienteReportController.Print(const AListaID : TIntegerList);
var var
AStream: Binary; AStream: Binary;
AEditor : IEditorAlbaranesClientePreview; AEditor : IEditorAlbaranesClientePreview;
@ -147,15 +178,20 @@ begin
AEditor := NIL; AEditor := NIL;
ShowHourglassCursor; ShowHourglassCursor;
try try
AStream := FDataModule.GetReport(AID); AStream := FDataModule.GetRptAlbaranes(AListaID);
try try
CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor); CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor);
if Assigned(AEditor) then if Assigned(AEditor) then
with AEditor do
begin begin
LoadFromStream(AStream); try
Print; AEditor.Controller := Self;
Release; AEditor.ListaID := AListaID;
AEditor.Title := 'Albarán - ' + AppFactuGES.EmpresaActiva.NOMBRE;
AEditor.LoadFromStream(AStream);
AEditor.Print;
finally
AEditor.Release;
end;
end; end;
finally finally
FreeAndNil(AStream); FreeAndNil(AStream);

View File

@ -6,7 +6,7 @@ uses
DB, Classes, SysUtils, uDADesigntimeCall, DB, Classes, SysUtils, uDADesigntimeCall,
uRORemoteService, uROClient, uROBinMessage, uDAScriptingProvider, uRORemoteService, uROClient, uROBinMessage, uDAScriptingProvider,
uDACDSDataTable, uROWinInetHttpChannel, uDADataTable, uDABINAdapter, uDACDSDataTable, uROWinInetHttpChannel, uDADataTable, uDABINAdapter,
uDAClientDataModule, uROTypes, uDAClientDataModule, uROTypes, uIntegerListUtils,
uIDataModuleAlbaranesCliente, uBizAlbaranesCliente, uBizDetallesAlbaranCliente, uIDataModuleAlbaranesCliente, uBizAlbaranesCliente, uBizDetallesAlbaranCliente,
uIDataModuleAlbaranesClienteReport, uDataModuleBase, uDABin2DataStreamer, uDAMemDataTable, uIDataModuleAlbaranesClienteReport, uDataModuleBase, uDABin2DataStreamer, uDAMemDataTable,
uDAInterfaces, uDADataStreamer, uDARemoteDataAdapter; uDAInterfaces, uDADataStreamer, uDARemoteDataAdapter;
@ -34,8 +34,9 @@ type
function NewItem : IBizAlbaranCliente; function NewItem : IBizAlbaranCliente;
// Report // Report
function GetReport(const AID: String): Binary; function GetRptAlbaranes(const ListaID: TIntegerList): Binary;
function GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary; function GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary;
function GetRptPDFAlbaran(const AID: Integer): Binary;
end; end;
implementation implementation
@ -59,9 +60,30 @@ begin
RORemoteService.Message := dmConexion.Message; RORemoteService.Message := dmConexion.Message;
end; end;
function TDataModuleAlbaranesCliente.GetReport(const AID: String): Binary; function TDataModuleAlbaranesCliente.GetRptAlbaranes(const ListaID: TIntegerList): Binary;
var
AParam : TIntegerArray;
begin begin
Result := (RORemoteService as IsrvAlbaranesCliente).GenerateReport(AID) AParam := ListaID.ToIntegerArray;
try
Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInforme(AParam);
finally
FreeAndNil(AParam);
end;
end;
function TDataModuleAlbaranesCliente.GetRptPDFAlbaran(
const AID: Integer): Binary;
var
AParam : TIntegerArray;
begin
AParam := TIntegerArray.Create;
try
AParam.Add(AID);
Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInforme(AParam);
finally
FreeAndNil(AParam);
end;
end; end;
function TDataModuleAlbaranesCliente.NewItem: IBizAlbaranCliente; function TDataModuleAlbaranesCliente.NewItem: IBizAlbaranCliente;
@ -89,7 +111,7 @@ end;
function TDataModuleAlbaranesCliente.GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary; function TDataModuleAlbaranesCliente.GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary;
begin begin
Result := (RORemoteService as IsrvAlbaranesCliente).GenerateEtiquetas(AID, withRefCliente) Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInformeEtiquetas(AID, withRefCliente)
end; end;
function TDataModuleAlbaranesCliente.GetItem(const ID: Integer): IBizAlbaranCliente; function TDataModuleAlbaranesCliente.GetItem(const ID: Integer): IBizAlbaranCliente;

View File

@ -3,13 +3,14 @@ unit uIDataModuleAlbaranesClienteReport;
interface interface
uses uses
uROTypes; uROTypes, uIntegerListUtils;
type type
IDataModuleAlbaranesClienteReport = interface IDataModuleAlbaranesClienteReport = interface
['{42C55204-5AB9-403E-8385-1A62B02D8234}'] ['{42C55204-5AB9-403E-8385-1A62B02D8234}']
function GetReport(const AID: String): Binary; function GetRptAlbaranes(const ListaID: TIntegerList): Binary;
function GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary; function GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary;
function GetRptPDFAlbaran(const AID: Integer): Binary;
end; end;
implementation implementation

View File

@ -1,8 +1,8 @@
object RptAlbaranesCliente: TRptAlbaranesCliente object RptAlbaranesCliente: TRptAlbaranesCliente
OldCreateOrder = True OldCreateOrder = True
OnCreate = DataModuleCreate OnCreate = DataModuleCreate
Height = 405 Height = 425
Width = 599 Width = 527
object DADataCabecera: TDADataSource object DADataCabecera: TDADataSource
DataSet = tbl_Cabecera.Dataset DataSet = tbl_Cabecera.Dataset
DataTable = tbl_Cabecera DataTable = tbl_Cabecera
@ -1306,4 +1306,18 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
Left = 448 Left = 448
Top = 16 Top = 16
end end
object frxPDFExport1: TfrxPDFExport
ShowDialog = False
UseFileCache = True
ShowProgress = False
PrintOptimized = True
Outline = False
Author = 'FactuGES'
Subject = 'FactuGES'
Background = False
Creator = 'FactuGES'
HTMLTags = True
Left = 360
Top = 352
end
end end

View File

@ -7,7 +7,8 @@ uses
Dialogs, frxClass, frxDBSet, uDAScriptingProvider, Dialogs, frxClass, frxDBSet, uDAScriptingProvider,
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, uDABin2DataStreamer, uDAMemDataTable; uDAInterfaces, uDADataStreamer, uDABin2DataStreamer, uDAMemDataTable,
frxExportPDF, FactuGES_Intf;
type type
TRptAlbaranesCliente = class(TDataModule) TRptAlbaranesCliente = class(TDataModule)
@ -31,13 +32,15 @@ type
frxDBEtiquetas: TfrxDBDataset; frxDBEtiquetas: TfrxDBDataset;
schReport: TDASchema; schReport: TDASchema;
DataDictionary: TDADataDictionary; DataDictionary: TDADataDictionary;
frxPDFExport1: TfrxPDFExport;
procedure DataModuleCreate(Sender: TObject); procedure DataModuleCreate(Sender: TObject);
private private
FConnection: IDAConnection; FConnection: IDAConnection;
//Genera cada uno de los albaranes a imprimir //Genera cada uno de los albaranes a imprimir
procedure GenerarAlbaran(const ID: integer); overload; procedure _GenerarAlbaran(const ID: Integer);
public public
function GenerarAlbaran(const AID : String): Binary; overload; function GenerarAlbaran(const ListaID : TIntegerArray): Binary;
function GenerarAlbaranEnPDF(const ListaID : TIntegerArray): Binary;
function GenerarEtiquetas(const AID : Integer; withRefCliente: Boolean): Binary; function GenerarEtiquetas(const AID : Integer; withRefCliente: Boolean): Binary;
end; end;
@ -68,30 +71,45 @@ begin
frxReport.EngineOptions.NewSilentMode := simReThrow; frxReport.EngineOptions.NewSilentMode := simReThrow;
end; end;
function TRptAlbaranesCliente.GenerarAlbaran(const AID: String): Binary; function TRptAlbaranesCliente.GenerarAlbaran(const ListaID : TIntegerArray): Binary;
var var
ID_Albaranes: TStringList;
i: Integer; i: Integer;
begin begin
Result := Binary.Create; Result := Binary.Create;
FConnection.BeginTransaction; //FConnection.BeginTransaction; <--- Creo que no va a hacer falta.
try try
ID_Albaranes := TStringList.Create; //Vamos generando todos y cada uno de los presupuestos recibidos
ID_Albaranes.CommaText := AID; for i := 0 to ListaID.Count - 1 do
_GenerarAlbaran(ListaID.Items[i]);
//Vamos generando todos y cada uno de los albaranes recibidos
for i := 0 to ID_Albaranes.Count - 1 do
GenerarAlbaran(StrToInt(ID_Albaranes.Strings[i]));
frxReport.PreviewPages.SaveToStream(Result); frxReport.PreviewPages.SaveToStream(Result);
finally finally
FConnection.RollbackTransaction; //FConnection.RollbackTransaction; <--- Creo que no va a hacer falta.
end; end;
end; end;
procedure TRptAlbaranesCliente.GenerarAlbaran(const ID: integer); function TRptAlbaranesCliente.GenerarAlbaranEnPDF(
const ListaID: TIntegerArray): Binary;
var
i: Integer;
begin
Result := Binary.Create;
//FConnection.BeginTransaction; <--- Creo que no va a hacer falta.
try
//Vamos generando todos y cada uno de los presupuestos recibidos
for i := 0 to ListaID.Count - 1 do
_GenerarAlbaran(ListaID.Items[i]);
frxPDFExport1.Stream := Result;
frxReport.Export(frxPDFExport1)
finally
//FConnection.RollbackTransaction; <--- Creo que no va a hacer falta.
end;
end;
procedure TRptAlbaranesCliente._GenerarAlbaran(const ID: integer);
begin begin
tbl_Cabecera.ParamByName('ID').AsInteger := ID; tbl_Cabecera.ParamByName('ID').AsInteger := ID;
tbl_Detalles.ParamByName('ID_ALBARAN').AsInteger := ID; tbl_Detalles.ParamByName('ID_ALBARAN').AsInteger := ID;

View File

@ -32,8 +32,8 @@ type
procedure DARemoteServiceCreate(Sender: TObject); procedure DARemoteServiceCreate(Sender: TObject);
protected protected
{ IsrvAlbaranesCliente methods } { IsrvAlbaranesCliente methods }
function GenerateReport(const ID: String): Binary; function GenerarInforme(const ListaID: TIntegerArray): Binary;
function GenerateEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary; function GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
end; end;
implementation implementation
@ -81,7 +81,21 @@ begin
ConnectionName := dmServer.ConnectionName; ConnectionName := dmServer.ConnectionName;
end; end;
function TsrvAlbaranesCliente.GenerateEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary; function TsrvAlbaranesCliente.GenerarInforme(
const ListaID: TIntegerArray): Binary;
var
AReportGenerator : TRptAlbaranesCliente;
begin
AReportGenerator := TRptAlbaranesCliente.Create(nil);
try
Result := AReportGenerator.GenerarAlbaran(ListaID);
finally
FreeAndNIL(AReportGenerator);
end;
end;
function TsrvAlbaranesCliente.GenerarInformeEtiquetas(const ID: Integer;
const withRefCliente: Boolean): Binary;
var var
AReportGenerator : TRptAlbaranesCliente; AReportGenerator : TRptAlbaranesCliente;
begin begin
@ -93,18 +107,6 @@ begin
end; end;
end; end;
function TsrvAlbaranesCliente.GenerateReport(const ID: String): Binary;
var
AReportGenerator : TRptAlbaranesCliente;
begin
AReportGenerator := TRptAlbaranesCliente.Create(nil);
try
Result := AReportGenerator.GenerarAlbaran(ID);
finally
FreeAndNIL(AReportGenerator);
end;
end;
initialization initialization
TROClassFactory.Create('srvAlbaranesCliente', Create_srvAlbaranesCliente, TsrvAlbaranesCliente_Invoker); TROClassFactory.Create('srvAlbaranesCliente', Create_srvAlbaranesCliente, TsrvAlbaranesCliente_Invoker);

View File

@ -41,15 +41,7 @@
<Borland.Personality>Delphi.Personality</Borland.Personality> <Borland.Personality>Delphi.Personality</Borland.Personality>
<Borland.ProjectType>Package</Borland.ProjectType> <Borland.ProjectType>Package</Borland.ProjectType>
<BorlandProject> <BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="ImplicitBuild">True</Package_Options><Package_Options Name="DesigntimeOnly">False</Package_Options><Package_Options Name="RuntimeOnly">False</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Excluded_Packages> <BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="ImplicitBuild">False</Package_Options><Package_Options Name="DesigntimeOnly">False</Package_Options><Package_Options Name="RuntimeOnly">False</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Excluded_Packages>

View File

@ -54,11 +54,11 @@
<DelphiCompile Include="Articulos_view.dpk"> <DelphiCompile Include="Articulos_view.dpk">
<MainSource>MainSource</MainSource> <MainSource>MainSource</MainSource>
</DelphiCompile> </DelphiCompile>
<DCCReference Include="..\Articulos_controller.dcp" /> <DCCReference Include="..\..\Albaranes de cliente\Articulos_controller.dcp" />
<DCCReference Include="..\Articulos_model.dcp" /> <DCCReference Include="..\..\Albaranes de cliente\Articulos_model.dcp" />
<DCCReference Include="..\Contactos_view.dcp" /> <DCCReference Include="..\..\Albaranes de cliente\Contactos_view.dcp" />
<DCCReference Include="..\Familias_controller.dcp" /> <DCCReference Include="..\..\Albaranes de cliente\Familias_controller.dcp" />
<DCCReference Include="..\GUIBase.dcp" /> <DCCReference Include="..\..\Albaranes de cliente\GUIBase.dcp" />
<DCCReference Include="uArticulosViewRegister.pas" /> <DCCReference Include="uArticulosViewRegister.pas" />
<DCCReference Include="uEditorArticulo.pas"> <DCCReference Include="uEditorArticulo.pas">
<Form>fEditorArticulo</Form> <Form>fEditorArticulo</Form>

View File

@ -1,10 +1,7 @@
inherited frViewDetallesArticulos: TfrViewDetallesArticulos inherited frViewDetallesArticulos: TfrViewDetallesArticulos
Width = 753
Height = 384
ParentBiDiMode = False ParentBiDiMode = False
OnShow = CustomViewShow OnShow = CustomViewShow
inherited ToolBar1: TToolBar inherited ToolBar1: TToolBar
Width = 753
inherited ToolButton4: TToolButton inherited ToolButton4: TToolButton
Wrap = True Wrap = True
end end
@ -65,8 +62,8 @@ inherited frViewDetallesArticulos: TfrViewDetallesArticulos
end end
end end
inherited cxGrid: TcxGrid inherited cxGrid: TcxGrid
Width = 753 ExplicitWidth = 753
Height = 312 ExplicitHeight = 312
inherited cxGridView: TcxGridDBTableView inherited cxGridView: TcxGridDBTableView
inherited cxGridViewTIPO: TcxGridDBColumn inherited cxGridViewTIPO: TcxGridDBColumn
Visible = False Visible = False
@ -121,9 +118,9 @@ inherited frViewDetallesArticulos: TfrViewDetallesArticulos
end end
end end
inherited TBXDock1: TTBXDock inherited TBXDock1: TTBXDock
Width = 753 ExplicitWidth = 753
inherited TBXToolbar1: TTBXToolbar inherited TBXToolbar1: TTBXToolbar
ExplicitWidth = 548 ExplicitWidth = 451
object TBXItem12: TTBXItem [0] object TBXItem12: TTBXItem [0]
Action = actAnadirArticulos Action = actAnadirArticulos
DisplayMode = nbdmImageAndText DisplayMode = nbdmImageAndText

View File

@ -11,7 +11,10 @@ uses
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, ComCtrls, StdCtrls, JvExStdCtrls, cxControls, cxGridCustomView, cxGrid, ComCtrls, StdCtrls, JvExStdCtrls,
JvCombobox, JvColorCombo, ToolWin, uControllerDetallesArticulos, JvCombobox, JvColorCombo, ToolWin, uControllerDetallesArticulos,
cxTextEdit, uDAInterfaces; cxTextEdit, uDAInterfaces, dxSkinsCore, dxSkinBlack, dxSkinBlue,
dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green,
dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinSilver,
dxSkinsDefaultPainters, dxSkinscxPCPainter;
type type
IViewDetallesArticulos = interface(IViewDetallesDTO) IViewDetallesArticulos = interface(IViewDetallesDTO)

View File

@ -13,4 +13,4 @@ BEGIN
END END
/* C:\Codigo Acana\Source\Modulos\Gestion de documentos\Controller\GestorDocumentos_Controller.res */ /* C:\Codigo Acana\Source\Modulos\Gestion de documentos\Controller\GestorDocumentos_Controller.res */
/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf1F7.tmp */ /* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf1E8.tmp */

View File

@ -14,4 +14,4 @@ END
/* C:\Codigo Acana\Source\Modulos\Gestion de documentos\Data\uDataModuleGestorDocumentos.dfm */ /* C:\Codigo Acana\Source\Modulos\Gestion de documentos\Data\uDataModuleGestorDocumentos.dfm */
/* C:\Codigo Acana\Source\Modulos\Gestion de documentos\Data\GestorDocumentos_data.res */ /* C:\Codigo Acana\Source\Modulos\Gestion de documentos\Data\GestorDocumentos_data.res */
/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf1F5.tmp */ /* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf1E6.tmp */

View File

@ -49,12 +49,12 @@
<DelphiCompile Include="PresupuestosCliente_controller.dpk"> <DelphiCompile Include="PresupuestosCliente_controller.dpk">
<MainSource>MainSource</MainSource> <MainSource>MainSource</MainSource>
</DelphiCompile> </DelphiCompile>
<DCCReference Include="..\..\Lib\Articulos_controller.dcp" /> <DCCReference Include="..\Articulos_controller.dcp" />
<DCCReference Include="..\..\Lib\Contactos_controller.dcp" /> <DCCReference Include="..\Contactos_controller.dcp" />
<DCCReference Include="..\..\Lib\GestorDocumentos_controller.dcp" /> <DCCReference Include="..\GestorDocumentos_controller.dcp" />
<DCCReference Include="..\..\Lib\GUIBase.dcp" /> <DCCReference Include="..\GUIBase.dcp" />
<DCCReference Include="..\..\Lib\PresupuestosCliente_data.dcp" /> <DCCReference Include="..\PresupuestosCliente_data.dcp" />
<DCCReference Include="..\..\Lib\PresupuestosCliente_model.dcp" /> <DCCReference Include="..\PresupuestosCliente_model.dcp" />
<DCCReference Include="uArticulosPresupuestoClienteController.pas" /> <DCCReference Include="uArticulosPresupuestoClienteController.pas" />
<DCCReference Include="uDetallesPresupuestoClienteController.pas" /> <DCCReference Include="uDetallesPresupuestoClienteController.pas" />
<DCCReference Include="uPresupuestosClienteController.pas" /> <DCCReference Include="uPresupuestosClienteController.pas" />

View File

@ -56,6 +56,7 @@ type
procedure Preview(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false); procedure Preview(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false);
procedure Print(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false); procedure Print(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false);
procedure EnviarPresupuestoPorEMail(APresupuesto : IBizPresupuestoCliente);
// procedure SetID_Tienda (APresupuesto: IBizPresupuestoCliente; const ID_Tienda: Integer; Tienda: Variant); // procedure SetID_Tienda (APresupuesto: IBizPresupuestoCliente; const ID_Tienda: Integer; Tienda: Variant);
end; end;
@ -123,6 +124,7 @@ type
procedure Preview(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false); procedure Preview(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false);
procedure Print(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false); procedure Print(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false);
procedure EnviarPresupuestoPorEMail(APresupuesto : IBizPresupuestoCliente);
// procedure SetID_Tienda (APresupuesto: IBizPresupuestoCliente; const ID_Tienda: Integer; Tienda: Variant); // procedure SetID_Tienda (APresupuesto: IBizPresupuestoCliente; const ID_Tienda: Integer; Tienda: Variant);
end; end;
@ -134,7 +136,8 @@ uses
uBizContactos, uDataTableUtils, uDataModuleUsuarios, Classes, uFactuGES_App, uBizContactos, uDataTableUtils, uDataModuleUsuarios, Classes, uFactuGES_App,
schPresupuestosClienteClient_Intf, uDAInterfaces, uDateUtils, uIEditorPresupuestoCliente, schPresupuestosClienteClient_Intf, uDAInterfaces, uDateUtils, uIEditorPresupuestoCliente,
uIEditorElegirPresupuestosCliente, uIEditorDireccionEntregaPresupuestoCliente, uIEditorElegirPresupuestosCliente, uIEditorDireccionEntregaPresupuestoCliente,
schContactosClient_Intf, uPresupuestosClienteReportController; schContactosClient_Intf, uPresupuestosClienteReportController, uSistemaFunc,
uEMailUtils, uDialogElegirEMail, uIntegerListUtils, Dialogs;
{ TPresupuestosClienteController } { TPresupuestosClienteController }
@ -537,6 +540,51 @@ begin
end; end;
end; end;
procedure TPresupuestosClienteController.EnviarPresupuestoPorEMail(
APresupuesto: IBizPresupuestoCliente);
var
AReportController : IPresupuestosClienteReportController;
AFicheroTMP : TFileName;
AEMail : String;
AListaEmail : TStringList;
begin
if not Assigned(APresupuesto) then
raise Exception.Create ('Presupuesto no asignado (EnviarPresupuestoPorEMail)');
if APresupuesto.DataTable.Active then
APresupuesto.DataTable.Active := True;
AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(APresupuesto.REFERENCIA));
AListaEmail := TStringList.Create;
try
RecuperarCliente(APresupuesto);
APresupuesto.Cliente.DataTable.Active := True;
if not APresupuesto.Cliente.EMAIL_1IsNull then
AListaEmail.Add(APresupuesto.Cliente.EMAIL_1);
if not APresupuesto.Cliente.EMAIL_2IsNull then
AListaEmail.Add(APresupuesto.Cliente.EMAIL_2);
if not ElegirEMail(AListaEmail, AEMail) then
Exit;
finally
FreeANDNIL(AListaEmail);
end;
ShowHourglassCursor;
AReportController := TPresupuestosClienteReportController.Create;
try
AReportController.ExportToPDF(APresupuesto.ID, AFicheroTMP);
SendMailMAPI('Presupuesto ' + APresupuesto.REFERENCIA, '', AFicheroTMP, '', '', APresupuesto.Cliente.NOMBRE, AEMail);
finally
DeleteFile(AFicheroTMP);
AReportController := NIL;
HideHourglassCursor;
end;
end;
function TPresupuestosClienteController.EsEliminable(APresupuesto: IBizPresupuestoCliente): Boolean; function TPresupuestosClienteController.EsEliminable(APresupuesto: IBizPresupuestoCliente): Boolean;
begin begin
if not Assigned(APresupuesto) then if not Assigned(APresupuesto) then
@ -799,12 +847,11 @@ end;
procedure TPresupuestosClienteController.Preview(APresupuesto: IBizPresupuestoCliente; AllItems: Boolean = false); procedure TPresupuestosClienteController.Preview(APresupuesto: IBizPresupuestoCliente; AllItems: Boolean = false);
var var
AReportController : IPresupuestosClienteReportController; AReportController : IPresupuestosClienteReportController;
ID_Presupuestos: TStringList; ID_Presupuestos: TIntegerList;
begin begin
AReportController := TPresupuestosClienteReportController.Create; AReportController := TPresupuestosClienteReportController.Create;
try try
ID_Presupuestos := TStringList.Create; ID_Presupuestos := TIntegerList.Create;
//Si deseamos previsualizar todos los items del objeto presupuesto //Si deseamos previsualizar todos los items del objeto presupuesto
if AllItems then if AllItems then
@ -814,17 +861,16 @@ begin
First; First;
while not EOF do while not EOF do
begin begin
ID_Presupuestos.Add(IntToStr(APresupuesto.ID)); ID_Presupuestos.Add(APresupuesto.ID);
Next; Next;
end; end;
end; end;
end end
//Solo previsualizamos el item seleccionado //Solo previsualizamos el item seleccionado
else else
ID_Presupuestos.Add(IntToStr(APresupuesto.ID)); ID_Presupuestos.Add(APresupuesto.ID);
AReportController.Preview(ID_Presupuestos.CommaText);
AReportController.Preview(ID_Presupuestos);
finally finally
AReportController := NIL; AReportController := NIL;
FreeAndNil(ID_Presupuestos); FreeAndNil(ID_Presupuestos);
@ -834,14 +880,12 @@ end;
procedure TPresupuestosClienteController.Print(APresupuesto: IBizPresupuestoCliente; AllItems: Boolean = false); procedure TPresupuestosClienteController.Print(APresupuesto: IBizPresupuestoCliente; AllItems: Boolean = false);
var var
AReportController : IPresupuestosClienteReportController; AReportController : IPresupuestosClienteReportController;
ID_Presupuestos: TStringList; ID_Presupuestos: TIntegerList;
begin begin
AReportController := TPresupuestosClienteReportController.Create; AReportController := TPresupuestosClienteReportController.Create;
ID_Presupuestos := TIntegerList.Create;
try try
ID_Presupuestos := TStringList.Create; //Si deseamos imprimimos todos los items del objeto presupuesto
//Si deseamos previsualizar todos los items del objeto albaran
if AllItems then if AllItems then
begin begin
with APresupuesto.DataTable do with APresupuesto.DataTable do
@ -849,20 +893,20 @@ begin
First; First;
while not EOF do while not EOF do
begin begin
ID_Presupuestos.Add(IntToStr(APresupuesto.ID)); ID_Presupuestos.Add(APresupuesto.ID);
Next; Next;
end; end;
end; end;
end end
//Solo previsualizamos el item seleccionado //Solo imprimimos el item seleccionado
else else
ID_Presupuestos.Add(IntToStr(APresupuesto.ID)); ID_Presupuestos.Add(APresupuesto.ID);
AReportController.Print(ID_Presupuestos.CommaText); AReportController.Print(ID_Presupuestos);
finally finally
AReportController := NIL; AReportController := NIL;
ID_Presupuestos.Free; FreeANDNIL(ID_Presupuestos);
end; end;
end; end;

View File

@ -5,13 +5,14 @@ interface
uses uses
Classes, SysUtils, uDADataTable, uIDataModulePresupuestosClienteReport, Classes, SysUtils, uDADataTable, uIDataModulePresupuestosClienteReport,
uClientesController, uPresupuestosClienteController, uDetallesPresupuestoClienteController, uClientesController, uPresupuestosClienteController, uDetallesPresupuestoClienteController,
uBizPresupuestosCliente, uControllerBase; uBizPresupuestosCliente, uControllerBase, uIntegerListUtils;
type type
IPresupuestosClienteReportController = interface(IControllerBase) IPresupuestosClienteReportController = interface(IControllerBase)
['{D0686358-251C-43C4-9927-6112F2F4D3B8}'] ['{D0686358-251C-43C4-9927-6112F2F4D3B8}']
procedure Preview(const AID : String); procedure Preview(const AListaID : TIntegerList);
procedure Print(const AID : String); procedure Print(const AListaID : TIntegerList);
function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean;
end; end;
TPresupuestosClienteReportController = class(TControllerBase, IPresupuestosClienteReportController) TPresupuestosClienteReportController = class(TControllerBase, IPresupuestosClienteReportController)
@ -22,8 +23,9 @@ type
constructor Create; constructor Create;
destructor Destroy; override; destructor Destroy; override;
procedure Preview(const AID : String); procedure Preview(const AListaID : TIntegerList);
procedure Print(const AID : String); procedure Print(const AListaID : TIntegerList);
function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean;
end; end;
@ -31,7 +33,8 @@ implementation
uses uses
uROTypes, uEditorRegistryUtils, uIEditorPresupuestosClientePreview, uROTypes, uEditorRegistryUtils, uIEditorPresupuestosClientePreview,
uEditorPreview, uDataModulePresupuestosCliente, uEditorBase, cxControls; uEditorPreview, uDataModulePresupuestosCliente, uEditorBase, cxControls,
uFactuGES_App, uStringsUtils;
{ TPresupuestosClienteReportController } { TPresupuestosClienteReportController }
@ -53,7 +56,30 @@ begin
inherited; inherited;
end; end;
procedure TPresupuestosClienteReportController.Preview(const AID : String); function TPresupuestosClienteReportController.ExportToPDF(const AID: Integer;
const AFileName: String): Boolean;
var
AStream: Binary;
begin
Result := False;
if EsCadenaVacia(AFileName) then
Exit;
ShowHourglassCursor;
try
AStream := FDataModule.GetRptPDFPresupuesto(AID);
try
AStream.SaveToFile(AFileName);
Result := True;
finally
FreeAndNil(AStream);
end;
finally
HideHourglassCursor;
end;
end;
procedure TPresupuestosClienteReportController.Preview(const AListaID : TIntegerList);
var var
AStream: Binary; AStream: Binary;
AEditor : IEditorPresupuestosClientePreview; AEditor : IEditorPresupuestosClientePreview;
@ -61,15 +87,20 @@ begin
AEditor := NIL; AEditor := NIL;
ShowHourglassCursor; ShowHourglassCursor;
try try
AStream := FDataModule.GetReport(AID); AStream := FDataModule.GetRptPresupuestos(AListaID);
try try
CreateEditor('EditorPresupuestosClientePreview', IEditorPresupuestosClientePreview, AEditor); CreateEditor('EditorPresupuestosClientePreview', IEditorPresupuestosClientePreview, AEditor);
if Assigned(AEditor) then if Assigned(AEditor) then
with AEditor do
begin begin
AEditor.LoadFromStream(AStream); try
AEditor.Preview; AEditor.Controller := Self;
AEditor.Release; AEditor.ListaID := AListaID;
AEditor.Title := 'Presupuesto - ' + AppFactuGES.EmpresaActiva.NOMBRE;
AEditor.LoadFromStream(AStream);
AEditor.Preview;
finally
AEditor.Release;
end;
end; end;
finally finally
FreeAndNil(AStream); FreeAndNil(AStream);
@ -80,7 +111,7 @@ begin
end; end;
end; end;
procedure TPresupuestosClienteReportController.Print(const AID : String); procedure TPresupuestosClienteReportController.Print(const AListaID : TIntegerList);
var var
AStream: Binary; AStream: Binary;
AEditor : IEditorPresupuestosClientePreview; AEditor : IEditorPresupuestosClientePreview;
@ -88,15 +119,20 @@ begin
AEditor := NIL; AEditor := NIL;
ShowHourglassCursor; ShowHourglassCursor;
try try
AStream := FDataModule.GetReport(AID); AStream := FDataModule.GetRptPresupuestos(AListaID);
try try
CreateEditor('EditorPresupuestosClientePreview', IEditorPresupuestosClientePreview, AEditor); CreateEditor('EditorPresupuestosClientePreview', IEditorPresupuestosClientePreview, AEditor);
if Assigned(AEditor) then if Assigned(AEditor) then
with AEditor do
begin begin
AEditor.LoadFromStream(AStream); try
AEditor.Print; AEditor.Controller := Self;
AEditor.Release; AEditor.ListaID := AListaID;
AEditor.Title := 'Presupuesto - ' + AppFactuGES.EmpresaActiva.NOMBRE;
AEditor.LoadFromStream(AStream);
AEditor.Print;
finally
AEditor.Release;
end;
end; end;
finally finally
FreeAndNil(AStream); FreeAndNil(AStream);
@ -105,9 +141,6 @@ begin
finally finally
HideHourglassCursor; HideHourglassCursor;
end; end;
if Assigned(AEditor) then
end; end;
end. end.

View File

@ -42,7 +42,7 @@
<Borland.Personality>Delphi.Personality</Borland.Personality> <Borland.Personality>Delphi.Personality</Borland.Personality>
<Borland.ProjectType>Package</Borland.ProjectType> <Borland.ProjectType>Package</Borland.ProjectType>
<BorlandProject> <BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="ImplicitBuild">True</Package_Options><Package_Options Name="DesigntimeOnly">False</Package_Options><Package_Options Name="RuntimeOnly">False</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">PresupuestosCliente_data.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject> <BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="ImplicitBuild">False</Package_Options><Package_Options Name="DesigntimeOnly">False</Package_Options><Package_Options Name="RuntimeOnly">False</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">PresupuestosCliente_data.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
</ProjectExtensions> </ProjectExtensions>
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" /> <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
<ItemGroup> <ItemGroup>
@ -537,4 +537,4 @@ mtException_AntiFreeze0="The application seems to be frozen."
Count mtInvalidEmailMsg=1 Count mtInvalidEmailMsg=1
mtInvalidEmailMsg0="Invalid email." mtInvalidEmailMsg0="Invalid email."
TextsCollection=English TextsCollection=English
EurekaLog Last Line --> EurekaLog Last Line -->

View File

@ -11,7 +11,7 @@ uses
uIDataModulePresupuestosCliente, uBizPresupuestosCliente, uBizDetallesPresupuestoCliente, uIDataModulePresupuestosCliente, uBizPresupuestosCliente, uBizDetallesPresupuestoCliente,
uIDataModulePresupuestosClienteReport, uDataModuleBase, uDAInterfaces, uIDataModulePresupuestosClienteReport, uDataModuleBase, uDAInterfaces,
uRODynamicRequest, uDADataStreamer, uDARemoteDataAdapter, uDABin2DataStreamer, uRODynamicRequest, uDADataStreamer, uDARemoteDataAdapter, uDABin2DataStreamer,
uDAMemDataTable; uDAMemDataTable, uIntegerListUtils;
type type
TDataModulePresupuestosCliente = class(TDataModuleBase, IDataModulePresupuestosCliente, IDataModulePresupuestosClienteReport) TDataModulePresupuestosCliente = class(TDataModuleBase, IDataModulePresupuestosCliente, IDataModulePresupuestosClienteReport)
@ -26,17 +26,16 @@ type
private private
function _GetDetalles : IBizDetallesPresupuestoCliente; function _GetDetalles : IBizDetallesPresupuestoCliente;
protected protected
procedure AsignarClaseNegocio(APresupuesto: TDADataTable); virtual; procedure AsignarClaseNegocio(APresupuesto: TDADataTable); virtual;
public public
function GetItems : IBizPresupuestoCliente; virtual; function GetItems : IBizPresupuestoCliente; virtual;
function GetItem(const ID : Integer) : IBizPresupuestoCliente; function GetItem(const ID : Integer) : IBizPresupuestoCliente;
function NewItem : IBizPresupuestoCliente; function NewItem : IBizPresupuestoCliente;
// Report // Report
function GetReport(const AID: String): Binary; function GetRptPresupuestos(const AListaID: TIntegerList): Binary;
function GetRptPDFPresupuesto(const AID: Integer): Binary;
end; end;
implementation implementation
@ -60,9 +59,31 @@ begin
RORemoteService.Message := dmConexion.Message; RORemoteService.Message := dmConexion.Message;
end; end;
function TDataModulePresupuestosCliente.GetReport(const AID: String): Binary; function TDataModulePresupuestosCliente.GetRptPDFPresupuesto(
const AID: Integer): Binary;
var
AParam : TIntegerArray;
begin begin
Result := (RORemoteService as IsrvPresupuestosCliente).GenerateReport(AID) AParam := TIntegerArray.Create;
try
AParam.Add(AID);
Result := (RORemoteService as IsrvPresupuestosCliente).GenerarInformeEnPDF(AParam)
finally
FreeANDNIL(AParam)
end;
end;
function TDataModulePresupuestosCliente.GetRptPresupuestos(
const AListaID: TIntegerList): Binary;
var
AParam : TIntegerArray;
begin
AParam := AListaID.ToIntegerArray;
try
Result := (RORemoteService as IsrvPresupuestosCliente).GenerarInforme(AParam)
finally
FreeANDNIL(AParam)
end;
end; end;
function TDataModulePresupuestosCliente.NewItem: IBizPresupuestoCliente; function TDataModulePresupuestosCliente.NewItem: IBizPresupuestoCliente;

View File

@ -3,12 +3,13 @@ unit uIDataModulePresupuestosClienteReport;
interface interface
uses uses
uROTypes; uROTypes, uIntegerListUtils;
type type
IDataModulePresupuestosClienteReport = interface IDataModulePresupuestosClienteReport = interface
['{70CEBB06-376F-4363-B80F-DDA4324E0F85}'] ['{70CEBB06-376F-4363-B80F-DDA4324E0F85}']
function GetReport(const AID: String): Binary; function GetRptPresupuestos(const AListaID: TIntegerList): Binary;
function GetRptPDFPresupuesto(const AID: Integer): Binary;
end; end;
implementation implementation

View File

@ -1,8 +1,8 @@
object RptPresupuestosCliente: TRptPresupuestosCliente object RptPresupuestosCliente: TRptPresupuestosCliente
OldCreateOrder = True OldCreateOrder = True
OnCreate = DataModuleCreate OnCreate = DataModuleCreate
Height = 604 Height = 548
Width = 447 Width = 535
object DADataCabecera: TDADataSource object DADataCabecera: TDADataSource
DataSet = tbl_Cabecera.Dataset DataSet = tbl_Cabecera.Dataset
DataTable = tbl_Cabecera DataTable = tbl_Cabecera
@ -844,4 +844,18 @@ object RptPresupuestosCliente: TRptPresupuestosCliente
Left = 136 Left = 136
Top = 352 Top = 352
end end
object frxPDFExport1: TfrxPDFExport
ShowDialog = False
UseFileCache = True
ShowProgress = False
PrintOptimized = True
Outline = False
Author = 'FactuGES'
Subject = 'FactuGES'
Background = False
Creator = 'FactuGES'
HTMLTags = True
Left = 472
Top = 440
end
end end

View File

@ -8,7 +8,8 @@ uses
uDADataTable, uDACDSDataTable, DB, uDAClasses, uDABINAdapter, uROTypes, uDADataTable, uDACDSDataTable, DB, uDAClasses, uDABINAdapter, uROTypes,
uDAInterfaces, uDAMemDataTable, uDABin2DataStreamer, uDAInterfaces, uDAMemDataTable, uDABin2DataStreamer,
frxGradient, frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDAEngine, frxGradient, frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDAEngine,
IBSQL, IBDatabase, IBCustomDataSet, IBQuery, uDADataStreamer; IBSQL, IBDatabase, IBCustomDataSet, IBQuery, uDADataStreamer, FactuGES_Intf,
frxExportPDF;
type type
TRptPresupuestosCliente = class(TDataModule) TRptPresupuestosCliente = class(TDataModule)
@ -33,12 +34,14 @@ type
DataSource2: TDataSource; DataSource2: TDataSource;
cabecera: TIBQuery; cabecera: TIBQuery;
detalles: TIBQuery; detalles: TIBQuery;
frxPDFExport1: TfrxPDFExport;
procedure DataModuleCreate(Sender: TObject); procedure DataModuleCreate(Sender: TObject);
private private
FConnection: IDAConnection; FConnection: IDAConnection;
procedure GenerarPresupuesto(const AID : Integer); overload; procedure _GenerarPresupuesto(const AID : Integer);
public public
function GenerarPresupuesto(const AID : String): Binary; overload; function GenerarPresupuesto(const ListaID : TIntegerArray): Binary;
function GenerarPresupuestoEnPDF(const ListaID : TIntegerArray): Binary;
end; end;
implementation implementation
@ -66,31 +69,45 @@ begin
frxReport.EngineOptions.NewSilentMode := simReThrow; frxReport.EngineOptions.NewSilentMode := simReThrow;
end; end;
function TRptPresupuestosCliente.GenerarPresupuesto(const AID: String): Binary; function TRptPresupuestosCliente.GenerarPresupuesto(const ListaID : TIntegerArray): Binary;
var var
ID_Presupuestos: TStringList;
i: Integer; i: Integer;
begin begin
Result := Binary.Create; Result := Binary.Create;
FConnection.BeginTransaction; //FConnection.BeginTransaction; <--- Creo que no va a hacer falta.
try try
ID_Presupuestos := TStringList.Create; //Vamos generando todos y cada uno de los presupuestos recibidos
ID_Presupuestos.CommaText := AID; for i := 0 to ListaID.Count - 1 do
_GenerarPresupuesto(ListaID.Items[i]);
//Vamos generando todos y cada uno de los albaranes recibidos
for i := 0 to ID_Presupuestos.Count - 1 do
GenerarPresupuesto(StrToInt(ID_Presupuestos.Strings[i]));
frxReport.PreviewPages.SaveToStream(Result); frxReport.PreviewPages.SaveToStream(Result);
finally finally
FConnection.RollbackTransaction; //FConnection.RollbackTransaction; <--- Creo que no va a hacer falta.
end; end;
end; end;
procedure TRptPresupuestosCliente.GenerarPresupuesto(const AID: Integer); function TRptPresupuestosCliente.GenerarPresupuestoEnPDF(
const ListaID: TIntegerArray): Binary;
var
i: Integer;
begin
Result := Binary.Create;
//FConnection.BeginTransaction; <--- Creo que no va a hacer falta.
try
//Vamos generando todos y cada uno de los presupuestos recibidos
for i := 0 to ListaID.Count - 1 do
_GenerarPresupuesto(ListaID.Items[i]);
frxPDFExport1.Stream := Result;
frxReport.Export(frxPDFExport1)
finally
//FConnection.RollbackTransaction; <--- Creo que no va a hacer falta.
end;
end;
procedure TRptPresupuestosCliente._GenerarPresupuesto(const AID: Integer);
{var {var
AStream: TMemoryStream; AStream: TMemoryStream;
dsMaster: IDADataset; dsMaster: IDADataset;

View File

@ -10,7 +10,7 @@ unit srvPresupuestosCliente_Impl;
interface interface
uses uses
{vcl:} Classes, SysUtils, {vcl:} Classes, SysUtils,
{RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions,
{Ancestor Implementation:} DataAbstractService_Impl, {Ancestor Implementation:} DataAbstractService_Impl,
{Used RODLs:} DataAbstract4_Intf, {Used RODLs:} DataAbstract4_Intf,
@ -31,10 +31,10 @@ type
procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset;
const IncludeSchema: Boolean; const MaxRecords: Integer); const IncludeSchema: Boolean; const MaxRecords: Integer);
procedure DARemoteServiceCreate(Sender: TObject); procedure DARemoteServiceCreate(Sender: TObject);
private
protected protected
{ IsrvPresupuestosCliente methods } { IsrvPresupuestosCliente methods }
function GenerateReport(const ID: String): Binary; function GenerarInforme(const ListaID: TIntegerArray): Binary;
function GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary;
end; end;
implementation implementation
@ -78,13 +78,27 @@ begin
ConnectionName := dmServer.ConnectionName; ConnectionName := dmServer.ConnectionName;
end; end;
function TsrvPresupuestosCliente.GenerateReport(const ID: String): Binary; function TsrvPresupuestosCliente.GenerarInforme(
const ListaID: TIntegerArray): Binary;
var var
AReportGenerator : TRptPresupuestosCliente; AReportGenerator : TRptPresupuestosCliente;
begin begin
AReportGenerator := TRptPresupuestosCliente.Create(nil); AReportGenerator := TRptPresupuestosCliente.Create(nil);
try try
Result := AReportGenerator.GenerarPresupuesto(ID); Result := AReportGenerator.GenerarPresupuesto(ListaID);
finally
FreeAndNIL(AReportGenerator);
end;
end;
function TsrvPresupuestosCliente.GenerarInformeEnPDF(
const ListaID: TIntegerArray): Binary;
var
AReportGenerator : TRptPresupuestosCliente;
begin
AReportGenerator := TRptPresupuestosCliente.Create(nil);
try
Result := AReportGenerator.GenerarPresupuestoEnPDF(ListaID);
finally finally
FreeAndNIL(AReportGenerator); FreeAndNIL(AReportGenerator);
end; end;

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<ProjectGuid>{9e558626-cf49-4cff-a178-e12c186758ac}</ProjectGuid> <ProjectGuid>{9e558626-cf49-4cff-a178-e12c186758ac}</ProjectGuid>
<MainSource>PresupuestosCliente_view.dpk</MainSource> <MainSource>PresupuestosCliente_view.dpk</MainSource>
@ -43,6 +42,10 @@
<Borland.ProjectType>Package</Borland.ProjectType> <Borland.ProjectType>Package</Borland.ProjectType>
<BorlandProject> <BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="ImplicitBuild">False</Package_Options><Package_Options Name="DesigntimeOnly">False</Package_Options><Package_Options Name="RuntimeOnly">False</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Excluded_Packages> <BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="ImplicitBuild">False</Package_Options><Package_Options Name="DesigntimeOnly">False</Package_Options><Package_Options Name="RuntimeOnly">False</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Excluded_Packages>
<Excluded_Packages Name="c:\archivos de programa\borland\delphi10\Bin\dclIntraweb_80_100.bpl">Intraweb 8.0 Design Package for Borland Development Studio 2006</Excluded_Packages> <Excluded_Packages Name="c:\archivos de programa\borland\delphi10\Bin\dclIntraweb_80_100.bpl">Intraweb 8.0 Design Package for Borland Development Studio 2006</Excluded_Packages>
</Excluded_Packages><Source><Source Name="MainSource">PresupuestosCliente_view.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject> </Excluded_Packages><Source><Source Name="MainSource">PresupuestosCliente_view.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
</ProjectExtensions> </ProjectExtensions>
@ -51,23 +54,12 @@
<DelphiCompile Include="PresupuestosCliente_view.dpk"> <DelphiCompile Include="PresupuestosCliente_view.dpk">
<MainSource>MainSource</MainSource> <MainSource>MainSource</MainSource>
</DelphiCompile> </DelphiCompile>
<DCCReference Include="..\Articulos_view.dcp" /> <DCCReference Include="..\..\Albaranes de cliente\Articulos_view.dcp" />
<DCCReference Include="..\Base.dcp" /> <DCCReference Include="..\..\Albaranes de cliente\Base.dcp" />
<DCCReference Include="..\Contactos_controller.dcp" /> <DCCReference Include="..\..\Albaranes de cliente\Contactos_controller.dcp" />
<DCCReference Include="..\cxLibraryD11.dcp" /> <DCCReference Include="..\..\Albaranes de cliente\GUIBase.dcp" />
<DCCReference Include="..\dxGDIPlusD11.dcp" /> <DCCReference Include="..\..\Albaranes de cliente\PresupuestosCliente_controller.dcp" />
<DCCReference Include="..\dxThemeD11.dcp" /> <DCCReference Include="..\..\Albaranes de cliente\PresupuestosCliente_model.dcp" />
<DCCReference Include="..\GUIBase.dcp" />
<DCCReference Include="..\PngComponentsD10.dcp" />
<DCCReference Include="..\PNG_D10.dcp" />
<DCCReference Include="..\PresupuestosCliente_controller.dcp" />
<DCCReference Include="..\PresupuestosCliente_model.dcp" />
<DCCReference Include="..\rtl.dcp" />
<DCCReference Include="..\tb2k_d10.dcp" />
<DCCReference Include="..\tbx_d10.dcp" />
<DCCReference Include="..\vcl.dcp" />
<DCCReference Include="..\vclactnband.dcp" />
<DCCReference Include="..\vclx.dcp" />
<DCCReference Include="uEditorElegirArticulosPresupuestoCliente.pas"> <DCCReference Include="uEditorElegirArticulosPresupuestoCliente.pas">
<Form>fEditorElegirArticulosPresupuestoCliente</Form> <Form>fEditorElegirArticulosPresupuestoCliente</Form>
<DesignClass>TfEditorElegirArticulosPedidoCliente</DesignClass> <DesignClass>TfEditorElegirArticulosPedidoCliente</DesignClass>
@ -93,10 +85,6 @@
<Form>frViewDetallesPresupuestoCliente</Form> <Form>frViewDetallesPresupuestoCliente</Form>
<DesignClass>TFrame</DesignClass> <DesignClass>TFrame</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="uViewDocumentosPresupuestoCliente.pas">
<Form>frViewDocumentosPresupuestoCliente</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="uViewElegirArticulosPresupuestosCliente.pas"> <DCCReference Include="uViewElegirArticulosPresupuestosCliente.pas">
<Form>frViewElegirArticulosPresupuestosCliente</Form> <Form>frViewElegirArticulosPresupuestosCliente</Form>
<DesignClass>TFrame</DesignClass> <DesignClass>TFrame</DesignClass>

View File

@ -34,14 +34,20 @@ type
pagMemoria: TTabSheet; pagMemoria: TTabSheet;
cxDBMemo1: TcxDBMemo; cxDBMemo1: TcxDBMemo;
edtPortada: TcxDBRichEdit; edtPortada: TcxDBRichEdit;
pagDocumentos: TTabSheet; actEnviarEMail: TAction;
frViewDocumentosPresupuestoCliente1: TfrViewDocumentosPresupuestoCliente; frViewDocumentosPresupuestoCliente1: TfrViewDocumentosPresupuestoCliente;
TBXItem7: TTBXItem;
TBXSeparatorItem6: TTBXSeparatorItem;
TBXItem33: TTBXItem;
TBXSubmenuItem2: TTBXSubmenuItem;
pagDocumentos: TTabSheet;
procedure FormShow(Sender: TObject); procedure FormShow(Sender: TObject);
procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction);
procedure pgPaginasChanging(Sender: TObject; var AllowChange: Boolean); procedure pgPaginasChanging(Sender: TObject; var AllowChange: Boolean);
procedure frViewTotales1ePortePropertiesValidate(Sender: TObject; procedure frViewTotales1ePortePropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
procedure actEnviarEMailExecute(Sender: TObject);
procedure actEnviarEMailUpdate(Sender: TObject);
private private
procedure RecalcularPortePorUnidad; procedure RecalcularPortePorUnidad;
@ -93,6 +99,18 @@ uses
{ {
**************************** TfEditorPresupuestoCliente **************************** **************************** TfEditorPresupuestoCliente ****************************
} }
procedure TfEditorPresupuestoCliente.actEnviarEMailExecute(Sender: TObject);
begin
inherited;
FController.EnviarPresupuestoPorEMail(Presupuesto);
end;
procedure TfEditorPresupuestoCliente.actEnviarEMailUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := HayDatos;
end;
procedure TfEditorPresupuestoCliente.AsignarVista; procedure TfEditorPresupuestoCliente.AsignarVista;
var var
AViewPresupuestoCliente: TfrViewPresupuestoCliente; AViewPresupuestoCliente: TfrViewPresupuestoCliente;

View File

@ -2,7 +2,6 @@ inherited fEditorPresupuestosCliente: TfEditorPresupuestosCliente
Caption = 'Lista de presupuestos de cliente' Caption = 'Lista de presupuestos de cliente'
ClientWidth = 674 ClientWidth = 674
ExplicitWidth = 682 ExplicitWidth = 682
ExplicitHeight = 471
PixelsPerInch = 96 PixelsPerInch = 96
TextHeight = 13 TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader inherited JvNavPanelHeader: TJvNavPanelHeader
@ -125,7 +124,11 @@ inherited fEditorPresupuestosCliente: TfEditorPresupuestosCliente
Width = 674 Width = 674
ExplicitWidth = 674 ExplicitWidth = 674
inherited tbxMain: TTBXToolbar inherited tbxMain: TTBXToolbar
ExplicitWidth = 632 ExplicitWidth = 674
object TBXItem41: TTBXItem [13]
Action = actEnviarEMail
DisplayMode = nbdmImageAndText
end
end end
inherited tbxMenu: TTBXToolbar inherited tbxMenu: TTBXToolbar
ExplicitWidth = 674 ExplicitWidth = 674
@ -140,6 +143,11 @@ inherited fEditorPresupuestosCliente: TfEditorPresupuestosCliente
object TBXSeparatorItem17: TTBXSeparatorItem object TBXSeparatorItem17: TTBXSeparatorItem
end end
end end
inherited TBXSubmenuItem32: TTBXSubmenuItem
object TBXItem4441: TTBXItem [0]
Action = actEnviarEMail
end
end
end end
inherited TBXTMain2: TTBXToolbar inherited TBXTMain2: TTBXToolbar
Visible = True Visible = True
@ -186,6 +194,13 @@ inherited fEditorPresupuestosCliente: TfEditorPresupuestosCliente
OnExecute = actGenerarExecute OnExecute = actGenerarExecute
OnUpdate = actGenerarUpdate OnUpdate = actGenerarUpdate
end end
object actEnviarEMail: TAction
Category = 'Acciones'
Caption = 'Enviar por e-mail...'
ImageIndex = 27
OnExecute = actEnviarEMailExecute
OnUpdate = actEnviarEMailUpdate
end
end end
inherited SmallImages: TPngImageList inherited SmallImages: TPngImageList
PngImages = < PngImages = <
@ -865,6 +880,27 @@ inherited fEditorPresupuestosCliente: TfEditorPresupuestosCliente
00000049454E44AE426082} 00000049454E44AE426082}
Name = 'PngImage26' Name = 'PngImage26'
Background = clWindow Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001964944415478DA
63FCFFFF3F03232323033A58BCE9F87F647EAC9F258622B05E6C068034873B8A
80D92019C62F8F194C1356339CDF399D91A0014B361FFB1FE6208AA299E1F323
306D52F90CC5100C03566E3DFC3FD04E02A2F9F727064690462066006A66FC02
64FFFAC8603451096E088A01CB361FFDFF8F819981183077D11A86FDAB7B18E1
062CDD7CE27F14573FC3B2EF450CD13E86181ABE7DFFCDF0F5DB6F866FDFFE30
1CB97897218AB38FC1B85B98E1DC8E698C600396000D8861696058FAB7116CC0
94C5FBB0DAEC6CAECF70EED6238668E67AB057500CF8F0E10383A0A0208A0B90
6D06B1BF01D9379E3C67387AFE09C389A37BD15CE06B01B47907434EAC13C3EF
3F7F19662E3F8862BB898606C3EFDFFF1896EF3DCFA0A5C0CD306FE9265403FC
9D20362F5CB71F4CE7C47AA01890D5BC164C7716F980D56018606BAC0656B079
EF2986F82047AC6150DEB785A13CD911AC06C300234D05867DC72F30B8D818E1
8DC2494B0E63F702281075D455884A07576EDEC134404A5480E1DAED07441900
021806F44D5D44B46618801B400900007F4518F05E90AAF20000000049454E44
AE426082}
Name = 'PngImage27'
Background = clWindow
end> end>
Bitmap = {} Bitmap = {}
end end
@ -1858,6 +1894,32 @@ inherited fEditorPresupuestosCliente: TfEditorPresupuestosCliente
454E44AE426082} 454E44AE426082}
Name = 'PngImage26' Name = 'PngImage26'
Background = clWindow Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F80000000970485973000017120000171201679FD252000002434944415478DA
B593DB6B13411C85CFA8AF0A11C5BED882977AA11A8A86A64AB5DA68ABB4DA17
9B071B94824F5510FF9022D8B4A2226AEA5DA434822951BC556D55225544E905
A448895048369562B6D9ACFB1BC9CA38BBEB46D203CB4C7667BEEF4CD865BAAE
6321C348C018B35D101978EDD82074A8D67633673B09081EDCB3426CA42A40D6
B88C91E6BE536FF07EB097152D7003879A416FA21297AF0F584A6C056EE1BF47
053D63014B89A540826B3F0D5086C30B406859735E18C3D31D924412B8827368
4680334348E99E392D480401C19DDE26B75114059722FD5C620AFAA2C3FAFED9
E3882FBB8AA3CD358E80F9790D2ABF727F8D1A129FBF625FE618EE6867F94912
B11E662BE88EC45CB76ED8518DAC9AC3A7C96FF682743A0D8FC7637B02A7E604
CF1ABF27A692285FBE1213E33F70EEE67951D0DEE247B86F109DED8D459FC0E7
DD04D5904C2567904AA5103C5C8FC6B633A2A0ADC9C7175FB81547CBAE1A5454
7890CFEBBCE1F7E4AC25383537C79B131C2AC3E8E4184E869A7839E92F6ADD5B
6D6EBC72FF0997AC2A5BCAE1D1E7239602EFDA4A684BF2589C5BC4E12782017E
FFE2ED47B2E060DD1661F38DE80B2E2138B5B20A352509C143ADBBCDFB91FE67
B220E0DF2C01EEC55E99ADEC426D8F1CD829DCBBFBF0A52CA8DBB64158147D3C
22B4720A356E6EF8F3F63D30F64A025FD51A73417C2821B5FA57A875BDDFCBE7
4F87476541D5FAD5FCE1D0DB8F429B6242CDB76FDD88771FBEC88275E565FC41
A1C5FF86DA532CBF64B297228E272855244157F85AC9E085988285CC2F0A951A
EF05170AF90000000049454E44AE426082}
Name = 'PngImage27'
Background = clWindow
end> end>
Bitmap = {} Bitmap = {}
end end
@ -1872,6 +1934,9 @@ inherited fEditorPresupuestosCliente: TfEditorPresupuestosCliente
object N4: TMenuItem [7] object N4: TMenuItem [7]
Caption = '-' Caption = '-'
end end
object Enviarporemail1: TMenuItem [11]
Action = actEnviarEMail
end
end end
object JsGenerarDialog: TJSDialog object JsGenerarDialog: TJSDialog
Content.Strings = ( Content.Strings = (

View File

@ -31,6 +31,10 @@ type
JsImprimirDialog: TJSDialog; JsImprimirDialog: TJSDialog;
TBXItem40: TTBXItem; TBXItem40: TTBXItem;
JsListaPresupuestosNoEliminados: TJSDialog; JsListaPresupuestosNoEliminados: TJSDialog;
actEnviarEMail: TAction;
Enviarporemail1: TMenuItem;
TBXItem4441: TTBXItem;
TBXItem41: TTBXItem;
procedure FormShow(Sender: TObject); procedure FormShow(Sender: TObject);
procedure actGenerarAlbaranCliExecute(Sender: TObject); procedure actGenerarAlbaranCliExecute(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject); procedure actEliminarUpdate(Sender: TObject);
@ -39,6 +43,8 @@ type
procedure actGenerarPresupuestoProvExecute(Sender: TObject); procedure actGenerarPresupuestoProvExecute(Sender: TObject);
procedure actGenerarExecute(Sender: TObject); procedure actGenerarExecute(Sender: TObject);
procedure actGenerarUpdate(Sender: TObject); procedure actGenerarUpdate(Sender: TObject);
procedure actEnviarEMailExecute(Sender: TObject);
procedure actEnviarEMailUpdate(Sender: TObject);
protected protected
FPresupuestos: IBizPresupuestoCliente; FPresupuestos: IBizPresupuestoCliente;
@ -92,6 +98,20 @@ begin
(Sender as TAction).Enabled := (FPresupuestos.SITUACION = SITUACION_PRESUPUESTO_PENDIENTE); (Sender as TAction).Enabled := (FPresupuestos.SITUACION = SITUACION_PRESUPUESTO_PENDIENTE);
end; end;
procedure TfEditorPresupuestosCliente.actEnviarEMailExecute(Sender: TObject);
begin
inherited;
FController.EnviarPresupuestoPorEMail(FPresupuestos);
end;
procedure TfEditorPresupuestosCliente.actEnviarEMailUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := HayDatos
and not (ViewGrid.NumSeleccionados > 1)
and ViewGrid.esSeleccionCeldaDatos;
end;
procedure TfEditorPresupuestosCliente.actGenerarAlbaranCliExecute(Sender: TObject); procedure TfEditorPresupuestosCliente.actGenerarAlbaranCliExecute(Sender: TObject);
var var
IDAlbaranAux : Integer; IDAlbaranAux : Integer;

View File

@ -1,88 +1,8 @@
inherited frViewDetallesPresupuestoCliente: TfrViewDetallesPresupuestoCliente inherited frViewDetallesPresupuestoCliente: TfrViewDetallesPresupuestoCliente
Width = 933
inherited ToolBar1: TToolBar
Width = 933
Height = 24
inherited ToolButton4: TToolButton
Wrap = False
end
inherited ToolButton14: TToolButton
Left = 334
Top = 0
ExplicitLeft = 334
ExplicitTop = 0
end
inherited FontName: TJvFontComboBox
Left = 368
Top = 0
ExplicitLeft = 368
ExplicitTop = 0
end
inherited FontSize: TEdit
Left = 513
Top = 0
ExplicitLeft = 513
ExplicitTop = 0
end
inherited UpDown1: TUpDown
Left = 555
Top = 0
ExplicitLeft = 555
ExplicitTop = 0
end
inherited ToolButton13: TToolButton
Left = 572
Top = 0
ExplicitLeft = 572
ExplicitTop = 0
end
inherited ToolButton6: TToolButton
Left = 580
Top = 0
ExplicitLeft = 580
ExplicitTop = 0
end
inherited ToolButton7: TToolButton
Left = 614
Top = 0
ExplicitLeft = 614
ExplicitTop = 0
end
inherited ToolButton8: TToolButton
Left = 648
Top = 0
ExplicitLeft = 648
ExplicitTop = 0
end
inherited ToolButton12: TToolButton
Left = 682
Top = 0
ExplicitLeft = 682
ExplicitTop = 0
end
inherited ToolButton9: TToolButton
Left = 690
Top = 0
ExplicitLeft = 690
ExplicitTop = 0
end
inherited ToolButton10: TToolButton
Left = 724
Top = 0
ExplicitLeft = 724
ExplicitTop = 0
end
inherited ToolButton11: TToolButton
Left = 758
Top = 0
ExplicitLeft = 758
ExplicitTop = 0
end
end
inherited cxGrid: TcxGrid inherited cxGrid: TcxGrid
Top = 50 ExplicitTop = 50
Width = 933 ExplicitWidth = 933
Height = 254 ExplicitHeight = 254
inherited cxGridView: TcxGridDBTableView inherited cxGridView: TcxGridDBTableView
inherited cxGridViewTIPO: TcxGridDBColumn inherited cxGridViewTIPO: TcxGridDBColumn
Width = 51 Width = 51
@ -108,19 +28,13 @@ inherited frViewDetallesPresupuestoCliente: TfrViewDetallesPresupuestoCliente
inherited cxGridViewIMPORTENETO: TcxGridDBColumn inherited cxGridViewIMPORTENETO: TcxGridDBColumn
Width = 65 Width = 65
end end
inherited cxGridViewIMPORTEPORTE: TcxGridDBColumn
Visible = False
end
inherited cxGridViewIMPORTETOTAL: TcxGridDBColumn inherited cxGridViewIMPORTETOTAL: TcxGridDBColumn
Width = 68 Width = 68
end end
end end
end end
inherited TBXDock1: TTBXDock inherited TBXDock1: TTBXDock
Top = 24 ExplicitTop = 24
Width = 933 ExplicitWidth = 933
inherited TBXToolbar1: TTBXToolbar
ExplicitWidth = 548
end
end end
end end

View File

@ -12,7 +12,10 @@ uses
Grids, DBGrids, StdCtrls, ExtCtrls, cxRichEdit, ExtActns, StdActns, Grids, DBGrids, StdCtrls, ExtCtrls, cxRichEdit, ExtActns, StdActns,
JvExStdCtrls, JvCombobox, JvColorCombo, TB2Item, TBX, TB2Dock, TB2Toolbar, JvExStdCtrls, JvCombobox, JvColorCombo, TB2Item, TBX, TB2Dock, TB2Toolbar,
uControllerDetallesArticulos, uBizPresupuestosCliente, uDAInterfaces, Buttons, uControllerDetallesArticulos, uBizPresupuestosCliente, uDAInterfaces, Buttons,
Mask, DBCtrls; Mask, DBCtrls, dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinOffice2007Black,
dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink,
dxSkinOffice2007Silver, dxSkinSilver, dxSkinsDefaultPainters,
dxSkinscxPCPainter;
type type
IViewDetallesPresupuestoCliente = interface(IViewDetallesArticulos) IViewDetallesPresupuestoCliente = interface(IViewDetallesArticulos)

View File

@ -278,11 +278,19 @@
<Interfaces> <Interfaces>
<Interface Name="Default" UID="{8A06D5A7-8461-4F6E-8A8B-EC49C84C45D1}"> <Interface Name="Default" UID="{8A06D5A7-8461-4F6E-8A8B-EC49C84C45D1}">
<Operations> <Operations>
<Operation Name="GenerateReport" UID="{4B11FE7D-44AE-4674-9DA7-6FB6B63FC620}"> <Operation Name="GenerarInforme" UID="{4B11FE7D-44AE-4674-9DA7-6FB6B63FC620}">
<Parameters> <Parameters>
<Parameter Name="Result" DataType="Binary" Flag="Result"> <Parameter Name="Result" DataType="Binary" Flag="Result">
</Parameter> </Parameter>
<Parameter Name="ID" DataType="String" Flag="In" > <Parameter Name="ListaID" DataType="TIntegerArray" Flag="In" >
</Parameter>
</Parameters>
</Operation>
<Operation Name="GenerarInformeEnPDF" UID="{16270F10-DFBD-469A-A401-033B4CBA4381}">
<Parameters>
<Parameter Name="Result" DataType="Binary" Flag="Result">
</Parameter>
<Parameter Name="ListaID" DataType="TIntegerArray" Flag="In" >
</Parameter> </Parameter>
</Parameters> </Parameters>
</Operation> </Operation>
@ -310,15 +318,15 @@
<Interfaces> <Interfaces>
<Interface Name="Default" UID="{6E910718-9AB0-47BB-9875-B0DE66A68D7A}"> <Interface Name="Default" UID="{6E910718-9AB0-47BB-9875-B0DE66A68D7A}">
<Operations> <Operations>
<Operation Name="GenerateReport" UID="{8CB6A25E-C350-4F63-B567-22D9A850BD87}"> <Operation Name="GenerarInforme" UID="{8CB6A25E-C350-4F63-B567-22D9A850BD87}">
<Parameters> <Parameters>
<Parameter Name="Result" DataType="Binary" Flag="Result"> <Parameter Name="Result" DataType="Binary" Flag="Result">
</Parameter> </Parameter>
<Parameter Name="ID" DataType="String" Flag="In" > <Parameter Name="ListaID" DataType="TIntegerArray" Flag="In" >
</Parameter> </Parameter>
</Parameters> </Parameters>
</Operation> </Operation>
<Operation Name="GenerateEtiquetas" UID="{260CD213-F125-422B-9BD1-401729460DF0}"> <Operation Name="GenerarInformeEtiquetas" UID="{260CD213-F125-422B-9BD1-401729460DF0}">
<Parameters> <Parameters>
<Parameter Name="Result" DataType="Binary" Flag="Result"> <Parameter Name="Result" DataType="Binary" Flag="Result">
</Parameter> </Parameter>
@ -607,6 +615,9 @@
<Array Name="TRdxEmpresasArray" UID="{CA344218-3432-40B8-8FB7-F5BB30406098}"> <Array Name="TRdxEmpresasArray" UID="{CA344218-3432-40B8-8FB7-F5BB30406098}">
<ElementType DataType="Integer" /> <ElementType DataType="Integer" />
</Array> </Array>
<Array Name="TIntegerArray" UID="{54E88E96-A839-4294-95CC-B4716651BB48}">
<ElementType DataType="Integer" />
</Array>
</Arrays> </Arrays>
<Uses> <Uses>
<Use Name="DataAbstract4" UID="{1E2905B4-36C9-4EAA-9BB9-DF3D3C9BBE75}" Rodl="$(Data Abstract for Delphi)\Source\DataAbstract4.RODL" AbsoluteRodl="C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Source\DataAbstract4.RODL"> <Use Name="DataAbstract4" UID="{1E2905B4-36C9-4EAA-9BB9-DF3D3C9BBE75}" Rodl="$(Data Abstract for Delphi)\Source\DataAbstract4.RODL" AbsoluteRodl="C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Source\DataAbstract4.RODL">

View File

@ -88,6 +88,7 @@ type
IsrvGestorDocumentos = interface; IsrvGestorDocumentos = interface;
TRdxEmpresasArray = class; TRdxEmpresasArray = class;
TIntegerArray = class;
TRdxLoginInfo = class; TRdxLoginInfo = class;
@ -164,6 +165,40 @@ type
property InnerArray: TRdxEmpresasArray_Integer read fItems; property InnerArray: TRdxEmpresasArray_Integer read fItems;
end; end;
{ TIntegerArray }
TIntegerArray_Integer = array of Integer;
TIntegerArray = class(TROArray)
private
fCount: Integer;
fItems : TIntegerArray_Integer;
protected
procedure Grow; virtual;
function GetItems(aIndex: integer): Integer;
procedure SetItems(aIndex: integer; const Value: Integer);
function GetCount: integer; override;
public
class function GetItemType: PTypeInfo; override;
class function GetItemSize: integer; override;
function GetItemRef(aIndex: integer): pointer; override;
procedure Clear; override;
procedure Delete(aIndex: integer); override;
procedure Resize(ElementCount: integer); override;
procedure Assign(iSource:TPersistent); override;
procedure ReadComplex(ASerializer: TObject); override;
procedure WriteComplex(ASerializer: TObject); override;
function Add(const Value:Integer): integer;
function GetIndex(const aPropertyName : string;
const aPropertyValue : Variant;
StartFrom : integer = 0;
Options : TROSearchOptions = [soIgnoreCase]) : integer; override;
property Count : integer read GetCount;
property Items[Index: integer]:Integer read GetItems write SetItems; default;
property InnerArray: TIntegerArray_Integer read fItems;
end;
{ IsrvContactos } { IsrvContactos }
IsrvContactos = interface(IDataAbstractService) IsrvContactos = interface(IDataAbstractService)
['{28CCDC07-A3A4-4917-89B4-64423DC70C9D}'] ['{28CCDC07-A3A4-4917-89B4-64423DC70C9D}']
@ -501,7 +536,8 @@ type
{ IsrvPresupuestosCliente } { IsrvPresupuestosCliente }
IsrvPresupuestosCliente = interface(IDataAbstractService) IsrvPresupuestosCliente = interface(IDataAbstractService)
['{8A06D5A7-8461-4F6E-8A8B-EC49C84C45D1}'] ['{8A06D5A7-8461-4F6E-8A8B-EC49C84C45D1}']
function GenerateReport(const ID: String): Binary; function GenerarInforme(const ListaID: TIntegerArray): Binary;
function GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary;
end; end;
{ CosrvPresupuestosCliente } { CosrvPresupuestosCliente }
@ -514,7 +550,8 @@ type
protected protected
function __GetInterfaceName:string; override; function __GetInterfaceName:string; override;
function GenerateReport(const ID: String): Binary; function GenerarInforme(const ListaID: TIntegerArray): Binary;
function GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary;
end; end;
{ IsrvPedidosProveedor } { IsrvPedidosProveedor }
@ -539,8 +576,8 @@ type
{ IsrvAlbaranesCliente } { IsrvAlbaranesCliente }
IsrvAlbaranesCliente = interface(IDataAbstractService) IsrvAlbaranesCliente = interface(IDataAbstractService)
['{6E910718-9AB0-47BB-9875-B0DE66A68D7A}'] ['{6E910718-9AB0-47BB-9875-B0DE66A68D7A}']
function GenerateReport(const ID: String): Binary; function GenerarInforme(const ListaID: TIntegerArray): Binary;
function GenerateEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary; function GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
end; end;
{ CosrvAlbaranesCliente } { CosrvAlbaranesCliente }
@ -553,8 +590,8 @@ type
protected protected
function __GetInterfaceName:string; override; function __GetInterfaceName:string; override;
function GenerateReport(const ID: String): Binary; function GenerarInforme(const ListaID: TIntegerArray): Binary;
function GenerateEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary; function GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
end; end;
{ IsrvAlbaranesProveedor } { IsrvAlbaranesProveedor }
@ -868,6 +905,138 @@ begin
WriteInteger(GetArrayElementName(GetItemType, GetItemRef(i)), otSLong, fItems[i], i); WriteInteger(GetArrayElementName(GetItemType, GetItemRef(i)), otSLong, fItems[i], i);
end; end;
{ TIntegerArray }
procedure TIntegerArray.Assign(iSource: TPersistent);
var lSource:TIntegerArray;
i:integer;
begin
if (iSource is TIntegerArray) then begin
lSource := TIntegerArray(iSource);
Clear();
Resize(lSource.Count);
for i := 0 to Count-1 do begin
Items[i] := lSource.Items[i];
end;
end
else begin
inherited Assign(iSource);
end;
end;
class function TIntegerArray.GetItemType: PTypeInfo;
begin
result := TypeInfo(Integer);
end;
class function TIntegerArray.GetItemSize: integer;
begin
result := SizeOf(Integer);
end;
function TIntegerArray.GetItems(aIndex: integer): Integer;
begin
if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
result := fItems[aIndex];
end;
function TIntegerArray.GetItemRef(aIndex: integer): pointer;
begin
if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
result := @fItems[aIndex];
end;
procedure TIntegerArray.Clear;
begin
SetLength(fItems, 0);
FCount := 0;
end;
procedure TIntegerArray.Delete(aIndex: integer);
var i: integer;
begin
if (aIndex>=Count) then RaiseError(err_InvalidIndex, [aIndex]);
if (aIndex<Count-1) then
for i := aIndex to Count-2 do fItems[i] := fItems[i+1];
SetLength(fItems, Count-1);
Dec(FCount);
end;
procedure TIntegerArray.SetItems(aIndex: integer; const Value: Integer);
begin
if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
if fItems[aIndex] <> Value then begin
fItems[aIndex] := Value;
end;
end;
procedure TIntegerArray.Resize(ElementCount: integer);
begin
if fCount = ElementCount then Exit;
SetLength(fItems, ElementCount);
FCount := ElementCount;
end;
function TIntegerArray.GetCount: integer;
begin
result := FCount;
end;
procedure TIntegerArray.Grow;
var
Delta, Capacity: Integer;
begin
Capacity := Length(fItems);
if Capacity > 64 then
Delta := Capacity div 4
else
if Capacity > 8 then
Delta := 16
else
Delta := 4;
SetLength(fItems, Capacity + Delta);
end;
function TIntegerArray.Add(const Value: Integer): integer;
begin
Result := Count;
if Length(fItems) = Result then
Grow;
fItems[result] := Value;
Inc(fCount);
end;
function TIntegerArray.GetIndex(const aPropertyName: string;
const aPropertyValue: Variant; StartFrom: integer;
Options: TROSearchOptions): integer;
begin
result := -1;
end;
procedure TIntegerArray.ReadComplex(ASerializer: TObject);
var
lval: Integer;
i: integer;
begin
for i := 0 to Count-1 do begin
with TROSerializer(ASerializer) do
ReadInteger(GetArrayElementName(GetItemType, GetItemRef(i)), otSLong, lval, i);
Items[i] := lval;
end;
end;
procedure TIntegerArray.WriteComplex(ASerializer: TObject);
var
i: integer;
begin
for i := 0 to Count-1 do
with TROSerializer(ASerializer) do
WriteInteger(GetArrayElementName(GetItemType, GetItemRef(i)), otSLong, fItems[i], i);
end;
{ TRdxLoginInfo } { TRdxLoginInfo }
procedure TRdxLoginInfo.Assign(iSource: TPersistent); procedure TRdxLoginInfo.Assign(iSource: TPersistent);
@ -1489,12 +1658,29 @@ begin
result := 'srvPresupuestosCliente'; result := 'srvPresupuestosCliente';
end; end;
function TsrvPresupuestosCliente_Proxy.GenerateReport(const ID: String): Binary; function TsrvPresupuestosCliente_Proxy.GenerarInforme(const ListaID: TIntegerArray): Binary;
begin begin
try try
result := nil; result := nil;
__Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport'); __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInforme');
__Message.Write('ID', TypeInfo(String), ID, []); __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
__Message.Finalize;
__TransportChannel.Dispatch(__Message);
__Message.Read('Result', TypeInfo(Binary), result, []);
finally
__Message.UnsetAttributes(__TransportChannel);
__Message.FreeStream;
end
end;
function TsrvPresupuestosCliente_Proxy.GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary;
begin
try
result := nil;
__Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnPDF');
__Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
__Message.Finalize; __Message.Finalize;
__TransportChannel.Dispatch(__Message); __TransportChannel.Dispatch(__Message);
@ -1551,12 +1737,12 @@ begin
result := 'srvAlbaranesCliente'; result := 'srvAlbaranesCliente';
end; end;
function TsrvAlbaranesCliente_Proxy.GenerateReport(const ID: String): Binary; function TsrvAlbaranesCliente_Proxy.GenerarInforme(const ListaID: TIntegerArray): Binary;
begin begin
try try
result := nil; result := nil;
__Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport'); __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInforme');
__Message.Write('ID', TypeInfo(String), ID, []); __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
__Message.Finalize; __Message.Finalize;
__TransportChannel.Dispatch(__Message); __TransportChannel.Dispatch(__Message);
@ -1568,11 +1754,11 @@ begin
end end
end; end;
function TsrvAlbaranesCliente_Proxy.GenerateEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary; function TsrvAlbaranesCliente_Proxy.GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
begin begin
try try
result := nil; result := nil;
__Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateEtiquetas'); __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEtiquetas');
__Message.Write('ID', TypeInfo(Integer), ID, []); __Message.Write('ID', TypeInfo(Integer), ID, []);
__Message.Write('withRefCliente', TypeInfo(Boolean), withRefCliente, []); __Message.Write('withRefCliente', TypeInfo(Boolean), withRefCliente, []);
__Message.Finalize; __Message.Finalize;
@ -1997,6 +2183,7 @@ end;
initialization initialization
RegisterROClass(TRdxLoginInfo); RegisterROClass(TRdxLoginInfo);
RegisterROClass(TRdxEmpresasArray); RegisterROClass(TRdxEmpresasArray);
RegisterROClass(TIntegerArray);
RegisterProxyClass(IsrvContactos_IID, TsrvContactos_Proxy); RegisterProxyClass(IsrvContactos_IID, TsrvContactos_Proxy);
RegisterProxyClass(IsrvLogin_IID, TsrvLogin_Proxy); RegisterProxyClass(IsrvLogin_IID, TsrvLogin_Proxy);
RegisterProxyClass(IsrvInventario_IID, TsrvInventario_Proxy); RegisterProxyClass(IsrvInventario_IID, TsrvInventario_Proxy);
@ -2031,6 +2218,7 @@ initialization
finalization finalization
UnregisterROClass(TRdxLoginInfo); UnregisterROClass(TRdxLoginInfo);
UnregisterROClass(TRdxEmpresasArray); UnregisterROClass(TRdxEmpresasArray);
UnregisterROClass(TIntegerArray);
UnregisterProxyClass(IsrvContactos_IID); UnregisterProxyClass(IsrvContactos_IID);
UnregisterProxyClass(IsrvLogin_IID); UnregisterProxyClass(IsrvLogin_IID);
UnregisterProxyClass(IsrvInventario_IID); UnregisterProxyClass(IsrvInventario_IID);

View File

@ -146,7 +146,8 @@ type
private private
protected protected
published published
procedure Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); procedure Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
procedure Invoke_GenerarInformeEnPDF(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
end; end;
TsrvPedidosProveedor_Invoker = class(TDataAbstractService_Invoker) TsrvPedidosProveedor_Invoker = class(TDataAbstractService_Invoker)
@ -160,8 +161,8 @@ type
private private
protected protected
published published
procedure Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); procedure Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
procedure Invoke_GenerateEtiquetas(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); procedure Invoke_GenerarInformeEtiquetas(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
end; end;
TsrvAlbaranesProveedor_Invoker = class(TDataAbstractService_Invoker) TsrvAlbaranesProveedor_Invoker = class(TDataAbstractService_Invoker)
@ -604,20 +605,21 @@ end;
{ TsrvPresupuestosCliente_Invoker } { TsrvPresupuestosCliente_Invoker }
procedure TsrvPresupuestosCliente_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); procedure TsrvPresupuestosCliente_Invoker.Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
{ function GenerateReport(const ID: String): Binary; } { function GenerarInforme(const ListaID: TIntegerArray): Binary; }
var var
ID: String; ListaID: FactuGES_Intf.TIntegerArray;
lResult: Binary; lResult: Binary;
__lObjectDisposer: TROObjectDisposer; __lObjectDisposer: TROObjectDisposer;
begin begin
ListaID := nil;
lResult := nil; lResult := nil;
try try
__Message.Read('ID', TypeInfo(String), ID, []); __Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
lResult := (__Instance as IsrvPresupuestosCliente).GenerateReport(ID); lResult := (__Instance as IsrvPresupuestosCliente).GenerarInforme(ListaID);
__Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvPresupuestosCliente', 'GenerateReportResponse'); __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvPresupuestosCliente', 'GenerarInformeResponse');
__Message.Write('Result', TypeInfo(Binary), lResult, []); __Message.Write('Result', TypeInfo(Binary), lResult, []);
__Message.Finalize; __Message.Finalize;
__Message.UnsetAttributes(__Transport); __Message.UnsetAttributes(__Transport);
@ -625,6 +627,37 @@ begin
finally finally
__lObjectDisposer := TROObjectDisposer.Create(__Instance); __lObjectDisposer := TROObjectDisposer.Create(__Instance);
try try
__lObjectDisposer.Add(ListaID);
__lObjectDisposer.Add(lResult);
finally
__lObjectDisposer.Free();
end;
end;
end;
procedure TsrvPresupuestosCliente_Invoker.Invoke_GenerarInformeEnPDF(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
{ function GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary; }
var
ListaID: FactuGES_Intf.TIntegerArray;
lResult: Binary;
__lObjectDisposer: TROObjectDisposer;
begin
ListaID := nil;
lResult := nil;
try
__Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
lResult := (__Instance as IsrvPresupuestosCliente).GenerarInformeEnPDF(ListaID);
__Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvPresupuestosCliente', 'GenerarInformeEnPDFResponse');
__Message.Write('Result', TypeInfo(Binary), lResult, []);
__Message.Finalize;
__Message.UnsetAttributes(__Transport);
finally
__lObjectDisposer := TROObjectDisposer.Create(__Instance);
try
__lObjectDisposer.Add(ListaID);
__lObjectDisposer.Add(lResult); __lObjectDisposer.Add(lResult);
finally finally
__lObjectDisposer.Free(); __lObjectDisposer.Free();
@ -664,20 +697,21 @@ end;
{ TsrvAlbaranesCliente_Invoker } { TsrvAlbaranesCliente_Invoker }
procedure TsrvAlbaranesCliente_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); procedure TsrvAlbaranesCliente_Invoker.Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
{ function GenerateReport(const ID: String): Binary; } { function GenerarInforme(const ListaID: TIntegerArray): Binary; }
var var
ID: String; ListaID: FactuGES_Intf.TIntegerArray;
lResult: Binary; lResult: Binary;
__lObjectDisposer: TROObjectDisposer; __lObjectDisposer: TROObjectDisposer;
begin begin
ListaID := nil;
lResult := nil; lResult := nil;
try try
__Message.Read('ID', TypeInfo(String), ID, []); __Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
lResult := (__Instance as IsrvAlbaranesCliente).GenerateReport(ID); lResult := (__Instance as IsrvAlbaranesCliente).GenerarInforme(ListaID);
__Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvAlbaranesCliente', 'GenerateReportResponse'); __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvAlbaranesCliente', 'GenerarInformeResponse');
__Message.Write('Result', TypeInfo(Binary), lResult, []); __Message.Write('Result', TypeInfo(Binary), lResult, []);
__Message.Finalize; __Message.Finalize;
__Message.UnsetAttributes(__Transport); __Message.UnsetAttributes(__Transport);
@ -685,6 +719,7 @@ begin
finally finally
__lObjectDisposer := TROObjectDisposer.Create(__Instance); __lObjectDisposer := TROObjectDisposer.Create(__Instance);
try try
__lObjectDisposer.Add(ListaID);
__lObjectDisposer.Add(lResult); __lObjectDisposer.Add(lResult);
finally finally
__lObjectDisposer.Free(); __lObjectDisposer.Free();
@ -692,8 +727,8 @@ begin
end; end;
end; end;
procedure TsrvAlbaranesCliente_Invoker.Invoke_GenerateEtiquetas(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); procedure TsrvAlbaranesCliente_Invoker.Invoke_GenerarInformeEtiquetas(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
{ function GenerateEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary; } { function GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary; }
var var
ID: Integer; ID: Integer;
withRefCliente: Boolean; withRefCliente: Boolean;
@ -705,9 +740,9 @@ begin
__Message.Read('ID', TypeInfo(Integer), ID, []); __Message.Read('ID', TypeInfo(Integer), ID, []);
__Message.Read('withRefCliente', TypeInfo(Boolean), withRefCliente, []); __Message.Read('withRefCliente', TypeInfo(Boolean), withRefCliente, []);
lResult := (__Instance as IsrvAlbaranesCliente).GenerateEtiquetas(ID, withRefCliente); lResult := (__Instance as IsrvAlbaranesCliente).GenerarInformeEtiquetas(ID, withRefCliente);
__Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvAlbaranesCliente', 'GenerateEtiquetasResponse'); __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvAlbaranesCliente', 'GenerarInformeEtiquetasResponse');
__Message.Write('Result', TypeInfo(Binary), lResult, []); __Message.Write('Result', TypeInfo(Binary), lResult, []);
__Message.Finalize; __Message.Finalize;
__Message.UnsetAttributes(__Transport); __Message.UnsetAttributes(__Transport);

Binary file not shown.

Binary file not shown.

View File

@ -16,7 +16,7 @@ BEGIN
VALUE "FileVersion", "2.2.4.0\0" VALUE "FileVersion", "2.2.4.0\0"
VALUE "ProductName", "FactuGES (Servidor)\0" VALUE "ProductName", "FactuGES (Servidor)\0"
VALUE "ProductVersion", "2.2.4.0\0" VALUE "ProductVersion", "2.2.4.0\0"
VALUE "CompileDate", "viernes, 19 de septiembre de 2008 11:50\0" VALUE "CompileDate", "viernes, 03 de octubre de 2008 18:47\0"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"