Se adapta inventario para que se rellene una lista desplegable con los alamcenes en lugar de hacer pestañas y nos recupere solo el id y descripcion de obras y alamcenes

git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@732 0c75b7a4-871f-7646-8a2f-f78d34cc349f
This commit is contained in:
roberto 2008-11-05 12:46:33 +00:00
parent 8f67ae8483
commit 19e0c46836
24 changed files with 483 additions and 70 deletions

View File

@ -2,6 +2,7 @@ program FactuGES;
uses
// ExceptionLog,
ExceptionLog,
Forms,
Windows,
SysUtils,

View File

@ -55,6 +55,10 @@
<Borland.ProjectType>VCLApplication</Borland.ProjectType>
<BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Language><Language Name="RootDir">C:\Archivos de programa\Borland\Delphi7\Bin\</Language></Language><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">4</VersionInfo><VersionInfo Name="Release">2</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">Rodax Software S.L.</VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.4.2.0</VersionInfoKeys><VersionInfoKeys Name="InternalName">FactuGES</VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName">FactuGES</VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.4.2.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPSCoreD10.bpl">ExpressPrinting System by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\PluginSDK_D10R.bpl">PluginSDK for Delphi 10 (Runtime)</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dcloffice2k100.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>

View File

@ -25,6 +25,7 @@ type
function Duplicar(AAlmacen: IBizAlmacen): IBizAlmacen;
procedure Preview(AAlmacen : IBizAlmacen);
procedure Print(AAlmacen : IBizAlmacen);
function DarListaAlmacenes : TStringList;
end;
TAlmacenesController = class(TControllerBase, IAlmacenesController)
@ -66,6 +67,7 @@ type
function Duplicar(AAlmacen: IBizAlmacen): IBizAlmacen;
procedure Preview(AAlmacen : IBizAlmacen);
procedure Print(AAlmacen : IBizAlmacen);
function DarListaAlmacenes : TStringList;
end;
implementation
@ -132,6 +134,16 @@ begin
Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf);
end;
function TAlmacenesController.DarListaAlmacenes: TStringList;
begin
ShowHourglassCursor;
try
Result := FDataModule.DarListaAlmacenes;
finally
HideHourglassCursor;
end;
end;
procedure TAlmacenesController.DescartarCambios(AAlmacen: IBizAlmacen);
begin
if not Assigned(AAlmacen) then

View File

@ -27,6 +27,7 @@ type
function GetItems : IBizAlmacen;
function GetItem(const ID : Integer) : IBizAlmacen;
function NewItem : IBizAlmacen;
function DarListaAlmacenes : TStringList;
end;
implementation
@ -50,6 +51,15 @@ begin
RORemoteService.Message := dmConexion.Message;
end;
function TDataModuleAlmacenes.DarListaAlmacenes: TStringList;
var
ABinary : Binary;
begin
ABinary := (RORemoteService as IsrvAlmacenes).DarListaAlmacenes;
Result := TStringList.Create;
Result.LoadFromStream(ABinary);
end;
function TDataModuleAlmacenes.NewItem: IBizAlmacen;
begin
Result := GetItem(ID_NULO)

View File

@ -60,9 +60,8 @@
<DelphiCompile Include="Almacenes_model.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\..\..\GUIBase\ApplicationBasecontainsuBizAlmacenesin.dcp" />
<DCCReference Include="..\ApplicationBase.dcp" />
<DCCReference Include="..\Base.dcp" />
<DCCReference Include="ApplicationBase.dcp" />
<DCCReference Include="Base.dcp" />
<DCCReference Include="Data\uIDataModuleAlmacenes.pas" />
<DCCReference Include="schAlmacenesClient_Intf.pas" />
<DCCReference Include="uBizAlmacenes.pas" />

View File

@ -3,7 +3,7 @@ unit uIDataModuleAlmacenes;
interface
uses
uBizAlmacenes;
Classes, uBizAlmacenes;
type
IDataModuleAlmacenes = interface
@ -11,6 +11,7 @@ type
function GetItems: IBizAlmacen;
function GetItem(const ID : Integer) : IBizAlmacen;
function NewItem : IBizAlmacen;
function DarListaAlmacenes : TStringList;
end;
implementation

View File

@ -112,6 +112,40 @@ object srvAlmacenes: TsrvAlmacenes
DataDictionary = DataDictionary
Diagrams = Diagrams
Datasets = <
item
Params = <>
Statements = <
item
ConnectionType = 'Interbase'
Default = True
TargetTable = 'ALMACENES'
Name = 'IBX'
SQL =
'Select ID, NOMBRE'#10'from ALMACENES'#10'where TIPO_ALMACEN = '#39'ALMACEN'#39#10 +
#10
StatementType = stSQL
ColumnMappings = <
item
DatasetField = 'ID'
TableField = 'ID'
end
item
DatasetField = 'NOMBRE'
TableField = 'NOMBRE'
end>
end>
Name = 'ListaAlmacenes'
Fields = <
item
Name = 'ID'
DataType = datInteger
end
item
Name = 'NOMBRE'
DataType = datString
Size = 255
end>
end
item
Params = <>
Statements = <

