This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
LuisLeon_FactuGES/Source/Modulos/Informe ventas por articulo/Data/uDataModuleInfVentasArticulo.pas
2007-07-10 17:32:21 +00:00

107 lines
3.2 KiB
ObjectPascal

unit uDataModuleInfVentasArticulo;
interface
uses {vcl:} SysUtils, Classes, DB, DBClient,
{RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
uBizInfVentasArticulo, uIDataModuleInfVentasArticulo, uDADesigntimeCall;
//uBizControlVentasTerminadas,
//const
// CATEGORIA_VENTA_TERMINADA = 'VENTATERMINADA';
type
TdmInfVentasArticulo = class(TDAClientDataModule, IDataModuleInfVentasArticulo)
RORemoteService: TRORemoteService;
DABinAdapter: TDABINAdapter;
DADesigntimeCall1: TDADesigntimeCall;
LoginRemoteService: TRORemoteService;
ROWinInetHTTPChannel1: TROWinInetHTTPChannel;
ROBinMessage1: TROBinMessage;
tbl_InfVentasArticulo2: TDACDSDataTable;
tbl_InfVentasArticulo: TDACDSDataTable;
procedure DAClientDataModuleCreate(Sender: TObject);
protected
function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; overload;
public
function GetItems : IBizInfVentasArticulo;
function GetNameColumns: String;
end;
var
dmInfVentasArticulo: TdmInfVentasArticulo;
implementation
{$R *.DFM}
uses
Controls, Forms, uDAInterfaces, DataAbstract_Intf, uDataTableUtils,
uROTypes, Dialogs, uDataModuleConexion,
uDataModuleBase, cxControls,
schInfVentasArticuloClient_Intf; //, uEditorPreview, uDataModuleControles, uDBSelectionList,
procedure TdmInfVentasArticulo.DAClientDataModuleCreate(Sender: TObject);
begin
RORemoteService.Channel := dmConexion.Channel;
RORemoteService.Message := dmConexion.Message;
end;
function TdmInfVentasArticulo.GetItems: IBizInfVentasArticulo;
var
AInfVentasArticulo : TDACDSDataTable;
begin
ShowHourglassCursor;
try
AInfVentasArticulo := _CloneDataTable(tbl_InfVentasArticulo2);
AInfVentasArticulo.Fields.AssignFieldCollection(tbl_InfVentasArticulo.Fields);
AInfVentasArticulo.BusinessRulesID := BIZ_InfVentasArticulo;
//Importante inicializar columnas visibles
AInfVentasArticulo.FieldByName(fld_InfVentasArticuloID_FACTURA).Visible := False;
AInfVentasArticulo.FieldByName(fld_InfVentasArticuloID_ARTICULO).Visible := False;
AInfVentasArticulo.LoadSchema;
(AInfVentasArticulo as IBizInfVentasArticulo).VisibleColumns := GetNameColumns;
Result := (AInfVentasArticulo as IBizInfVentasArticulo);
finally
HideHourglassCursor;
end;
end;
function TdmInfVentasArticulo.GetNameColumns: String;
var
AList : TStringList;
i : integer;
begin
AList := TStringList.Create;
try
for i := 0 to tbl_InfVentasArticulo.FieldCount - 1 do
if tbl_InfVentasArticulo.Fields[i].Visible then
AList.Add(tbl_InfVentasArticulo.Fields[i].Name);
Result := AList.CommaText;
finally
FreeAndNil(AList);
end;
end;
function TdmInfVentasArticulo._CloneDataTable(
const ADataTable: TDACDSDataTable): TDACDSDataTable;
begin
Result := NIL;
if not Assigned(ADataTable) then
raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)');
Result := TDACDSDataTable.Create(NIL);
CloneDataTable(ADataTable, Result);
end;
end.