- 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.Tecsitel_FactuGES2/trunk@189 0c75b7a4-871f-7646-8a2f-f78d34cc349f
This commit is contained in:
parent
9f72108bda
commit
724b8806d6
@ -27,7 +27,7 @@ const
|
|||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
SysUtils, DB, Variants;
|
SysUtils, DB, Variants, cxControls;
|
||||||
|
|
||||||
function CalcularLineaConcepto (const ADataTable : TDADataTable): Double;
|
function CalcularLineaConcepto (const ADataTable : TDADataTable): Double;
|
||||||
var
|
var
|
||||||
@ -122,11 +122,12 @@ end;
|
|||||||
function DarTotalPorte(ADetalles: IDAStronglyTypedDataTable): Double;
|
function DarTotalPorte(ADetalles: IDAStronglyTypedDataTable): Double;
|
||||||
var
|
var
|
||||||
ImporteTotal: Currency;
|
ImporteTotal: Currency;
|
||||||
ABookmark : TBookmark;
|
AuxPosicionIni : Integer;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
AuxPosicionIni := ADetalles.DataTable.FieldByName(CAMPO_POSICION).AsInteger;
|
||||||
|
|
||||||
|
ShowHourglassCursor;
|
||||||
try
|
try
|
||||||
ABookmark := ADetalles.DataTable.GetBookMark;
|
|
||||||
ADetalles.DataTable.DisableControls;
|
ADetalles.DataTable.DisableControls;
|
||||||
ADetalles.DataTable.DisableEventHandlers;
|
ADetalles.DataTable.DisableEventHandlers;
|
||||||
|
|
||||||
@ -140,10 +141,10 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
finally
|
finally
|
||||||
|
ADetalles.DataTable.Locate(CAMPO_POSICION, IntToStr(AuxPosicionIni), []);
|
||||||
ADetalles.DataTable.EnableEventHandlers;
|
ADetalles.DataTable.EnableEventHandlers;
|
||||||
ADetalles.DataTable.GotoBookmark(ABookmark);
|
|
||||||
ADetalles.DataTable.FreeBookmark(ABookmark);
|
|
||||||
ADetalles.DataTable.EnableControls;
|
ADetalles.DataTable.EnableControls;
|
||||||
|
HideHourglassCursor;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Result := ImporteTotal;
|
Result := ImporteTotal;
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
inherited frViewDetallesBase: TfrViewDetallesBase
|
inherited frViewDetallesBase: TfrViewDetallesBase
|
||||||
Width = 975
|
Width = 451
|
||||||
Height = 372
|
Height = 304
|
||||||
Align = alClient
|
Align = alClient
|
||||||
OnCreate = CustomViewCreate
|
OnCreate = CustomViewCreate
|
||||||
OnDestroy = CustomViewDestroy
|
OnDestroy = CustomViewDestroy
|
||||||
@ -9,8 +9,8 @@ inherited frViewDetallesBase: TfrViewDetallesBase
|
|||||||
object ToolBar1: TToolBar
|
object ToolBar1: TToolBar
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 975
|
Width = 451
|
||||||
Height = 24
|
Height = 46
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
ButtonWidth = 63
|
ButtonWidth = 63
|
||||||
Caption = 'ToolBar1'
|
Caption = 'ToolBar1'
|
||||||
@ -25,8 +25,6 @@ inherited frViewDetallesBase: TfrViewDetallesBase
|
|||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
Transparent = True
|
Transparent = True
|
||||||
Visible = False
|
Visible = False
|
||||||
ExplicitWidth = 451
|
|
||||||
ExplicitHeight = 46
|
|
||||||
object ToolButton1: TToolButton
|
object ToolButton1: TToolButton
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 0
|
Top = 0
|
||||||
@ -56,16 +54,17 @@ inherited frViewDetallesBase: TfrViewDetallesBase
|
|||||||
Top = 0
|
Top = 0
|
||||||
Action = FontEdit1
|
Action = FontEdit1
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
|
Wrap = True
|
||||||
end
|
end
|
||||||
object FontName: TJvFontComboBox
|
object FontName: TJvFontComboBox
|
||||||
Left = 274
|
Left = 0
|
||||||
Top = 0
|
Top = 22
|
||||||
Width = 145
|
Width = 145
|
||||||
Height = 22
|
Height = 22
|
||||||
DroppedDownWidth = 145
|
DroppedDownWidth = 145
|
||||||
MaxMRUCount = 0
|
MaxMRUCount = 0
|
||||||
FontName = 'Tahoma'
|
FontName = 'Tahoma'
|
||||||
ItemIndex = 35
|
ItemIndex = 34
|
||||||
Options = [foTrueTypeOnly, foNoOEMFonts, foScalableOnly, foWysiWyg]
|
Options = [foTrueTypeOnly, foNoOEMFonts, foScalableOnly, foWysiWyg]
|
||||||
Sorted = True
|
Sorted = True
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
@ -74,8 +73,8 @@ inherited frViewDetallesBase: TfrViewDetallesBase
|
|||||||
OnClick = FontNameChange
|
OnClick = FontNameChange
|
||||||
end
|
end
|
||||||
object FontSize: TEdit
|
object FontSize: TEdit
|
||||||
Left = 419
|
Left = 145
|
||||||
Top = 0
|
Top = 22
|
||||||
Width = 26
|
Width = 26
|
||||||
Height = 22
|
Height = 22
|
||||||
Hint = 'Font Size|Select font size'
|
Hint = 'Font Size|Select font size'
|
||||||
@ -85,8 +84,8 @@ inherited frViewDetallesBase: TfrViewDetallesBase
|
|||||||
OnChange = FontSizeChange
|
OnChange = FontSizeChange
|
||||||
end
|
end
|
||||||
object UpDown1: TUpDown
|
object UpDown1: TUpDown
|
||||||
Left = 445
|
Left = 171
|
||||||
Top = 0
|
Top = 22
|
||||||
Width = 16
|
Width = 16
|
||||||
Height = 22
|
Height = 22
|
||||||
Associate = FontSize
|
Associate = FontSize
|
||||||
@ -94,69 +93,67 @@ inherited frViewDetallesBase: TfrViewDetallesBase
|
|||||||
Visible = False
|
Visible = False
|
||||||
end
|
end
|
||||||
object ToolButton13: TToolButton
|
object ToolButton13: TToolButton
|
||||||
Left = 461
|
Left = 187
|
||||||
Top = 0
|
Top = 22
|
||||||
Width = 8
|
Width = 8
|
||||||
Caption = 'ToolButton13'
|
Caption = 'ToolButton13'
|
||||||
ImageIndex = 10
|
ImageIndex = 10
|
||||||
Style = tbsSeparator
|
Style = tbsSeparator
|
||||||
end
|
end
|
||||||
object ToolButton6: TToolButton
|
object ToolButton6: TToolButton
|
||||||
Left = 469
|
Left = 195
|
||||||
Top = 0
|
Top = 22
|
||||||
Action = RichEditBold1
|
Action = RichEditBold1
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
end
|
end
|
||||||
object ToolButton7: TToolButton
|
object ToolButton7: TToolButton
|
||||||
Left = 503
|
Left = 229
|
||||||
Top = 0
|
Top = 22
|
||||||
Action = RichEditItalic1
|
Action = RichEditItalic1
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
end
|
end
|
||||||
object ToolButton8: TToolButton
|
object ToolButton8: TToolButton
|
||||||
Left = 537
|
Left = 263
|
||||||
Top = 0
|
Top = 22
|
||||||
Action = RichEditUnderline1
|
Action = RichEditUnderline1
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
end
|
end
|
||||||
object ToolButton12: TToolButton
|
object ToolButton12: TToolButton
|
||||||
Left = 571
|
Left = 297
|
||||||
Top = 0
|
Top = 22
|
||||||
Width = 8
|
Width = 8
|
||||||
Caption = 'ToolButton12'
|
Caption = 'ToolButton12'
|
||||||
ImageIndex = 10
|
ImageIndex = 10
|
||||||
Style = tbsSeparator
|
Style = tbsSeparator
|
||||||
end
|
end
|
||||||
object ToolButton9: TToolButton
|
object ToolButton9: TToolButton
|
||||||
Left = 579
|
Left = 305
|
||||||
Top = 0
|
Top = 22
|
||||||
Action = RichEditAlignLeft1
|
Action = RichEditAlignLeft1
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
end
|
end
|
||||||
object ToolButton10: TToolButton
|
object ToolButton10: TToolButton
|
||||||
Left = 613
|
Left = 339
|
||||||
Top = 0
|
Top = 22
|
||||||
Action = RichEditAlignCenter1
|
Action = RichEditAlignCenter1
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
end
|
end
|
||||||
object ToolButton11: TToolButton
|
object ToolButton11: TToolButton
|
||||||
Left = 647
|
Left = 373
|
||||||
Top = 0
|
Top = 22
|
||||||
Action = RichEditAlignRight1
|
Action = RichEditAlignRight1
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object cxGrid: TcxGrid
|
object cxGrid: TcxGrid
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 50
|
Top = 72
|
||||||
Width = 975
|
Width = 451
|
||||||
Height = 322
|
Height = 232
|
||||||
Align = alClient
|
Align = alClient
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
LookAndFeel.Kind = lfStandard
|
LookAndFeel.Kind = lfStandard
|
||||||
LookAndFeel.NativeStyle = True
|
LookAndFeel.NativeStyle = True
|
||||||
ExplicitLeft = 24
|
|
||||||
ExplicitTop = 74
|
|
||||||
object cxGridView: TcxGridDBTableView
|
object cxGridView: TcxGridDBTableView
|
||||||
NavigatorButtons.ConfirmDelete = False
|
NavigatorButtons.ConfirmDelete = False
|
||||||
FilterBox.Visible = fvNever
|
FilterBox.Visible = fvNever
|
||||||
@ -198,6 +195,7 @@ inherited frViewDetallesBase: TfrViewDetallesBase
|
|||||||
OptionsView.GroupByBox = False
|
OptionsView.GroupByBox = False
|
||||||
OptionsView.HeaderEndEllipsis = True
|
OptionsView.HeaderEndEllipsis = True
|
||||||
OptionsView.Indicator = True
|
OptionsView.Indicator = True
|
||||||
|
OptionsView.NewItemRowInfoText = 'Click here to add a new row'
|
||||||
Styles.ContentEven = cxStyleEven
|
Styles.ContentEven = cxStyleEven
|
||||||
Styles.ContentOdd = cxStyleOdd
|
Styles.ContentOdd = cxStyleOdd
|
||||||
Styles.Selection = cxStyleSelection
|
Styles.Selection = cxStyleSelection
|
||||||
@ -312,13 +310,11 @@ inherited frViewDetallesBase: TfrViewDetallesBase
|
|||||||
end
|
end
|
||||||
object TBXDock1: TTBXDock
|
object TBXDock1: TTBXDock
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 24
|
Top = 46
|
||||||
Width = 975
|
Width = 451
|
||||||
Height = 26
|
Height = 26
|
||||||
BackgroundOnToolbars = False
|
BackgroundOnToolbars = False
|
||||||
UseParentBackground = True
|
UseParentBackground = True
|
||||||
ExplicitTop = 46
|
|
||||||
ExplicitWidth = 451
|
|
||||||
object TBXToolbar1: TTBXToolbar
|
object TBXToolbar1: TTBXToolbar
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 0
|
Top = 0
|
||||||
@ -725,5 +721,9 @@ inherited frViewDetallesBase: TfrViewDetallesBase
|
|||||||
Font.Name = 'Tahoma'
|
Font.Name = 'Tahoma'
|
||||||
Font.Style = [fsBold]
|
Font.Style = [fsBold]
|
||||||
end
|
end
|
||||||
|
object cxStyle_DESCUENTO: TcxStyle
|
||||||
|
AssignedValues = [svTextColor]
|
||||||
|
TextColor = 7977877
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -106,6 +106,7 @@ type
|
|||||||
actAnchoAutomatico: TAction;
|
actAnchoAutomatico: TAction;
|
||||||
TBXSeparatorItem5: TTBXSeparatorItem;
|
TBXSeparatorItem5: TTBXSeparatorItem;
|
||||||
TBXItem13: TTBXItem;
|
TBXItem13: TTBXItem;
|
||||||
|
cxStyle_DESCUENTO: TcxStyle;
|
||||||
|
|
||||||
procedure actAnadirExecute(Sender: TObject);
|
procedure actAnadirExecute(Sender: TObject);
|
||||||
procedure actEliminarExecute(Sender: TObject);
|
procedure actEliminarExecute(Sender: TObject);
|
||||||
@ -160,7 +161,8 @@ type
|
|||||||
protected
|
protected
|
||||||
function HayQueRecalcular(AItem: TcxCustomGridTableItem): Boolean; virtual;
|
function HayQueRecalcular(AItem: TcxCustomGridTableItem): Boolean; virtual;
|
||||||
function EsTipoEditable(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 GetFocusedView : TcxGridDBTableView; virtual;
|
||||||
function GetGrid : TcxGrid; virtual;
|
function GetGrid : TcxGrid; virtual;
|
||||||
procedure SeleccionarRowActual;
|
procedure SeleccionarRowActual;
|
||||||
@ -185,7 +187,8 @@ type
|
|||||||
implementation
|
implementation
|
||||||
{$R *.dfm}
|
{$R *.dfm}
|
||||||
|
|
||||||
uses uCalculosUtils;
|
uses
|
||||||
|
uCalculosUtils;
|
||||||
|
|
||||||
function EnumFontsProc(var LogFont: TLogFont; var TextMetric: TTextMetric;
|
function EnumFontsProc(var LogFont: TLogFont; var TextMetric: TTextMetric;
|
||||||
FontType: Integer; Data: Pointer): Integer; stdcall;
|
FontType: Integer; Data: Pointer): Integer; stdcall;
|
||||||
@ -287,11 +290,13 @@ begin
|
|||||||
_FocusedView.BeginUpdate;
|
_FocusedView.BeginUpdate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TfrViewDetallesBase.darTipoLetraPorDefecto: TFont;
|
function TfrViewDetallesBase.DarTipoConcepto(
|
||||||
|
ARecord: TcxCustomGridRecord): string;
|
||||||
|
var
|
||||||
|
IndiceCol : Integer;
|
||||||
begin
|
begin
|
||||||
Result := TFont.Create;
|
IndiceCol := cxGridView.GetColumnByFieldName(CAMPO_TIPO).Index;
|
||||||
Result.Name := 'Tahoma';
|
Result := ARecord.DisplayTexts[IndiceCol];
|
||||||
Result.Size := 9;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TfrViewDetallesBase.Destroy;
|
destructor TfrViewDetallesBase.Destroy;
|
||||||
@ -415,12 +420,13 @@ procedure TfrViewDetallesBase.cxGridViewInitEdit(Sender: TcxCustomGridTableView;
|
|||||||
AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit);
|
AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit);
|
||||||
var
|
var
|
||||||
FuentePorDefecto: TFont;
|
FuentePorDefecto: TFont;
|
||||||
|
ARecord: TcxCustomGridRecord;
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
|
|
||||||
if AEdit is TcxRichEdit then
|
if AEdit is TcxRichEdit then
|
||||||
begin
|
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
|
//La primera vez que accedemos al grid entra dos veces y perderiamos el editor
|
||||||
//dando un pete.
|
//dando un pete.
|
||||||
if not Assigned(CurEdit) then
|
if not Assigned(CurEdit) then
|
||||||
@ -454,25 +460,65 @@ procedure TfrViewDetallesBase.cxGridViewStylesGetContentStyle(
|
|||||||
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
|
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
|
||||||
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
|
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
|
||||||
var
|
var
|
||||||
IndiceCol : Integer;
|
|
||||||
ATipo : String;
|
ATipo : String;
|
||||||
begin
|
begin
|
||||||
|
AStyle := cxStyleEven;
|
||||||
if Assigned(ARecord) then
|
if Assigned(ARecord) then
|
||||||
begin
|
begin
|
||||||
IndiceCol := cxGridViewTIPO.Index;
|
ATipo := DarTipoConcepto(ARecord);
|
||||||
ATipo := VarToStr(ARecord.Values[IndiceCol]);
|
|
||||||
if ATipo = TIPO_DETALLE_SUBTOTAL then
|
|
||||||
AStyle := cxStyle_SUBTOTAL;
|
|
||||||
if ATipo = TIPO_DETALLE_TITULO then
|
if ATipo = TIPO_DETALLE_TITULO then
|
||||||
AStyle := cxStyle_TITULO;
|
AStyle := cxStyle_TITULO;
|
||||||
|
|
||||||
|
if ATipo = TIPO_DETALLE_SUBTOTAL then
|
||||||
|
AStyle := cxStyle_SUBTOTAL;
|
||||||
|
|
||||||
|
if ATipo = TIPO_DETALLE_DESCUENTO then
|
||||||
|
AStyle := cxStyle_DESCUENTO;
|
||||||
end;
|
end;
|
||||||
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
|
var
|
||||||
i, j: Integer;
|
i, j: Integer;
|
||||||
begin
|
begin
|
||||||
j := darPosicionCampo(CAMPO_POSICION);
|
j := DarPosicionCampo(CAMPO_POSICION);
|
||||||
|
|
||||||
with cxGridView.Controller do
|
with cxGridView.Controller do
|
||||||
for i:=0 to SelectedRecordCount-1 do
|
for i:=0 to SelectedRecordCount-1 do
|
||||||
@ -647,7 +693,7 @@ begin
|
|||||||
//Rellenamos los tipos de conceptos que hay
|
//Rellenamos los tipos de conceptos que hay
|
||||||
if Assigned(FController) then
|
if Assigned(FController) then
|
||||||
begin
|
begin
|
||||||
AListaValores := FController.darListaTIPOSDETALLE;
|
AListaValores := FController.DarListaTIPOSDETALLE;
|
||||||
with (cxGridViewTIPO.Properties as TcxImageComboBoxProperties) do
|
with (cxGridViewTIPO.Properties as TcxImageComboBoxProperties) do
|
||||||
if Items.Count = 0 then
|
if Items.Count = 0 then
|
||||||
begin
|
begin
|
||||||
@ -737,9 +783,8 @@ begin
|
|||||||
if cxGridView.Controller.EditingController.IsEditing then
|
if cxGridView.Controller.EditingController.IsEditing then
|
||||||
cxGridView.Controller.EditingController.Edit.PostEditValue;
|
cxGridView.Controller.EditingController.Edit.PostEditValue;
|
||||||
|
|
||||||
if Assigned(Controller)
|
if Assigned(Controller) and Assigned(FDetalles) then
|
||||||
and Assigned(FDetalles) then
|
Controller.Move(FDetalles, DarListaSeleccionados, -1);
|
||||||
Controller.move(FDetalles, darListaSeleccionados, -1);
|
|
||||||
finally
|
finally
|
||||||
cxGridView.EndUpdate;
|
cxGridView.EndUpdate;
|
||||||
end;
|
end;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user