View File

@ -31,13 +31,15 @@ type
procedure DARemoteServiceCreate(Sender: TObject);
procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject;
var aConnectionName: string);
protected
function DarListaAlmacenes: Binary;
end;
implementation
{$R *.dfm}
uses
{Generated:} FactuGES_Invk, uDataModuleServer,
{Generated:} FactuGES_Invk, uDataModuleServer, uROClasses,
uDatabaseUtils, schAlmacenesClient_Intf, uRestriccionesUsuarioUtils;
procedure Create_srvAlmacenes(out anInstance : IUnknown);
@ -64,6 +66,42 @@ begin
SessionManager := dmServer.SessionManager;
end;
function TsrvAlmacenes.DarListaAlmacenes: Binary;
var
ASchema : TDASchema;
AConn : IDAConnection;
dsData: IDADataset;
ALista : TStringList;
begin
Result := Binary.Create;
ASchema := schAlmacenes;
AConn := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionManager.GetDefaultConnectionName);
try
dsData := ASchema.NewDataset(AConn, 'ListaAlmacenes');
except
RaiseError('No existe la tabla ALMACENES');
end;
ALista := TStringList.Create;
try
dsData.Active := True;
ALista.Sorted := True;
while not dsData.EOF do
begin
ALista.Add(Format('%s=%d', [dsData.Fields[1].AsString, dsData.Fields[0].AsInteger]));
dsData.Next;
end;
ALista.SaveToStream(Result);
finally
FreeANDNIL(ALista);
dsData := NIL;
AConn := NIL;
end;
end;
procedure TsrvAlmacenes.DataAbstractServiceBeforeAcquireConnection(
aSender: TObject; var aConnectionName: string);
begin

View File

