diff --git a/Source/GUIBase/uEditorGridBase.dfm b/Source/GUIBase/uEditorGridBase.dfm index addf1687..af1c630f 100644 --- a/Source/GUIBase/uEditorGridBase.dfm +++ b/Source/GUIBase/uEditorGridBase.dfm @@ -4,6 +4,7 @@ inherited fEditorGridBase: TfEditorGridBase Caption = 'fEditorGridBase' ClientHeight = 444 ClientWidth = 543 + OnDestroy = CustomEditorDestroy ExplicitWidth = 551 ExplicitHeight = 478 PixelsPerInch = 96 @@ -1515,8 +1516,6 @@ inherited fEditorGridBase: TfEditorGridBase Bitmap = {} end inherited JvFormStorage: TJvFormStorage - OnSavePlacement = JvFormStorageSavePlacement - OnRestorePlacement = JvFormStorageRestorePlacement Left = 408 Top = 160 end diff --git a/Source/GUIBase/uEditorGridBase.pas b/Source/GUIBase/uEditorGridBase.pas index 89f07407..dcfcdc2d 100644 --- a/Source/GUIBase/uEditorGridBase.pas +++ b/Source/GUIBase/uEditorGridBase.pas @@ -61,8 +61,6 @@ type procedure FormShow(Sender: TObject); procedure actQuitarFiltroExecute(Sender: TObject); procedure actDuplicarUpdate(Sender: TObject); - procedure JvFormStorageSavePlacement(Sender: TObject); - procedure JvFormStorageRestorePlacement(Sender: TObject); procedure actModificarUpdate(Sender: TObject); procedure actEliminarUpdate(Sender: TObject); procedure actNuevoUpdate(Sender: TObject); @@ -70,6 +68,7 @@ type procedure actRefrescarUpdate(Sender: TObject); procedure actFiltrarExecute(Sender: TObject); procedure actFiltrarUpdate(Sender: TObject); + procedure CustomEditorDestroy(Sender: TObject); protected FViewGrid : IViewGridBase; procedure SetViewGrid(const Value : IViewGridBase); virtual; @@ -154,9 +153,10 @@ procedure TfEditorGridBase.FormShow(Sender: TObject); begin inherited; if Assigned(ViewGrid) then - ViewGrid.ShowEmbedded(Self); - - + begin + ViewGrid.ShowEmbedded(Self); + ViewGrid.RestoreFromIniFile; + end; end; procedure TfEditorGridBase.actEliminarUpdate(Sender: TObject); @@ -246,6 +246,13 @@ begin actModificar.ShortCut := ShortCut(VK_RETURN, []); end; +procedure TfEditorGridBase.CustomEditorDestroy(Sender: TObject); +begin + inherited; + if Assigned(ViewGrid) then + ViewGrid.StoreToIniFile; +end; + procedure TfEditorGridBase.actAnchoAutoExecute(Sender: TObject); begin inherited; @@ -269,13 +276,6 @@ begin (Sender as TAction).Enabled := (ViewGrid.NumSeleccionados = 1); end; -procedure TfEditorGridBase.JvFormStorageSavePlacement(Sender: TObject); -begin - inherited; - if Assigned(ViewGrid) then - ViewGrid.StoreToRegistry(JvAppRegistryStorage.Root); -end; - procedure TfEditorGridBase.PrevisualizarInterno; begin inherited; @@ -302,13 +302,6 @@ begin end; end; -procedure TfEditorGridBase.JvFormStorageRestorePlacement(Sender: TObject); -begin - inherited; - if Assigned(ViewGrid) then - ViewGrid.RestoreFromRegistry(JvAppRegistryStorage.Root); -end; - initialization RegisterClass(TfEditorGridBase); diff --git a/Source/GUIBase/uViewGrid.dfm b/Source/GUIBase/uViewGrid.dfm index 78e28df1..7b908925 100644 --- a/Source/GUIBase/uViewGrid.dfm +++ b/Source/GUIBase/uViewGrid.dfm @@ -24,13 +24,12 @@ inherited frViewGrid: TfrViewGrid FilterBox.Visible = fvNever DataController.DataSource = dsDataSource DataController.Filter.Options = [fcoCaseInsensitive] - DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText] + DataController.Options = [dcoAnsiSort, dcoCaseInsensitive, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText] DataController.Summary.DefaultGroupSummaryItems = <> DataController.Summary.FooterSummaryItems = <> DataController.Summary.SummaryGroups = <> OptionsBehavior.CellHints = True OptionsCustomize.ColumnFiltering = False - OptionsCustomize.ColumnGrouping = False OptionsCustomize.ColumnsQuickCustomization = True OptionsData.Deleting = False OptionsData.DeletingConfirmation = False @@ -39,17 +38,27 @@ inherited frViewGrid: TfrViewGrid OptionsSelection.CellSelect = False OptionsSelection.UnselectFocusedRecordOnExit = False OptionsView.CellEndEllipsis = True + OptionsView.NoDataToDisplayInfoText = '' OptionsView.CellAutoHeight = True OptionsView.ColumnAutoWidth = True OptionsView.DataRowHeight = 22 OptionsView.Footer = True - OptionsView.GridLineColor = clHighlight + OptionsView.GridLineColor = cl3DLight OptionsView.GridLines = glHorizontal OptionsView.GroupByBox = False + OptionsView.GroupRowStyle = grsOffice11 OptionsView.HeaderEndEllipsis = True - Styles.Inactive = cxStyleSelection - Styles.Selection = cxStyleSelection Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle + object cxGridViewICONO: TcxGridDBColumn + Caption = 'Icono' + OnCustomDrawCell = cxGridViewICONOCustomDrawCell + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Options.Sorting = False + Width = 22 + OnCustomDrawHeader = cxGridViewICONOCustomDrawHeader + end end object cxGridLevel: TcxGridLevel GridView = cxGridView @@ -71,18 +80,18 @@ inherited frViewGrid: TfrViewGrid Width = 554 ExplicitWidth = 554 inherited txtFiltroTodo: TcxTextEdit - ExplicitWidth = 273 - Width = 273 + ExplicitWidth = 457 + Width = 457 end inherited edtFechaIniFiltro: TcxDateEdit - ExplicitWidth = 121 - Width = 121 + ExplicitWidth = 240 + Width = 240 end inherited edtFechaFinFiltro: TcxDateEdit Left = 344 ExplicitLeft = 344 - ExplicitWidth = 121 - Width = 121 + ExplicitWidth = 200 + Width = 200 end end inherited TBXAlignmentPanel1: TTBXAlignmentPanel @@ -154,7 +163,7 @@ inherited frViewGrid: TfrViewGrid PrinterPage.ScaleMode = smFit PrinterPage._dxMeasurementUnits_ = 0 PrinterPage._dxLastMU_ = 2 - ReportDocument.CreationDate = 39601.835403275460000000 + ReportDocument.CreationDate = 39636.760736666660000000 StyleManager = dmBase.dxPrintStyleManager1 OptionsCards.Shadow.Depth = 0 OptionsExpanding.ExpandGroupRows = True @@ -183,36 +192,6 @@ inherited frViewGrid: TfrViewGrid Left = 336 Top = 128 end - object cxStyleRepository1: TcxStyleRepository - Left = 296 - Top = 128 - PixelsPerInch = 96 - object cxStyleEven: TcxStyle - end - object cxStyleOdd: TcxStyle - AssignedValues = [svColor] - Color = clInactiveCaptionText - end - object cxStyleSelection: TcxStyle - AssignedValues = [svColor, svTextColor] - Color = clHighlight - TextColor = clHighlightText - end - object cxStyleSinOrden: TcxStyle - end - object cxStyleConOrden: TcxStyle - AssignedValues = [svColor] - Color = 16119285 - end - object cxStyleFiltered: TcxStyle - AssignedValues = [svColor] - Color = clInfoBk - end - object cxStyleFilteredConOrden: TcxStyle - AssignedValues = [svColor] - Color = 14546175 - end - end object cxViewGridPopupMenu: TcxGridPopupMenu Grid = cxGrid PopupMenus = < @@ -233,11 +212,6 @@ inherited frViewGrid: TfrViewGrid OnUpdate = actQuitarAgrupacionesUpdate end end - object PngImageList10: TPngImageList - PngImages = <> - Left = 368 - Top = 360 - end object cxStyleRepositoryInforme: TcxStyleRepository Left = 368 Top = 160 @@ -293,4 +267,145 @@ inherited frViewGrid: TfrViewGrid TextColor = clBlack end end + object GridPNGImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F + 03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C + 80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA + 0000000049454E44AE426082} + Name = 'Icono_header' + Background = clWindow + end> + Left = 296 + Top = 320 + Bitmap = {} + end + object cxStyleRepository1: TcxStyleRepository + Left = 296 + Top = 128 + PixelsPerInch = 96 + object cxStyleSelection: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = clHighlight + TextColor = clHighlightText + end + object cxStyle_NORMAL_PAR: TcxStyle + AssignedValues = [svColor] + Color = 552923887 + end + object cxStyle_NORMAL_IMPAR: TcxStyle + AssignedValues = [svColor] + Color = clWindow + end + object cxStyle_ORDENADO_PAR: TcxStyle + AssignedValues = [svColor] + Color = 15131873 + end + object cxStyle_ORDENADO_IMPAR: TcxStyle + AssignedValues = [svColor] + Color = 16052975 + end + object cxStyle_FILTRADO_PAR: TcxStyle + AssignedValues = [svColor] + Color = 546166271 + end + object cxStyle_FILTRADO_IMPAR: TcxStyle + AssignedValues = [svColor] + Color = 549513214 + end + object cxStyle_FILTRADO_ORDENADO_PAR: TcxStyle + AssignedValues = [svColor] + Color = 545771513 + end + object cxStyle_FILTRADO_ORDENADO_IMPAR: TcxStyle + AssignedValues = [svColor] + Color = 549249528 + end + end end diff --git a/Source/GUIBase/uViewGrid.pas b/Source/GUIBase/uViewGrid.pas index de355e5a..d7702fa6 100644 --- a/Source/GUIBase/uViewGrid.pas +++ b/Source/GUIBase/uViewGrid.pas @@ -22,7 +22,13 @@ uses cxIntlPrintSys3, dxPSPrvwAdv, uViewGridBase, cxGridCustomPopupMenu, cxGridPopupMenu, uViewFiltroBase, ComCtrls, cxPC, ImgList, PngImageList, TB2Item, TBX, TB2Dock, TB2Toolbar, TBXDkPanels, dxPgsDlg, uDAInterfaces, - dxPScxGrid6Lnk; + dxPScxGrid6Lnk, dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinCaramel, + dxSkinCoffee, dxSkinGlassOceans, dxSkiniMaginary, dxSkinLilian, + dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMoneyTwins, + dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, + dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinSilver, dxSkinStardust, + dxSkinsDefaultPainters, dxSkinValentine, dxSkinXmas2008Blue, + dxSkinscxPCPainter; type IViewGrid = interface(IViewGridBase) @@ -35,19 +41,10 @@ type cxGridView: TcxGridDBTableView; dxComponentPrinter: TdxComponentPrinter; dxPSEngineController1: TdxPSEngineController; - cxStyleRepository1: TcxStyleRepository; - cxStyleEven: TcxStyle; - cxStyleOdd: TcxStyle; - cxStyleSelection: TcxStyle; - cxStyleSinOrden: TcxStyle; - cxStyleConOrden: TcxStyle; cxViewGridPopupMenu: TcxGridPopupMenu; dxComponentPrinterLink: TdxGridReportLink; - cxStyleFiltered: TcxStyle; - cxStyleFilteredConOrden: TcxStyle; frViewFiltroBase1: TfrViewFiltroBase; ActionList1: TActionList; - PngImageList10: TPngImageList; actQuitarAgrupaciones: TAction; pnlAgrupaciones: TTBXDockablePanel; TBXAlignmentPanel1: TTBXAlignmentPanel; @@ -59,22 +56,38 @@ type cxStyleGroupInforme: TcxStyle; cxStyleHeaderInforme: TcxStyle; cxStyleSelectionInforme: TcxStyle; + GridPNGImageList: TPngImageList; + cxStyleRepository1: TcxStyleRepository; + cxStyleSelection: TcxStyle; + cxStyle_NORMAL_PAR: TcxStyle; + cxStyle_NORMAL_IMPAR: TcxStyle; + cxStyle_ORDENADO_PAR: TcxStyle; + cxStyle_ORDENADO_IMPAR: TcxStyle; + cxStyle_FILTRADO_PAR: TcxStyle; + cxStyle_FILTRADO_IMPAR: TcxStyle; + cxStyle_FILTRADO_ORDENADO_PAR: TcxStyle; + cxStyle_FILTRADO_ORDENADO_IMPAR: TcxStyle; procedure cxGridViewStylesGetContentStyle( Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); procedure cxGridViewDblClick(Sender: TObject); procedure actQuitarAgrupacionesExecute(Sender: TObject); procedure actQuitarAgrupacionesUpdate(Sender: TObject); + procedure cxGridViewICONOCustomDrawHeader(Sender: TcxGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridColumnHeaderViewInfo; + var ADone: Boolean); + procedure cxGridViewICONOCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); protected function GetGrid : TcxGrid; override; function GetFocusedView : TcxGridDBTableView; override; procedure SetPopupMenu(const Value: TPopupMenu); override; - procedure FilterChanged(Sender : TObject); override; procedure OnChangeValoresFiltro(Sender: TObject); procedure SetViewFiltros(const Value: IViewFiltroBase); override; function AddFilterGrid(const Operacion: tcxFilterBoolOperatorKind): TcxFilterCriteriaItemList; public - function esSeleccionCeldaDatos: Boolean; override; + function EsSeleccionCeldaDatos: Boolean; override; procedure Preview; override; procedure Print; override; constructor Create(AOwner: TComponent); override; @@ -182,6 +195,40 @@ begin FOnDblClick(Sender); end; +procedure TfrViewGrid.cxGridViewICONOCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +var + R : TRect; +begin + inherited; + R := AViewInfo.ContentBounds; + ACanvas.FillRect(R); + ACanvas.DrawImage(GridPNGImageList, R.Left + 2, R.Top + 2, 1); + ADone := True; +end; + +procedure TfrViewGrid.cxGridViewICONOCustomDrawHeader(Sender: TcxGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridColumnHeaderViewInfo; + var ADone: Boolean); +var + R : TRect; +begin + inherited; + with AViewInfo do + begin + LookAndFeelPainter.DrawHeader(ACanvas, Bounds, TextAreaBounds, Neighbors, + Borders, ButtonState, AlignmentHorz, AlignmentVert, MultiLine, + False, '', Params.Font, Params.TextColor, Params.Color); + + R := AViewInfo.ContentBounds; + ACanvas.FillRect(R); + ACanvas.DrawImage(GridPNGImageList, R.Left + 2, R.Top + 2, 0); + end; + + ADone := True; +end; + procedure TfrViewGrid.cxGridViewStylesGetContentStyle( Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); @@ -189,12 +236,33 @@ begin inherited; if Assigned(AItem) then begin - if AItem.SortOrder = soNone then - AStyle := cxStyleSinOrden - else begin - AStyle := cxStyleConOrden; - if Filtered then - AStyle := cxStyleFilteredConOrden; + if Odd(ARecord.Index) then + AStyle := cxStyle_NORMAL_PAR + else + AStyle := cxStyle_NORMAL_IMPAR; + + if (AItem.SortOrder <> soNone) then + begin + if Odd(ARecord.Index) then + AStyle := cxStyle_ORDENADO_PAR + else + AStyle := cxStyle_ORDENADO_IMPAR; + end; + + if Filtered then + begin + if Odd(ARecord.Index) then + AStyle := cxStyle_FILTRADO_PAR + else + AStyle := cxStyle_FILTRADO_IMPAR; + + if (AItem.SortOrder <> soNone) then + begin + if Odd(ARecord.Index) then + AStyle := cxStyle_FILTRADO_ORDENADO_PAR + else + AStyle := cxStyle_FILTRADO_ORDENADO_IMPAR; + end; end; end; end; @@ -210,14 +278,5 @@ begin Result := not (cxGridView.Controller.FocusedRecord is TcxGridGroupRow); end; -procedure TfrViewGrid.FilterChanged(Sender: TObject); -begin - inherited; - if Filtered then - _FocusedView.Styles.Content := cxStyleFiltered - else - _FocusedView.Styles.Content := nil; -end; - end. diff --git a/Source/GUIBase/uViewGridBase.pas b/Source/GUIBase/uViewGridBase.pas index ffd81902..ea6b0574 100644 --- a/Source/GUIBase/uViewGridBase.pas +++ b/Source/GUIBase/uViewGridBase.pas @@ -43,8 +43,8 @@ type function GetGrid : TcxGrid; property _Grid : TcxGrid read GetGrid; - procedure StoreToRegistry (const Path : String); - procedure RestoreFromRegistry (const Path : String); + procedure RestoreFromIniFile; + procedure StoreToIniFile; procedure SetDblClick(const Value: TNotifyEvent); function GetDblClick: TNotifyEvent; @@ -134,9 +134,12 @@ type procedure StoreToRegistry (const Path : String); virtual; procedure RestoreFromRegistry (const Path : String); virtual; + procedure RestoreFromIniFile; + procedure StoreToIniFile; + function Locate(const AItemIndex: Integer; const AValue: String; const APartialCompare: Boolean = False) : Boolean; - + property Filter: string read GetFilter write SetFilter; property Filtered : Boolean read GetFiltered; @@ -156,7 +159,7 @@ procedure Register; implementation uses - CCReg, uDMBase, uDBSelectionListUtils; + CCReg, uDMBase, uDBSelectionListUtils, uSistemaFunc, SHFolder, uAppInfoUtils; {$R *.dfm} @@ -285,7 +288,26 @@ begin Filter := ViewFiltros.Texto; end; -procedure TfrViewGridBase.RestoreFromRegistry(const Path : String); +procedure TfrViewGridBase.RestoreFromIniFile; +var + AIniFile : String; +begin + Exit; + inherited; + if Assigned(_FocusedView) then + begin + + AIniFile := GetSpecialFolderPath(CSIDL_COMMON_APPDATA); //[All Users]\Application Data + AIniFile := AIniFile + PathDelim + 'Rodax Software' + PathDelim + GetAppName + PathDelim; + + if not DirectoryExists(AIniFile) then + ForceDirectories(AIniFile); + + _FocusedView.RestoreFromIniFile(AIniFile + 'grid.xml', True, False, []); + end; +end; + +procedure TfrViewGridBase.RestoreFromRegistry(const Path: String); begin if Assigned(_FocusedView) then _FocusedView.RestoreFromRegistry(Path + '\\GridSettings\\' + Self.Name, False, False, [], Self.Name); @@ -362,8 +384,29 @@ begin end; end; -procedure TfrViewGridBase.StoreToRegistry(const Path : String); +procedure TfrViewGridBase.StoreToIniFile; +var + AIniFile : String; begin + inherited; + Exit; + if Assigned(_FocusedView) then + begin + + AIniFile := GetSpecialFolderPath(CSIDL_COMMON_APPDATA); //[All Users]\Application Data + AIniFile := AIniFile + PathDelim + 'Rodax Software' + PathDelim + GetAppName + PathDelim; + + if not DirectoryExists(AIniFile) then + ForceDirectories(AIniFile); + + _FocusedView.StoreToIniFile(AIniFile + 'grid.xml', False, []); + //_FocusedView.StoreToRegistry(Path + '\\GridSettings\\' + Self.Name, False, [], Self.Name); + end; +end; + +procedure TfrViewGridBase.StoreToRegistry(const Path: String); +begin + inherited; if Assigned(_FocusedView) then _FocusedView.StoreToRegistry(Path + '\\GridSettings\\' + Self.Name, False, [], Self.Name); end; diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.dfm index 5948340a..37b0f1c7 100644 --- a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.dfm +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.dfm @@ -179,18 +179,18 @@ inherited frViewAlbaranesCliente: TfrViewAlbaranesCliente Width = 596 ExplicitWidth = 596 inherited txtFiltroTodo: TcxTextEdit - ExplicitWidth = 273 - Width = 273 + ExplicitWidth = 499 + Width = 499 end inherited edtFechaIniFiltro: TcxDateEdit - ExplicitWidth = 121 - Width = 121 + ExplicitWidth = 147 + Width = 147 end inherited edtFechaFinFiltro: TcxDateEdit Left = 251 ExplicitLeft = 251 - ExplicitWidth = 294 - Width = 294 + ExplicitWidth = 335 + Width = 335 end end inherited TBXAlignmentPanel1: TTBXAlignmentPanel @@ -240,6 +240,140 @@ inherited frViewAlbaranesCliente: TfrViewAlbaranesCliente BuiltInReportLink = True end end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + Left = 280 + end + inherited ActionList1: TActionList + object actClientes: TAction + Caption = 'Clientes' + OnExecute = actClientesExecute + OnUpdate = actClientesUpdate + end + object actAlmacenes: TAction + Caption = 'Almacenes' + Enabled = False + Visible = False + OnExecute = actAlmacenesExecute + OnUpdate = actAlmacenesUpdate + end + end + inherited GridPNGImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F + 03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C + 80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA + 0000000049454E44AE426082} + Name = 'Icono_header' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001784944415478DA + 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F + 192CBCB3192EEE99856AC05E4B2B14C5CEC78F81696471AB030719662EDFC530 + 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB001DDAD3B19966D3A84 + DB0098B341E01F50EECF9F7F709BCFB93B33686EDCCEB06ADB11FC06C05C627B + E830C3613B5BB8CD97BDDD1954D66E6158BFEB387E03D06DFEFDE70F987FDDDF + 934161E54686CDFB4EE136C0F1D85186FD56D6605B8D76EE053B1B044036DF09 + F661905ABA9E61E7A133B80D00391BDDE69FBFFE30FC028A3D890C60109ABB8A + E1E0A98B9806E4C47A321CB4B1410971B5F55B196E0542A2577CD15A869771C1 + 0CBC3357301C3B7719D380F44837B02D7F7EFF03DB7CD5D7834169F566B0D8EF + DF10FC2E398C8163EA5286D397AE611A9018EA0CD70CF202CC6674C03C7111C3 + 856B37310D880D70846B06F91BD9E6DFD01801E17FFFFE335CBA710BD380081F + 5B86155B0E139D13310C0009900A400600000CC180F01CA0F4A8000000004945 + 4E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Bitmap = {} + end inherited cxStyleRepository1: TcxStyleRepository Left = 248 object cxStyleProximosAEnviar: TcxStyle @@ -263,23 +397,6 @@ inherited frViewAlbaranesCliente: TfrViewAlbaranesCliente TextColor = clRed end end - inherited cxViewGridPopupMenu: TcxGridPopupMenu - Left = 280 - end - inherited ActionList1: TActionList - object actClientes: TAction - Caption = 'Clientes' - OnExecute = actClientesExecute - OnUpdate = actClientesUpdate - end - object actAlmacenes: TAction - Caption = 'Almacenes' - Enabled = False - Visible = False - OnExecute = actAlmacenesExecute - OnUpdate = actAlmacenesUpdate - end - end object PngImageList: TPngImageList PngImages = < item diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.pas index 77b24135..504a0b31 100644 --- a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.pas +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.pas @@ -13,7 +13,13 @@ uses cxGrid, uBizAlbaranesCliente, cxCurrencyEdit, Forms, uViewFiltroBase, ComCtrls, Tabs, cxPC, ActnList, TB2Item, TBX, TB2Dock, TB2Toolbar, TBXDkPanels, dxPgsDlg, - uDAInterfaces; + uDAInterfaces, dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinCaramel, + dxSkinCoffee, dxSkinGlassOceans, dxSkiniMaginary, dxSkinLilian, + dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMoneyTwins, + dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, + dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinSilver, dxSkinStardust, + dxSkinsDefaultPainters, dxSkinValentine, dxSkinXmas2008Blue, + dxSkinscxPCPainter; type IViewAlbaranesCliente = interface(IViewGrid) @@ -291,4 +297,3 @@ begin end; end. - \ No newline at end of file diff --git a/Source/Modulos/Almacenes/Views/Almacenes_view.dproj b/Source/Modulos/Almacenes/Views/Almacenes_view.dproj index 1db5c026..451e48fe 100644 --- a/Source/Modulos/Almacenes/Views/Almacenes_view.dproj +++ b/Source/Modulos/Almacenes/Views/Almacenes_view.dproj @@ -39,75 +39,39 @@ Delphi.Personality Package - - False - True - False - - - True - False - False - - - True - False - 1 - 0 - 0 - 0 - False - False - False - False - False - 3082 - 1252 - - - - - 1.0.0.0 - - - - - - 1.0.0.0 - - - - Almacenes_view.dpk - - +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Almacenes_view.dpk MainSource - - - + + +
fEditorAlmacen
+ TfEditorAlmacen
fEditorAlmacenes
+ TfEditorAlmacenes
fEditorListaAlmacenes
+ TfListaAlmacenes
frViewAlmacen
+ TFrame
frViewAlmacenes
+ TFrame
-