ProGestion/Base/uViewDetallesFamilias.pas
2007-06-21 16:12:43 +00:00

135 lines
4.5 KiB
ObjectPascal
Raw Blame History

unit uViewDetallesFamilias;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewContenido, cxStyles, cxCustomData, cxGraphics, cxFilter,
cxData, cxDataStorage, cxEdit, DB, cxDBData, cxDropDownEdit, cxTextEdit,
cxSpinEdit, cxCurrencyEdit, ImgList, PngImageList, uDADataTable,
ExtActns, StdActns, ActnList, ComCtrls, ToolWin, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, cxImageComboBox,
uBizImportesCabeceraBase, cxCheckBox, TB2Item, TBX, TB2Dock, TB2Toolbar,
JvExComCtrls, JvToolBar, cxMaskEdit;
type
IViewDetallesFamilias = interface(IViewContenido)
['{FFE0D3C1-F05C-4F28-9393-03F344CA6EBA}']
end;
TfrViewDetallesFamilias = class(TfrViewContenido, IViewDetallesFamilias)
cxStyleRepository1: TcxStyleRepository;
cxStyle_IMPORTETOTAL: TcxStyle;
cxStyle_SUBTOTAL: TcxStyle;
TipoPngImageList: TPngImageList;
cxGridViewDESCRIPCION: TcxGridDBColumn;
cxGridViewCANTIDAD: TcxGridDBColumn;
cxGridViewIMPORTEUNIDAD: TcxGridDBColumn;
cxGridViewIMPORTETOTAL: TcxGridDBColumn;
cxGridViewTIPO: TcxGridDBColumn;
cxGridViewPOSICION: TcxGridDBColumn;
cxGridViewVISIBLE: TcxGridDBColumn;
actAnadirCap: TAction;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
cxStyle_TITULO: TcxStyle;
procedure cxGridViewEditing(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; var AAllow: Boolean);
procedure cxGridViewTIPOStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
procedure actAnadirCapExecute(Sender: TObject);
private
protected
public
end;
implementation
uses uBizImportesDetalleBase, uDAInterfaces;
{$R *.dfm}
procedure TfrViewDetallesFamilias.cxGridViewEditing(
Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
var AAllow: Boolean);
var
IndiceCol : Integer;
begin
IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_DESCRIPCION).Index;
if AItem.Index <= IndiceCol then
AAllow := True
else begin
IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
if (UpperCase(AItem.GridView.Items[IndiceCol].EditValue) = TIPODETALLE_SUBTOTAL) then
AAllow := False
else begin
if (UpperCase(AItem.GridView.Items[IndiceCol].EditValue) = TIPODETALLE_TITULO) then
begin
IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_VISIBLE).Index;
if AItem.Index = IndiceCol then
AAllow := True
else
AAllow := False
end;
end;
end;
end;
procedure TfrViewDetallesFamilias.cxGridViewTIPOStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
var
IndiceCol : Integer;
ATipo : String;
begin
if Assigned(ARecord) then
begin
IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
ATipo := VarToStr(ARecord.Values[IndiceCol]);
if ATipo = TIPODETALLE_SUBTOTAL then
AStyle := cxStyle_SUBTOTAL;
if ATipo = TIPODETALLE_TITULO then
AStyle := cxStyle_TITULO;
end;
end;
procedure TfrViewDetallesFamilias.actAnadirCapExecute(Sender: TObject);
var
AFieldTIPO : TDAField;
AFieldDES : TDAField;
begin
if Assigned(DADataSource.DataTable) then
begin
AFieldTIPO := DADataSource.DataTable.FindField(fld_TIPODETALLE);
AFieldDES := DADataSource.DataTable.FindField(fld_DESCRIPCION);
DADataSource.DataTable.Append;
AFieldDES.AsString := 'Cap<61>tulo de...';
AFieldTIPO.Value := TIPODETALLE_TITULO;
if DADataSource.DataTable.State in dsEditModes then
DADataSource.DataTable.Post;
DADataSource.DataTable.Next;
DADataSource.DataTable.Insert;
AFieldTIPO.Value := TIPODETALLE_CONCEPTO;
if DADataSource.DataTable.State in dsEditModes then
DADataSource.DataTable.Post;
DADataSource.DataTable.Next;
DADataSource.DataTable.Insert;
AFieldDES.AsString := 'Total del cap<61>tulo';
AFieldTIPO.Value := TIPODETALLE_SUBTOTAL;
if DADataSource.DataTable.State in dsEditModes then
DADataSource.DataTable.Post;
end;
end;
end.