@ -11,10 +11,15 @@
<Projects Include="..\..\Servidor\FactuGES_Server.dproj" />
<Projects Include="..\Albaranes de proveedor\Controller\AlbaranesProveedor_controller.dproj" />
<Projects Include="..\Albaranes de proveedor\Data\AlbaranesProveedor_data.dproj" />
<Projects Include="..\Almacenes\Controller\Almacenes_controller.dproj" />
<Projects Include="..\Almacenes\Data\Almacenes_data.dproj" />
<Projects Include="..\Almacenes\Model\Almacenes_model.dproj" />
<Projects Include="..\Articulos\Controller\Articulos_controller.dproj" />
<Projects Include="..\Articulos\Views\Articulos_view.dproj" />
<Projects Include="..\Contactos\Views\Contactos_view.dproj" />
<Projects Include="..\Obras\Controller\Obras_controller.dproj" />
<Projects Include="..\Obras\Data\Obras_data.dproj" />
<Projects Include="..\Obras\Model\Obras_model.dproj" />
<Projects Include="..\Pedidos a proveedor\Controller\PedidosProveedor_controller.dproj" />
<Projects Include="..\Pedidos a proveedor\Views\PedidosProveedor_view.dproj" />
<Projects Include="..\Relaciones\Pedidos de proveedor - Albaranes de proveedor\PedProv_AlbProv_relation.dproj" />
@ -201,14 +206,59 @@
<Target Name="AlbaranesProveedor_data:Make">
<MSBuild Projects="..\Albaranes de proveedor\Data\AlbaranesProveedor_data.dproj" Targets="Make" />
</Target>
<Target Name="Almacenes_controller">
<MSBuild Projects="..\Almacenes\Controller\Almacenes_controller.dproj" Targets="" />
</Target>
<Target Name="Almacenes_controller:Clean">
<MSBuild Projects="..\Almacenes\Controller\Almacenes_controller.dproj" Targets="Clean" />
</Target>
<Target Name="Almacenes_controller:Make">
<MSBuild Projects="..\Almacenes\Controller\Almacenes_controller.dproj" Targets="Make" />
</Target>
<Target Name="Almacenes_data">
<MSBuild Projects="..\Almacenes\Data\Almacenes_data.dproj" Targets="" />
</Target>
<Target Name="Almacenes_data:Clean">
<MSBuild Projects="..\Almacenes\Data\Almacenes_data.dproj" Targets="Clean" />
</Target>
<Target Name="Almacenes_data:Make">
<MSBuild Projects="..\Almacenes\Data\Almacenes_data.dproj" Targets="Make" />
</Target>
<Target Name="Obras_data">
<MSBuild Projects="..\Obras\Data\Obras_data.dproj" Targets="" />
</Target>
<Target Name="Obras_data:Clean">
<MSBuild Projects="..\Obras\Data\Obras_data.dproj" Targets="Clean" />
</Target>
<Target Name="Obras_data:Make">
<MSBuild Projects="..\Obras\Data\Obras_data.dproj" Targets="Make" />
</Target>
<Target Name="Obras_model">
<MSBuild Projects="..\Obras\Model\Obras_model.dproj" Targets="" />
</Target>
<Target Name="Obras_model:Clean">
<MSBuild Projects="..\Obras\Model\Obras_model.dproj" Targets="Clean" />
</Target>
<Target Name="Obras_model:Make">
<MSBuild Projects="..\Obras\Model\Obras_model.dproj" Targets="Make" />
</Target>
<Target Name="Almacenes_model">
<MSBuild Projects="..\Almacenes\Model\Almacenes_model.dproj" Targets="" />
</Target>
<Target Name="Almacenes_model:Clean">
<MSBuild Projects="..\Almacenes\Model\Almacenes_model.dproj" Targets="Clean" />
</Target>
<Target Name="Almacenes_model:Make">
<MSBuild Projects="..\Almacenes\Model\Almacenes_model.dproj" Targets="Make" />
</Target>
<Target Name="Build">
<CallTarget Targets="Base;GUIBase;ApplicationBase;Contactos_view;Articulos_view;Inventario_model;Inventario_data;Inventario_controller;PedProv_AlbProv_relation;Inventario_view;Inventario_plugin;FactuGES;FactuGES_Server;Obras_controller;AlbaranesProveedor_controller;PedidosProveedor_controller;PedidosProveedor_view;Articulos_controller;AlbaranesProveedor_data" />
<CallTarget Targets="Base;GUIBase;ApplicationBase;Contactos_view;Articulos_view;Inventario_model;Inventario_data;Inventario_controller;PedProv_AlbProv_relation;Inventario_view;Inventario_plugin;FactuGES;FactuGES_Server;Obras_controller;AlbaranesProveedor_controller;PedidosProveedor_controller;PedidosProveedor_view;Articulos_controller;AlbaranesProveedor_data;Almacenes_controller;Almacenes_data;Obras_data;Obras_model;Almacenes_model" />
</Target>
<Target Name="Clean">
<CallTarget Targets="Base:Clean;GUIBase:Clean;ApplicationBase:Clean;Contactos_view:Clean;Articulos_view:Clean;Inventario_model:Clean;Inventario_data:Clean;Inventario_controller:Clean;PedProv_AlbProv_relation:Clean;Inventario_view:Clean;Inventario_plugin:Clean;FactuGES:Clean;FactuGES_Server:Clean;Obras_controller:Clean;AlbaranesProveedor_controller:Clean;PedidosProveedor_controller:Clean;PedidosProveedor_view:Clean;Articulos_controller:Clean;AlbaranesProveedor_data:Clean" />
<CallTarget Targets="Base:Clean;GUIBase:Clean;ApplicationBase:Clean;Contactos_view:Clean;Articulos_view:Clean;Inventario_model:Clean;Inventario_data:Clean;Inventario_controller:Clean;PedProv_AlbProv_relation:Clean;Inventario_view:Clean;Inventario_plugin:Clean;FactuGES:Clean;FactuGES_Server:Clean;Obras_controller:Clean;AlbaranesProveedor_controller:Clean;PedidosProveedor_controller:Clean;PedidosProveedor_view:Clean;Articulos_controller:Clean;AlbaranesProveedor_data:Clean;Almacenes_controller:Clean;Almacenes_data:Clean;Obras_data:Clean;Obras_model:Clean;Almacenes_model:Clean" />
</Target>
<Target Name="Make">
<CallTarget Targets="Base:Make;GUIBase:Make;ApplicationBase:Make;Contactos_view:Make;Articulos_view:Make;Inventario_model:Make;Inventario_data:Make;Inventario_controller:Make;PedProv_AlbProv_relation:Make;Inventario_view:Make;Inventario_plugin:Make;FactuGES:Make;FactuGES_Server:Make;Obras_controller:Make;AlbaranesProveedor_controller:Make;PedidosProveedor_controller:Make;PedidosProveedor_view:Make;Articulos_controller:Make;AlbaranesProveedor_data:Make" />
<CallTarget Targets="Base:Make;GUIBase:Make;ApplicationBase:Make;Contactos_view:Make;Articulos_view:Make;Inventario_model:Make;Inventario_data:Make;Inventario_controller:Make;PedProv_AlbProv_relation:Make;Inventario_view:Make;Inventario_plugin:Make;FactuGES:Make;FactuGES_Server:Make;Obras_controller:Make;AlbaranesProveedor_controller:Make;PedidosProveedor_controller:Make;PedidosProveedor_view:Make;Articulos_controller:Make;AlbaranesProveedor_data:Make;Almacenes_controller:Make;Almacenes_data:Make;Obras_data:Make;Obras_model:Make;Almacenes_model:Make" />
</Target>
<Import Condition="Exists('$(MSBuildBinPath)\Borland.Group.Targets')" Project="$(MSBuildBinPath)\Borland.Group.Targets" />
</Project>

