- Revisión de las unidades base de tratamiento de detalles para mejorar el posicionamiento mediante el campo POSICION.
- Activado el campo DESCUENTO en los detalles base. - Cambiada la fuente para el campo DESCRIPCION de los detalles base. - Nueva función 'LocalizarPosicion' en el controlador de detalles base. git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES2/trunk@86 f4e31baf-9722-1c47-927c-6f952f962d4b
This commit is contained in:
parent
322906a6c3
commit
0f0529a8c2
@ -27,7 +27,7 @@ const
|
||||
implementation
|
||||
|
||||
uses
|
||||
SysUtils, DB, Variants;
|
||||
SysUtils, DB, Variants, cxControls;
|
||||
|
||||
function CalcularLineaConcepto (const ADataTable : TDADataTable): Double;
|
||||
var
|
||||
@ -122,11 +122,12 @@ end;
|
||||
function DarTotalPorte(ADetalles: IDAStronglyTypedDataTable): Double;
|
||||
var
|
||||
ImporteTotal: Currency;
|
||||
ABookmark : TBookmark;
|
||||
|
||||
AuxPosicionIni : Integer;
|
||||
begin
|
||||
AuxPosicionIni := ADetalles.DataTable.FieldByName(CAMPO_POSICION).AsInteger;
|
||||
|
||||
ShowHourglassCursor;
|
||||
try
|
||||
ABookmark := ADetalles.DataTable.GetBookMark;
|
||||
ADetalles.DataTable.DisableControls;
|
||||
ADetalles.DataTable.DisableEventHandlers;
|
||||
|
||||
@ -140,10 +141,10 @@ begin
|
||||
end;
|
||||
|
||||
finally
|
||||
ADetalles.DataTable.Locate(CAMPO_POSICION, IntToStr(AuxPosicionIni), []);
|
||||
ADetalles.DataTable.EnableEventHandlers;
|
||||
ADetalles.DataTable.GotoBookmark(ABookmark);
|
||||
ADetalles.DataTable.FreeBookmark(ABookmark);
|
||||
ADetalles.DataTable.EnableControls;
|
||||
HideHourglassCursor;
|
||||
end;
|
||||
|
||||
Result := ImporteTotal;
|
||||
|
||||
@ -152,7 +152,7 @@ inherited frViewDetallesBase: TfrViewDetallesBase
|
||||
Height = 232
|
||||
Align = alClient
|
||||
TabOrder = 1
|
||||
LookAndFeel.Kind = lfOffice11
|
||||
LookAndFeel.Kind = lfStandard
|
||||
LookAndFeel.NativeStyle = True
|
||||
object cxGridView: TcxGridDBTableView
|
||||
NavigatorButtons.ConfirmDelete = False
|
||||
@ -185,6 +185,7 @@ inherited frViewDetallesBase: TfrViewDetallesBase
|
||||
OptionsCustomize.DataRowSizing = True
|
||||
OptionsData.Appending = True
|
||||
OptionsData.CancelOnExit = False
|
||||
OptionsSelection.InvertSelect = False
|
||||
OptionsSelection.MultiSelect = True
|
||||
OptionsSelection.UnselectFocusedRecordOnExit = False
|
||||
OptionsView.CellEndEllipsis = True
|
||||
@ -197,32 +198,34 @@ inherited frViewDetallesBase: TfrViewDetallesBase
|
||||
OptionsView.NewItemRowInfoText = 'Click here to add a new row'
|
||||
Styles.ContentEven = cxStyleEven
|
||||
Styles.ContentOdd = cxStyleOdd
|
||||
Styles.Inactive = cxStyleSelection
|
||||
Styles.Selection = cxStyleSelection
|
||||
Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle
|
||||
object cxGridViewID: TcxGridDBColumn
|
||||
DataBinding.FieldName = 'ID'
|
||||
Visible = False
|
||||
Width = 25
|
||||
end
|
||||
object cxGridViewPOSICION: TcxGridDBColumn
|
||||
DataBinding.FieldName = 'POSICION'
|
||||
Visible = False
|
||||
SortIndex = 0
|
||||
SortOrder = soAscending
|
||||
Width = 25
|
||||
end
|
||||
object cxGridViewTIPO: TcxGridDBColumn
|
||||
Caption = 'Tipo'
|
||||
DataBinding.FieldName = 'TIPO_DETALLE'
|
||||
PropertiesClassName = 'TcxImageComboBoxProperties'
|
||||
Properties.ImmediatePost = True
|
||||
Properties.Items = <>
|
||||
BestFitMaxWidth = 64
|
||||
Width = 56
|
||||
Width = 35
|
||||
end
|
||||
object cxGridViewDESCRIPCION: TcxGridDBColumn
|
||||
Caption = 'Concepto'
|
||||
DataBinding.FieldName = 'CONCEPTO'
|
||||
PropertiesClassName = 'TcxRichEditProperties'
|
||||
Width = 224
|
||||
Width = 317
|
||||
end
|
||||
object cxGridViewCANTIDAD: TcxGridDBColumn
|
||||
Caption = 'Cantidad'
|
||||
@ -231,7 +234,7 @@ inherited frViewDetallesBase: TfrViewDetallesBase
|
||||
Properties.Alignment.Horz = taRightJustify
|
||||
BestFitMaxWidth = 64
|
||||
HeaderAlignmentHorz = taRightJustify
|
||||
Width = 130
|
||||
Width = 30
|
||||
end
|
||||
object cxGridViewIMPORTEUNIDAD: TcxGridDBColumn
|
||||
Caption = 'Importe unidad'
|
||||
@ -241,7 +244,7 @@ inherited frViewDetallesBase: TfrViewDetallesBase
|
||||
BestFitMaxWidth = 120
|
||||
FooterAlignmentHorz = taRightJustify
|
||||
HeaderAlignmentHorz = taRightJustify
|
||||
Width = 130
|
||||
Width = 60
|
||||
end
|
||||
object cxGridViewIMPORTETOTAL: TcxGridDBColumn
|
||||
Caption = 'Importe total'
|
||||
@ -251,7 +254,7 @@ inherited frViewDetallesBase: TfrViewDetallesBase
|
||||
BestFitMaxWidth = 120
|
||||
HeaderAlignmentHorz = taRightJustify
|
||||
Options.Editing = False
|
||||
Width = 130
|
||||
Width = 60
|
||||
end
|
||||
object cxGridViewVISIBLE: TcxGridDBColumn
|
||||
Caption = #191'Visible?'
|
||||
@ -298,6 +301,7 @@ inherited frViewDetallesBase: TfrViewDetallesBase
|
||||
Visible = False
|
||||
FooterAlignmentHorz = taCenter
|
||||
HeaderAlignmentHorz = taCenter
|
||||
Width = 25
|
||||
end
|
||||
end
|
||||
object cxGridLevel: TcxGridLevel
|
||||
@ -709,8 +713,17 @@ inherited frViewDetallesBase: TfrViewDetallesBase
|
||||
Color = cl3DLight
|
||||
end
|
||||
object cxStyle_TITULO: TcxStyle
|
||||
AssignedValues = [svColor]
|
||||
Color = clMenuBar
|
||||
AssignedValues = [svColor, svFont]
|
||||
Color = 7977877
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -15
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
end
|
||||
object cxStyle_DESCUENTO: TcxStyle
|
||||
AssignedValues = [svTextColor]
|
||||
TextColor = 7977877
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -106,6 +106,7 @@ type
|
||||
actAnchoAutomatico: TAction;
|
||||
TBXSeparatorItem5: TTBXSeparatorItem;
|
||||
TBXItem13: TTBXItem;
|
||||
cxStyle_DESCUENTO: TcxStyle;
|
||||
|
||||
procedure actAnadirExecute(Sender: TObject);
|
||||
procedure actEliminarExecute(Sender: TObject);
|
||||
@ -160,7 +161,8 @@ type
|
||||
protected
|
||||
function HayQueRecalcular(AItem: TcxCustomGridTableItem): Boolean; virtual;
|
||||
function EsTipoEditable(AItem: TcxCustomGridTableItem): Boolean; virtual;
|
||||
function darTipoLetraPorDefecto: TFont; virtual;
|
||||
function DarTipoConcepto(ARecord: TcxCustomGridRecord): string; virtual;
|
||||
function DarFuentePorDefecto(const ATipo : String = TIPO_DETALLE_CONCEPTO): TFont; virtual;
|
||||
function GetFocusedView : TcxGridDBTableView; virtual;
|
||||
function GetGrid : TcxGrid; virtual;
|
||||
procedure SeleccionarRowActual;
|
||||
@ -185,7 +187,8 @@ type
|
||||
implementation
|
||||
{$R *.dfm}
|
||||
|
||||
uses uCalculosUtils;
|
||||
uses
|
||||
uCalculosUtils;
|
||||
|
||||
function EnumFontsProc(var LogFont: TLogFont; var TextMetric: TTextMetric;
|
||||
FontType: Integer; Data: Pointer): Integer; stdcall;
|
||||
@ -287,11 +290,13 @@ begin
|
||||
_FocusedView.BeginUpdate;
|
||||
end;
|
||||
|
||||
function TfrViewDetallesBase.darTipoLetraPorDefecto: TFont;
|
||||
function TfrViewDetallesBase.DarTipoConcepto(
|
||||
ARecord: TcxCustomGridRecord): string;
|
||||
var
|
||||
IndiceCol : Integer;
|
||||
begin
|
||||
Result := TFont.Create;
|
||||
Result.Name := 'Tahoma';
|
||||
Result.Size := 9;
|
||||
IndiceCol := cxGridView.GetColumnByFieldName(CAMPO_TIPO).Index;
|
||||
Result := ARecord.DisplayTexts[IndiceCol];
|
||||
end;
|
||||
|
||||
destructor TfrViewDetallesBase.Destroy;
|
||||
@ -415,12 +420,13 @@ procedure TfrViewDetallesBase.cxGridViewInitEdit(Sender: TcxCustomGridTableView;
|
||||
AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit);
|
||||
var
|
||||
FuentePorDefecto: TFont;
|
||||
ARecord: TcxCustomGridRecord;
|
||||
begin
|
||||
inherited;
|
||||
|
||||
if AEdit is TcxRichEdit then
|
||||
begin
|
||||
FuentePorDefecto := darTipoLetraPorDefecto;
|
||||
ARecord := AItem.FocusedCellViewInfo.GridRecord;
|
||||
FuentePorDefecto := DarFuentePorDefecto(DarTipoConcepto(ARecord));
|
||||
//La primera vez que accedemos al grid entra dos veces y perderiamos el editor
|
||||
//dando un pete.
|
||||
if not Assigned(CurEdit) then
|
||||
@ -454,25 +460,65 @@ procedure TfrViewDetallesBase.cxGridViewStylesGetContentStyle(
|
||||
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
|
||||
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
|
||||
var
|
||||
IndiceCol : Integer;
|
||||
ATipo : String;
|
||||
begin
|
||||
AStyle := cxStyleEven;
|
||||
if Assigned(ARecord) then
|
||||
begin
|
||||
IndiceCol := cxGridViewTIPO.Index;
|
||||
ATipo := VarToStr(ARecord.Values[IndiceCol]);
|
||||
if ATipo = TIPO_DETALLE_SUBTOTAL then
|
||||
AStyle := cxStyle_SUBTOTAL;
|
||||
ATipo := DarTipoConcepto(ARecord);
|
||||
|
||||
if ATipo = TIPO_DETALLE_TITULO then
|
||||
AStyle := cxStyle_TITULO;
|
||||
|
||||
if ATipo = TIPO_DETALLE_SUBTOTAL then
|
||||
AStyle := cxStyle_SUBTOTAL;
|
||||
|
||||
if ATipo = TIPO_DETALLE_DESCUENTO then
|
||||
AStyle := cxStyle_DESCUENTO;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TfrViewDetallesBase.darListaSeleccionados: TIntegerArray;
|
||||
function TfrViewDetallesBase.DarFuentePorDefecto(const ATipo: String): TFont;
|
||||
begin
|
||||
Result := TFont.Create;
|
||||
|
||||
if ATipo = TIPO_DETALLE_CONCEPTO then
|
||||
begin
|
||||
Result.Name := 'Tahoma';
|
||||
Result.Size := 9;
|
||||
Result.Style := [];
|
||||
end;
|
||||
|
||||
if ATipo = TIPO_DETALLE_TITULO then
|
||||
begin
|
||||
Result.Name := cxStyle_TITULO.Font.Name;
|
||||
Result.Color := cxStyle_TITULO.TextColor;
|
||||
Result.Size := cxStyle_TITULO.Font.Size;
|
||||
Result.Style := cxStyle_TITULO.Font.Style;
|
||||
end;
|
||||
|
||||
if ATipo = TIPO_DETALLE_SUBTOTAL then
|
||||
begin
|
||||
Result.Name := cxStyle_SUBTOTAL.Font.Name;
|
||||
Result.Color := cxStyle_SUBTOTAL.TextColor;
|
||||
Result.Size := cxStyle_SUBTOTAL.Font.Size;
|
||||
Result.Style := cxStyle_SUBTOTAL.Font.Style;
|
||||
end;
|
||||
|
||||
if ATipo = TIPO_DETALLE_DESCUENTO then
|
||||
begin
|
||||
Result.Name := cxStyle_DESCUENTO.Font.Name;
|
||||
Result.Color := cxStyle_DESCUENTO.TextColor;
|
||||
Result.Size := cxStyle_DESCUENTO.Font.Size;
|
||||
Result.Style := cxStyle_DESCUENTO.Font.Style;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TfrViewDetallesBase.DarListaSeleccionados: TIntegerArray;
|
||||
var
|
||||
i, j: Integer;
|
||||
begin
|
||||
j := darPosicionCampo(CAMPO_POSICION);
|
||||
j := DarPosicionCampo(CAMPO_POSICION);
|
||||
|
||||
with cxGridView.Controller do
|
||||
for i:=0 to SelectedRecordCount-1 do
|
||||
@ -647,7 +693,7 @@ begin
|
||||
//Rellenamos los tipos de conceptos que hay
|
||||
if Assigned(FController) then
|
||||
begin
|
||||
AListaValores := FController.darListaTIPOSDETALLE;
|
||||
AListaValores := FController.DarListaTIPOSDETALLE;
|
||||
with (cxGridViewTIPO.Properties as TcxImageComboBoxProperties) do
|
||||
if Items.Count = 0 then
|
||||
begin
|
||||
@ -737,9 +783,8 @@ begin
|
||||
if cxGridView.Controller.EditingController.IsEditing then
|
||||
cxGridView.Controller.EditingController.Edit.PostEditValue;
|
||||
|
||||
if Assigned(Controller)
|
||||
and Assigned(FDetalles) then
|
||||
Controller.move(FDetalles, darListaSeleccionados, -1);
|
||||
if Assigned(Controller) and Assigned(FDetalles) then
|
||||
Controller.Move(FDetalles, DarListaSeleccionados, -1);
|
||||
finally
|
||||
cxGridView.EndUpdate;
|
||||
end;
|
||||
|
||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user