View File

@ -151,10 +151,11 @@ inherited fEditorInventario: TfEditorInventario
ExplicitHeight = 419
inherited cxGrid: TcxGrid
Width = 669
Height = 291
Height = 250
TabOrder = 2
ExplicitTop = 143
ExplicitWidth = 669
ExplicitHeight = 291
ExplicitHeight = 250
inherited cxGridView: TcxGridDBTableView
DataController.Summary.DefaultGroupSummaryItems = <
item
@ -270,6 +271,12 @@ inherited fEditorInventario: TfEditorInventario
end
end
end
inherited Panel1: TPanel
Width = 669
ExplicitLeft = 0
ExplicitTop = 102
ExplicitWidth = 669
end
inherited dxComponentPrinter: TdxComponentPrinter
inherited dxComponentPrinterLink: TdxGridReportLink
Active = False

View File

@ -345,12 +345,12 @@ begin
if (FTipoInventario = CTE_INV_ALMACEN) then
begin
if Assigned(ViewGrid) then
(ViewGrid as IViewInventario).Almacenes := FController.AlmacenesController.BuscarTodos;
(ViewGrid as IViewInventario).Almacenes := FController.AlmacenesController.DarListaAlmacenes;
end
else if (FTipoInventario = CTE_INV_OBRA) then
begin
if Assigned(ViewGrid) then
(ViewGrid as IViewInventario).Obras := FController.ObrasController.BuscarTodos;
(ViewGrid as IViewInventario).Obras := FController.ObrasController.DarListaObras;
end;
end;

View File

@ -1,9 +1,14 @@
inherited frViewInventario: TfrViewInventario
Width = 674
Height = 607
ExplicitWidth = 674
ExplicitHeight = 607
inherited cxGrid: TcxGrid
Top = 143
Width = 674
Height = 438
RootLevelOptions.DetailTabsPosition = dtpTop
OnActiveTabChanged = cxGridActiveTabChanged
inherited cxGridView: TcxGridDBTableView
DataController.KeyFieldNames = 'RECID'
DataController.Summary.DefaultGroupSummaryItems = <
item
Format = ',0.00 '#8364';-,0.00 '#8364
@ -163,8 +168,10 @@ inherited frViewInventario: TfrViewInventario
end
end
inherited frViewFiltroBase1: TfrViewFiltroBase
Width = 674
inherited TBXDockablePanel1: TTBXDockablePanel
inherited dxLayoutControl1: TdxLayoutControl
Width = 674
inherited txtFiltroTodo: TcxTextEdit
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = ''
@ -194,6 +201,41 @@ inherited frViewInventario: TfrViewInventario
Width = 215
end
end
inherited TBXAlignmentPanel1: TTBXAlignmentPanel
Width = 674
inherited tbxBotones: TTBXToolbar
Width = 664
end
end
end
end
inherited pnlAgrupaciones: TTBXDockablePanel
Top = 581
inherited TBXAlignmentPanel1: TTBXAlignmentPanel
Width = 674
inherited TBXToolbar1: TTBXToolbar
Width = 664
end
end
end
object Panel1: TPanel [3]
Left = 0
Top = 102
Width = 674
Height = 41
Align = alTop
TabOrder = 3
ExplicitLeft = 160
ExplicitTop = 96
ExplicitWidth = 185
object cxListaAlmacenesObras: TcxComboBox
Left = 10
Top = 14
Properties.DropDownListStyle = lsEditFixedList
Properties.ImmediatePost = True
Properties.OnEditValueChanged = cxListaObrasPropertiesEditValueChanged
TabOrder = 0
Width = 587
end
end
inherited dxComponentPrinter: TdxComponentPrinter

View File

@ -13,9 +13,10 @@ uses
dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, cxImage,
cxImageComboBox, ImgList, PngImageList, cxTextEdit, Grids, DBGrids, cxDBLookupComboBox,
cxButtonEdit, cxGridCustomPopupMenu, cxGridPopupMenu, uViewGrid,
uBizInventario, uBizAlmacenes, cxSpinEdit, uViewFiltroBase, TB2Item, TBX,
uBizInventario, cxSpinEdit, uViewFiltroBase, TB2Item, TBX,
TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, cxCurrencyEdit, uDAInterfaces,
uBizObras;
cxContainer, cxMaskEdit, cxDropDownEdit;
// uBizAlmacenes, uBizObras;
type
IViewInventario = interface(IViewGrid)
@ -23,12 +24,12 @@ type
function GetInventario: IBizInventario;
procedure SetInventario(const Value: IBizInventario);
property Inventario: IBizInventario read GetInventario write SetInventario;
function GetAlmacenes: IBizAlmacen;
procedure SetAlmacenes(const Value: IBizAlmacen);
property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacenes;
function GetObras: IBizObra;
procedure SetObras(const Value: IBizObra);
property Obras: IBizObra read GetObras write SetObras;
function GetAlmacenes: TStringList;
procedure SetAlmacenes(const Value: TStringList);
property Almacenes: TStringList read GetAlmacenes write SetAlmacenes;
function GetObras: TStringList;
procedure SetObras(const Value: TStringList);
property Obras: TStringList read GetObras write SetObras;
end;
TfrViewInventario = class(TfrViewGrid, IViewInventario)
@ -49,24 +50,25 @@ type
cxGridViewID: TcxGridDBColumn;
cxGridViewID_ARTICULO: TcxGridDBColumn;
cxStyleArticuloConStock: TcxStyle;
procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
Panel1: TPanel;
cxListaAlmacenesObras: TcxComboBox;
procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView;
ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out
AStyle: TcxStyle);
procedure cxListaObrasPropertiesEditValueChanged(Sender: TObject);
private
//Filtros relativos a la vista
procedure AnadirFiltroAlmacenesObras;
protected
FAlmacenes: IBizAlmacen;
FObras: IBizObra;
FAlmacenes: TStringList;
FObras: TStringList;
FInventario: IBizInventario;
function GetAlmacenes: IBizAlmacen;
procedure SetAlmacenes(const Value: IBizAlmacen);
function GetObras: IBizObra;
procedure SetObras(const Value: IBizObra);
function GetAlmacenes: TStringList;
procedure SetAlmacenes(const Value: TStringList);
function GetObras: TStringList;
procedure SetObras(const Value: TStringList);
function GetInventario: IBizInventario;
procedure SetInventario(const Value: IBizInventario);
public
@ -87,8 +89,16 @@ var
begin
FFiltro := AddFilterGrid(fboAnd);
CodigoAlmacen := IntToStr(cxGrid.Levels.Items[cxGrid.ActiveLevel.Index].Tag);
if CodigoAlmacen <> '-1' then
//INV_ALMACENES
if Assigned(FAlmacenes) then
CodigoAlmacen := FAlmacenes.Values[cxListaAlmacenesObras.EditValue]
//INV_OBRAS
else if Assigned(FObras) then
CodigoAlmacen := FObras.Values[cxListaAlmacenesObras.EditValue]
else
Raise Exception.Create('No se ha asignado ninguna lista de ALMACENES');
if CodigoAlmacen <> '' then
begin
FFiltro.AddItem(cxGridViewID_ALMACEN, foEqual, CodigoAlmacen, CodigoAlmacen);
cxGridViewALMACEN.Visible := False;
@ -110,12 +120,6 @@ begin
cxGrid.ActiveLevel.GridView := cxGridView;
end;
procedure TfrViewInventario.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
begin
inherited;
RefrescarFiltro;
end;
procedure TfrViewInventario.cxGridViewStylesGetContentStyle(Sender:
TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem:
TcxCustomGridTableItem; out AStyle: TcxStyle);
@ -135,6 +139,13 @@ begin
end;
end;
procedure TfrViewInventario.cxListaObrasPropertiesEditValueChanged(
Sender: TObject);
begin
inherited;
RefrescarFiltro;
end;
destructor TfrViewInventario.Destroy;
begin
FAlmacenes := Nil;
@ -143,7 +154,7 @@ begin
inherited;
end;
function TfrViewInventario.GetAlmacenes: IBizAlmacen;
function TfrViewInventario.GetAlmacenes: TStringList;
begin
Result := FAlmacenes;
end;
@ -153,14 +164,15 @@ begin
Result := FInventario;
end;
function TfrViewInventario.GetObras: IBizObra;
function TfrViewInventario.GetObras: TStringList;
begin
Result := FObras;
end;
procedure TfrViewInventario.SetAlmacenes(const Value: IBizAlmacen);
procedure TfrViewInventario.SetAlmacenes(const Value: TStringList);
var
Nivel: TcxGridLevel;
i: integer;
begin
FAlmacenes := Value;
@ -168,18 +180,18 @@ begin
begin
cxGrid.BeginUpdate;
try
cxGridLevel.Caption := 'Todos los almacenes';
if not FAlmacenes.DataTable.Active then
FAlmacenes.DataTable.Active := True;
FAlmacenes.First;
while not FAlmacenes.EOF do
with cxListaAlmacenesObras.Properties.Items do
begin
Nivel := cxGrid.Levels.Add;
Nivel.Caption := FAlmacenes.NOMBRE;
Nivel.Tag := FAlmacenes.ID;
FAlmacenes.Next;
BeginUpdate;
try
Clear;
for i := 0 to FAlmacenes.Count - 1 do
Add(FAlmacenes.Names[i]);
finally
EndUpdate;
end;
end;
finally
cxGrid.EndUpdate;
end;
@ -195,9 +207,10 @@ begin
dsDataSource.DataTable := Nil;
end;
procedure TfrViewInventario.SetObras(const Value: IBizObra);
procedure TfrViewInventario.SetObras(const Value: TStringList);
var
Nivel: TcxGridLevel;
i: integer;
begin
FObras := Value;
@ -205,18 +218,18 @@ begin
begin
cxGrid.BeginUpdate;
try
cxGridLevel.Caption := 'Todos las obras';
if not FObras.DataTable.Active then
FObras.DataTable.Active := True;
FObras.First;
while not FObras.EOF do
with cxListaAlmacenesObras.Properties.Items do
begin
Nivel := cxGrid.Levels.Add;
Nivel.Caption := FObras.NOMBRE;
Nivel.Tag := FObras.ID;
FObras.Next;
BeginUpdate;
try
Clear;
for i := 0 to FObras.Count - 1 do
Add(FObras.Names[i]);
finally
EndUpdate;
end;
end;
finally
cxGrid.EndUpdate;
end;

View File

@ -34,6 +34,7 @@ type
// procedure NuevaEjecucion(AObra: IBizObra; const AFecha : TDateTime);
procedure CerrarEjecucionActiva(AObra: IBizObra; const AFecha : TDateTime);
function LocalizarEjecucionActiva(AEjecuciones: IBizEjecucionesObra): boolean;
function DarListaObras : TStringList;
end;
TObrasController = class(TControllerBase, IObrasController)
@ -81,7 +82,8 @@ type
procedure QuitarDireccion(AObra: IBizObra);
procedure CopiarDireccion (const ADireccionEnvio: IBizDireccionesContacto; AObra: IBizObra); overload;
procedure CopiarDireccion (const ACliente: IBizCliente; AObra: IBizObra); overload;
function LocalizarEjecucionActiva(AEjecuciones: IBizEjecucionesObra): boolean;
function LocalizarEjecucionActiva(AEjecuciones: IBizEjecucionesObra): boolean;
function DarListaObras : TStringList;
end;
implementation
@ -257,6 +259,16 @@ begin
Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf);
end;
function TObrasController.DarListaObras: TStringList;
begin
ShowHourglassCursor;
try
Result := FDataModule.DarListaObras;
finally
HideHourglassCursor;
end;
end;
procedure TObrasController.DescartarCambios(AObra : IBizObra);
begin
if not Assigned(AObra) then

View File

@ -35,6 +35,7 @@ type
function GetItems : IBizObra;
function GetItem(const ID : Integer) : IBizObra;
function NewItem : IBizObra;
function DarListaObras : TStringList;
end;
implementation
@ -112,6 +113,15 @@ begin
end;
end;
function TDataModuleObras.DarListaObras: TStringList;
var
ABinary : Binary;
begin
ABinary := (RORemoteService as IsrvObras).DarListaObras;
Result := TStringList.Create;
Result.LoadFromStream(ABinary);
end;
function TDataModuleObras.GetEjecucionPresupuestos(
const IDEjecucion: Integer): IBizEjecucionPresupuestos;
var

View File

@ -3,7 +3,7 @@ unit uIDataModuleObras;
interface
uses
uBizObras;
Classes, uBizObras;
type
IDataModuleObras = interface
@ -12,6 +12,7 @@ type
function GetItems: IBizObra;
function GetItem(const ID : Integer) : IBizObra;
function NewItem : IBizObra;
function DarListaObras : TStringList;
end;
implementation

View File

@ -41,9 +41,9 @@ object srvObras: TsrvObras
'<Diagrams>'#13#10' <Diagram Name="New Diagram" Left="200" Top="200" W' +
'idth="1202" Height="535">'#13#10' <Entity Name="ObrasEjecucionesPed' +
'idosProveedor" Left="426,74" Top="188,62" />'#13#10' <Entity Name="' +
'Obras" Left="0,00" Top="110,00" />'#13#10' <Entity Name="ObrasEjecu' +
'ciones" Left="180,50" Top="0,00" />'#13#10' <Entity Name="ObrasEjec' +
'ucionesPresupuestos" Left="426,48" Top="0,02" />'#13#10' </Diagram>'#13#10 +
'ObrasEjecuciones" Left="180,50" Top="0,00" />'#13#10' <Entity Name=' +
'"ObrasEjecucionesPresupuestos" Left="426,48" Top="0,02" />'#13#10' ' +
'<Entity Name="Obras" Left="0,00" Top="110,00" />'#13#10' </Diagram>'#13#10 +
'</Diagrams>'#13#10
end
object DataDictionary: TDADataDictionary
@ -394,6 +394,39 @@ object srvObras: TsrvObras
DataDictionary = DataDictionary
Diagrams = Diagrams
Datasets = <
item
Params = <>
Statements = <
item
Connection = 'IBX'
ConnectionType = 'Interbase'
Default = True
TargetTable = 'OBRAS'
Name = 'IBX'
SQL = 'Select ID, NOMBRE'#10'from ALMACENES'#10'where TIPO_ALMACEN = '#39'OBRA'#39#10#10
StatementType = stSQL
ColumnMappings = <
item
DatasetField = 'ID'
TableField = 'ID'
end
item
DatasetField = 'NOMBRE'
TableField = 'NOMBRE'
end>
end>
Name = 'ListaObras'
Fields = <
item
Name = 'ID'
DataType = datInteger
end
item
Name = 'NOMBRE'
DataType = datString
Size = 255
end>
end
item
Params = <>
Statements = <

View File

@ -98,13 +98,15 @@ type
const aMaxRecords: Integer);
private
procedure Log(Astr: string);
protected
function DarListaObras: Binary;
end;
implementation
{$R *.dfm}
uses
{Generated:} FactuGES_Invk, uDataModuleServer,
{Generated:} FactuGES_Invk, uDataModuleServer, uROClasses,
uDatabaseUtils, schObrasClient_Intf, uRestriccionesUsuarioUtils,
uBizObrasServer, Variants;
@ -403,6 +405,42 @@ begin
dmServer.EscribirLog(Astr)
end;
function TsrvObras.DarListaObras: Binary;
var
ASchema : TDASchema;
AConn : IDAConnection;
dsData: IDADataset;
ALista : TStringList;
begin
Result := Binary.Create;
ASchema := schObras;
AConn := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionManager.GetDefaultConnectionName);
try
dsData := ASchema.NewDataset(AConn, 'ListaObras');
except
RaiseError('No existe la tabla ALMACENES');
end;
ALista := TStringList.Create;
try
dsData.Active := True;
ALista.Sorted := True;
while not dsData.EOF do
begin
ALista.Add(Format('%s=%d', [dsData.Fields[1].AsString, dsData.Fields[0].AsInteger]));
dsData.Next;
end;
ALista.SaveToStream(Result);
finally
FreeANDNIL(ALista);
dsData := NIL;
AConn := NIL;
end;
end;
procedure TsrvObras.DataAbstractServiceAcquireConnectionFailure(
aSender: TObject; const aConnectionName: string; aError: Exception);
begin

View File

@ -156,6 +156,12 @@
<Interfaces>
<Interface Name="Default" UID="{F984D2A1-9922-4790-9B2D-A78ACFDAE82B}">
<Operations>
<Operation Name="DarListaAlmacenes" UID="{0EA5BA95-CFA5-4E5A-89D4-6BA5BCCB7FCB}">
<Parameters>
<Parameter Name="Result" DataType="Binary" Flag="Result">
</Parameter>
</Parameters>
</Operation>
</Operations>
</Interface>
</Interfaces>
@ -443,6 +449,12 @@
<Interfaces>
<Interface Name="Default" UID="{39277224-A0BD-4249-9ACA-39D238798B25}">
<Operations>
<Operation Name="DarListaObras" UID="{A2F1116A-5330-4B4C-80BC-7605870A7CAF}">
<Parameters>
<Parameter Name="Result" DataType="Binary" Flag="Result">
</Parameter>
</Parameters>
</Operation>
</Operations>
</Interface>
</Interfaces>

View File

@ -388,6 +388,7 @@ type
{ IsrvAlmacenes }
IsrvAlmacenes = interface(IDataAbstractService)
['{F984D2A1-9922-4790-9B2D-A78ACFDAE82B}']
function DarListaAlmacenes: Binary;
end;
{ CosrvAlmacenes }
@ -400,6 +401,7 @@ type
protected
function __GetInterfaceName:string; override;
function DarListaAlmacenes: Binary;
end;
{ IsrvArticulos }
@ -682,6 +684,7 @@ type
{ IsrvObras }
IsrvObras = interface(IDataAbstractService)
['{39277224-A0BD-4249-9ACA-39D238798B25}']
function DarListaObras: Binary;
end;
{ CosrvObras }
@ -694,6 +697,7 @@ type
protected
function __GetInterfaceName:string; override;
function DarListaObras: Binary;
end;
{ IsrvProvinciasPoblaciones }
@ -1477,11 +1481,29 @@ begin
result := TsrvAlmacenes_Proxy.Create(aMessage, aTransportChannel);
end;
{ TsrvAlmacenes_Proxy }
function TsrvAlmacenes_Proxy.__GetInterfaceName:string;
begin
result := 'srvAlmacenes';
end;
function TsrvAlmacenes_Proxy.DarListaAlmacenes: Binary;
begin
try
result := nil;
__Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaAlmacenes');
__Message.Finalize;
__TransportChannel.Dispatch(__Message);
__Message.Read('Result', TypeInfo(Binary), result, []);
finally
__Message.UnsetAttributes(__TransportChannel);
__Message.FreeStream;
end
end;
{ CosrvArticulos }
class function CosrvArticulos.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvArticulos;
@ -1985,11 +2007,29 @@ begin
result := TsrvObras_Proxy.Create(aMessage, aTransportChannel);
end;
{ TsrvObras_Proxy }
function TsrvObras_Proxy.__GetInterfaceName:string;
begin
result := 'srvObras';
end;
function TsrvObras_Proxy.DarListaObras: Binary;
begin
try
result := nil;
__Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaObras');
__Message.Finalize;
__TransportChannel.Dispatch(__Message);
__Message.Read('Result', TypeInfo(Binary), result, []);
finally
__Message.UnsetAttributes(__TransportChannel);
__Message.FreeStream;
end
end;
{ CosrvProvinciasPoblaciones }
class function CosrvProvinciasPoblaciones.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvProvinciasPoblaciones;

View File

@ -92,6 +92,7 @@ type
private
protected
published
procedure Invoke_DarListaAlmacenes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
end;
TsrvArticulos_Invoker = class(TDataAbstractService_Invoker)
@ -200,6 +201,7 @@ type
private
protected
published
procedure Invoke_DarListaObras(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
end;
TsrvProvinciasPoblaciones_Invoker = class(TROInvoker)
@ -430,6 +432,33 @@ begin
end;
end;
{ TsrvAlmacenes_Invoker }
procedure TsrvAlmacenes_Invoker.Invoke_DarListaAlmacenes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
{ function DarListaAlmacenes: Binary; }
var
lResult: Binary;
__lObjectDisposer: TROObjectDisposer;
begin
lResult := nil;
try
lResult := (__Instance as IsrvAlmacenes).DarListaAlmacenes;
__Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvAlmacenes', 'DarListaAlmacenesResponse');
__Message.Write('Result', TypeInfo(Binary), lResult, []);
__Message.Finalize;
__Message.UnsetAttributes(__Transport);
finally
__lObjectDisposer := TROObjectDisposer.Create(__Instance);
try
__lObjectDisposer.Add(lResult);
finally
__lObjectDisposer.Free();
end;
end;
end;
{ TsrvArticulos_Invoker }
procedure TsrvArticulos_Invoker.Invoke_DarListaProveedoresConArticulos(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
@ -970,6 +999,33 @@ begin
end;
end;
{ TsrvObras_Invoker }
procedure TsrvObras_Invoker.Invoke_DarListaObras(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
{ function DarListaObras: Binary; }
var
lResult: Binary;
__lObjectDisposer: TROObjectDisposer;
begin
lResult := nil;
try
lResult := (__Instance as IsrvObras).DarListaObras;
__Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvObras', 'DarListaObrasResponse');
__Message.Write('Result', TypeInfo(Binary), lResult, []);
__Message.Finalize;
__Message.UnsetAttributes(__Transport);
finally
__lObjectDisposer := TROObjectDisposer.Create(__Instance);
try
__lObjectDisposer.Add(lResult);
finally
__lObjectDisposer.Free();
end;
end;
end;
{ TsrvProvinciasPoblaciones_Invoker }
procedure TsrvProvinciasPoblaciones_Invoker.Invoke_DarListaProvincias(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);

Binary file not shown.

View File

@ -39,8 +39,8 @@ object dmServer: TdmServer
Name = 'IBX'
ConnectionString =
'IBX?Server=localhost;Database=C:\Codigo Tecsitel\Output\Debug\Da' +
'tabase\FACTUGES.FDB;UserID=sysdba;Password=masterkey;Dialect=3;C' +
'harset=ISO8859_1;'
'tabase\FACTUGES2.FDB;UserID=sysdba;Password=masterkey;Dialect=3;' +
'Charset=ISO8859_1;'
ConnectionType = 'Interbase'
Default = True
end>