Subida version Se adapta toda la aplicación para separar la información por años

git-svn-id: https://192.168.0.254/svn/Proyectos.AlonsoYSal_FactuGES/trunk@12 9a1d36f3-7752-2d40-8ccb-50eb49674c68
This commit is contained in:
roberto 2009-03-05 18:57:06 +00:00
parent c5ecc492dc
commit 422cad76fe
157 changed files with 3531 additions and 2098 deletions

Binary file not shown.

View File

@ -1,93 +0,0 @@
[07/04/2007 15:26:32]
[Application: ]
: [Connect]
>
[07/04/2007 15:26:32]
[Application: ]
: [Prepare] SELECT
ID
FROM
USUARIOS
WHERE USUARIO = :USUARIO AND
PASS = :PASS AND
ACTIVO = 1
Plan: PLAN (USUARIOS NATURAL)
>
[07/04/2007 15:26:32]
[Application: ]
: [Start transaction]
>
[07/04/2007 15:26:32]
[Application: ]
: [Prepare] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL)))
Plan: PLAN JOIN (R INDEX (RDB$INDEX_4), F INDEX (RDB$INDEX_2))
>
[07/04/2007 15:26:32]
[Application: ]
: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL)))
RELATION = USUARIOS
>
[07/04/2007 15:26:32]
[Application: ]
: [Prepare] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION
Plan: PLAN SORT (JOIN (RR INDEX (RDB$INDEX_42), RI INDEX (RDB$INDEX_6)))
>
[07/04/2007 15:26:32]
[Application: ]
: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION
RELATION_NAME = USUARIOS
>
[07/04/2007 15:26:32]
[Application: ]
: [Commit (Hard commit)]
>
[07/04/2007 15:26:32]
[Application: ]
: [Execute] SELECT
ID
FROM
USUARIOS
WHERE USUARIO = :USUARIO AND
PASS = :PASS AND
ACTIVO = 1
USUARIO = admin
PASS = 1
>
[07/04/2007 15:26:57]
[Application: ]
: [Connect]
>
[07/04/2007 15:26:57]
[Application: ]
[Error] -206 335544569 Dynamic SQL Error
SQL error code = -206
Column unknown
USUARIO
At line 5, column 9
>
[07/04/2007 15:27:04]
[Application: ]
[Error] -206 335544569 Dynamic SQL Error
SQL error code = -206
Column unknown
USUARIO
At line 5, column 9
>

Binary file not shown.

View File

@ -168,8 +168,8 @@ Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[HistoryLists\hlSearchPath]
Count=16
Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
Item1=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
Item0=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
Item4=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
@ -189,8 +189,8 @@ Count=1
Item0=.\
[HistoryLists\hlOutputDirectorry]
Count=2
Item0=..\Output\Cliente
Item1=..\Output\Servidor
Item0=..\Output\Servidor
Item1=..\Output\Cliente
[HistoryLists\hlBPLOutput]
Count=3
Item0=..\..\..\Output\Cliente
@ -199,320 +199,3 @@ Item2=..\..\Output\Cliente
[HistoryLists\hlDCPOutput]
Count=1
Item0=.\
[Exception Log]
EurekaLog Version=519
Activate=1
Activate Handle=1
Save Log File=1
Foreground Tab=0
Freeze Activate=0
Freeze Timeout=0
Freeze Message=The application seems to be frozen.
SMTP From=eurekalog@email.com
SMTP Host=
SMTP Port=25
SMTP UserID=
SMTP Password=
Append to Log=0
Show TerminateBtn=1
TerminateBtn Operation=1
Errors Number=32
Errors Terminate=3
Email Address=
Email Object=
Email Send Options=0
Output Path=
Encrypt Password=
AutoCloseDialogSecs=0
WebSendMode=0
SupportULR=
HTMLLayout Count=15
HTMLLine0="%3Chtml%3E"
HTMLLine1=" %3Chead%3E"
HTMLLine2=" %3C/head%3E"
HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E"
HTMLLine4=" %3Ctable width="100%%" border="0"%3E"
HTMLLine5=" %3Ctr%3E"
HTMLLine6=" %3Ctd nowrap%3E"
HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E"
HTMLLine8=" %3C%%HTML_TAG%%%3E"
HTMLLine9=" %3C/font%3E"
HTMLLine10=" %3C/td%3E"
HTMLLine11=" %3C/tr%3E"
HTMLLine12=" %3C/table%3E"
HTMLLine13=" %3C/body%3E"
HTMLLine14="%3C/html%3E"
AutoCrashOperation=1
AutoCrashNumber=10
AutoCrashMinutes=1
WebURL=
WebUserID=
WebPassword=
WebPort=0
AttachedFiles=
Count=0
EMail Message Line Count=0
loNoDuplicateErrors=0
loAppendReproduceText=0
loDeleteLogAtVersionChange=0
loAddComputerNameInLogFileName=0
loSaveModulesSection=1
loSaveCPUSection=1
soAppStartDate=1
soAppName=1
soAppVersionNumber=1
soAppParameters=1
soAppCompilationDate=1
soExcDate=1
soExcAddress=1
soExcModule=1
soExcType=1
soExcMessage=1
soActCtlsFormClass=1
soActCtlsFormText=1
soActCtlsControlClass=1
soActCtlsControlText=1
soCmpName=1
soCmpUser=1
soCmpTotalMemory=1
soCmpFreeMemory=1
soCmpTotalDisk=1
soCmpFreeDisk=1
soCmpSysUpTime=1
soCmpProcessor=1
soCmpDisplayMode=1
soOSType=1
soOSBuildN=1
soOSUpdate=1
soOSLanguage=1
soNetIP=1
soNetSubmask=1
soNetGateway=1
soNetDNS1=1
soNetDNS2=1
soNetDHCP=1
sndShowSendDialog=1
sndShowSuccessFailureMsg=0
sndSendEntireLog=0
sndSendXMLLogCopy=0
sndSendScreenshot=0
sndUseOnlyActiveWindow=0
sndSendLastHTMLPage=1
sndSendInSeparatedThread=0
sndAddDateInFileName=0
sndCompressAllFiles=0
edoShowExceptionDialog=1
edoSendEmailChecked=1
edoAttachScreenshotChecked=1
edoShowCopyToClipOption=1
edoShowDetailsButton=1
edoShowInDetailedMode=0
edoShowInTopMostMode=0
edoUseEurekaLogLookAndFeel=1
csoShowDLLs=1
csoShowBPLs=1
csoShowBorlandThreads=1
csoShowWindowsThreads=1
csoShowProcedureOffset=0
boActivateCrashDetection=0
boPauseBorlandThreads=0
boDoNotPauseMainThread=0
boPauseWindowsThreads=0
boUseMainModuleOptions=1
boCopyLogInCaseOfError=1
boSaveCompressedCopyInCaseOfError=0
Count mtInformationMsgCaption=1
mtInformationMsgCaption0="Information."
Count mtQuestionMsgCaption=1
mtQuestionMsgCaption0="Question."
Count mtDialog_Caption=1
mtDialog_Caption0="Error."
Count mtDialog_ErrorMsgCaption=2
mtDialog_ErrorMsgCaption0="An error has occurred during program execution."
mtDialog_ErrorMsgCaption1="Please read the following information for further details."
Count mtDialog_GeneralCaption=1
mtDialog_GeneralCaption0="General"
Count mtDialog_GeneralHeader=1
mtDialog_GeneralHeader0="General Information"
Count mtDialog_CallStackCaption=1
mtDialog_CallStackCaption0="Call Stack"
Count mtDialog_CallStackHeader=1
mtDialog_CallStackHeader0="Call Stack Information"
Count mtDialog_ModulesCaption=1
mtDialog_ModulesCaption0="Modules"
Count mtDialog_ModulesHeader=1
mtDialog_ModulesHeader0="Modules Information"
Count mtDialog_CPUCaption=1
mtDialog_CPUCaption0="CPU"
Count mtDialog_CPUHeader=1
mtDialog_CPUHeader0="CPU Information"
Count mtDialog_CustomDataCaption=1
mtDialog_CustomDataCaption0="Other"
Count mtDialog_CustomDataHeader=1
mtDialog_CustomDataHeader0="Other Information"
Count mtDialog_OKButtonCaption=1
mtDialog_OKButtonCaption0="%26OK"
Count mtDialog_TerminateButtonCaption=1
mtDialog_TerminateButtonCaption0="%26Terminate"
Count mtDialog_RestartButtonCaption=1
mtDialog_RestartButtonCaption0="%26Restart"
Count mtDialog_DetailsButtonCaption=1
mtDialog_DetailsButtonCaption0="%26Details"
Count mtDialog_SendMessage=1
mtDialog_SendMessage0="%26Send this error via Internet"
Count mtDialog_ScreenshotMessage=1
mtDialog_ScreenshotMessage0="%26Attach a Screenshot image"
Count mtDialog_CopyMessage=1
mtDialog_CopyMessage0="%26Copy to Clipboard"
Count mtDialog_SupportMessage=1
mtDialog_SupportMessage0="Go to the Support Page"
Count mtLog_AppHeader=1
mtLog_AppHeader0="Application"
Count mtLog_AppStartDate=1
mtLog_AppStartDate0="Start Date"
Count mtLog_AppName=1
mtLog_AppName0="Name/Description"
Count mtLog_AppVersionNumber=1
mtLog_AppVersionNumber0="Version Number"
Count mtLog_AppParameters=1
mtLog_AppParameters0="Parameters"
Count mtLog_AppCompilationDate=1
mtLog_AppCompilationDate0="Compilation Date"
Count mtLog_ExcHeader=1
mtLog_ExcHeader0="Exception"
Count mtLog_ExcDate=1
mtLog_ExcDate0="Date"
Count mtLog_ExcAddress=1
mtLog_ExcAddress0="Address"
Count mtLog_ExcModule=1
mtLog_ExcModule0="Module"
Count mtLog_ExcType=1
mtLog_ExcType0="Type"
Count mtLog_ExcMessage=1
mtLog_ExcMessage0="Message"
Count mtLog_ActCtrlsHeader=1
mtLog_ActCtrlsHeader0="Active Controls"
Count mtLog_ActCtrlsFormClass=1
mtLog_ActCtrlsFormClass0="Form Class"
Count mtLog_ActCtrlsFormText=1
mtLog_ActCtrlsFormText0="Form Text"
Count mtLog_ActCtrlsControlClass=1
mtLog_ActCtrlsControlClass0="Control Class"
Count mtLog_ActCtrlsControlText=1
mtLog_ActCtrlsControlText0="Control Text"
Count mtLog_CmpHeader=1
mtLog_CmpHeader0="Computer"
Count mtLog_CmpName=1
mtLog_CmpName0="Name"
Count mtLog_CmpUser=1
mtLog_CmpUser0="User"
Count mtLog_CmpTotalMemory=1
mtLog_CmpTotalMemory0="Total Memory"
Count mtLog_CmpFreeMemory=1
mtLog_CmpFreeMemory0="Free Memory"
Count mtLog_CmpTotalDisk=1
mtLog_CmpTotalDisk0="Total Disk"
Count mtLog_CmpFreeDisk=1
mtLog_CmpFreeDisk0="Free Disk"
Count mtLog_CmpSystemUpTime=1
mtLog_CmpSystemUpTime0="System Up Time"
Count mtLog_CmpProcessor=1
mtLog_CmpProcessor0="Processor"
Count mtLog_CmpDisplayMode=1
mtLog_CmpDisplayMode0="Display Mode"
Count mtLog_OSHeader=1
mtLog_OSHeader0="Operating System"
Count mtLog_OSType=1
mtLog_OSType0="Type"
Count mtLog_OSBuildN=1
mtLog_OSBuildN0="Build #"
Count mtLog_OSUpdate=1
mtLog_OSUpdate0="Update"
Count mtLog_OSLanguage=1
mtLog_OSLanguage0="Language"
Count mtLog_NetHeader=1
mtLog_NetHeader0="Network"
Count mtLog_NetIP=1
mtLog_NetIP0="IP Address"
Count mtLog_NetSubmask=1
mtLog_NetSubmask0="Submask"
Count mtLog_NetGateway=1
mtLog_NetGateway0="Gateway"
Count mtLog_NetDNS1=1
mtLog_NetDNS10="DNS 1"
Count mtLog_NetDNS2=1
mtLog_NetDNS20="DNS 2"
Count mtLog_NetDHCP=1
mtLog_NetDHCP0="DHCP"
Count mtLog_CustInfoHeader=1
mtLog_CustInfoHeader0="Custom Information"
Count mtCallStack_Address=1
mtCallStack_Address0="Address"
Count mtCallStack_Name=1
mtCallStack_Name0="Module"
Count mtCallStack_Unit=1
mtCallStack_Unit0="Unit"
Count mtCallStack_Class=1
mtCallStack_Class0="Class"
Count mtCallStack_Procedure=1
mtCallStack_Procedure0="Procedure/Method"
Count mtCallStack_Line=1
mtCallStack_Line0="Line"
Count mtCallStack_MainThread=1
mtCallStack_MainThread0="Main"
Count mtCallStack_ExceptionThread=1
mtCallStack_ExceptionThread0="Exception Thread"
Count mtCallStack_RunningThread=1
mtCallStack_RunningThread0="Running Thread"
Count mtCallStack_CallingThread=1
mtCallStack_CallingThread0="Calling Thread"
Count mtCallStack_ThreadID=1
mtCallStack_ThreadID0="ID"
Count mtCallStack_ThreadPriority=1
mtCallStack_ThreadPriority0="Priority"
Count mtCallStack_ThreadClass=1
mtCallStack_ThreadClass0="Class"
Count mtSendDialog_Caption=1
mtSendDialog_Caption0="Send."
Count mtSendDialog_Message=1
mtSendDialog_Message0="Message"
Count mtSendDialog_Resolving=1
mtSendDialog_Resolving0="Resolving DNS..."
Count mtSendDialog_Connecting=1
mtSendDialog_Connecting0="Connecting with server..."
Count mtSendDialog_Connected=1
mtSendDialog_Connected0="Connected with server."
Count mtSendDialog_Sending=1
mtSendDialog_Sending0="Sending message..."
Count mtReproduceDialog_Caption=1
mtReproduceDialog_Caption0="Request"
Count mtReproduceDialog_Request=1
mtReproduceDialog_Request0="Please describe the steps to reproduce the error:"
Count mtReproduceDialog_OKButtonCaption=1
mtReproduceDialog_OKButtonCaption0="%26OK"
Count mtModules_Handle=1
mtModules_Handle0="Handle"
Count mtModules_Name=1
mtModules_Name0="Name"
Count mtModules_Description=1
mtModules_Description0="Description"
Count mtModules_Version=1
mtModules_Version0="Version"
Count mtModules_Size=1
mtModules_Size0="Size"
Count mtModules_LastModified=1
mtModules_LastModified0="Modified"
Count mtModules_Path=1
mtModules_Path0="Path"
Count mtCPU_Registers=1
mtCPU_Registers0="Registers"
Count mtCPU_Stack=1
mtCPU_Stack0="Stack"
Count mtCPU_MemoryDump=1
mtCPU_MemoryDump0="Memory Dump"
Count mtSend_SuccessMsg=1
mtSend_SuccessMsg0="The message was sent successfully."
Count mtSend_FailureMsg=1
mtSend_FailureMsg0="Sorry, sending the message didn't work."

View File

@ -2,7 +2,7 @@ object dmBase: TdmBase
OldCreateOrder = True
OnCreate = DAClientDataModuleCreate
Left = 616
Top = 230
Top = 176
Height = 368
Width = 494
object SmallImages: TPngImageList

View File

@ -1,6 +1,6 @@
object fEditorBase: TfEditorBase
Left = 482
Top = 318
Top = 242
Width = 670
Height = 512
Caption = 'EditorBase'

View File

@ -57,24 +57,31 @@ begin
inherited;
if Assigned(dsDataTable.DataTable) then
begin
if (dsDataTable.DataTable.IsEmpty) or (not ModifiedQuery) then
Exit; // No continuar con el refresco
ABookmark := dsDataTable.DataTable.GetBookMark;
// dsDataTable.DataTable.DisableControls; <- No descomentar
if (not ModifiedQuery) then
Exit; // No continuar con el refresco
ACursor := Screen.Cursor;
Screen.Cursor := crHourGlass;
try
dsDataTable.DataTable.Refresh;
if dsDataTable.DataTable.Dataset.BookmarkValid(ABookmark) then
dsDataTable.DataTable.GotoBookmark(ABookmark);
if dsDataTable.DataTable.IsEmpty then
begin
dsDataTable.DataTable.Refresh;
end
else
begin
ABookmark := dsDataTable.DataTable.GetBookMark;
// dsDataTable.DataTable.DisableControls; <- No descomentar
dsDataTable.DataTable.Refresh;
if dsDataTable.DataTable.Dataset.BookmarkValid(ABookmark) then
dsDataTable.DataTable.GotoBookmark(ABookmark);
dsDataTable.DataTable.FreeBookmark(ABookmark);
// dsDataTable.DataTable.EnableControls; <- No descomentar
end;
finally
dsDataTable.DataTable.FreeBookmark(ABookmark);
// dsDataTable.DataTable.EnableControls; <- No descomentar
Screen.Cursor := ACursor;
end;
end;
end;

View File

@ -1,19 +1,20 @@
inherited fEditorGrid: TfEditorGrid
Left = 208
Top = 182
Width = 893
Left = 747
Top = 158
Width = 714
Height = 485
Caption = 'fEditorGrid'
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
Width = 885
Width = 706
inherited Image1: TImage
Left = 858
Left = 679
end
end
inherited TBXDock: TTBXDock
Width = 885
Width = 706
Height = 75
inherited tbxMain: TTBXToolbar
DefaultDock = TBXDock
inherited TBXItem29: TTBXItem
@ -52,21 +53,27 @@ inherited fEditorGrid: TfEditorGrid
end
end
object tbxFiltro: TTBXToolbar
Left = 465
Top = 23
Left = 0
Top = 49
Align = alRight
CloseButton = False
DefaultDock = TBXDock
DockMode = dmCannotFloatOrChangeDocks
DockPos = 392
DockRow = 1
DragHandleStyle = dhNone
DockPos = -12
DockRow = 2
Images = SmallImages
ParentShowHint = False
Resizable = False
ShowHint = True
ShrinkMode = tbsmNone
TabOrder = 2
object lblAno: TTBXLabelItem
Caption = 'A'#241'o:'
Visible = False
end
object cbxListaAnos: TTBXComboBoxItem
Visible = False
end
object sepAno: TTBXSeparatorItem
Visible = False
end
object TBXLabelItem1: TTBXLabelItem
Caption = 'Filtrar:'
end
@ -91,7 +98,7 @@ inherited fEditorGrid: TfEditorGrid
end
inherited StatusBar: TStatusBar
Top = 432
Width = 885
Width = 706
end
inherited EditorActionList: TActionList
Left = 72
@ -652,6 +659,8 @@ inherited fEditorGrid: TfEditorGrid
Name = 'PngImage21'
Background = clWindow
end>
Left = 323
Top = 120
Bitmap = {}
end
inherited LargeImages: TPngImageList
@ -1422,6 +1431,8 @@ inherited fEditorGrid: TfEditorGrid
Name = 'PngImage20'
Background = clWindow
end>
Left = 443
Top = 128
Bitmap = {}
end
inherited JvFormStorage: TJvFormStorage

View File

@ -41,6 +41,9 @@ type
TBXItem35: TTBXItem;
actFiltrar: TAction;
TBXItem37: TTBXItem;
lblAno: TTBXLabelItem;
cbxListaAnos: TTBXComboBoxItem;
sepAno: TTBXSeparatorItem;
procedure tbxEditFiltroChange(Sender: TObject; const Text: String);
procedure FormShow(Sender: TObject);
procedure actPrevisualizarExecute(Sender: TObject);
@ -58,15 +61,27 @@ type
procedure actFiltrarExecute(Sender: TObject);
procedure actFiltrarUpdate(Sender: TObject);
private
FListaAnos: TStringList;
FViewGrid : IViewGrid;
FWhereDataTable: WideString;
function GetListaAnos: TStringList;
procedure SetListaAnos(const Value: TStringList);
function GetWhereDataTable: String;
procedure SetWhereDataTable(const Value: String);
protected
procedure SetViewGrid(const Value : IViewGrid); virtual;
function GetViewGrid: IViewGrid;
public
property ListaAnos: TStringList read GetListaAnos write SetListaAnos;
property WhereDataTable: String read GetWhereDataTable write SetWhereDataTable;
property ViewGrid: IViewGrid read GetViewGrid write SetViewGrid;
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
end;
implementation
@ -81,7 +96,11 @@ uses
}
destructor TfEditorGrid.Destroy;
begin
FWhereDataTable := '';
FViewGrid := NIL;
if Assigned(FListaAnos) then
FlistaAnos.Free;
inherited;
end;
@ -109,6 +128,8 @@ end;
procedure TfEditorGrid.FormShow(Sender: TObject);
begin
inherited;
cbxListaAnos.ItemIndex := 0; //OJO EL ORDEN PORQUE EL ShowEmbedded hace el open de la tabla
if Assigned(ViewGrid) then
ViewGrid.ShowEmbedded(Self);
end;
@ -239,6 +260,57 @@ begin
(Sender as TAction).Checked := ViewGrid.EstanFiltrosVisible
end;
function TfEditorGrid.GetListaAnos: TStringList;
begin
Result := FListaAnos;
end;
function TfEditorGrid.GetWhereDataTable: String;
begin
Result := FWhereDataTable;
end;
procedure TfEditorGrid.SetListaAnos(const Value: TStringList);
var
i: Integer;
AStringAnterior: String;
begin
AStringAnterior := '';
if Assigned(FListaAnos) then
begin
AStringAnterior := FListaAnos.ValueFromIndex[cbxListaAnos.ItemIndex];
FListaAnos.Free;
end;
//Se asigna el nuevo TStringList
FListaAnos := Value;
if Assigned(FListaAnos) then
begin
cbxListaAnos.Strings.BeginUpdate;
cbxListaAnos.Strings.Clear;
for i := 0 to FListaAnos.Count - 1 do
cbxListaAnos.Strings.Append(FListaAnos.Names[i]);
//Se posiciona en el elemento que habia anteriormente
if Length(AStringAnterior) > 0 then
begin
if FListaAnos.IndexOfName(AStringAnterior) <> -1 then
cbxListaAnos.ItemIndex := FListaAnos.IndexOfName(AStringAnterior)
else
cbxListaAnos.ItemIndex := 0;
end;
cbxListaAnos.Strings.EndUpdate;
end;
end;
procedure TfEditorGrid.SetWhereDataTable(const Value: String);
begin
FWhereDataTable := Value;
end;
initialization
RegisterClass(TfEditorGrid);

View File

@ -1,5 +1,5 @@
inherited frViewBarraSeleccion: TfrViewBarraSeleccion
Width = 439
Width = 443
Height = 19
Align = alBottom
AutoScroll = False
@ -7,14 +7,14 @@ inherited frViewBarraSeleccion: TfrViewBarraSeleccion
object pnlSeleccion: TPanel
Left = 0
Top = -18
Width = 439
Width = 443
Height = 37
Align = alBottom
BevelOuter = bvNone
ParentBackground = True
TabOrder = 0
DesignSize = (
439
443
37)
object bSeleccionar: TButton
Left = 264

View File

@ -114,7 +114,7 @@ IncludeVerInfo=1
AutoIncBuild=0
MajorVer=1
MinorVer=5
Release=0
Release=1
Build=0
Debug=0
PreRelease=0
@ -126,28 +126,28 @@ CodePage=1252
[Version Info Keys]
CompanyName=Rodax Software S.L.
FileDescription=
FileVersion=1.5.0.0
FileVersion=1.5.1.0
InternalName=FactuGES
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=FactuGES
ProductVersion=1.0.0.0
ProductVersion=1.5.1.0
Comments=
[Excluded Packages]
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxTreeListVCLD7.bpl=ExpressQuantumTreeList 4 (VCL Edition) by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxThemeD7.bpl=Express XP Theme Manager by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxLibraryVCLD7.bpl=Express Cross Platform Library (VCL Edition) by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxExportVCLD7.bpl=Express Cross Platform Export Library (VCL Edition) by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxThemeD7.bpl=Express XP Theme Manager by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxEditorsVCLD7.bpl=ExpressEditors Library 5 (VCL Edition) by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxDataD7.bpl=ExpressDataController by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxExtEditorsVCLD7.bpl=ExpressExtendedEditors Library 5 (VCL Edition) by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxGridVCLD7.bpl=ExpressQuantumGrid 5 (VCL Edition) by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxPageControlVCLD7.bpl=Express Cross Platform PageControl (VCL Edition) by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxExportVCLD7.bpl=Express Cross Platform Export Library (VCL Edition) by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxSchedulerVCLD7.bpl=ExpressScheduler 2 (VCL Edition) by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxsbD7.bpl=ExpressSideBar by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxComnD7.bpl=ExpressCommonLibrary by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxTreeListVCLD7.bpl=ExpressQuantumTreeList 4 (VCL Edition) by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxVerticalGridVCLD7.bpl=ExpressVerticalGrid (VCL Edition) by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarD7.bpl=ExpressBars by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxComnD7.bpl=ExpressCommonLibrary by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarDBNavD7.bpl=ExpressBars DBNavigator by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarExtDBItemsD7.bpl=ExpressBars extended DB items by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarExtItemsD7.bpl=ExpressBars extended items by Developer Express Inc.
@ -156,14 +156,25 @@ C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxLayoutControlD7.bpl=Expre
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxNavBarD7.bpl=ExpressNavBar by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxGDIPlusD7.bpl=ExpressGDI+ Library by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxVerticalGridVCLD7.bpl=ExpressVerticalGrid (VCL Edition) by Developer Express Inc.
C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerD7.bpl=Database Comparer VCL
C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerBdeD7.bpl=Database Comparer VCL BDE
C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerDBXD7.bpl=Database Comparer VCL DBX
C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerIbxD7.bpl=Database Comparer VCL IBX
C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerAdoD7.bpl=Database Comparer VCL ADO
C:\WINDOWS\system32\dclShX_Namespace_V3D7.bpl=(untitled)
C:\WINDOWS\system32\vclShX_Namespace_v3D7.bpl=(untitled)
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxsbD7.bpl=ExpressSideBar by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\VirtualTreesD7.bpl=Virtual Treeview runtime package
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\EPCOTAUtils70.bpl=EPC Open Tools API utilities
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\Jcl70.bpl=JEDI Code Library RTL package
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\JclVcl70.bpl=JEDI Code Library VCL package
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\PluginSDK_D7R.bpl=(untitled)
C:\Componentes\FastReport 3\LibD7\frxADO7.bpl=(untitled)
C:\Componentes\FastReport 3\LibD7\fsADO7.bpl=(untitled)
C:\Componentes\FastReport 3\LibD7\fsDB7.bpl=(untitled)
C:\Componentes\FastReport 3\LibD7\fs7.bpl=(untitled)
C:\Componentes\FastReport 3\LibD7\frxDB7.bpl=(untitled)
C:\Componentes\FastReport 3\LibD7\frx7.bpl=(untitled)
C:\Componentes\FastReport 3\LibD7\frxBDE7.bpl=(untitled)
C:\Componentes\FastReport 3\LibD7\fsBDE7.bpl=(untitled)
C:\Componentes\FastReport 3\LibD7\frxDBX7.bpl=(untitled)
C:\Componentes\FastReport 3\LibD7\frxe7.bpl=(untitled)
C:\Componentes\FastReport 3\LibD7\frxIBX7.bpl=(untitled)
C:\Componentes\FastReport 3\LibD7\fsIBX7.bpl=(untitled)
C:\Componentes\FastReport 3\LibD7\frxTee7.bpl=(untitled)
[HistoryLists\hlDebugSourcePath]
Count=1
Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
@ -172,8 +183,8 @@ Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[HistoryLists\hlSearchPath]
Count=16
Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
Item1=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
Item0=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
Item4=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
@ -193,8 +204,8 @@ Count=1
Item0=.\
[HistoryLists\hlOutputDirectorry]
Count=2
Item0=..\Output\Cliente
Item1=..\Output\Servidor
Item0=..\Output\Servidor
Item1=..\Output\Cliente
[HistoryLists\hlBPLOutput]
Count=3
Item0=..\..\..\Output\Cliente
@ -203,320 +214,3 @@ Item2=..\..\Output\Cliente
[HistoryLists\hlDCPOutput]
Count=1
Item0=.\
[Exception Log]
EurekaLog Version=519
Activate=0
Activate Handle=1
Save Log File=1
Foreground Tab=0
Freeze Activate=0
Freeze Timeout=0
Freeze Message=The application seems to be frozen.
SMTP From=eurekalog@email.com
SMTP Host=
SMTP Port=25
SMTP UserID=
SMTP Password=
Append to Log=0
Show TerminateBtn=1
TerminateBtn Operation=1
Errors Number=32
Errors Terminate=3
Email Address=
Email Object=
Email Send Options=0
Output Path=
Encrypt Password=
AutoCloseDialogSecs=0
WebSendMode=0
SupportULR=
HTMLLayout Count=15
HTMLLine0="%3Chtml%3E"
HTMLLine1=" %3Chead%3E"
HTMLLine2=" %3C/head%3E"
HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E"
HTMLLine4=" %3Ctable width="100%%" border="0"%3E"
HTMLLine5=" %3Ctr%3E"
HTMLLine6=" %3Ctd nowrap%3E"
HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E"
HTMLLine8=" %3C%%HTML_TAG%%%3E"
HTMLLine9=" %3C/font%3E"
HTMLLine10=" %3C/td%3E"
HTMLLine11=" %3C/tr%3E"
HTMLLine12=" %3C/table%3E"
HTMLLine13=" %3C/body%3E"
HTMLLine14="%3C/html%3E"
AutoCrashOperation=1
AutoCrashNumber=10
AutoCrashMinutes=1
WebURL=
WebUserID=
WebPassword=
WebPort=0
AttachedFiles=
Count=0
EMail Message Line Count=0
loNoDuplicateErrors=0
loAppendReproduceText=0
loDeleteLogAtVersionChange=0
loAddComputerNameInLogFileName=0
loSaveModulesSection=1
loSaveCPUSection=1
soAppStartDate=1
soAppName=1
soAppVersionNumber=1
soAppParameters=1
soAppCompilationDate=1
soExcDate=1
soExcAddress=1
soExcModule=1
soExcType=1
soExcMessage=1
soActCtlsFormClass=1
soActCtlsFormText=1
soActCtlsControlClass=1
soActCtlsControlText=1
soCmpName=1
soCmpUser=1
soCmpTotalMemory=1
soCmpFreeMemory=1
soCmpTotalDisk=1
soCmpFreeDisk=1
soCmpSysUpTime=1
soCmpProcessor=1
soCmpDisplayMode=1
soOSType=1
soOSBuildN=1
soOSUpdate=1
soOSLanguage=1
soNetIP=1
soNetSubmask=1
soNetGateway=1
soNetDNS1=1
soNetDNS2=1
soNetDHCP=1
sndShowSendDialog=1
sndShowSuccessFailureMsg=0
sndSendEntireLog=0
sndSendXMLLogCopy=0
sndSendScreenshot=0
sndUseOnlyActiveWindow=0
sndSendLastHTMLPage=1
sndSendInSeparatedThread=0
sndAddDateInFileName=0
sndCompressAllFiles=0
edoShowExceptionDialog=1
edoSendEmailChecked=1
edoAttachScreenshotChecked=1
edoShowCopyToClipOption=1
edoShowDetailsButton=1
edoShowInDetailedMode=0
edoShowInTopMostMode=0
edoUseEurekaLogLookAndFeel=1
csoShowDLLs=1
csoShowBPLs=1
csoShowBorlandThreads=1
csoShowWindowsThreads=1
csoShowProcedureOffset=0
boActivateCrashDetection=0
boPauseBorlandThreads=0
boDoNotPauseMainThread=0
boPauseWindowsThreads=0
boUseMainModuleOptions=1
boCopyLogInCaseOfError=1
boSaveCompressedCopyInCaseOfError=0
Count mtInformationMsgCaption=1
mtInformationMsgCaption0="Information."
Count mtQuestionMsgCaption=1
mtQuestionMsgCaption0="Question."
Count mtDialog_Caption=1
mtDialog_Caption0="Error."
Count mtDialog_ErrorMsgCaption=2
mtDialog_ErrorMsgCaption0="An error has occurred during program execution."
mtDialog_ErrorMsgCaption1="Please read the following information for further details."
Count mtDialog_GeneralCaption=1
mtDialog_GeneralCaption0="General"
Count mtDialog_GeneralHeader=1
mtDialog_GeneralHeader0="General Information"
Count mtDialog_CallStackCaption=1
mtDialog_CallStackCaption0="Call Stack"
Count mtDialog_CallStackHeader=1
mtDialog_CallStackHeader0="Call Stack Information"
Count mtDialog_ModulesCaption=1
mtDialog_ModulesCaption0="Modules"
Count mtDialog_ModulesHeader=1
mtDialog_ModulesHeader0="Modules Information"
Count mtDialog_CPUCaption=1
mtDialog_CPUCaption0="CPU"
Count mtDialog_CPUHeader=1
mtDialog_CPUHeader0="CPU Information"
Count mtDialog_CustomDataCaption=1
mtDialog_CustomDataCaption0="Other"
Count mtDialog_CustomDataHeader=1
mtDialog_CustomDataHeader0="Other Information"
Count mtDialog_OKButtonCaption=1
mtDialog_OKButtonCaption0="%26OK"
Count mtDialog_TerminateButtonCaption=1
mtDialog_TerminateButtonCaption0="%26Terminate"
Count mtDialog_RestartButtonCaption=1
mtDialog_RestartButtonCaption0="%26Restart"
Count mtDialog_DetailsButtonCaption=1
mtDialog_DetailsButtonCaption0="%26Details"
Count mtDialog_SendMessage=1
mtDialog_SendMessage0="%26Send this error via Internet"
Count mtDialog_ScreenshotMessage=1
mtDialog_ScreenshotMessage0="%26Attach a Screenshot image"
Count mtDialog_CopyMessage=1
mtDialog_CopyMessage0="%26Copy to Clipboard"
Count mtDialog_SupportMessage=1
mtDialog_SupportMessage0="Go to the Support Page"
Count mtLog_AppHeader=1
mtLog_AppHeader0="Application"
Count mtLog_AppStartDate=1
mtLog_AppStartDate0="Start Date"
Count mtLog_AppName=1
mtLog_AppName0="Name/Description"
Count mtLog_AppVersionNumber=1
mtLog_AppVersionNumber0="Version Number"
Count mtLog_AppParameters=1
mtLog_AppParameters0="Parameters"
Count mtLog_AppCompilationDate=1
mtLog_AppCompilationDate0="Compilation Date"
Count mtLog_ExcHeader=1
mtLog_ExcHeader0="Exception"
Count mtLog_ExcDate=1
mtLog_ExcDate0="Date"
Count mtLog_ExcAddress=1
mtLog_ExcAddress0="Address"
Count mtLog_ExcModule=1
mtLog_ExcModule0="Module"
Count mtLog_ExcType=1
mtLog_ExcType0="Type"
Count mtLog_ExcMessage=1
mtLog_ExcMessage0="Message"
Count mtLog_ActCtrlsHeader=1
mtLog_ActCtrlsHeader0="Active Controls"
Count mtLog_ActCtrlsFormClass=1
mtLog_ActCtrlsFormClass0="Form Class"
Count mtLog_ActCtrlsFormText=1
mtLog_ActCtrlsFormText0="Form Text"
Count mtLog_ActCtrlsControlClass=1
mtLog_ActCtrlsControlClass0="Control Class"
Count mtLog_ActCtrlsControlText=1
mtLog_ActCtrlsControlText0="Control Text"
Count mtLog_CmpHeader=1
mtLog_CmpHeader0="Computer"
Count mtLog_CmpName=1
mtLog_CmpName0="Name"
Count mtLog_CmpUser=1
mtLog_CmpUser0="User"
Count mtLog_CmpTotalMemory=1
mtLog_CmpTotalMemory0="Total Memory"
Count mtLog_CmpFreeMemory=1
mtLog_CmpFreeMemory0="Free Memory"
Count mtLog_CmpTotalDisk=1
mtLog_CmpTotalDisk0="Total Disk"
Count mtLog_CmpFreeDisk=1
mtLog_CmpFreeDisk0="Free Disk"
Count mtLog_CmpSystemUpTime=1
mtLog_CmpSystemUpTime0="System Up Time"
Count mtLog_CmpProcessor=1
mtLog_CmpProcessor0="Processor"
Count mtLog_CmpDisplayMode=1
mtLog_CmpDisplayMode0="Display Mode"
Count mtLog_OSHeader=1
mtLog_OSHeader0="Operating System"
Count mtLog_OSType=1
mtLog_OSType0="Type"
Count mtLog_OSBuildN=1
mtLog_OSBuildN0="Build #"
Count mtLog_OSUpdate=1
mtLog_OSUpdate0="Update"
Count mtLog_OSLanguage=1
mtLog_OSLanguage0="Language"
Count mtLog_NetHeader=1
mtLog_NetHeader0="Network"
Count mtLog_NetIP=1
mtLog_NetIP0="IP Address"
Count mtLog_NetSubmask=1
mtLog_NetSubmask0="Submask"
Count mtLog_NetGateway=1
mtLog_NetGateway0="Gateway"
Count mtLog_NetDNS1=1
mtLog_NetDNS10="DNS 1"
Count mtLog_NetDNS2=1
mtLog_NetDNS20="DNS 2"
Count mtLog_NetDHCP=1
mtLog_NetDHCP0="DHCP"
Count mtLog_CustInfoHeader=1
mtLog_CustInfoHeader0="Custom Information"
Count mtCallStack_Address=1
mtCallStack_Address0="Address"
Count mtCallStack_Name=1
mtCallStack_Name0="Module"
Count mtCallStack_Unit=1
mtCallStack_Unit0="Unit"
Count mtCallStack_Class=1
mtCallStack_Class0="Class"
Count mtCallStack_Procedure=1
mtCallStack_Procedure0="Procedure/Method"
Count mtCallStack_Line=1
mtCallStack_Line0="Line"
Count mtCallStack_MainThread=1
mtCallStack_MainThread0="Main"
Count mtCallStack_ExceptionThread=1
mtCallStack_ExceptionThread0="Exception Thread"
Count mtCallStack_RunningThread=1
mtCallStack_RunningThread0="Running Thread"
Count mtCallStack_CallingThread=1
mtCallStack_CallingThread0="Calling Thread"
Count mtCallStack_ThreadID=1
mtCallStack_ThreadID0="ID"
Count mtCallStack_ThreadPriority=1
mtCallStack_ThreadPriority0="Priority"
Count mtCallStack_ThreadClass=1
mtCallStack_ThreadClass0="Class"
Count mtSendDialog_Caption=1
mtSendDialog_Caption0="Send."
Count mtSendDialog_Message=1
mtSendDialog_Message0="Message"
Count mtSendDialog_Resolving=1
mtSendDialog_Resolving0="Resolving DNS..."
Count mtSendDialog_Connecting=1
mtSendDialog_Connecting0="Connecting with server..."
Count mtSendDialog_Connected=1
mtSendDialog_Connected0="Connected with server."
Count mtSendDialog_Sending=1
mtSendDialog_Sending0="Sending message..."
Count mtReproduceDialog_Caption=1
mtReproduceDialog_Caption0="Request"
Count mtReproduceDialog_Request=1
mtReproduceDialog_Request0="Please describe the steps to reproduce the error:"
Count mtReproduceDialog_OKButtonCaption=1
mtReproduceDialog_OKButtonCaption0="%26OK"
Count mtModules_Handle=1
mtModules_Handle0="Handle"
Count mtModules_Name=1
mtModules_Name0="Name"
Count mtModules_Description=1
mtModules_Description0="Description"
Count mtModules_Version=1
mtModules_Version0="Version"
Count mtModules_Size=1
mtModules_Size0="Size"
Count mtModules_LastModified=1
mtModules_LastModified0="Modified"
Count mtModules_Path=1
mtModules_Path0="Path"
Count mtCPU_Registers=1
mtCPU_Registers0="Registers"
Count mtCPU_Stack=1
mtCPU_Stack0="Stack"
Count mtCPU_MemoryDump=1
mtCPU_MemoryDump0="Memory Dump"
Count mtSend_SuccessMsg=1
mtSend_SuccessMsg0="The message was sent successfully."
Count mtSend_FailureMsg=1
mtSend_FailureMsg0="Sorry, sending the message didn't work."

Binary file not shown.

Binary file not shown.

View File

@ -11,10 +11,10 @@ BRCC = $(ROOT)\bin\brcc32.exe $**
#------------------------------------------------------------------------------
PROJECTS = DataAbstract_D7.bpl BaseD7.bpl Usuarios.bpl Configuracion.bpl \
Contactos.bpl Intervalos.bpl DocumentosAsociados.bpl Cuentas.bpl Almacenes.bpl \
Presupuestos_Intf.bpl Montajes_Intf.bpl Presupuestos.bpl AlbaranesCliente.bpl \
PedidosProveedor.bpl PedidosMontaje.bpl Articulos.bpl ArticulosMontaje.bpl \
Montajes_Impl.bpl FacturasCliente.bpl FacturasProveedor.bpl Asientos.bpl \
Pagos.bpl Calendarios.bpl FactuGES.exe FactuGES_Server.exe
Presupuestos_Intf.bpl Montajes_Intf.bpl Presupuestos.bpl Asientos.bpl Pagos.bpl \
AlbaranesCliente.bpl PedidosProveedor.bpl PedidosMontaje.bpl Articulos.bpl \
ArticulosMontaje.bpl Montajes_Impl.bpl FacturasCliente.bpl \
FacturasProveedor.bpl Calendarios.bpl FactuGES.exe FactuGES_Server.exe
#------------------------------------------------------------------------------
default: $(PROJECTS)
#------------------------------------------------------------------------------

View File

@ -683,4 +683,113 @@ object dmAlbaranesCliente: TdmAlbaranesCliente
Left = 48
Top = 152
end
object tbl_ListaAnosAlbaranes: TDACDSDataTable
RemoteUpdatesOptions = []
Fields = <
item
Name = 'ANO'
DataType = datString
Size = 254
BlobType = dabtUnknown
DisplayWidth = 0
Alignment = taLeftJustify
InPrimaryKey = False
Calculated = False
Lookup = False
LookupCache = False
end>
Params = <>
MasterMappingMode = mmDataRequest
StreamingOptions = [soDisableEventsWhileStreaming]
SchemaCall.MethodName = 'GetDatasetSchema'
SchemaCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtBinary
end
item
Name = 'aDatasetName'
ParamType = fIn
DataType = rtString
Value = 'ListaAnosAlbaranes'
end>
DataRequestCall.MethodName = 'GetDatasetDataEx'
DataRequestCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtBinary
end
item
Name = 'DatasetName'
ParamType = fIn
DataType = rtString
Value = 'ListaAnosAlbaranes'
end
item
Name = 'Params'
ParamType = fIn
DataType = rtUserDefined
UserClassName = 'TDADatasetParamArray'
end
item
Name = 'UserFilter'
ParamType = fIn
DataType = rtString
Value = ''
end
item
Name = 'IncludeSchema'
ParamType = fIn
DataType = rtBoolean
Value = False
end
item
Name = 'MaxRecords'
ParamType = fIn
DataType = rtInteger
Value = -1
end>
DataUpdateCall.MethodName = 'UpdateData'
DataUpdateCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtBinary
end
item
Name = 'Delta'
ParamType = fIn
DataType = rtBinary
end>
ScriptCall.MethodName = 'GetDatasetScripts'
ScriptCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtString
Value = ''
end
item
Name = 'DatasetNames'
ParamType = fIn
DataType = rtString
Value = 'ListaAnosAlbaranes'
end>
ReadOnly = False
RemoteService = RORemoteService
Adapter = dmBase.DABINAdapter
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
LogicalName = 'ListaAnosAlbaranes'
IndexDefs = <>
Left = 184
Top = 200
end
object ds_ListaAnosAlbaranes: TDADataSource
DataTable = tbl_ListaAnosAlbaranes
Left = 184
Top = 152
end
end

View File

@ -17,6 +17,8 @@ type
ds_DetallesAlbaranCliente: TDADataSource;
DADesigntimeCall1: TDADesigntimeCall;
RORemoteService2: TRORemoteService;
tbl_ListaAnosAlbaranes: TDACDSDataTable;
ds_ListaAnosAlbaranes: TDADataSource;
procedure DAClientDataModuleCreate(Sender: TObject);
private
{ Private declarations }
@ -31,6 +33,9 @@ type
function PuedoEliminarAlbaran (CodigoAlbaran : Integer) : Boolean;
function GetItemsSeleccionados(ASource : IBizAlbaranesCliente): IBizAlbaranesCliente;
procedure CambiarSituacion(AAlbaran: IBizAlbaranesCliente);
function DarListaAnosAlbaranes: TStringList;
procedure FiltrarAno(AAlbaranes: IBizAlbaranesCliente; AWhereDataTable: String; const Ano: String);
end;
var
@ -41,7 +46,7 @@ implementation
{$R *.DFM}
uses
Forms, Controls, uDataTableUtils, uBizContacto, uDataModulePagos,
Forms, Controls, cxControls, uDataTableUtils, uBizContacto, uDataModulePagos,
uDataModuleContactos, uDataModuleBase, schAlbaranesClienteClient_Intf,
uEditorPreview, uROTypes, uDBSelectionList, uDAInterfaces;
@ -246,6 +251,55 @@ begin
end;
end;
function TdmAlbaranesCliente.DarListaAnosAlbaranes: TStringList;
var
AListaAnos: TStringList;
begin
AListaAnos := TStringList.Create;
ShowHourglassCursor;
try
with tbl_ListaAnosAlbaranes do
begin
Open;
First;
while not eof do
begin
AListaAnos.Add(Format('%s=%s', [Fields[0].AsString, Fields[0].AsString]));
Next;
end;
Close;
end;
Result := AListaAnos;
finally
HideHourglassCursor;
end;
end;
procedure TdmAlbaranesCliente.FiltrarAno(AAlbaranes: IBizAlbaranesCliente; AWhereDataTable: String; const Ano: String);
var
FechaIni: String;
FechaFin: String;
begin
AAlbaranes.DataTable.Where.Clear;
AAlbaranes.DataTable.Where.AddText(AWhereDataTable);
if (Ano <> 'Todos') then
begin
// Filtrar los presupuestos actuales por años
FechaIni := '01.01.' + Ano;
FechaFin := '31.12.' + Ano;
with AAlbaranes.DataTable.Where do
begin
if NotEmpty then
AddOperator(opAND);
AddCondition(fld_AlbaranClienteFECHAALBARAN, cMajorOrEqual, FechaIni);
AddOperator(opAND);
AddCondition(fld_AlbaranClienteFECHAALBARAN, cLessOrEqual, FechaFin);
end;
end;
end;
initialization
dmAlbaranesCliente := TdmAlbaranesCliente.Create(nil);

View File

@ -48,7 +48,15 @@ inherited fEditorAlbaranesCliente: TfEditorAlbaranesCliente
end
end
inherited tbxFiltro: TTBXToolbar
Left = 505
inherited lblAno: TTBXLabelItem
Visible = True
end
inherited cbxListaAnos: TTBXComboBoxItem
Visible = True
end
inherited sepAno: TTBXSeparatorItem
Visible = True
end
end
end
inherited StatusBar: TStatusBar

View File

@ -34,14 +34,19 @@ type
procedure frViewBarraSeleccionactCancelarExecute(Sender: TObject);
procedure actPagarExecute(Sender: TObject);
procedure edtFechaFiltro1PropertiesEditValueChanged(Sender: TObject);
procedure OnListaAnosChange(Sender: TObject; const Text: string);
procedure FormShow(Sender: TObject);
private
FAlbaranesCliente: IBizAlbaranesCliente;
protected
function GetAlbaranesCliente: IBizAlbaranesCliente;
procedure SetAlbaranesCliente(const Value: IBizAlbaranesCliente);
procedure SetViewGrid(const Value: IViewGrid); override;
function GetSelectionBarVisible: Boolean;
procedure SetSelectionBarVisible(const Value: Boolean);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
@ -130,13 +135,20 @@ begin
Result := FAlbaranesCliente;
end;
procedure TfEditorAlbaranesCliente.SetAlbaranesCliente(const Value:
IBizAlbaranesCliente);
procedure TfEditorAlbaranesCliente.SetAlbaranesCliente(const Value: IBizAlbaranesCliente);
begin
FAlbaranesCliente := Value;
dsDataTable.DataTable := FAlbaranesCliente.DataTable;
if Assigned(ViewGrid) then
(ViewGrid as IViewAlbaranesCliente).AlbaranesCliente := AlbaranesCliente;
if Assigned(FAlbaranesCliente) then
begin
//Se guarda el where de la sentencia origen, por si el editor tiene filtros que
//afecten a este where y en un futuro se desea volver al where origen (filtro de año))
WhereDataTable := FAlbaranesCliente.DataTable.Where.Clause;
dsDataTable.DataTable := FAlbaranesCliente.DataTable;
if Assigned(ViewGrid) then
(ViewGrid as IViewAlbaranesCliente).AlbaranesCliente := AlbaranesCliente;
end;
end;
procedure TfEditorAlbaranesCliente.SetViewGrid(const Value: IViewGrid);
@ -201,6 +213,21 @@ begin
}
end;
procedure TfEditorAlbaranesCliente.FormShow(Sender: TObject);
begin
ListaAnos := dmAlbaranesCliente.DarListaAnosAlbaranes;
cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED
inherited;
end;
procedure TfEditorAlbaranesCliente.OnListaAnosChange(Sender: TObject; const Text: string);
begin
dmAlbaranesCliente.FiltrarAno(AlbaranesCliente, WhereDataTable, Text);
if AlbaranesCliente.DataTable.Active then
actRefrescar.Execute;
end;
initialization
RegisterEditor(IBizAlbaranesCliente, ShowEditorAlbaranesCliente, etItems);
RegisterEditor(IBizAlbaranesCliente, ShowSelectEditorAlbaranesCliente, etSelectItems);

View File

@ -9,16 +9,18 @@ const
{ Data table rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
RID_DarReferenciaAlbaran = '{35F98298-F696-46BE-9D56-50D87C52A2C1}';
RID_AlbaranCliente = '{14578616-F521-4BA3-A7E9-BB99BA3FA09C}';
RID_AlbaranDePresupuesto = '{116AED58-1A39-4230-8961-B965FB7B0697}';
RID_DetallesAlbaranCliente = '{9C31D267-5CA0-4776-9B6A-32E4633153D9}';
RID_AlbaranCliente_RefreshDataset = '{22F08733-B02A-4130-84ED-B1E32F9F18DF}';
RID_InformeCabeceraAlbaranPago = '{D018D751-1373-4A7C-9E2F-BFD097EC6967}';
RID_InformeDetallesAlbaranPago = '{61D6092F-B71A-40E6-9601-980B85F71C86}';
RID_DarSumaImportes = '{6AD3F242-7984-41B6-8F0F-CEAEF113373A}';
RID_ListaAnosAlbaranes = '{633AA7F3-9231-41FD-9AFA-20F135BF0015}';
RID_DarReferenciaAlbaran = '{2A1DC102-86E4-4ED4-99B3-63A0A8ADF44E}';
RID_AlbaranCliente = '{D7B2EDBF-3686-4A8C-910A-B4CFBE86FA03}';
RID_AlbaranDePresupuesto = '{30A07021-CB00-471E-933D-C775663D9916}';
RID_DetallesAlbaranCliente = '{7462D89E-A291-4EEB-86A1-466E9CA91AB2}';
RID_AlbaranCliente_RefreshDataset = '{937F0EE6-A236-4A40-AC09-EA6C414C708C}';
RID_InformeCabeceraAlbaranPago = '{56F3725F-E457-4DC3-AE69-F6B955C4D525}';
RID_InformeDetallesAlbaranPago = '{1023528D-E1A8-4850-9C26-F0AE36E755D0}';
RID_DarSumaImportes = '{0183F8AD-2381-4ED5-931F-546D5C269857}';
{ Data table names }
nme_ListaAnosAlbaranes = 'ListaAnosAlbaranes';
nme_DarReferenciaAlbaran = 'DarReferenciaAlbaran';
nme_AlbaranCliente = 'AlbaranCliente';
nme_AlbaranDePresupuesto = 'AlbaranDePresupuesto';
@ -28,6 +30,12 @@ const
nme_InformeDetallesAlbaranPago = 'InformeDetallesAlbaranPago';
nme_DarSumaImportes = 'DarSumaImportes';
{ ListaAnosAlbaranes fields }
fld_ListaAnosAlbaranesANO = 'ANO';
{ ListaAnosAlbaranes field indexes }
idx_ListaAnosAlbaranesANO = 0;
{ DarReferenciaAlbaran fields }
fld_DarReferenciaAlbaranREFERENCIA = 'REFERENCIA';
@ -211,9 +219,38 @@ const
idx_DarSumaImportesIMPORTETOTAL = 2;
type
{ IListaAnosAlbaranes }
IListaAnosAlbaranes = interface(IDAStronglyTypedDataTable)
['{D7D4C0A5-1F72-468B-A5FB-C81C33C826F2}']
{ Property getters and setters }
function GetANOValue: String;
procedure SetANOValue(const aValue: String);
{ Properties }
property ANO: String read GetANOValue write SetANOValue;
end;
{ TListaAnosAlbaranesDataTableRules }
TListaAnosAlbaranesDataTableRules = class(TDADataTableRules, IListaAnosAlbaranes)
private
protected
{ Property getters and setters }
function GetANOValue: String; virtual;
procedure SetANOValue(const aValue: String); virtual;
{ Properties }
property ANO: String read GetANOValue write SetANOValue;
public
constructor Create(aDataTable: TDADataTable); override;
destructor Destroy; override;
end;
{ IDarReferenciaAlbaran }
IDarReferenciaAlbaran = interface(IDAStronglyTypedDataTable)
['{C6FEC801-58D9-4332-B152-41E118F9B63A}']
['{631B04FF-3196-4DB1-8266-43D0CCA14B6C}']
{ Property getters and setters }
function GetREFERENCIAValue: String;
procedure SetREFERENCIAValue(const aValue: String);
@ -242,7 +279,7 @@ type
{ IAlbaranCliente }
IAlbaranCliente = interface(IDAStronglyTypedDataTable)
['{642833FA-4649-486C-89C8-B9728500F01D}']
['{2E3EA9B3-B1D2-432C-A31E-4BBDDD644872}']
{ Property getters and setters }
function GetCODIGOEMPRESAValue: Integer;
procedure SetCODIGOEMPRESAValue(const aValue: Integer);
@ -385,7 +422,7 @@ type
{ IAlbaranDePresupuesto }
IAlbaranDePresupuesto = interface(IDAStronglyTypedDataTable)
['{78FBFEFF-5738-4B40-819A-3F70EED86124}']
['{8CD58BB1-A4D0-4DF4-8E30-969F1BACC961}']
{ Property getters and setters }
function GetCODIGOValue: Integer;
procedure SetCODIGOValue(const aValue: Integer);
@ -414,7 +451,7 @@ type
{ IDetallesAlbaranCliente }
IDetallesAlbaranCliente = interface(IDAStronglyTypedDataTable)
['{D9E720C6-134F-4020-975B-7EF111D57933}']
['{675AE33F-D64C-47AD-A206-64BFAA11FCD7}']
{ Property getters and setters }
function GetCODIGOALBARANValue: Integer;
procedure SetCODIGOALBARANValue(const aValue: Integer);
@ -503,7 +540,7 @@ type
{ IAlbaranCliente_RefreshDataset }
IAlbaranCliente_RefreshDataset = interface(IDAStronglyTypedDataTable)
['{3832562D-0F4D-4243-A963-3B59CB9D2B05}']
['{37351A63-CE65-4762-B897-5DE5998CAB64}']
{ Property getters and setters }
function GetCODIGOValue: Integer;
procedure SetCODIGOValue(const aValue: Integer);
@ -550,7 +587,7 @@ type
{ IInformeCabeceraAlbaranPago }
IInformeCabeceraAlbaranPago = interface(IDAStronglyTypedDataTable)
['{7CEBCE95-FD7B-46D1-844E-70F47FC60D0E}']
['{173C44D2-12F3-4383-86A6-29107BF40AF6}']
{ Property getters and setters }
function GetCODIGOEMPRESAValue: Integer;
procedure SetCODIGOEMPRESAValue(const aValue: Integer);
@ -735,7 +772,7 @@ type
{ IInformeDetallesAlbaranPago }
IInformeDetallesAlbaranPago = interface(IDAStronglyTypedDataTable)
['{2C1837CB-F884-46C6-BD8E-59A6AD8670A8}']
['{92CC3EF0-B88D-4396-8134-AD775CD2E583}']
{ Property getters and setters }
function GetCODIGOALBARANValue: Integer;
procedure SetCODIGOALBARANValue(const aValue: Integer);
@ -809,7 +846,7 @@ type
}
{ IDarSumaImportes }
IDarSumaImportes = interface(IDAStronglyTypedDataTable)
['{C49AE35E-D0D0-4D17-80C9-9E996E212A8D}']
['{0A03D6E5-29C3-4B3C-8004-8D48A433FB36}']
{ Property getters and setters }
function GetBASEIMPONIBLEValue: Float;
procedure SetBASEIMPONIBLEValue(const aValue: Float);
@ -852,6 +889,28 @@ implementation
uses Variants;
{ TListaAnosAlbaranesDataTableRules }
constructor TListaAnosAlbaranesDataTableRules.Create(aDataTable: TDADataTable);
begin
inherited;
end;
destructor TListaAnosAlbaranesDataTableRules.Destroy;
begin
inherited;
end;
function TListaAnosAlbaranesDataTableRules.GetANOValue: String;
begin
result := DataTable.Fields[idx_ListaAnosAlbaranesANO].AsString;
end;
procedure TListaAnosAlbaranesDataTableRules.SetANOValue(const aValue: String);
begin
DataTable.Fields[idx_ListaAnosAlbaranesANO].AsString := aValue;
end;
{ TDarReferenciaAlbaranDataTableRules }
constructor TDarReferenciaAlbaranDataTableRules.Create(aDataTable: TDADataTable);
begin
@ -1703,6 +1762,7 @@ end;
initialization
RegisterDataTableRules(RID_ListaAnosAlbaranes, TListaAnosAlbaranesDataTableRules);
RegisterDataTableRules(RID_DarReferenciaAlbaran, TDarReferenciaAlbaranDataTableRules);
RegisterDataTableRules(RID_AlbaranCliente, TAlbaranClienteDataTableRules);
RegisterDataTableRules(RID_AlbaranDePresupuesto, TAlbaranDePresupuestoDataTableRules);

View File

@ -9,19 +9,49 @@ const
{ Delta rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
RID_DarReferenciaAlbaranDelta = '{D9EAC03F-B4A2-41B9-A2B2-7CF11F780D28}';
RID_AlbaranClienteDelta = '{8E3B55C2-3828-41E4-8AEA-F0D487EDD873}';
RID_AlbaranDePresupuestoDelta = '{1D24D93A-7A20-4DC4-ACE3-F9E644618634}';
RID_DetallesAlbaranClienteDelta = '{91443B47-343B-46EC-85F0-19C431B1F56B}';
RID_AlbaranCliente_RefreshDatasetDelta = '{7857A2CE-B06F-491A-BB36-844139B9125E}';
RID_InformeCabeceraAlbaranPagoDelta = '{B87026ED-31B8-4320-8908-DE7DED600AC9}';
RID_InformeDetallesAlbaranPagoDelta = '{0698DC8F-4317-451B-8770-F18535997036}';
RID_DarSumaImportesDelta = '{DFDB0CB4-85D3-449B-B350-EC3758E21B72}';
RID_ListaAnosAlbaranesDelta = '{5C2DB703-C887-4F77-A9DC-11DA0CF6FE4E}';
RID_DarReferenciaAlbaranDelta = '{D832A4B5-6FDD-49E0-AE5F-306375C415AD}';
RID_AlbaranClienteDelta = '{5DFFE549-E998-435B-BB5C-F859B970C506}';
RID_AlbaranDePresupuestoDelta = '{B5AB03E8-D48D-4BA2-A1E9-9CD0D0907C62}';
RID_DetallesAlbaranClienteDelta = '{1502B47E-54CF-4FCD-8CC2-48C36D9EF53A}';
RID_AlbaranCliente_RefreshDatasetDelta = '{5E7557E0-2251-46D8-83CF-818EC119C817}';
RID_InformeCabeceraAlbaranPagoDelta = '{51A960DD-CBCF-4151-9471-61453103C2EF}';
RID_InformeDetallesAlbaranPagoDelta = '{FA30D0F8-1FFC-4FAD-8C8B-CA8553D877EA}';
RID_DarSumaImportesDelta = '{50AE6D16-89E0-4C6A-9A75-62FE055859AF}';
type
{ IListaAnosAlbaranesDelta }
IListaAnosAlbaranesDelta = interface(IListaAnosAlbaranes)
['{5C2DB703-C887-4F77-A9DC-11DA0CF6FE4E}']
{ Property getters and setters }
function GetOldANOValue : String;
{ Properties }
property OldANO : String read GetOldANOValue;
end;
{ TListaAnosAlbaranesBusinessProcessorRules }
TListaAnosAlbaranesBusinessProcessorRules = class(TDABusinessProcessorRules, IListaAnosAlbaranes, IListaAnosAlbaranesDelta)
private
protected
{ Property getters and setters }
function GetANOValue: String; virtual;
function GetOldANOValue: String; virtual;
procedure SetANOValue(const aValue: String); virtual;
{ Properties }
property ANO : String read GetANOValue write SetANOValue;
property OldANO : String read GetOldANOValue;
public
constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
destructor Destroy; override;
end;
{ IDarReferenciaAlbaranDelta }
IDarReferenciaAlbaranDelta = interface(IDarReferenciaAlbaran)
['{D9EAC03F-B4A2-41B9-A2B2-7CF11F780D28}']
['{D832A4B5-6FDD-49E0-AE5F-306375C415AD}']
{ Property getters and setters }
function GetOldREFERENCIAValue : String;
@ -50,7 +80,7 @@ type
{ IAlbaranClienteDelta }
IAlbaranClienteDelta = interface(IAlbaranCliente)
['{8E3B55C2-3828-41E4-8AEA-F0D487EDD873}']
['{5DFFE549-E998-435B-BB5C-F859B970C506}']
{ Property getters and setters }
function GetOldCODIGOEMPRESAValue : Integer;
function GetOldCODIGOValue : Integer;
@ -212,7 +242,7 @@ type
{ IAlbaranDePresupuestoDelta }
IAlbaranDePresupuestoDelta = interface(IAlbaranDePresupuesto)
['{1D24D93A-7A20-4DC4-ACE3-F9E644618634}']
['{B5AB03E8-D48D-4BA2-A1E9-9CD0D0907C62}']
{ Property getters and setters }
function GetOldCODIGOValue : Integer;
@ -241,7 +271,7 @@ type
{ IDetallesAlbaranClienteDelta }
IDetallesAlbaranClienteDelta = interface(IDetallesAlbaranCliente)
['{91443B47-343B-46EC-85F0-19C431B1F56B}']
['{1502B47E-54CF-4FCD-8CC2-48C36D9EF53A}']
{ Property getters and setters }
function GetOldCODIGOALBARANValue : Integer;
function GetOldNUMCONCEPTOValue : Integer;
@ -340,7 +370,7 @@ type
{ IAlbaranCliente_RefreshDatasetDelta }
IAlbaranCliente_RefreshDatasetDelta = interface(IAlbaranCliente_RefreshDataset)
['{7857A2CE-B06F-491A-BB36-844139B9125E}']
['{5E7557E0-2251-46D8-83CF-818EC119C817}']
{ Property getters and setters }
function GetOldCODIGOValue : Integer;
function GetOldNOMBREValue : String;
@ -390,7 +420,7 @@ type
{ IInformeCabeceraAlbaranPagoDelta }
IInformeCabeceraAlbaranPagoDelta = interface(IInformeCabeceraAlbaranPago)
['{B87026ED-31B8-4320-8908-DE7DED600AC9}']
['{51A960DD-CBCF-4151-9471-61453103C2EF}']
{ Property getters and setters }
function GetOldCODIGOEMPRESAValue : Integer;
function GetOldCODIGOValue : Integer;
@ -601,7 +631,7 @@ type
{ IInformeDetallesAlbaranPagoDelta }
IInformeDetallesAlbaranPagoDelta = interface(IInformeDetallesAlbaranPago)
['{0698DC8F-4317-451B-8770-F18535997036}']
['{FA30D0F8-1FFC-4FAD-8C8B-CA8553D877EA}']
{ Property getters and setters }
function GetOldCODIGOALBARANValue : Integer;
function GetOldNUMCONCEPTOValue : Integer;
@ -679,7 +709,7 @@ type
{ IDarSumaImportesDelta }
IDarSumaImportesDelta = interface(IDarSumaImportes)
['{DFDB0CB4-85D3-449B-B350-EC3758E21B72}']
['{50AE6D16-89E0-4C6A-9A75-62FE055859AF}']
{ Property getters and setters }
function GetOldBASEIMPONIBLEValue : Float;
function GetOldIMPORTEIVAValue : Float;
@ -725,6 +755,33 @@ implementation
uses
Variants, uROBinaryHelpers;
{ TListaAnosAlbaranesBusinessProcessorRules }
constructor TListaAnosAlbaranesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
begin
inherited;
end;
destructor TListaAnosAlbaranesBusinessProcessorRules.Destroy;
begin
inherited;
end;
function TListaAnosAlbaranesBusinessProcessorRules.GetANOValue: String;
begin
result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosAlbaranesANO];
end;
function TListaAnosAlbaranesBusinessProcessorRules.GetOldANOValue: String;
begin
result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosAlbaranesANO];
end;
procedure TListaAnosAlbaranesBusinessProcessorRules.SetANOValue(const aValue: String);
begin
BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosAlbaranesANO] := aValue;
end;
{ TDarReferenciaAlbaranBusinessProcessorRules }
constructor TDarReferenciaAlbaranBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
begin
@ -1955,6 +2012,7 @@ end;
initialization
RegisterBusinessProcessorRules(RID_ListaAnosAlbaranesDelta, TListaAnosAlbaranesBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_DarReferenciaAlbaranDelta, TDarReferenciaAlbaranBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_AlbaranClienteDelta, TAlbaranClienteBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_AlbaranDePresupuestoDelta, TAlbaranDePresupuestoBusinessProcessorRules);

View File

@ -7,7 +7,7 @@ object srvAlbaranesCliente: TsrvAlbaranesCliente
ServiceSchema = schAlbaranesCliente
ServiceAdapter = DABINAdapter
Left = 413
Top = 252
Top = 220
Height = 463
Width = 347
object schAlbaranesCliente: TDASchema
@ -15,6 +15,39 @@ object srvAlbaranesCliente: TsrvAlbaranesCliente
DataDictionary = dmServer.DataDictionary
Diagrams = dmServer.DADiagrams
Datasets = <
item
Params = <>
Statements = <
item
Connection = 'IBX'
SQL =
'select ANO from'#10'(select distinct(substr(FECHAALBARAN, 1,4)) as A' +
'NO'#10'from albaranpago'#10'order by 1 desc)'#10#10'UNION ALL'#10#10'select distinct' +
' '#39'Todos'#39' as ANO'#10'from empresas'
StatementType = stSQL
ColumnMappings = <
item
DatasetField = 'ANO'
TableField = 'ANO'
end>
end>
Name = 'ListaAnosAlbaranes'
Fields = <
item
Name = 'ANO'
DataType = datString
Size = 254
BlobType = dabtUnknown
DisplayWidth = 0
Alignment = taLeftJustify
InPrimaryKey = False
Calculated = False
Lookup = False
LookupCache = False
end>
BusinessRulesClient.ScriptLanguage = rslPascalScript
BusinessRulesServer.ScriptLanguage = rslPascalScript
end
item
Params = <>
Statements = <

View File

@ -29,8 +29,8 @@ type
tbl_AlbaranPago: TDACDSDataTable;
tbl_DetallesAlbaranPago: TDACDSDataTable;
DABINAdapter: TDABINAdapter;
schAlbaranesCliente: TDASchema;
frxReport1: TfrxReport;
schAlbaranesCliente: TDASchema;
private
protected
function GetNextAutoinc: Integer;

View File

@ -7,7 +7,7 @@ object srvAlmacenes: TsrvAlmacenes
ServiceSchema = schAlmacenes
ServiceAdapter = DABINAdapter
Left = 200
Top = 200
Top = 175
Height = 300
Width = 300
object schAlmacenes: TDASchema

View File

@ -142,12 +142,12 @@ Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[HistoryLists\hlSearchPath]
Count=16
Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
Item4=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
Item0=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
Item4=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente

View File

@ -11,7 +11,7 @@ object dmArticulos: TdmArticulos
DataType = rtString
end>
Left = 328
Top = 337
Top = 294
Height = 197
Width = 369
object RORemoteService: TRORemoteService

View File

@ -100,8 +100,7 @@ begin
begin
Clear;
OpenBraket;
AddText('MONTAJES.SITUACION not in (''' + SITUACION_PENDIENTEPAGO + ''', ''' + SITUACION_PAGADO + ''')', False);
// AddText('MONTAJES.FECHAFIN is null', False);
AddText('(MONTAJES.SITUACION is null) OR (MONTAJES.SITUACION not in (''' + SITUACION_PENDIENTEPAGO + ''', ''' + SITUACION_PAGADO + '''))', False);
CloseBraket;
end;

View File

@ -1,6 +1,6 @@
inherited fEditorArticulosAlmacen: TfEditorArticulosAlmacen
Left = 162
Top = 243
Top = 212
Caption = 'Inventario de art'#237'culos en almacenes'
PixelsPerInch = 96
TextHeight = 13

View File

@ -7,8 +7,8 @@ object ModuleArticulos: TModuleArticulos
LargeImages = LargeImages
Author = 'Rodax Software'
Version = '1.0.0'
Left = 691
Top = 507
Left = 690
Top = 441
Height = 252
Width = 401
object LargeImages: TPngImageList

View File

@ -6,7 +6,7 @@ object srvArticulos: TsrvArticulos
ServiceSchema = schArticulos
ServiceAdapter = DABINAdapter
Left = 449
Top = 259
Top = 197
Height = 300
Width = 300
object schArticulos: TDASchema

View File

@ -7,7 +7,7 @@ object srvAsientos: TsrvAsientos
ServiceSchema = schAsientos
ServiceAdapter = DABINAdapter
Left = 512
Top = 168
Top = 147
Height = 300
Width = 300
object schAsientos: TDASchema

View File

@ -7,7 +7,7 @@ object srvCitas: TsrvCitas
ServiceSchema = schCitas
ServiceAdapter = DABINAdapter
Left = 502
Top = 206
Top = 180
Height = 184
Width = 245
object schCitas: TDASchema

View File

@ -9,7 +9,7 @@ object srvContactos: TsrvContactos
ServiceSchema = schContactos
ServiceAdapter = DABINAdapter
Left = 617
Top = 313
Top = 273
Height = 354
Width = 450
object schContactos: TDASchema
@ -501,7 +501,7 @@ object srvContactos: TsrvContactos
Top = 16
end
object frxReport1: TfrxReport
Version = '3.15'
Version = '3.23.7'
DotMatrixReport = False
EngineOptions.DoublePass = True
IniFile = '\Software\Fast Reports'
@ -545,7 +545,7 @@ object srvContactos: TsrvContactos
Height = 18.897650000000000000
DataSet = frxDBDataset1
DataSetName = 'frxDBDataset1'
Memo.Strings = (
Memo.UTF8 = (
'[frxDBDataset1."nombre"]')
end
end

Binary file not shown.

View File

@ -7,7 +7,7 @@ object srvCuentas: TsrvCuentas
ServiceSchema = schCuentas
ServiceAdapter = DABINAdapter
Left = 555
Top = 179
Top = 156
Height = 300
Width = 300
object schCuentas: TDASchema

View File

@ -680,4 +680,113 @@ object dmFacturasCliente: TdmFacturasCliente
Left = 48
Top = 152
end
object tbl_ListaAnosFacturas: TDACDSDataTable
RemoteUpdatesOptions = []
Fields = <
item
Name = 'ANO'
DataType = datString
Size = 254
BlobType = dabtUnknown
DisplayWidth = 0
Alignment = taLeftJustify
InPrimaryKey = False
Calculated = False
Lookup = False
LookupCache = False
end>
Params = <>
MasterMappingMode = mmDataRequest
StreamingOptions = [soDisableEventsWhileStreaming]
SchemaCall.MethodName = 'GetDatasetSchema'
SchemaCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtBinary
end
item
Name = 'aDatasetName'
ParamType = fIn
DataType = rtString
Value = 'ListaAnosFacturas'
end>
DataRequestCall.MethodName = 'GetDatasetDataEx'
DataRequestCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtBinary
end
item
Name = 'DatasetName'
ParamType = fIn
DataType = rtString
Value = 'ListaAnosFacturas'
end
item
Name = 'Params'
ParamType = fIn
DataType = rtUserDefined
UserClassName = 'TDADatasetParamArray'
end
item
Name = 'UserFilter'
ParamType = fIn
DataType = rtString
Value = ''
end
item
Name = 'IncludeSchema'
ParamType = fIn
DataType = rtBoolean
Value = False
end
item
Name = 'MaxRecords'
ParamType = fIn
DataType = rtInteger
Value = -1
end>
DataUpdateCall.MethodName = 'UpdateData'
DataUpdateCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtBinary
end
item
Name = 'Delta'
ParamType = fIn
DataType = rtBinary
end>
ScriptCall.MethodName = 'GetDatasetScripts'
ScriptCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtString
Value = ''
end
item
Name = 'DatasetNames'
ParamType = fIn
DataType = rtString
Value = 'ListaAnosFacturas'
end>
ReadOnly = False
RemoteService = RORemoteService
Adapter = dmBase.DABINAdapter
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
LogicalName = 'ListaAnosFacturas'
IndexDefs = <>
Left = 168
Top = 216
end
object ds_ListaAnosFacturas: TDADataSource
DataTable = tbl_ListaAnosFacturas
Left = 168
Top = 160
end
end

View File

@ -21,6 +21,8 @@ type
ds_DetallesFacturasCliente: TDADataSource;
DADesigntimeCall1: TDADesigntimeCall;
RORemoteService2: TRORemoteService;
tbl_ListaAnosFacturas: TDACDSDataTable;
ds_ListaAnosFacturas: TDADataSource;
procedure DAClientDataModuleCreate(Sender: TObject);
private
{ Private declarations }
@ -32,7 +34,10 @@ type
procedure Preview(Const Codigo: Integer);
function DarNuevaReferencia : String;
function PuedoEliminarFactura (CodigoFactura : Integer) : Boolean;
procedure Refrescar(lReport: TfrxReport; Const Codigo: Integer; const TamLetra: Integer);
procedure Refrescar(lReport: TfrxReport; Const Codigo: Integer; const TamLetra: Integer);
function DarListaAnosFacturas: TStringList;
procedure FiltrarAno(AFacturas: IBizFacturasCliente; AWhereDataTable: String; const Ano: String);
end;
var
@ -43,8 +48,8 @@ implementation
{$R *.DFM}
uses
Forms, Controls, uDataTableUtils, uBizContacto,
uDataModuleContactos, uDataModuleBase,
Forms, Controls, cxControls, uDataTableUtils, uBizContacto,
uDataModuleContactos, uDataModuleBase, uDAInterfaces,
FactuGES_Intf, uEditorPreviewFacturaCliente, uEditorPreview,
uROTypes, schFacturasClienteClient_Intf;
@ -194,6 +199,55 @@ begin
lReport.ShowPreparedReport;
end;
function TdmFacturasCliente.DarListaAnosFacturas: TStringList;
var
AListaAnos: TStringList;
begin
AListaAnos := TStringList.Create;
ShowHourglassCursor;
try
with tbl_ListaAnosFacturas do
begin
Open;
First;
while not eof do
begin
AListaAnos.Add(Format('%s=%s', [Fields[0].AsString, Fields[0].AsString]));
Next;
end;
Close;
end;
Result := AListaAnos;
finally
HideHourglassCursor;
end;
end;
procedure TdmFacturasCliente.FiltrarAno(AFacturas: IBizFacturasCliente; AWhereDataTable: String; const Ano: String);
var
FechaIni: String;
FechaFin: String;
begin
AFacturas.DataTable.Where.Clear;
AFacturas.DataTable.Where.AddText(AWhereDataTable);
if (Ano <> 'Todos') then
begin
// Filtrar los presupuestos actuales por años
FechaIni := '01.01.' + Ano;
FechaFin := '31.12.' + Ano;
with AFacturas.DataTable.Where do
begin
if NotEmpty then
AddOperator(opAND);
AddCondition(fld_FacturasClienteFECHAFACTURA, cMajorOrEqual, FechaIni);
AddOperator(opAND);
AddCondition(fld_FacturasClienteFECHAFACTURA, cLessOrEqual, FechaFin);
end;
end;
end;
initialization
dmFacturasCliente := TdmFacturasCliente.Create(nil);

View File

@ -42,7 +42,15 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente
end
end
inherited tbxFiltro: TTBXToolbar
Left = 395
inherited lblAno: TTBXLabelItem
Visible = True
end
inherited cbxListaAnos: TTBXComboBoxItem
Visible = True
end
inherited sepAno: TTBXSeparatorItem
Visible = True
end
end
end
inherited StatusBar: TStatusBar

View File

@ -26,12 +26,17 @@ type
procedure actEliminarExecute(Sender: TObject);
procedure actModificarExecute(Sender: TObject);
procedure actNuevoExecute(Sender: TObject);
procedure OnListaAnosChange(Sender: TObject; const Text: string);
procedure FormShow(Sender: TObject);
private
FFacturasCliente: IBizFacturasCliente;
protected
function GetFacturasCliente: IBizFacturasCliente;
procedure SetFacturasCliente(const Value: IBizFacturasCliente);
procedure SetViewGrid(const Value: IViewGrid); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
@ -122,13 +127,20 @@ begin
Result := FFacturasCliente;
end;
procedure TfEditorFacturasCliente.SetFacturasCliente(const Value:
IBizFacturasCliente);
procedure TfEditorFacturasCliente.SetFacturasCliente(const Value: IBizFacturasCliente);
begin
FFacturasCliente := Value;
dsDataTable.DataTable := FFacturasCliente.DataTable;
if Assigned(ViewGrid) then
(ViewGrid as IViewFacturasCliente).FacturasCliente := FacturasCliente;
if Assigned(FFacturasCliente) then
begin
//Se guarda el where de la sentencia origen, por si el editor tiene filtros que
//afecten a este where y en un futuro se desea volver al where origen (filtro de año))
WhereDataTable := FFacturasCliente.DataTable.Where.Clause;
dsDataTable.DataTable := FFacturasCliente.DataTable;
if Assigned(ViewGrid) then
(ViewGrid as IViewFacturasCliente).FacturasCliente := FacturasCliente;
end;
end;
procedure TfEditorFacturasCliente.SetViewGrid(const Value: IViewGrid);
@ -138,6 +150,21 @@ begin
(ViewGrid as IViewFacturasCliente).FacturasCliente := FFacturasCliente;
end;
procedure TfEditorFacturasCliente.FormShow(Sender: TObject);
begin
ListaAnos := dmFacturasCliente.DarListaAnosFacturas;
cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED
inherited;
end;
procedure TfEditorFacturasCliente.OnListaAnosChange(Sender: TObject; const Text: string);
begin
dmFacturasCliente.FiltrarAno(FacturasCliente, WhereDataTable, Text);
if FacturasCliente.DataTable.Active then
actRefrescar.Execute;
end;
initialization
RegisterEditor(IBizFacturasCliente, ShowEditorFacturasCliente, etItems);
RegisterEditor(IBizFacturasCliente, ShowSelectEditorFacturasCliente, etSelectItems);

View File

@ -9,19 +9,27 @@ const
{ Data table rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
RID_DarReferenciaFactura = '{0A0311FE-E619-4E86-8FB5-DF8D223B48EA}';
RID_FacturasCliente = '{896C2481-665F-4006-88F1-3C08F7AE938C}';
RID_DetallesFacturasCliente = '{A966AEEF-FB48-42DA-A290-C9AD58B38E48}';
RID_InformeCabeceraFacturaCliente = '{6652332A-E17A-44E7-9833-7CD70E9458C1}';
RID_InformeDetallesFacturaCliente = '{D240F619-DD60-4E7F-AB3F-E2B401E3236D}';
RID_ListaAnosFacturas = '{42919587-DDC2-4D2F-8B79-4C034016B877}';
RID_DarReferenciaFactura = '{75D2C86E-2226-4165-AE57-6FBB114F6C38}';
RID_FacturasCliente = '{46F2D1A1-F069-49C3-8FD7-F73A82EA4B30}';
RID_DetallesFacturasCliente = '{BB44EE25-910C-4356-B962-792C1239F806}';
RID_InformeCabeceraFacturaCliente = '{865C733F-2C85-46C9-A40C-8A022512FC4E}';
RID_InformeDetallesFacturaCliente = '{E219BB9F-D3FD-438D-A03B-0E466305B8A9}';
{ Data table names }
nme_ListaAnosFacturas = 'ListaAnosFacturas';
nme_DarReferenciaFactura = 'DarReferenciaFactura';
nme_FacturasCliente = 'FacturasCliente';
nme_DetallesFacturasCliente = 'DetallesFacturasCliente';
nme_InformeCabeceraFacturaCliente = 'InformeCabeceraFacturaCliente';
nme_InformeDetallesFacturaCliente = 'InformeDetallesFacturaCliente';
{ ListaAnosFacturas fields }
fld_ListaAnosFacturasANO = 'ANO';
{ ListaAnosFacturas field indexes }
idx_ListaAnosFacturasANO = 0;
{ DarReferenciaFactura fields }
fld_DarReferenciaFacturaREFERENCIA = 'REFERENCIA';
@ -165,9 +173,38 @@ const
idx_InformeDetallesFacturaClientePOSICION = 7;
type
{ IListaAnosFacturas }
IListaAnosFacturas = interface(IDAStronglyTypedDataTable)
['{728E1D30-3B2E-44F0-86B2-D18BDDE2C92C}']
{ Property getters and setters }
function GetANOValue: String;
procedure SetANOValue(const aValue: String);
{ Properties }
property ANO: String read GetANOValue write SetANOValue;
end;
{ TListaAnosFacturasDataTableRules }
TListaAnosFacturasDataTableRules = class(TDADataTableRules, IListaAnosFacturas)
private
protected
{ Property getters and setters }
function GetANOValue: String; virtual;
procedure SetANOValue(const aValue: String); virtual;
{ Properties }
property ANO: String read GetANOValue write SetANOValue;
public
constructor Create(aDataTable: TDADataTable); override;
destructor Destroy; override;
end;
{ IDarReferenciaFactura }
IDarReferenciaFactura = interface(IDAStronglyTypedDataTable)
['{3780860F-0689-4DB4-87ED-879E5E0974B9}']
['{E947ABD4-4AD9-41C2-9351-96CBCDFFF938}']
{ Property getters and setters }
function GetREFERENCIAValue: String;
procedure SetREFERENCIAValue(const aValue: String);
@ -196,7 +233,7 @@ type
{ IFacturasCliente }
IFacturasCliente = interface(IDAStronglyTypedDataTable)
['{9AB55416-5EBD-4913-9D16-DFB75478A091}']
['{1D8ABDA0-4A60-4470-9880-627ED9D48B67}']
{ Property getters and setters }
function GetCODIGOEMPRESAValue: Integer;
procedure SetCODIGOEMPRESAValue(const aValue: Integer);
@ -351,7 +388,7 @@ type
{ IDetallesFacturasCliente }
IDetallesFacturasCliente = interface(IDAStronglyTypedDataTable)
['{BF49E552-D331-4DD7-A1E9-6C246BE51E99}']
['{5D2C18DA-1596-42C5-B509-360BFB347BDD}']
{ Property getters and setters }
function GetCODIGOFACTURAValue: Integer;
procedure SetCODIGOFACTURAValue(const aValue: Integer);
@ -428,7 +465,7 @@ type
{ IInformeCabeceraFacturaCliente }
IInformeCabeceraFacturaCliente = interface(IDAStronglyTypedDataTable)
['{3C1DD3E9-BFEC-479A-91BE-9703C511AA3B}']
['{64DCF384-1920-4E15-9B5A-BD3B2673C3C4}']
{ Property getters and setters }
function GetCODIGOEMPRESAValue: Integer;
procedure SetCODIGOEMPRESAValue(const aValue: Integer);
@ -577,7 +614,7 @@ type
{ IInformeDetallesFacturaCliente }
IInformeDetallesFacturaCliente = interface(IDAStronglyTypedDataTable)
['{8A9BE448-C659-4CA5-8C7C-B916FBF7E9C1}']
['{398C14EC-410D-4756-B0B6-97EF74DA85D2}']
{ Property getters and setters }
function GetCODIGOFACTURAValue: Integer;
procedure SetCODIGOFACTURAValue(const aValue: Integer);
@ -650,6 +687,28 @@ implementation
uses Variants;
{ TListaAnosFacturasDataTableRules }
constructor TListaAnosFacturasDataTableRules.Create(aDataTable: TDADataTable);
begin
inherited;
end;
destructor TListaAnosFacturasDataTableRules.Destroy;
begin
inherited;
end;
function TListaAnosFacturasDataTableRules.GetANOValue: String;
begin
result := DataTable.Fields[idx_ListaAnosFacturasANO].AsString;
end;
procedure TListaAnosFacturasDataTableRules.SetANOValue(const aValue: String);
begin
DataTable.Fields[idx_ListaAnosFacturasANO].AsString := aValue;
end;
{ TDarReferenciaFacturaDataTableRules }
constructor TDarReferenciaFacturaDataTableRules.Create(aDataTable: TDADataTable);
begin
@ -1325,6 +1384,7 @@ end;
initialization
RegisterDataTableRules(RID_ListaAnosFacturas, TListaAnosFacturasDataTableRules);
RegisterDataTableRules(RID_DarReferenciaFactura, TDarReferenciaFacturaDataTableRules);
RegisterDataTableRules(RID_FacturasCliente, TFacturasClienteDataTableRules);
RegisterDataTableRules(RID_DetallesFacturasCliente, TDetallesFacturasClienteDataTableRules);

View File

@ -9,16 +9,46 @@ const
{ Delta rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
RID_DarReferenciaFacturaDelta = '{F2A5D10C-55BF-43D0-BEE6-3712ED9D6EF7}';
RID_FacturasClienteDelta = '{E5E319FF-A856-43F4-A936-9BEA61505D26}';
RID_DetallesFacturasClienteDelta = '{7BDC4CEC-780B-4254-8D31-10F7DBDC2641}';
RID_InformeCabeceraFacturaClienteDelta = '{4EB09950-01DA-4E9E-A3A2-DECCB3A7812F}';
RID_InformeDetallesFacturaClienteDelta = '{6666A20D-5DCA-4D7C-9AAE-46BE7FEF57F6}';
RID_ListaAnosFacturasDelta = '{4A3D7BF0-E719-4050-B586-158542987232}';
RID_DarReferenciaFacturaDelta = '{83C26CE1-CD1F-49D4-9120-6EDE7CEEA2EA}';
RID_FacturasClienteDelta = '{68C74297-5D44-444B-8771-A8E6D3D3271B}';
RID_DetallesFacturasClienteDelta = '{BD1FD6EF-39D5-452F-9839-1629116AF11F}';
RID_InformeCabeceraFacturaClienteDelta = '{790B67BB-36BD-484E-8E99-288CC4E12849}';
RID_InformeDetallesFacturaClienteDelta = '{0EC5EBAE-B438-4B46-AC9F-C126476C5876}';
type
{ IListaAnosFacturasDelta }
IListaAnosFacturasDelta = interface(IListaAnosFacturas)
['{4A3D7BF0-E719-4050-B586-158542987232}']
{ Property getters and setters }
function GetOldANOValue : String;
{ Properties }
property OldANO : String read GetOldANOValue;
end;
{ TListaAnosFacturasBusinessProcessorRules }
TListaAnosFacturasBusinessProcessorRules = class(TDABusinessProcessorRules, IListaAnosFacturas, IListaAnosFacturasDelta)
private
protected
{ Property getters and setters }
function GetANOValue: String; virtual;
function GetOldANOValue: String; virtual;
procedure SetANOValue(const aValue: String); virtual;
{ Properties }
property ANO : String read GetANOValue write SetANOValue;
property OldANO : String read GetOldANOValue;
public
constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
destructor Destroy; override;
end;
{ IDarReferenciaFacturaDelta }
IDarReferenciaFacturaDelta = interface(IDarReferenciaFactura)
['{F2A5D10C-55BF-43D0-BEE6-3712ED9D6EF7}']
['{83C26CE1-CD1F-49D4-9120-6EDE7CEEA2EA}']
{ Property getters and setters }
function GetOldREFERENCIAValue : String;
@ -47,7 +77,7 @@ type
{ IFacturasClienteDelta }
IFacturasClienteDelta = interface(IFacturasCliente)
['{E5E319FF-A856-43F4-A936-9BEA61505D26}']
['{68C74297-5D44-444B-8771-A8E6D3D3271B}']
{ Property getters and setters }
function GetOldCODIGOEMPRESAValue : Integer;
function GetOldCODIGOValue : Integer;
@ -223,7 +253,7 @@ type
{ IDetallesFacturasClienteDelta }
IDetallesFacturasClienteDelta = interface(IDetallesFacturasCliente)
['{7BDC4CEC-780B-4254-8D31-10F7DBDC2641}']
['{BD1FD6EF-39D5-452F-9839-1629116AF11F}']
{ Property getters and setters }
function GetOldCODIGOFACTURAValue : Integer;
function GetOldNUMCONCEPTOValue : Integer;
@ -308,7 +338,7 @@ type
{ IInformeCabeceraFacturaClienteDelta }
IInformeCabeceraFacturaClienteDelta = interface(IInformeCabeceraFacturaCliente)
['{4EB09950-01DA-4E9E-A3A2-DECCB3A7812F}']
['{790B67BB-36BD-484E-8E99-288CC4E12849}']
{ Property getters and setters }
function GetOldCODIGOEMPRESAValue : Integer;
function GetOldCODIGOValue : Integer;
@ -477,7 +507,7 @@ type
{ IInformeDetallesFacturaClienteDelta }
IInformeDetallesFacturaClienteDelta = interface(IInformeDetallesFacturaCliente)
['{6666A20D-5DCA-4D7C-9AAE-46BE7FEF57F6}']
['{0EC5EBAE-B438-4B46-AC9F-C126476C5876}']
{ Property getters and setters }
function GetOldCODIGOFACTURAValue : Integer;
function GetOldNUMCONCEPTOValue : Integer;
@ -558,6 +588,33 @@ implementation
uses
Variants, uROBinaryHelpers;
{ TListaAnosFacturasBusinessProcessorRules }
constructor TListaAnosFacturasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
begin
inherited;
end;
destructor TListaAnosFacturasBusinessProcessorRules.Destroy;
begin
inherited;
end;
function TListaAnosFacturasBusinessProcessorRules.GetANOValue: String;
begin
result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosFacturasANO];
end;
function TListaAnosFacturasBusinessProcessorRules.GetOldANOValue: String;
begin
result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosFacturasANO];
end;
procedure TListaAnosFacturasBusinessProcessorRules.SetANOValue(const aValue: String);
begin
BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosFacturasANO] := aValue;
end;
{ TDarReferenciaFacturaBusinessProcessorRules }
constructor TDarReferenciaFacturaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
begin
@ -1542,6 +1599,7 @@ end;
initialization
RegisterBusinessProcessorRules(RID_ListaAnosFacturasDelta, TListaAnosFacturasBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_DarReferenciaFacturaDelta, TDarReferenciaFacturaBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_FacturasClienteDelta, TFacturasClienteBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_DetallesFacturasClienteDelta, TDetallesFacturasClienteBusinessProcessorRules);

View File

@ -6,8 +6,8 @@ object srvFacturasCliente: TsrvFacturasCliente
ConnectionName = 'IBX'
ServiceSchema = schFacturasCliente
ServiceAdapter = DABINAdapter
Left = 711
Top = 310
Left = 710
Top = 270
Height = 490
Width = 347
object schFacturasCliente: TDASchema
@ -15,6 +15,39 @@ object srvFacturasCliente: TsrvFacturasCliente
DataDictionary = dmServer.DataDictionary
Diagrams = dmServer.DADiagrams
Datasets = <
item
Params = <>
Statements = <
item
Connection = 'IBX'
SQL =
'select ANO from'#10'(select distinct(substr(FECHAfactura, 1,4)) as A' +
'NO'#10'from facturascliente'#10'order by 1 desc)'#10#10'UNION ALL'#10#10'select dist' +
'inct '#39'Todos'#39' as ANO'#10'from empresas'
StatementType = stSQL
ColumnMappings = <
item
DatasetField = 'ANO'
TableField = 'ANO'
end>
end>
Name = 'ListaAnosFacturas'
Fields = <
item
Name = 'ANO'
DataType = datString
Size = 254
BlobType = dabtUnknown
DisplayWidth = 0
Alignment = taLeftJustify
InPrimaryKey = False
Calculated = False
Lookup = False
LookupCache = False
end>
BusinessRulesClient.ScriptLanguage = rslPascalScript
BusinessRulesServer.ScriptLanguage = rslPascalScript
end
item
Params = <>
Statements = <

View File

@ -38,8 +38,8 @@ type
frxDotMatrixExport1: TfrxDotMatrixExport;
frxDialogControls1: TfrxDialogControls;
DABINAdapter: TDABINAdapter;
schFacturasCliente: TDASchema;
frxReport1: TfrxReport;
schFacturasCliente: TDASchema;
private
protected
{ IsrvFacturasCliente methods }

View File

@ -448,4 +448,113 @@ object dmFacturasProveedor: TdmFacturasProveedor
Left = 48
Top = 88
end
object tbl_ListaAnosFacturas: TDACDSDataTable
RemoteUpdatesOptions = []
Fields = <
item
Name = 'ANO'
DataType = datString
Size = 254
BlobType = dabtUnknown
DisplayWidth = 0
Alignment = taLeftJustify
InPrimaryKey = False
Calculated = False
Lookup = False
LookupCache = False
end>
Params = <>
MasterMappingMode = mmDataRequest
StreamingOptions = [soDisableEventsWhileStreaming]
SchemaCall.MethodName = 'GetDatasetSchema'
SchemaCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtBinary
end
item
Name = 'aDatasetName'
ParamType = fIn
DataType = rtString
Value = 'ListaAnosFacturas'
end>
DataRequestCall.MethodName = 'GetDatasetDataEx'
DataRequestCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtBinary
end
item
Name = 'DatasetName'
ParamType = fIn
DataType = rtString
Value = 'ListaAnosFacturas'
end
item
Name = 'Params'
ParamType = fIn
DataType = rtUserDefined
UserClassName = 'TDADatasetParamArray'
end
item
Name = 'UserFilter'
ParamType = fIn
DataType = rtString
Value = ''
end
item
Name = 'IncludeSchema'
ParamType = fIn
DataType = rtBoolean
Value = False
end
item
Name = 'MaxRecords'
ParamType = fIn
DataType = rtInteger
Value = -1
end>
DataUpdateCall.MethodName = 'UpdateData'
DataUpdateCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtBinary
end
item
Name = 'Delta'
ParamType = fIn
DataType = rtBinary
end>
ScriptCall.MethodName = 'GetDatasetScripts'
ScriptCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtString
Value = ''
end
item
Name = 'DatasetNames'
ParamType = fIn
DataType = rtString
Value = 'ListaAnosFacturas'
end>
ReadOnly = False
RemoteService = RORemoteService
Adapter = dmBase.DABINAdapter
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
LogicalName = 'ListaAnosFacturas'
IndexDefs = <>
Left = 152
Top = 144
end
object ds_ListaAnosFacturas: TDADataSource
DataTable = tbl_ListaAnosFacturas
Left = 152
Top = 96
end
end

View File

@ -14,6 +14,8 @@ type
tbl_FacturasProveedor: TDACDSDataTable;
ds_FacturasProveedor: TDADataSource;
DADesigntimeCall1: TDADesigntimeCall;
tbl_ListaAnosFacturas: TDACDSDataTable;
ds_ListaAnosFacturas: TDADataSource;
procedure DAClientDataModuleCreate(Sender: TObject);
private
{ Private declarations }
@ -22,6 +24,9 @@ type
function GetItem: IBizFacturasProveedor;
function GetItems: IBizFacturasProveedor;
function PuedoEliminarFactura (CodigoFactura : Integer) : Boolean;
function DarListaAnosFacturas: TStringList;
procedure FiltrarAno(AFacturas: IBizFacturasProveedor; AWhereDataTable: String; const Ano: String);
end;
var
@ -32,8 +37,8 @@ implementation
{$R *.DFM}
uses
Forms, Controls, uDataTableUtils, uBizContacto,
uDataModuleContactos, uDataModuleBase,
Forms, Controls, cxControls, uDataTableUtils, uBizContacto,
uDataModuleContactos, uDataModuleBase, uDAInterfaces,
FactuGES_Intf, uEditorPreview, uROTypes, schFacturasProveedorClient_Intf;
{ TDAClientDataModule1 }
@ -121,6 +126,55 @@ begin
Result := (RORemoteService as IsrvFacturasProveedor).PuedoEliminarFactura(CodigoFactura);
end;
function TdmFacturasProveedor.DarListaAnosFacturas: TStringList;
var
AListaAnos: TStringList;
begin
AListaAnos := TStringList.Create;
ShowHourglassCursor;
try
with tbl_ListaAnosFacturas do
begin
Open;
First;
while not eof do
begin
AListaAnos.Add(Format('%s=%s', [Fields[0].AsString, Fields[0].AsString]));
Next;
end;
Close;
end;
Result := AListaAnos;
finally
HideHourglassCursor;
end;
end;
procedure TdmFacturasProveedor.FiltrarAno(AFacturas: IBizFacturasProveedor; AWhereDataTable: String; const Ano: String);
var
FechaIni: String;
FechaFin: String;
begin
AFacturas.DataTable.Where.Clear;
AFacturas.DataTable.Where.AddText(AWhereDataTable);
if (Ano <> 'Todos') then
begin
// Filtrar los presupuestos actuales por años
FechaIni := '01.01.' + Ano;
FechaFin := '31.12.' + Ano;
with AFacturas.DataTable.Where do
begin
if NotEmpty then
AddOperator(opAND);
AddCondition(fld_FacturasProveedorFECHAFACTURA, cMajorOrEqual, FechaIni);
AddOperator(opAND);
AddCondition(fld_FacturasProveedorFECHAFACTURA, cLessOrEqual, FechaFin);
end;
end;
end;
initialization
dmFacturasProveedor := TdmFacturasProveedor.Create(nil);

View File

@ -36,7 +36,15 @@ inherited fEditorFacturasProveedor: TfEditorFacturasProveedor
end
end
inherited tbxFiltro: TTBXToolbar
Left = 411
inherited lblAno: TTBXLabelItem
Visible = True
end
inherited cbxListaAnos: TTBXComboBoxItem
Visible = True
end
inherited sepAno: TTBXSeparatorItem
Visible = True
end
end
end
inherited EditorActionList: TActionList

View File

@ -24,6 +24,9 @@ type
procedure actEliminarExecute(Sender: TObject);
procedure actModificarExecute(Sender: TObject);
procedure actNuevoExecute(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure OnListaAnosChange(Sender: TObject; const Text: string);
private
FFacturasProveedor: IBizFacturasProveedor;
protected
@ -137,6 +140,21 @@ begin
(ViewGrid as IViewFacturasProveedor).FacturasProveedor := FFacturasProveedor;
end;
procedure TfEditorFacturasProveedor.FormShow(Sender: TObject);
begin
ListaAnos := dmFacturasProveedor.DarListaAnosFacturas;
cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED
inherited;
end;
procedure TfEditorFacturasProveedor.OnListaAnosChange(Sender: TObject; const Text: string);
begin
dmFacturasProveedor.FiltrarAno(FacturasProveedor, WhereDataTable, Text);
if FacturasProveedor.DataTable.Active then
actRefrescar.Execute;
end;
initialization
RegisterEditor(IBizFacturasProveedor, ShowEditorFacturasProveedor, etItems);
RegisterEditor(IBizFacturasProveedor, ShowSelectEditorFacturasProveedor, etSelectItems);

View File

@ -9,11 +9,19 @@ const
{ Data table rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
RID_FacturasProveedor = '{3F8DC163-805B-44BC-9D8A-90A0A6527F1B}';
RID_ListaAnosFacturas = '{A357058B-4217-48F4-A5D2-9C243409ABAE}';
RID_FacturasProveedor = '{DF327921-CD7F-42FB-A1F9-0F1642C8826E}';
{ Data table names }
nme_ListaAnosFacturas = 'ListaAnosFacturas';
nme_FacturasProveedor = 'FacturasProveedor';
{ ListaAnosFacturas fields }
fld_ListaAnosFacturasANO = 'ANO';
{ ListaAnosFacturas field indexes }
idx_ListaAnosFacturasANO = 0;
{ FacturasProveedor fields }
fld_FacturasProveedorCODIGOEMPRESA = 'CODIGOEMPRESA';
fld_FacturasProveedorCODIGO = 'CODIGO';
@ -63,9 +71,38 @@ const
idx_FacturasProveedorPOBLACION = 21;
type
{ IListaAnosFacturas }
IListaAnosFacturas = interface(IDAStronglyTypedDataTable)
['{BB47DCBF-79F2-4F47-B2FB-78344C6265D9}']
{ Property getters and setters }
function GetANOValue: String;
procedure SetANOValue(const aValue: String);
{ Properties }
property ANO: String read GetANOValue write SetANOValue;
end;
{ TListaAnosFacturasDataTableRules }
TListaAnosFacturasDataTableRules = class(TDADataTableRules, IListaAnosFacturas)
private
protected
{ Property getters and setters }
function GetANOValue: String; virtual;
procedure SetANOValue(const aValue: String); virtual;
{ Properties }
property ANO: String read GetANOValue write SetANOValue;
public
constructor Create(aDataTable: TDADataTable); override;
destructor Destroy; override;
end;
{ IFacturasProveedor }
IFacturasProveedor = interface(IDAStronglyTypedDataTable)
['{B8F57619-27F5-4D11-A277-5F3873F0A4E8}']
['{03DE23C9-A1E1-41CB-B3AB-4E923905D12C}']
{ Property getters and setters }
function GetCODIGOEMPRESAValue: Integer;
procedure SetCODIGOEMPRESAValue(const aValue: Integer);
@ -222,6 +259,28 @@ implementation
uses Variants;
{ TListaAnosFacturasDataTableRules }
constructor TListaAnosFacturasDataTableRules.Create(aDataTable: TDADataTable);
begin
inherited;
end;
destructor TListaAnosFacturasDataTableRules.Destroy;
begin
inherited;
end;
function TListaAnosFacturasDataTableRules.GetANOValue: String;
begin
result := DataTable.Fields[idx_ListaAnosFacturasANO].AsString;
end;
procedure TListaAnosFacturasDataTableRules.SetANOValue(const aValue: String);
begin
DataTable.Fields[idx_ListaAnosFacturasANO].AsString := aValue;
end;
{ TFacturasProveedorDataTableRules }
constructor TFacturasProveedorDataTableRules.Create(aDataTable: TDADataTable);
begin
@ -457,6 +516,7 @@ end;
initialization
RegisterDataTableRules(RID_ListaAnosFacturas, TListaAnosFacturasDataTableRules);
RegisterDataTableRules(RID_FacturasProveedor, TFacturasProveedorDataTableRules);
end.

View File

@ -9,12 +9,42 @@ const
{ Delta rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
RID_FacturasProveedorDelta = '{F350F1F7-81A3-49B7-BD15-015F6A05A808}';
RID_ListaAnosFacturasDelta = '{8208DBF7-1A9B-4F24-B4E8-18CF5DC51A1E}';
RID_FacturasProveedorDelta = '{48F74298-152B-4B34-88EB-AF07A72D390A}';
type
{ IListaAnosFacturasDelta }
IListaAnosFacturasDelta = interface(IListaAnosFacturas)
['{8208DBF7-1A9B-4F24-B4E8-18CF5DC51A1E}']
{ Property getters and setters }
function GetOldANOValue : String;
{ Properties }
property OldANO : String read GetOldANOValue;
end;
{ TListaAnosFacturasBusinessProcessorRules }
TListaAnosFacturasBusinessProcessorRules = class(TDABusinessProcessorRules, IListaAnosFacturas, IListaAnosFacturasDelta)
private
protected
{ Property getters and setters }
function GetANOValue: String; virtual;
function GetOldANOValue: String; virtual;
procedure SetANOValue(const aValue: String); virtual;
{ Properties }
property ANO : String read GetANOValue write SetANOValue;
property OldANO : String read GetOldANOValue;
public
constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
destructor Destroy; override;
end;
{ IFacturasProveedorDelta }
IFacturasProveedorDelta = interface(IFacturasProveedor)
['{F350F1F7-81A3-49B7-BD15-015F6A05A808}']
['{48F74298-152B-4B34-88EB-AF07A72D390A}']
{ Property getters and setters }
function GetOldCODIGOEMPRESAValue : Integer;
function GetOldCODIGOValue : Integer;
@ -193,6 +223,33 @@ implementation
uses
Variants, uROBinaryHelpers;
{ TListaAnosFacturasBusinessProcessorRules }
constructor TListaAnosFacturasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
begin
inherited;
end;
destructor TListaAnosFacturasBusinessProcessorRules.Destroy;
begin
inherited;
end;
function TListaAnosFacturasBusinessProcessorRules.GetANOValue: String;
begin
result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosFacturasANO];
end;
function TListaAnosFacturasBusinessProcessorRules.GetOldANOValue: String;
begin
result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosFacturasANO];
end;
procedure TListaAnosFacturasBusinessProcessorRules.SetANOValue(const aValue: String);
begin
BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosFacturasANO] := aValue;
end;
{ TFacturasProveedorBusinessProcessorRules }
constructor TFacturasProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
begin
@ -540,6 +597,7 @@ end;
initialization
RegisterBusinessProcessorRules(RID_ListaAnosFacturasDelta, TListaAnosFacturasBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_FacturasProveedorDelta, TFacturasProveedorBusinessProcessorRules);
end.

View File

@ -7,7 +7,7 @@ object srvFacturasProveedor: TsrvFacturasProveedor
ServiceSchema = schFacturasProveedor
ServiceAdapter = DABINAdapter
Left = 477
Top = 382
Top = 333
Height = 392
Width = 369
object schFacturasProveedor: TDASchema
@ -15,6 +15,39 @@ object srvFacturasProveedor: TsrvFacturasProveedor
DataDictionary = dmServer.DataDictionary
Diagrams = dmServer.DADiagrams
Datasets = <
item
Params = <>
Statements = <
item
Connection = 'IBX'
SQL =
'select ANO from'#10'(select distinct(substr(FECHAFACTURA, 1,4)) as A' +
'NO'#10'from facturasproveedor'#10'order by 1 desc)'#10#10'UNION ALL'#10#10'select di' +
'stinct '#39'Todos'#39' as ANO'#10'from empresas'
StatementType = stSQL
ColumnMappings = <
item
DatasetField = 'ANO'
TableField = 'ANO'
end>
end>
Name = 'ListaAnosFacturas'
Fields = <
item
Name = 'ANO'
DataType = datString
Size = 254
BlobType = dabtUnknown
DisplayWidth = 0
Alignment = taLeftJustify
InPrimaryKey = False
Calculated = False
Lookup = False
LookupCache = False
end>
BusinessRulesClient.ScriptLanguage = rslPascalScript
BusinessRulesServer.ScriptLanguage = rslPascalScript
end
item
Params = <>
Statements = <

View File

@ -20,8 +20,8 @@ uses
type
{ TsrvFacturasProveedor }
TsrvFacturasProveedor = class(TDARemoteService, IsrvFacturasProveedor)
schFacturasProveedor: TDASchema;
DABINAdapter: TDABINAdapter;
schFacturasProveedor: TDASchema;
private
protected
{ IsrvFacturasProveedor methods }

View File

@ -7,7 +7,7 @@ object srvIntervalos: TsrvIntervalos
ServiceSchema = schIntervalos
ServiceAdapter = DABINAdapter
Left = 444
Top = 205
Top = 179
Height = 300
Width = 300
object schIntervalos: TDASchema

View File

@ -13,7 +13,7 @@ object dmMontajes: TdmMontajes
Left = 564
Top = 347
Height = 335
Width = 343
Width = 536
object RORemoteService: TRORemoteService
ServiceName = 'srvMontajes'
Message = dmBase.ROMessage
@ -616,4 +616,113 @@ object dmMontajes: TdmMontajes
Left = 240
Top = 200
end
object tbl_ListaAnosMontajes: TDACDSDataTable
RemoteUpdatesOptions = []
Fields = <
item
Name = 'ANO'
DataType = datString
Size = 254
BlobType = dabtUnknown
DisplayWidth = 0
Alignment = taLeftJustify
InPrimaryKey = False
Calculated = False
Lookup = False
LookupCache = False
end>
Params = <>
MasterMappingMode = mmDataRequest
StreamingOptions = [soDisableEventsWhileStreaming]
SchemaCall.MethodName = 'GetDatasetSchema'
SchemaCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtBinary
end
item
Name = 'aDatasetName'
ParamType = fIn
DataType = rtString
Value = 'ListaAnosMontajes'
end>
DataRequestCall.MethodName = 'GetDatasetDataEx'
DataRequestCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtBinary
end
item
Name = 'DatasetName'
ParamType = fIn
DataType = rtString
Value = 'ListaAnosMontajes'
end
item
Name = 'Params'
ParamType = fIn
DataType = rtUserDefined
UserClassName = 'TDADatasetParamArray'
end
item
Name = 'UserFilter'
ParamType = fIn
DataType = rtString
Value = ''
end
item
Name = 'IncludeSchema'
ParamType = fIn
DataType = rtBoolean
Value = False
end
item
Name = 'MaxRecords'
ParamType = fIn
DataType = rtInteger
Value = -1
end>
DataUpdateCall.MethodName = 'UpdateData'
DataUpdateCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtBinary
end
item
Name = 'Delta'
ParamType = fIn
DataType = rtBinary
end>
ScriptCall.MethodName = 'GetDatasetScripts'
ScriptCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtString
Value = ''
end
item
Name = 'DatasetNames'
ParamType = fIn
DataType = rtString
Value = 'ListaAnosMontajes'
end>
ReadOnly = False
RemoteService = RORemoteService
Adapter = DABINAdapter
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
LogicalName = 'ListaAnosMontajes'
IndexDefs = <>
Left = 344
Top = 88
end
object ds_ListaAnosMontajes: TDADataSource
DataTable = tbl_ListaAnosMontajes
Left = 344
Top = 24
end
end

View File

@ -18,6 +18,8 @@ type
ds_FichaBeneficios: TDADataSource;
tbl_FichaBeneficios_Aux: TDACDSDataTable;
ds_FichaBeneficios_Aux: TDADataSource;
tbl_ListaAnosMontajes: TDACDSDataTable;
ds_ListaAnosMontajes: TDADataSource;
procedure DAClientDataModuleCreate(Sender: TObject);
public
function GetItems: IBizMontaje; overload;
@ -34,7 +36,10 @@ type
function darFichaBeneficiosAux: IFichaBeneficios_Aux;
procedure NuevoMontaje(AMontaje: IBizMontaje; APresupuesto: IBizPresupuestos);
function CambiarSituacion(CodigoPresupuesto: Integer; Situacion: TEnumSituacion): String;
function DarNuevaReferencia (TipoMontaje : String) : String;
function DarNuevaReferencia (TipoMontaje : String) : String;
function DarListaAnosMontajes: TStringList;
procedure FiltrarAno(AMontajes: IBizMontaje; AWhereDataTable: String; const Ano: String);
end;
var
@ -45,7 +50,7 @@ implementation
{$R *.DFM}
uses
Controls, Forms, uDAInterfaces, DataAbstract_Intf, FactuGES_Intf,
Controls, cxControls, Forms, uDAInterfaces, DataAbstract_Intf, FactuGES_Intf,
uDataTableUtils, uROTypes, uEditorPreview,
Dialogs, uDataModuleBase, uDBSelectionList,
uDataModuleContactos, uDataModulePresupuestos;
@ -364,6 +369,55 @@ begin
Result := (RORemoteService as IsrvMontajes).DarNuevaReferencia(TipoMontaje);
end;
function TdmMontajes.DarListaAnosMontajes: TStringList;
var
AListaAnos: TStringList;
begin
AListaAnos := TStringList.Create;
ShowHourglassCursor;
try
with tbl_ListaAnosMontajes do
begin
Open;
First;
while not eof do
begin
AListaAnos.Add(Format('%s=%s', [Fields[0].AsString, Fields[0].AsString]));
Next;
end;
Close;
end;
Result := AListaAnos;
finally
HideHourglassCursor;
end;
end;
procedure TdmMontajes.FiltrarAno(AMontajes: IBizMontaje; AWhereDataTable: String; const Ano: String);
var
FechaIni: String;
FechaFin: String;
begin
AMontajes.DataTable.Where.Clear;
AMontajes.DataTable.Where.AddText(AWhereDataTable);
if (Ano <> 'Todos') then
begin
// Filtrar los presupuestos actuales por años
FechaIni := '01.01.' + Ano;
FechaFin := '31.12.' + Ano;
with AMontajes.DataTable.Where do
begin
if NotEmpty then
AddOperator(opAND);
AddCondition(fld_MontajesFECHAINICIO, cMajorOrEqual, FechaIni);
AddOperator(opAND);
AddCondition(fld_MontajesFECHAINICIO, cLessOrEqual, FechaFin);
end;
end;
end;
initialization
dmMontajes := TdmMontajes.Create(nil);

View File

@ -41,7 +41,15 @@ inherited fEditorMontajes: TfEditorMontajes
inherited TBXDock: TTBXDock
Width = 742
inherited tbxFiltro: TTBXToolbar
Left = 411
inherited lblAno: TTBXLabelItem
Visible = True
end
inherited cbxListaAnos: TTBXComboBoxItem
Visible = True
end
inherited sepAno: TTBXSeparatorItem
Visible = True
end
inherited tbxEditFiltro: TTBXEditItem
EditOptions = [tboUseEditWhenVertical]
end

View File

@ -32,14 +32,18 @@ type
procedure actModificarExecute(Sender: TObject);
procedure actEliminarExecute(Sender: TObject);
procedure frViewBarraSeleccionactSeleccionarExecute(Sender: TObject);
procedure OnListaAnosChange(Sender: TObject; const Text: string);
private
FMontajes: IBizMontaje;
protected
function GetMontajes: IBizMontaje; virtual;
procedure SetMontajes(const Value: IBizMontaje); virtual;
procedure SetViewGrid(const Value: IViewGrid); override;
function GetSelectionBarVisible: Boolean; virtual;
procedure SetSelectionBarVisible(const Value: Boolean); virtual;
public
property SelectionBarVisible : Boolean read GetSelectionBarVisible write
SetSelectionBarVisible;
@ -90,6 +94,9 @@ end;
}
procedure TfEditorMontajes.FormShow(Sender: TObject);
begin
ListaAnos := dmMontajes.DarListaAnosMontajes;
cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED
inherited;
if not Assigned(ViewGrid) then
@ -191,6 +198,13 @@ begin
end;
end;
procedure TfEditorMontajes.OnListaAnosChange(Sender: TObject; const Text: string);
begin
dmMontajes.FiltrarAno(Montajes, WhereDataTable, Text);
if Montajes.DataTable.Active then
actRefrescar.Execute;
end;
initialization
RegisterEditor(IBizMontaje, ShowEditorMontajes, etItems);
RegisterEditor(IBizMontaje, ShowSelectEditorMontajes, etSelectItems);

View File

@ -9,15 +9,17 @@ const
{ Data table rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
RID_darNuevaReferencia = '{6547ACA4-805B-4EE7-9499-2D0196BEFC6F}';
RID_InformeCabeceraFicha = '{F09A7509-40A9-480E-8E43-F05EF537125E}';
RID_Montajes = '{C70762DB-3285-4C26-888D-63B20160927C}';
RID_Refresh_Montajes = '{40108B41-7E49-4883-9528-3FBD57B56703}';
RID_FichaBeneficios = '{573182C2-5168-428D-99A9-5BFBA9E74705}';
RID_InformeDetallesFicha = '{BA1E0ABA-559C-4A1A-B028-32382BB3111A}';
RID_FichaBeneficios_Aux = '{706C0AC4-9532-4640-AAF4-BFA1DCD52D26}';
RID_ListaAnosMontajes = '{8A77AA23-1850-4C51-9890-61883469A21D}';
RID_darNuevaReferencia = '{98BF35DF-261B-4AF5-B3EC-024D293CB3BF}';
RID_InformeCabeceraFicha = '{9FCA86CA-5B72-45D8-8B2E-623344608585}';
RID_Montajes = '{EA56C374-7E7B-4FC5-8C42-1D65BA1BD7EF}';
RID_Refresh_Montajes = '{A948AC0C-F4EF-465D-B2DD-FA4301D3B029}';
RID_FichaBeneficios = '{8572BE0C-91B5-4D2C-B729-BB13BAEBC13D}';
RID_InformeDetallesFicha = '{D3E3E171-62A4-465E-A954-3EDF6EB38F6F}';
RID_FichaBeneficios_Aux = '{5D3EC453-7D49-4AB0-98C0-7F0807279919}';
{ Data table names }
nme_ListaAnosMontajes = 'ListaAnosMontajes';
nme_darNuevaReferencia = 'darNuevaReferencia';
nme_InformeCabeceraFicha = 'InformeCabeceraFicha';
nme_Montajes = 'Montajes';
@ -26,6 +28,12 @@ const
nme_InformeDetallesFicha = 'InformeDetallesFicha';
nme_FichaBeneficios_Aux = 'FichaBeneficios_Aux';
{ ListaAnosMontajes fields }
fld_ListaAnosMontajesANO = 'ANO';
{ ListaAnosMontajes field indexes }
idx_ListaAnosMontajesANO = 0;
{ darNuevaReferencia fields }
fld_darNuevaReferenciaREFERENCIA = 'REFERENCIA';
@ -167,9 +175,38 @@ const
idx_FichaBeneficios_AuxDESCRIPCION = 1;
type
{ IListaAnosMontajes }
IListaAnosMontajes = interface(IDAStronglyTypedDataTable)
['{6FCA63AA-AE36-4EF9-BFCB-91693E467AE1}']
{ Property getters and setters }
function GetANOValue: String;
procedure SetANOValue(const aValue: String);
{ Properties }
property ANO: String read GetANOValue write SetANOValue;
end;
{ TListaAnosMontajesDataTableRules }
TListaAnosMontajesDataTableRules = class(TDADataTableRules, IListaAnosMontajes)
private
protected
{ Property getters and setters }
function GetANOValue: String; virtual;
procedure SetANOValue(const aValue: String); virtual;
{ Properties }
property ANO: String read GetANOValue write SetANOValue;
public
constructor Create(aDataTable: TDADataTable); override;
destructor Destroy; override;
end;
{ IdarNuevaReferencia }
IdarNuevaReferencia = interface(IDAStronglyTypedDataTable)
['{1D96C64B-6FB2-4AAF-8444-A92600498486}']
['{A6774E16-4A24-4A3D-A8D6-93ADD76C90AF}']
{ Property getters and setters }
function GetREFERENCIAValue: String;
procedure SetREFERENCIAValue(const aValue: String);
@ -198,7 +235,7 @@ type
{ IInformeCabeceraFicha }
IInformeCabeceraFicha = interface(IDAStronglyTypedDataTable)
['{72D2A87F-6179-41A5-84D9-22060DEE9727}']
['{232A3364-2478-4717-BD42-3DBAE60B11CC}']
{ Property getters and setters }
function GetREFERENCIAValue: String;
procedure SetREFERENCIAValue(const aValue: String);
@ -311,7 +348,7 @@ type
{ IMontajes }
IMontajes = interface(IDAStronglyTypedDataTable)
['{ECCCC9FA-E3EF-4F98-9B46-795A66D964DB}']
['{E50B9717-4671-4DC6-896B-F2C3EC14C399}']
{ Property getters and setters }
function GetCODIGOEMPRESAValue: Integer;
procedure SetCODIGOEMPRESAValue(const aValue: Integer);
@ -412,7 +449,7 @@ type
{ IRefresh_Montajes }
IRefresh_Montajes = interface(IDAStronglyTypedDataTable)
['{FAB2B839-6970-4AB2-A8BC-088A8B74FDCC}']
['{B31A8001-6DF2-4389-9347-423642175B74}']
{ Property getters and setters }
function GetCODIGOEMPRESAValue: Integer;
procedure SetCODIGOEMPRESAValue(const aValue: Integer);
@ -513,7 +550,7 @@ type
{ IFichaBeneficios }
IFichaBeneficios = interface(IDAStronglyTypedDataTable)
['{7C92B973-791A-477D-8DE0-BF61AF95236A}']
['{CBD6AD21-2417-45BD-B514-D9D3ACA64E4F}']
{ Property getters and setters }
function GetCODIGOMONTAJEValue: Integer;
procedure SetCODIGOMONTAJEValue(const aValue: Integer);
@ -578,7 +615,7 @@ type
{ IInformeDetallesFicha }
IInformeDetallesFicha = interface(IDAStronglyTypedDataTable)
['{16284B23-DBDE-405F-9307-CAFDDB913576}']
['{CDD0B24E-43DC-4BE9-9451-49126D130C35}']
{ Property getters and setters }
function GetDESCRIPCIONValue: String;
procedure SetDESCRIPCIONValue(const aValue: String);
@ -631,7 +668,7 @@ type
{ IFichaBeneficios_Aux }
IFichaBeneficios_Aux = interface(IDAStronglyTypedDataTable)
['{C14BE74A-4651-4387-A6E3-048197F0CAC9}']
['{AE5C37AD-B172-4181-8726-C94153D32E9B}']
{ Property getters and setters }
function GetNUMCONCEPTOValue: Integer;
procedure SetNUMCONCEPTOValue(const aValue: Integer);
@ -668,6 +705,28 @@ implementation
uses Variants;
{ TListaAnosMontajesDataTableRules }
constructor TListaAnosMontajesDataTableRules.Create(aDataTable: TDADataTable);
begin
inherited;
end;
destructor TListaAnosMontajesDataTableRules.Destroy;
begin
inherited;
end;
function TListaAnosMontajesDataTableRules.GetANOValue: String;
begin
result := DataTable.Fields[idx_ListaAnosMontajesANO].AsString;
end;
procedure TListaAnosMontajesDataTableRules.SetANOValue(const aValue: String);
begin
DataTable.Fields[idx_ListaAnosMontajesANO].AsString := aValue;
end;
{ TdarNuevaReferenciaDataTableRules }
constructor TdarNuevaReferenciaDataTableRules.Create(aDataTable: TDADataTable);
begin
@ -1316,6 +1375,7 @@ end;
initialization
RegisterDataTableRules(RID_ListaAnosMontajes, TListaAnosMontajesDataTableRules);
RegisterDataTableRules(RID_darNuevaReferencia, TdarNuevaReferenciaDataTableRules);
RegisterDataTableRules(RID_InformeCabeceraFicha, TInformeCabeceraFichaDataTableRules);
RegisterDataTableRules(RID_Montajes, TMontajesDataTableRules);

View File

@ -9,18 +9,48 @@ const
{ Delta rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
RID_darNuevaReferenciaDelta = '{5C9B1530-2031-47B8-A401-B55FE08E3EB7}';
RID_InformeCabeceraFichaDelta = '{F5A62AC1-DF4E-4510-942E-3595C5BC5137}';
RID_MontajesDelta = '{939D89F0-AEBE-4E5F-9F1C-05829C1C9AD4}';
RID_Refresh_MontajesDelta = '{A7E3BF24-EC68-403B-9732-11DA2807356E}';
RID_FichaBeneficiosDelta = '{E6D1DA2C-DE89-4F62-B1C1-8DE78BBF1F76}';
RID_InformeDetallesFichaDelta = '{FAC578F4-482B-4E46-8C07-D7C521604FCA}';
RID_FichaBeneficios_AuxDelta = '{3E015966-D349-4153-B8F8-4F083CD724F5}';
RID_ListaAnosMontajesDelta = '{A1079675-6804-43A1-8113-4C69034E612B}';
RID_darNuevaReferenciaDelta = '{B926E1E9-D5FE-4AD9-81B6-6DB568BAF1AC}';
RID_InformeCabeceraFichaDelta = '{295D1406-43D2-4AB6-90C5-3C77F026EEF1}';
RID_MontajesDelta = '{2E686B2F-A149-44D8-B8A0-978EF00888B3}';
RID_Refresh_MontajesDelta = '{A0465C98-DB95-4236-B3CE-5D2580AED7A0}';
RID_FichaBeneficiosDelta = '{E75F17B7-C959-49D7-84B3-55AA239759FC}';
RID_InformeDetallesFichaDelta = '{E97CAB1B-CCB0-4710-95F3-9AD8D1C9305F}';
RID_FichaBeneficios_AuxDelta = '{BB83B8A0-16FB-43C4-8776-0A2DDCE8A85B}';
type
{ IListaAnosMontajesDelta }
IListaAnosMontajesDelta = interface(IListaAnosMontajes)
['{A1079675-6804-43A1-8113-4C69034E612B}']
{ Property getters and setters }
function GetOldANOValue : String;
{ Properties }
property OldANO : String read GetOldANOValue;
end;
{ TListaAnosMontajesBusinessProcessorRules }
TListaAnosMontajesBusinessProcessorRules = class(TDABusinessProcessorRules, IListaAnosMontajes, IListaAnosMontajesDelta)
private
protected
{ Property getters and setters }
function GetANOValue: String; virtual;
function GetOldANOValue: String; virtual;
procedure SetANOValue(const aValue: String); virtual;
{ Properties }
property ANO : String read GetANOValue write SetANOValue;
property OldANO : String read GetOldANOValue;
public
constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
destructor Destroy; override;
end;
{ IdarNuevaReferenciaDelta }
IdarNuevaReferenciaDelta = interface(IdarNuevaReferencia)
['{5C9B1530-2031-47B8-A401-B55FE08E3EB7}']
['{B926E1E9-D5FE-4AD9-81B6-6DB568BAF1AC}']
{ Property getters and setters }
function GetOldREFERENCIAValue : String;
@ -49,7 +79,7 @@ type
{ IInformeCabeceraFichaDelta }
IInformeCabeceraFichaDelta = interface(IInformeCabeceraFicha)
['{F5A62AC1-DF4E-4510-942E-3595C5BC5137}']
['{295D1406-43D2-4AB6-90C5-3C77F026EEF1}']
{ Property getters and setters }
function GetOldREFERENCIAValue : String;
function GetOldFECHAINICIOValue : DateTime;
@ -176,7 +206,7 @@ type
{ IMontajesDelta }
IMontajesDelta = interface(IMontajes)
['{939D89F0-AEBE-4E5F-9F1C-05829C1C9AD4}']
['{2E686B2F-A149-44D8-B8A0-978EF00888B3}']
{ Property getters and setters }
function GetOldCODIGOEMPRESAValue : Integer;
function GetOldCODIGOValue : Integer;
@ -289,7 +319,7 @@ type
{ IRefresh_MontajesDelta }
IRefresh_MontajesDelta = interface(IRefresh_Montajes)
['{A7E3BF24-EC68-403B-9732-11DA2807356E}']
['{A0465C98-DB95-4236-B3CE-5D2580AED7A0}']
{ Property getters and setters }
function GetOldCODIGOEMPRESAValue : Integer;
function GetOldCODIGOValue : Integer;
@ -402,7 +432,7 @@ type
{ IFichaBeneficiosDelta }
IFichaBeneficiosDelta = interface(IFichaBeneficios)
['{E6D1DA2C-DE89-4F62-B1C1-8DE78BBF1F76}']
['{E75F17B7-C959-49D7-84B3-55AA239759FC}']
{ Property getters and setters }
function GetOldCODIGOMONTAJEValue : Integer;
function GetOldNUMCONCEPTOValue : Integer;
@ -473,7 +503,7 @@ type
{ IInformeDetallesFichaDelta }
IInformeDetallesFichaDelta = interface(IInformeDetallesFicha)
['{FAC578F4-482B-4E46-8C07-D7C521604FCA}']
['{E97CAB1B-CCB0-4710-95F3-9AD8D1C9305F}']
{ Property getters and setters }
function GetOldDESCRIPCIONValue : String;
function GetOldMODELOValue : String;
@ -530,7 +560,7 @@ type
{ IFichaBeneficios_AuxDelta }
IFichaBeneficios_AuxDelta = interface(IFichaBeneficios_Aux)
['{3E015966-D349-4153-B8F8-4F083CD724F5}']
['{BB83B8A0-16FB-43C4-8776-0A2DDCE8A85B}']
{ Property getters and setters }
function GetOldNUMCONCEPTOValue : Integer;
function GetOldDESCRIPCIONValue : String;
@ -569,6 +599,33 @@ implementation
uses
Variants, uROBinaryHelpers;
{ TListaAnosMontajesBusinessProcessorRules }
constructor TListaAnosMontajesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
begin
inherited;
end;
destructor TListaAnosMontajesBusinessProcessorRules.Destroy;
begin
inherited;
end;
function TListaAnosMontajesBusinessProcessorRules.GetANOValue: String;
begin
result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosMontajesANO];
end;
function TListaAnosMontajesBusinessProcessorRules.GetOldANOValue: String;
begin
result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosMontajesANO];
end;
procedure TListaAnosMontajesBusinessProcessorRules.SetANOValue(const aValue: String);
begin
BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosMontajesANO] := aValue;
end;
{ TdarNuevaReferenciaBusinessProcessorRules }
constructor TdarNuevaReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
begin
@ -1500,6 +1557,7 @@ end;
initialization
RegisterBusinessProcessorRules(RID_ListaAnosMontajesDelta, TListaAnosMontajesBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_darNuevaReferenciaDelta, TdarNuevaReferenciaBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_InformeCabeceraFichaDelta, TInformeCabeceraFichaBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_MontajesDelta, TMontajesBusinessProcessorRules);

View File

@ -5,8 +5,8 @@ object srvMontajes: TsrvMontajes
ConnectionName = 'IBX'
ServiceSchema = schMontajes
ServiceAdapter = DABINAdapter
Left = 648
Top = 207
Left = 647
Top = 181
Height = 356
Width = 300
object bpMontajes: TDABusinessProcessor
@ -26,6 +26,39 @@ object srvMontajes: TsrvMontajes
DataDictionary = dmServer.DataDictionary
Diagrams = dmServer.DADiagrams
Datasets = <
item
Params = <>
Statements = <
item
Connection = 'IBX'
SQL =
'select ANO from'#10'(select distinct(substr(FECHAINICIO, 1,4)) as AN' +
'O'#10'from montajes'#10'order by 1 desc)'#10#10'UNION ALL'#10#10'select distinct '#39'To' +
'dos'#39' as ANO'#10'from empresas'
StatementType = stSQL
ColumnMappings = <
item
DatasetField = 'ANO'
TableField = 'ANO'
end>
end>
Name = 'ListaAnosMontajes'
Fields = <
item
Name = 'ANO'
DataType = datString
Size = 254
BlobType = dabtUnknown
DisplayWidth = 0
Alignment = taLeftJustify
InPrimaryKey = False
Calculated = False
Lookup = False
LookupCache = False
end>
BusinessRulesClient.ScriptLanguage = rslPascalScript
BusinessRulesServer.ScriptLanguage = rslPascalScript
end
item
Params = <
item

Binary file not shown.

View File

@ -305,4 +305,113 @@ object dmPagos: TdmPagos
Left = 232
Top = 24
end
object tbl_ListaAnosPagos: TDACDSDataTable
RemoteUpdatesOptions = []
Fields = <
item
Name = 'ANO'
DataType = datString
Size = 254
BlobType = dabtUnknown
DisplayWidth = 0
Alignment = taLeftJustify
InPrimaryKey = False
Calculated = False
Lookup = False
LookupCache = False
end>
Params = <>
MasterMappingMode = mmDataRequest
StreamingOptions = [soDisableEventsWhileStreaming]
SchemaCall.MethodName = 'GetDatasetSchema'
SchemaCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtBinary
end
item
Name = 'aDatasetName'
ParamType = fIn
DataType = rtString
Value = 'ListaAnosPagos'
end>
DataRequestCall.MethodName = 'GetDatasetDataEx'
DataRequestCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtBinary
end
item
Name = 'DatasetName'
ParamType = fIn
DataType = rtString
Value = 'ListaAnosPagos'
end
item
Name = 'Params'
ParamType = fIn
DataType = rtUserDefined
UserClassName = 'TDADatasetParamArray'
end
item
Name = 'UserFilter'
ParamType = fIn
DataType = rtString
Value = ''
end
item
Name = 'IncludeSchema'
ParamType = fIn
DataType = rtBoolean
Value = False
end
item
Name = 'MaxRecords'
ParamType = fIn
DataType = rtInteger
Value = -1
end>
DataUpdateCall.MethodName = 'UpdateData'
DataUpdateCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtBinary
end
item
Name = 'Delta'
ParamType = fIn
DataType = rtBinary
end>
ScriptCall.MethodName = 'GetDatasetScripts'
ScriptCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtString
Value = ''
end
item
Name = 'DatasetNames'
ParamType = fIn
DataType = rtString
Value = 'ListaAnosPagos'
end>
ReadOnly = False
RemoteService = RORemoteService
Adapter = DABINAdapter
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
LogicalName = 'ListaAnosPagos'
IndexDefs = <>
Left = 128
Top = 120
end
object ds_ListaAnosPagos: TDADataSource
DataTable = tbl_ListaAnosPagos
Left = 128
Top = 64
end
end

View File

@ -14,6 +14,8 @@ type
RORemoteService: TRORemoteService;
tbl_Pagos: TDACDSDataTable;
ds_Pagos: TDADataSource;
tbl_ListaAnosPagos: TDACDSDataTable;
ds_ListaAnosPagos: TDADataSource;
procedure DAClientDataModuleCreate(Sender: TObject);
private
function GetPagos(CodigoCategoria : Integer): IBizPagos;
@ -31,6 +33,9 @@ type
function PuedoEliminarAlmacen(Codigo : Integer) : Boolean;
function AnadirPagoCliente(Cliente: IBizCliente; CodigoPresupuesto: Integer;
Descripcion: Variant; Importe: Currency; var FechaPago: TDateTime): Boolean;
function DarListaAnosPagos: TStringList;
procedure FiltrarAno(APagos: IBizPagos; AWhereDataTable: String; const Ano: String);
end;
var
@ -41,7 +46,7 @@ implementation
{$R *.DFM}
uses
Controls, Forms, uDAInterfaces, DataAbstract_Intf, FactuGES_Intf,
Controls, cxControls, Forms, uDAInterfaces, DataAbstract_Intf, FactuGES_Intf,
uDataTableUtils, uROTypes, uEditorPreview, Dialogs, uDataModuleBase,
schPagosClient_Intf, uDataModuleMontajes, uBizMontajes;
@ -82,6 +87,55 @@ begin
RORemoteService.Message := dmBase.Message;
end;
function TdmPagos.DarListaAnosPagos: TStringList;
var
AListaAnos: TStringList;
begin
AListaAnos := TStringList.Create;
ShowHourglassCursor;
try
with tbl_ListaAnosPagos do
begin
Open;
First;
while not eof do
begin
AListaAnos.Add(Format('%s=%s', [Fields[0].AsString, Fields[0].AsString]));
Next;
end;
Close;
end;
Result := AListaAnos;
finally
HideHourglassCursor;
end;
end;
procedure TdmPagos.FiltrarAno(APagos: IBizPagos; AWhereDataTable: String; const Ano: String);
var
FechaIni: String;
FechaFin: String;
begin
APagos.DataTable.Where.Clear;
APagos.DataTable.Where.AddText(AWhereDataTable);
if (Ano <> 'Todos') then
begin
// Filtrar los presupuestos actuales por años
FechaIni := '01.01.' + Ano;
FechaFin := '31.12.' + Ano;
with APagos.DataTable.Where do
begin
if NotEmpty then
AddOperator(opAND);
AddCondition(fld_PagosFECHAPAGO, cMajorOrEqual, FechaIni);
AddOperator(opAND);
AddCondition(fld_PagosFECHAPAGO, cLessOrEqual, FechaFin);
end;
end;
end;
function TdmPagos.GetItems: IBizPagos;
var
dtPagos: TDACDSDataTable;

View File

@ -9,7 +9,15 @@ inherited fEditorPagos: TfEditorPagos
end
inherited TBXDock: TTBXDock
inherited tbxFiltro: TTBXToolbar
Left = 411
inherited lblAno: TTBXLabelItem
Visible = True
end
inherited cbxListaAnos: TTBXComboBoxItem
Visible = True
end
inherited sepAno: TTBXSeparatorItem
Visible = True
end
inherited tbxEditFiltro: TTBXEditItem
EditOptions = [tboUseEditWhenVertical]
end

View File

@ -21,15 +21,19 @@ type
end;
TfEditorPagos = class(TfEditorGrid, IEditorPagos)
procedure FormShow(Sender: TObject);
procedure actNuevoExecute(Sender: TObject);
procedure actModificarExecute(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure OnListaAnosChange(Sender: TObject; const Text: string);
private
FPagos: IBizPagos;
protected
function GetPagos: IBizPagos; virtual;
procedure SetPagos(const Value: IBizPagos); virtual;
procedure SetViewGrid(const Value: IViewGrid); override;
public
property Pagos: IBizPagos read GetPagos write SetPagos;
destructor Destroy; override;
@ -50,6 +54,9 @@ uses
}
procedure TfEditorPagos.FormShow(Sender: TObject);
begin
ListaAnos := dmPagos.DarListaAnosPagos;
cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED
inherited;
if not Assigned(ViewGrid) then
@ -58,7 +65,7 @@ begin
if not Assigned(Pagos) then
raise Exception.Create('No hay ningún Pago asignado');
Pagos.DataTable.Active := True;
// Pagos.DataTable.Active := True;
end;
function TfEditorPagos.GetPagos: IBizPagos;
@ -69,9 +76,17 @@ end;
procedure TfEditorPagos.SetPagos(const Value: IBizPagos);
begin
FPagos := Value;
dsDataTable.DataTable := FPagos.DataTable;
if Assigned(ViewGrid) then
(ViewGrid as IViewPagos).Pagos := Pagos;
if Assigned(FPagos) then
begin
//Se guarda el where de la sentencia origen, por si el editor tiene filtros que
//afecten a este where y en un futuro se desea volver al where origen (filtro de año))
WhereDataTable := FPagos.DataTable.Where.Clause;
dsDataTable.DataTable := FPagos.DataTable;
if Assigned(ViewGrid) then
(ViewGrid as IViewPagos).Pagos := Pagos;
end;
end;
procedure TfEditorPagos.actNuevoExecute(Sender: TObject);
@ -104,5 +119,12 @@ begin
inherited;
end;
procedure TfEditorPagos.OnListaAnosChange(Sender: TObject; const Text: string);
begin
dmPagos.FiltrarAno(Pagos, WhereDataTable, Text);
if Pagos.DataTable.Active then
actRefrescar.Execute;
end;
end.

View File

@ -9,12 +9,14 @@ const
{ Data table rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
RID_InformeCabeceraPago = '{15DB645D-82F8-47D2-B265-F96587E77C7B}';
RID_Pagos = '{B164F992-38BF-4CC5-89D1-01472F107C3E}';
RID_Refresh_Pagos = '{CBBD3913-987D-4199-9F0D-F76BB9557BA3}';
RID_InformeCabeceraPago = '{B59F93CF-6EAF-4991-B028-BB0CCE36364E}';
RID_ListaAnosPagos = '{850055F7-8D08-4539-AB66-5DA63D40E26A}';
RID_Pagos = '{29B2AF5B-087B-4E74-83F7-8D96ECEC370C}';
RID_Refresh_Pagos = '{7E9A215E-D8F2-452C-83EB-36815D1F2E30}';
{ Data table names }
nme_InformeCabeceraPago = 'InformeCabeceraPago';
nme_ListaAnosPagos = 'ListaAnosPagos';
nme_Pagos = 'Pagos';
nme_Refresh_Pagos = 'Refresh_Pagos';
@ -50,6 +52,12 @@ const
idx_InformeCabeceraPagoPOBLACION = 12;
idx_InformeCabeceraPagoPROVINCIA = 13;
{ ListaAnosPagos fields }
fld_ListaAnosPagosANO = 'ANO';
{ ListaAnosPagos field indexes }
idx_ListaAnosPagosANO = 0;
{ Pagos fields }
fld_PagosCODIGOEMPRESA = 'CODIGOEMPRESA';
fld_PagosCODIGO = 'CODIGO';
@ -117,7 +125,7 @@ const
type
{ IInformeCabeceraPago }
IInformeCabeceraPago = interface(IDAStronglyTypedDataTable)
['{D34C282C-0A16-4856-93A2-761BCC9E74B6}']
['{148B6411-0D8B-49BB-BB6D-B7EC3E511B59}']
{ Property getters and setters }
function GetCODIGOEMPRESAValue: Integer;
procedure SetCODIGOEMPRESAValue(const aValue: Integer);
@ -222,9 +230,38 @@ type
end;
{ IListaAnosPagos }
IListaAnosPagos = interface(IDAStronglyTypedDataTable)
['{1FB6B43B-966A-47CA-BACF-1BC4BBF28F54}']
{ Property getters and setters }
function GetANOValue: String;
procedure SetANOValue(const aValue: String);
{ Properties }
property ANO: String read GetANOValue write SetANOValue;
end;
{ TListaAnosPagosDataTableRules }
TListaAnosPagosDataTableRules = class(TDADataTableRules, IListaAnosPagos)
private
protected
{ Property getters and setters }
function GetANOValue: String; virtual;
procedure SetANOValue(const aValue: String); virtual;
{ Properties }
property ANO: String read GetANOValue write SetANOValue;
public
constructor Create(aDataTable: TDADataTable); override;
destructor Destroy; override;
end;
{ IPagos }
IPagos = interface(IDAStronglyTypedDataTable)
['{0B093D73-8029-4287-A384-410C43F01D94}']
['{26CF2773-53D4-4547-A06B-7E5C1A131C5A}']
{ Property getters and setters }
function GetCODIGOEMPRESAValue: Integer;
procedure SetCODIGOEMPRESAValue(const aValue: Integer);
@ -331,7 +368,7 @@ type
{ IRefresh_Pagos }
IRefresh_Pagos = interface(IDAStronglyTypedDataTable)
['{62CDC2A7-3320-400F-817E-059D1FCB917E}']
['{D6BB1255-4087-475E-AC3E-54FD4FA60158}']
{ Property getters and setters }
function GetCODIGOEMPRESAValue: Integer;
procedure SetCODIGOEMPRESAValue(const aValue: Integer);
@ -592,6 +629,28 @@ begin
end;
{ TListaAnosPagosDataTableRules }
constructor TListaAnosPagosDataTableRules.Create(aDataTable: TDADataTable);
begin
inherited;
end;
destructor TListaAnosPagosDataTableRules.Destroy;
begin
inherited;
end;
function TListaAnosPagosDataTableRules.GetANOValue: String;
begin
result := DataTable.Fields[idx_ListaAnosPagosANO].AsString;
end;
procedure TListaAnosPagosDataTableRules.SetANOValue(const aValue: String);
begin
DataTable.Fields[idx_ListaAnosPagosANO].AsString := aValue;
end;
{ TPagosDataTableRules }
constructor TPagosDataTableRules.Create(aDataTable: TDADataTable);
begin
@ -900,6 +959,7 @@ end;
initialization
RegisterDataTableRules(RID_InformeCabeceraPago, TInformeCabeceraPagoDataTableRules);
RegisterDataTableRules(RID_ListaAnosPagos, TListaAnosPagosDataTableRules);
RegisterDataTableRules(RID_Pagos, TPagosDataTableRules);
RegisterDataTableRules(RID_Refresh_Pagos, TRefresh_PagosDataTableRules);

View File

@ -9,14 +9,15 @@ const
{ Delta rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
RID_InformeCabeceraPagoDelta = '{435D82E6-79DC-40E5-8832-EA15AE38CFB2}';
RID_PagosDelta = '{C8AD6796-7481-4F57-AF85-C283AAF1DF27}';
RID_Refresh_PagosDelta = '{3A452B1A-45BD-4837-8F96-86D8F5B8F80E}';
RID_InformeCabeceraPagoDelta = '{FC7F498A-8050-4BDE-A554-9C74657C161A}';
RID_ListaAnosPagosDelta = '{FB96D6D8-C3F2-4F99-B469-E697516F65C6}';
RID_PagosDelta = '{4F690594-2042-436F-B8F7-EA4D4E766C33}';
RID_Refresh_PagosDelta = '{BBAE7331-5759-4693-A233-6EBD8A2B340E}';
type
{ IInformeCabeceraPagoDelta }
IInformeCabeceraPagoDelta = interface(IInformeCabeceraPago)
['{435D82E6-79DC-40E5-8832-EA15AE38CFB2}']
['{FC7F498A-8050-4BDE-A554-9C74657C161A}']
{ Property getters and setters }
function GetOldCODIGOEMPRESAValue : Integer;
function GetOldCODIGOValue : Integer;
@ -134,9 +135,38 @@ type
end;
{ IListaAnosPagosDelta }
IListaAnosPagosDelta = interface(IListaAnosPagos)
['{FB96D6D8-C3F2-4F99-B469-E697516F65C6}']
{ Property getters and setters }
function GetOldANOValue : String;
{ Properties }
property OldANO : String read GetOldANOValue;
end;
{ TListaAnosPagosBusinessProcessorRules }
TListaAnosPagosBusinessProcessorRules = class(TDABusinessProcessorRules, IListaAnosPagos, IListaAnosPagosDelta)
private
protected
{ Property getters and setters }
function GetANOValue: String; virtual;
function GetOldANOValue: String; virtual;
procedure SetANOValue(const aValue: String); virtual;
{ Properties }
property ANO : String read GetANOValue write SetANOValue;
property OldANO : String read GetOldANOValue;
public
constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
destructor Destroy; override;
end;
{ IPagosDelta }
IPagosDelta = interface(IPagos)
['{C8AD6796-7481-4F57-AF85-C283AAF1DF27}']
['{4F690594-2042-436F-B8F7-EA4D4E766C33}']
{ Property getters and setters }
function GetOldCODIGOEMPRESAValue : Integer;
function GetOldCODIGOValue : Integer;
@ -256,7 +286,7 @@ type
{ IRefresh_PagosDelta }
IRefresh_PagosDelta = interface(IRefresh_Pagos)
['{3A452B1A-45BD-4837-8F96-86D8F5B8F80E}']
['{BBAE7331-5759-4693-A233-6EBD8A2B340E}']
{ Property getters and setters }
function GetOldCODIGOEMPRESAValue : Integer;
function GetOldCODIGOValue : Integer;
@ -601,6 +631,33 @@ begin
end;
{ TListaAnosPagosBusinessProcessorRules }
constructor TListaAnosPagosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
begin
inherited;
end;
destructor TListaAnosPagosBusinessProcessorRules.Destroy;
begin
inherited;
end;
function TListaAnosPagosBusinessProcessorRules.GetANOValue: String;
begin
result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosPagosANO];
end;
function TListaAnosPagosBusinessProcessorRules.GetOldANOValue: String;
begin
result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosPagosANO];
end;
procedure TListaAnosPagosBusinessProcessorRules.SetANOValue(const aValue: String);
begin
BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosPagosANO] := aValue;
end;
{ TPagosBusinessProcessorRules }
constructor TPagosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
begin
@ -1051,6 +1108,7 @@ end;
initialization
RegisterBusinessProcessorRules(RID_InformeCabeceraPagoDelta, TInformeCabeceraPagoBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_ListaAnosPagosDelta, TListaAnosPagosBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_PagosDelta, TPagosBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_Refresh_PagosDelta, TRefresh_PagosBusinessProcessorRules);

View File

@ -7,7 +7,7 @@ object srvPagos: TsrvPagos
ServiceSchema = schPagos
ServiceAdapter = DABINAdapter
Left = 345
Top = 452
Top = 394
Height = 300
Width = 300
object schPagos: TDASchema
@ -259,6 +259,39 @@ object srvPagos: TsrvPagos
BusinessRulesClient.ScriptLanguage = rslPascalScript
BusinessRulesServer.ScriptLanguage = rslPascalScript
end
item
Params = <>
Statements = <
item
Connection = 'IBX'
SQL =
'select ANO from'#10'(select distinct(substr(FECHAPago, 1,4)) as ANO'#10 +
'from pagos'#10'order by 1 desc)'#10#10'UNION ALL'#10#10'select distinct '#39'Todos'#39' ' +
'as ANO'#10'from empresas'
StatementType = stSQL
ColumnMappings = <
item
DatasetField = 'ANO'
TableField = 'ANO'
end>
end>
Name = 'ListaAnosPagos'
Fields = <
item
Name = 'ANO'
DataType = datString
Size = 254
BlobType = dabtUnknown
DisplayWidth = 0
Alignment = taLeftJustify
InPrimaryKey = False
Calculated = False
Lookup = False
LookupCache = False
end>
BusinessRulesClient.ScriptLanguage = rslPascalScript
BusinessRulesServer.ScriptLanguage = rslPascalScript
end
item
Params = <>
Statements = <
@ -931,7 +964,7 @@ object srvPagos: TsrvPagos
Top = 16
end
object frxReport1: TfrxReport
Version = '3.15'
Version = '3.23.7'
DotMatrixReport = False
EngineOptions.DoublePass = True
IniFile = '\Software\Fast Reports'

View File

@ -26,8 +26,8 @@ type
tbl_Pagos: TDACDSDataTable;
DADataCabecera: TDADataSource;
frxReport1: TfrxReport;
schPagos: TDASchema;
DABINAdapter: TDABINAdapter;
schPagos: TDASchema;
private
protected
function GetNextAutoinc: Integer;

View File

@ -611,4 +611,113 @@ object dmPedidos: TdmPedidos
Left = 288
Top = 24
end
object tbl_ListaAnosPedidos: TDACDSDataTable
RemoteUpdatesOptions = []
Fields = <
item
Name = 'ANO'
DataType = datString
Size = 254
BlobType = dabtUnknown
DisplayWidth = 0
Alignment = taLeftJustify
InPrimaryKey = False
Calculated = False
Lookup = False
LookupCache = False
end>
Params = <>
MasterMappingMode = mmDataRequest
StreamingOptions = [soDisableEventsWhileStreaming]
SchemaCall.MethodName = 'GetDatasetSchema'
SchemaCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtBinary
end
item
Name = 'aDatasetName'
ParamType = fIn
DataType = rtString
Value = 'ListaAnosPedidos'
end>
DataRequestCall.MethodName = 'GetDatasetDataEx'
DataRequestCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtBinary
end
item
Name = 'DatasetName'
ParamType = fIn
DataType = rtString
Value = 'ListaAnosPedidos'
end
item
Name = 'Params'
ParamType = fIn
DataType = rtUserDefined
UserClassName = 'TDADatasetParamArray'
end
item
Name = 'UserFilter'
ParamType = fIn
DataType = rtString
Value = ''
end
item
Name = 'IncludeSchema'
ParamType = fIn
DataType = rtBoolean
Value = False
end
item
Name = 'MaxRecords'
ParamType = fIn
DataType = rtInteger
Value = -1
end>
DataUpdateCall.MethodName = 'UpdateData'
DataUpdateCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtBinary
end
item
Name = 'Delta'
ParamType = fIn
DataType = rtBinary
end>
ScriptCall.MethodName = 'GetDatasetScripts'
ScriptCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtString
Value = ''
end
item
Name = 'DatasetNames'
ParamType = fIn
DataType = rtString
Value = 'ListaAnosPedidos'
end>
ReadOnly = False
RemoteService = RORemoteService
Adapter = DABinAdapter
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
LogicalName = 'ListaAnosPedidos'
IndexDefs = <>
Left = 56
Top = 184
end
object ds_ListaAnosPedidos: TDADataSource
DataTable = tbl_ListaAnosPedidos
Left = 48
Top = 136
end
end

View File

@ -16,6 +16,8 @@ type
ds_DetallesPedidosProveedor: TDADataSource;
tbl_PedidosProveedor: TDACDSDataTable;
ds_PedidosProveedor: TDADataSource;
tbl_ListaAnosPedidos: TDACDSDataTable;
ds_ListaAnosPedidos: TDADataSource;
procedure DAClientDataModuleCreate(Sender: TObject);
{ private
procedure Fax (AFile : String);}
@ -28,7 +30,10 @@ type
function GetItemsPendientesRecepcion: IBizPedidosProveedor;
function GetItem(Codigo : Integer): IBizPedidosProveedor;
function DarNuevaReferencia : String;
function PuedoEliminarPedido(Codigo : Integer) : Boolean;
function PuedoEliminarPedido(Codigo : Integer) : Boolean;
function DarListaAnosPedidos: TStringList;
procedure FiltrarAno(APedidos: IBizPedidosProveedor; AWhereDataTable: String; const Ano: String);
end;
var
@ -39,7 +44,7 @@ implementation
{$R *.DFM}
uses
Forms, Controls, uDataTableUtils, uBizContacto, FactuGES_Intf,
Forms, Controls, cxControls, uDataTableUtils, uBizContacto, FactuGES_Intf,
uDataModuleContactos, uDataModuleBase, schPedidosProveedorClient_Intf,
uDAInterfaces, uEditorPreview, Dialogs;
@ -199,6 +204,55 @@ begin
end;
end;}
function TdmPedidos.DarListaAnosPedidos: TStringList;
var
AListaAnos: TStringList;
begin
AListaAnos := TStringList.Create;
ShowHourglassCursor;
try
with tbl_ListaAnosPedidos do
begin
Open;
First;
while not eof do
begin
AListaAnos.Add(Format('%s=%s', [Fields[0].AsString, Fields[0].AsString]));
Next;
end;
Close;
end;
Result := AListaAnos;
finally
HideHourglassCursor;
end;
end;
procedure TdmPedidos.FiltrarAno(APedidos: IBizPedidosProveedor; AWhereDataTable: String; const Ano: String);
var
FechaIni: String;
FechaFin: String;
begin
APedidos.DataTable.Where.Clear;
APedidos.DataTable.Where.AddText(AWhereDataTable);
if (Ano <> 'Todos') then
begin
// Filtrar los pedidos actuales por años
FechaIni := '01.01.' + Ano;
FechaFin := '31.12.' + Ano;
with APedidos.DataTable.Where do
begin
if NotEmpty then
AddOperator(opAND);
AddCondition(fld_PedidosProveedorFECHAPEDIDO, cMajorOrEqual, FechaIni);
AddOperator(opAND);
AddCondition(fld_PedidosProveedorFECHAPEDIDO, cLessOrEqual, FechaFin);
end;
end;
end;
initialization
dmPedidos := TdmPedidos.Create(nil);

View File

@ -35,13 +35,21 @@ inherited fEditorPedidosProveedor: TfEditorPedidosProveedor
end
inherited TBXDock: TTBXDock
inherited tbxFiltro: TTBXToolbar
Left = 482
inherited lblAno: TTBXLabelItem
Visible = True
end
inherited cbxListaAnos: TTBXComboBoxItem
Visible = True
end
inherited sepAno: TTBXSeparatorItem
Visible = True
end
end
end
inline frViewBarraSeleccion: TfrViewBarraSeleccion [3]
Left = 0
Top = 395
Width = 707
Width = 706
Height = 37
Align = alBottom
AutoScroll = False
@ -56,7 +64,7 @@ inherited fEditorPedidosProveedor: TfEditorPedidosProveedor
ReadOnly = False
inherited pnlSeleccion: TPanel
Top = 0
Width = 707
Width = 706
inherited bSeleccionar: TButton
Left = 550
end

View File

@ -29,21 +29,24 @@ type
procedure frViewBarraSeleccionactSeleccionarExecute(Sender: TObject);
procedure frViewBarraSeleccionbCancelarClick(Sender: TObject);
procedure actDuplicarExecute(Sender: TObject);
procedure OnListaAnosChange(Sender: TObject; const Text: string);
procedure FormShow(Sender: TObject);
private
FPedidosProveedor: IBizPedidosProveedor;
protected
function GetPedidosProveedor: IBizPedidosProveedor;
function GetSelectionBarVisible: Boolean;
procedure SetPedidosProveedor(const Value: IBizPedidosProveedor);
procedure SetSelectionBarVisible(const Value: Boolean);
procedure SetViewGrid(const Value: IViewGrid); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property PedidosProveedor: IBizPedidosProveedor read GetPedidosProveedor write
SetPedidosProveedor;
property SelectionBarVisible: Boolean read GetSelectionBarVisible write
SetSelectionBarVisible;
property PedidosProveedor: IBizPedidosProveedor read GetPedidosProveedor write SetPedidosProveedor;
property SelectionBarVisible: Boolean read GetSelectionBarVisible write SetSelectionBarVisible;
end;
var
@ -184,6 +187,22 @@ begin
// ViewGrid.GotoFirst;
end;
procedure TfEditorPedidosProveedor.OnListaAnosChange(Sender: TObject;
const Text: string);
begin
dmPedidos.FiltrarAno(PedidosProveedor, WhereDataTable, Text);
if PedidosProveedor.DataTable.Active then
actRefrescar.Execute;
end;
procedure TfEditorPedidosProveedor.FormShow(Sender: TObject);
begin
ListaAnos := dmPedidos.DarListaAnosPedidos;
cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED
inherited;
end;
initialization
RegisterEditor(IBizPedidosProveedor, ShowEditorPedidosProveedor, etItems);
RegisterEditor(IBizPedidosProveedor, ShowSelectEditorPedidosProveedor, etSelectItems);

View File

@ -9,16 +9,18 @@ const
{ Data table rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
RID_darReferenciaPedido = '{505FD1BA-CDDC-4703-8DD7-3D2BDD241D2E}';
RID_DetallesPedidosProveedor = '{FBD0F0E0-3295-4D79-863F-FC778E6787E2}';
RID_PedidosProveedor = '{45DBB351-50FF-4444-A2BA-305E6D011C02}';
RID_Refresh_PedidosProveedor = '{139C4281-92C5-4431-B4BB-E51B6D4CBC8A}';
RID_InformeCabeceraPedido = '{4D5A204C-EE0C-4C02-B954-C305CE082250}';
RID_InformeDetallesPedido = '{5EB109BB-A440-4768-A612-6A04E27E451D}';
RID_darReferenciaPedido = '{3B002028-795E-4D3E-AFC5-A1D21AC442E3}';
RID_DetallesPedidosProveedor = '{3052F8C1-9E64-4C97-AC67-3CBDCD3B7E2E}';
RID_ListaAnosPedidos = '{954E9284-FE16-4847-8094-359A86E7F733}';
RID_PedidosProveedor = '{40ACE341-D7B5-4619-9D19-D3A0BEAD3A3E}';
RID_Refresh_PedidosProveedor = '{808987D2-D222-43AB-B8B5-4180683C7955}';
RID_InformeCabeceraPedido = '{2C8C37B1-EE18-4CA7-8078-D8BA9B4355C6}';
RID_InformeDetallesPedido = '{3C6B060F-68EB-4A3C-8DC4-5EF3C99BFD5B}';
{ Data table names }
nme_darReferenciaPedido = 'darReferenciaPedido';
nme_DetallesPedidosProveedor = 'DetallesPedidosProveedor';
nme_ListaAnosPedidos = 'ListaAnosPedidos';
nme_PedidosProveedor = 'PedidosProveedor';
nme_Refresh_PedidosProveedor = 'Refresh_PedidosProveedor';
nme_InformeCabeceraPedido = 'InformeCabeceraPedido';
@ -48,6 +50,12 @@ const
idx_DetallesPedidosProveedorPOSICION = 6;
idx_DetallesPedidosProveedorTIPO = 7;
{ ListaAnosPedidos fields }
fld_ListaAnosPedidosANO = 'ANO';
{ ListaAnosPedidos field indexes }
idx_ListaAnosPedidosANO = 0;
{ PedidosProveedor fields }
fld_PedidosProveedorCODIGOEMPRESA = 'CODIGOEMPRESA';
fld_PedidosProveedorCODIGO = 'CODIGO';
@ -199,7 +207,7 @@ const
type
{ IdarReferenciaPedido }
IdarReferenciaPedido = interface(IDAStronglyTypedDataTable)
['{0F22273C-9C50-4C0B-A525-91B8A4A2B810}']
['{18C748BC-1317-4E78-B489-08E7B08EE6DC}']
{ Property getters and setters }
@ -222,7 +230,7 @@ type
{ IDetallesPedidosProveedor }
IDetallesPedidosProveedor = interface(IDAStronglyTypedDataTable)
['{85D589DA-23C9-4E5C-A8D5-E9C5FE0C299C}']
['{7F82D076-A16A-4224-8E51-C0B633DE871A}']
{ Property getters and setters }
function GetCODIGOPEDIDOValue: Integer;
procedure SetCODIGOPEDIDOValue(const aValue: Integer);
@ -291,9 +299,38 @@ type
end;
{ IListaAnosPedidos }
IListaAnosPedidos = interface(IDAStronglyTypedDataTable)
['{F60E3C70-E432-46AC-A1A9-179DED53654C}']
{ Property getters and setters }
function GetANOValue: String;
procedure SetANOValue(const aValue: String);
{ Properties }
property ANO: String read GetANOValue write SetANOValue;
end;
{ TListaAnosPedidosDataTableRules }
TListaAnosPedidosDataTableRules = class(TDADataTableRules, IListaAnosPedidos)
private
protected
{ Property getters and setters }
function GetANOValue: String; virtual;
procedure SetANOValue(const aValue: String); virtual;
{ Properties }
property ANO: String read GetANOValue write SetANOValue;
public
constructor Create(aDataTable: TDADataTable); override;
destructor Destroy; override;
end;
{ IPedidosProveedor }
IPedidosProveedor = interface(IDAStronglyTypedDataTable)
['{A3234350-6EC1-44E2-914A-4F402CAD1C21}']
['{F3788442-CDBC-42DC-A0E7-9694796FC10B}']
{ Property getters and setters }
function GetCODIGOEMPRESAValue: Integer;
procedure SetCODIGOEMPRESAValue(const aValue: Integer);
@ -442,7 +479,7 @@ type
{ IRefresh_PedidosProveedor }
IRefresh_PedidosProveedor = interface(IDAStronglyTypedDataTable)
['{6F81940D-E091-4CCF-87B5-3D18484BF359}']
['{BDBAF845-6E60-4488-9165-A5D2BDB6355D}']
{ Property getters and setters }
function GetCODIGOEMPRESAValue: Integer;
procedure SetCODIGOEMPRESAValue(const aValue: Integer);
@ -591,7 +628,7 @@ type
{ IInformeCabeceraPedido }
IInformeCabeceraPedido = interface(IDAStronglyTypedDataTable)
['{D3E6B5DA-06AA-442B-89E8-53CF2ACC19ED}']
['{6F1EB595-8513-4BCA-BC28-6D939D39E2A2}']
{ Property getters and setters }
function GetCODIGOEMPRESAValue: Integer;
procedure SetCODIGOEMPRESAValue(const aValue: Integer);
@ -710,7 +747,7 @@ type
{ IInformeDetallesPedido }
IInformeDetallesPedido = interface(IDAStronglyTypedDataTable)
['{7800BEA2-1E81-406B-9107-3E56B0A796B6}']
['{4461E273-1874-4E87-84F3-C8A69C2F5F81}']
{ Property getters and setters }
function GetCODIGOPEDIDOValue: Integer;
procedure SetCODIGOPEDIDOValue(const aValue: Integer);
@ -887,6 +924,28 @@ begin
end;
{ TListaAnosPedidosDataTableRules }
constructor TListaAnosPedidosDataTableRules.Create(aDataTable: TDADataTable);
begin
inherited;
end;
destructor TListaAnosPedidosDataTableRules.Destroy;
begin
inherited;
end;
function TListaAnosPedidosDataTableRules.GetANOValue: String;
begin
result := DataTable.Fields[idx_ListaAnosPedidosANO].AsString;
end;
procedure TListaAnosPedidosDataTableRules.SetANOValue(const aValue: String);
begin
DataTable.Fields[idx_ListaAnosPedidosANO].AsString := aValue;
end;
{ TPedidosProveedorDataTableRules }
constructor TPedidosProveedorDataTableRules.Create(aDataTable: TDADataTable);
begin
@ -1606,6 +1665,7 @@ end;
initialization
RegisterDataTableRules(RID_darReferenciaPedido, TdarReferenciaPedidoDataTableRules);
RegisterDataTableRules(RID_DetallesPedidosProveedor, TDetallesPedidosProveedorDataTableRules);
RegisterDataTableRules(RID_ListaAnosPedidos, TListaAnosPedidosDataTableRules);
RegisterDataTableRules(RID_PedidosProveedor, TPedidosProveedorDataTableRules);
RegisterDataTableRules(RID_Refresh_PedidosProveedor, TRefresh_PedidosProveedorDataTableRules);
RegisterDataTableRules(RID_InformeCabeceraPedido, TInformeCabeceraPedidoDataTableRules);

View File

@ -9,17 +9,18 @@ const
{ Delta rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
RID_darReferenciaPedidoDelta = '{BD698220-2611-41EB-89F0-E844371835DD}';
RID_DetallesPedidosProveedorDelta = '{A69EEC04-2DA2-41D3-90B3-F3DDFDF124AB}';
RID_PedidosProveedorDelta = '{C14C1230-236A-46C3-91AF-903D77FA30EE}';
RID_Refresh_PedidosProveedorDelta = '{9FC9D322-C920-4E9A-8CEA-23CD43B052ED}';
RID_InformeCabeceraPedidoDelta = '{FF0381B3-8498-47B0-96EA-FE9723B370A6}';
RID_InformeDetallesPedidoDelta = '{011AA7C9-CDEC-493F-BA61-F01B37E0F0C3}';
RID_darReferenciaPedidoDelta = '{6B5B16E9-5B36-4082-A757-7B0429D1B110}';
RID_DetallesPedidosProveedorDelta = '{43C91112-A2EE-4A9E-83B2-BEF9CB6A2DE3}';
RID_ListaAnosPedidosDelta = '{081EB504-A5DD-4B18-B47C-13DBF134B88D}';
RID_PedidosProveedorDelta = '{1DDF0247-6AED-4F12-AB3D-187CD8742029}';
RID_Refresh_PedidosProveedorDelta = '{1FA69710-D78F-4702-BB9C-FED9D0EF34FF}';
RID_InformeCabeceraPedidoDelta = '{AAA39823-20B1-40CA-B150-B1DD9366F5F9}';
RID_InformeDetallesPedidoDelta = '{48CFF8AA-9EEB-4068-AB9E-362E5700810A}';
type
{ IdarReferenciaPedidoDelta }
IdarReferenciaPedidoDelta = interface(IdarReferenciaPedido)
['{BD698220-2611-41EB-89F0-E844371835DD}']
['{6B5B16E9-5B36-4082-A757-7B0429D1B110}']
{ Property getters and setters }
{ Properties }
@ -41,7 +42,7 @@ type
{ IDetallesPedidosProveedorDelta }
IDetallesPedidosProveedorDelta = interface(IDetallesPedidosProveedor)
['{A69EEC04-2DA2-41D3-90B3-F3DDFDF124AB}']
['{43C91112-A2EE-4A9E-83B2-BEF9CB6A2DE3}']
{ Property getters and setters }
function GetOldCODIGOPEDIDOValue : Integer;
function GetOldNUMCONCEPTOValue : Integer;
@ -117,9 +118,38 @@ type
end;
{ IListaAnosPedidosDelta }
IListaAnosPedidosDelta = interface(IListaAnosPedidos)
['{081EB504-A5DD-4B18-B47C-13DBF134B88D}']
{ Property getters and setters }
function GetOldANOValue : String;
{ Properties }
property OldANO : String read GetOldANOValue;
end;
{ TListaAnosPedidosBusinessProcessorRules }
TListaAnosPedidosBusinessProcessorRules = class(TDABusinessProcessorRules, IListaAnosPedidos, IListaAnosPedidosDelta)
private
protected
{ Property getters and setters }
function GetANOValue: String; virtual;
function GetOldANOValue: String; virtual;
procedure SetANOValue(const aValue: String); virtual;
{ Properties }
property ANO : String read GetANOValue write SetANOValue;
property OldANO : String read GetOldANOValue;
public
constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
destructor Destroy; override;
end;
{ IPedidosProveedorDelta }
IPedidosProveedorDelta = interface(IPedidosProveedor)
['{C14C1230-236A-46C3-91AF-903D77FA30EE}']
['{1DDF0247-6AED-4F12-AB3D-187CD8742029}']
{ Property getters and setters }
function GetOldCODIGOEMPRESAValue : Integer;
function GetOldCODIGOValue : Integer;
@ -288,7 +318,7 @@ type
{ IRefresh_PedidosProveedorDelta }
IRefresh_PedidosProveedorDelta = interface(IRefresh_PedidosProveedor)
['{9FC9D322-C920-4E9A-8CEA-23CD43B052ED}']
['{1FA69710-D78F-4702-BB9C-FED9D0EF34FF}']
{ Property getters and setters }
function GetOldCODIGOEMPRESAValue : Integer;
function GetOldCODIGOValue : Integer;
@ -457,7 +487,7 @@ type
{ IInformeCabeceraPedidoDelta }
IInformeCabeceraPedidoDelta = interface(IInformeCabeceraPedido)
['{FF0381B3-8498-47B0-96EA-FE9723B370A6}']
['{AAA39823-20B1-40CA-B150-B1DD9366F5F9}']
{ Property getters and setters }
function GetOldCODIGOEMPRESAValue : Integer;
function GetOldCODIGOValue : Integer;
@ -591,7 +621,7 @@ type
{ IInformeDetallesPedidoDelta }
IInformeDetallesPedidoDelta = interface(IInformeDetallesPedido)
['{011AA7C9-CDEC-493F-BA61-F01B37E0F0C3}']
['{48CFF8AA-9EEB-4068-AB9E-362E5700810A}']
{ Property getters and setters }
function GetOldCODIGOPEDIDOValue : Integer;
function GetOldNUMCONCEPTOValue : Integer;
@ -816,6 +846,33 @@ begin
end;
{ TListaAnosPedidosBusinessProcessorRules }
constructor TListaAnosPedidosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
begin
inherited;
end;
destructor TListaAnosPedidosBusinessProcessorRules.Destroy;
begin
inherited;
end;
function TListaAnosPedidosBusinessProcessorRules.GetANOValue: String;
begin
result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosPedidosANO];
end;
function TListaAnosPedidosBusinessProcessorRules.GetOldANOValue: String;
begin
result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosPedidosANO];
end;
procedure TListaAnosPedidosBusinessProcessorRules.SetANOValue(const aValue: String);
begin
BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosPedidosANO] := aValue;
end;
{ TPedidosProveedorBusinessProcessorRules }
constructor TPedidosProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
begin
@ -1873,6 +1930,7 @@ end;
initialization
RegisterBusinessProcessorRules(RID_darReferenciaPedidoDelta, TdarReferenciaPedidoBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_DetallesPedidosProveedorDelta, TDetallesPedidosProveedorBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_ListaAnosPedidosDelta, TListaAnosPedidosBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_PedidosProveedorDelta, TPedidosProveedorBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_Refresh_PedidosProveedorDelta, TRefresh_PedidosProveedorBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_InformeCabeceraPedidoDelta, TInformeCabeceraPedidoBusinessProcessorRules);

View File

@ -7,7 +7,7 @@ object srvPedidosProveedor: TsrvPedidosProveedor
ServiceSchema = schPedidosProveedor
ServiceAdapter = DABINAdapter
Left = 445
Top = 306
Top = 267
Height = 459
Width = 300
object schPedidosProveedor: TDASchema
@ -169,6 +169,39 @@ object srvPedidosProveedor: TsrvPedidosProveedor
BusinessRulesClient.ScriptLanguage = rslPascalScript
BusinessRulesServer.ScriptLanguage = rslPascalScript
end
item
Params = <>
Statements = <
item
Connection = 'IBX'
SQL =
'select ANO from'#10'(select distinct(substr(FECHAPEDIDO, 1,4)) as AN' +
'O'#10'from pedidos'#10'order by 1 desc)'#10#10'UNION ALL'#10#10'select distinct '#39'Tod' +
'os'#39' as ANO'#10'from empresas'
StatementType = stSQL
ColumnMappings = <
item
DatasetField = 'ANO'
TableField = 'ANO'
end>
end>
Name = 'ListaAnosPedidos'
Fields = <
item
Name = 'ANO'
DataType = datString
Size = 254
BlobType = dabtUnknown
DisplayWidth = 0
Alignment = taLeftJustify
InPrimaryKey = False
Calculated = False
Lookup = False
LookupCache = False
end>
BusinessRulesClient.ScriptLanguage = rslPascalScript
BusinessRulesServer.ScriptLanguage = rslPascalScript
end
item
Params = <>
Statements = <

View File

@ -34,9 +34,9 @@ type
IBDataSet2: TIBDataSet;
DataSource1: TDataSource;
DataSource2: TDataSource;
schPedidosProveedor: TDASchema;
DABINAdapter: TDABINAdapter;
frxReport1: TfrxReport;
schPedidosProveedor: TDASchema;
private
protected
function GetNextAutoinc: Integer;

View File

@ -702,4 +702,113 @@ object dmPresupuestos: TdmPresupuestos
Left = 296
Top = 40
end
object tbl_ListaAnosPresupuestos: TDACDSDataTable
RemoteUpdatesOptions = []
Fields = <
item
Name = 'ANO'
DataType = datString
Size = 254
BlobType = dabtUnknown
DisplayWidth = 0
Alignment = taLeftJustify
InPrimaryKey = False
Calculated = False
Lookup = False
LookupCache = False
end>
Params = <>
MasterMappingMode = mmDataRequest
StreamingOptions = [soDisableEventsWhileStreaming]
SchemaCall.MethodName = 'GetDatasetSchema'
SchemaCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtBinary
end
item
Name = 'aDatasetName'
ParamType = fIn
DataType = rtString
Value = 'ListaAnosPresupuestos'
end>
DataRequestCall.MethodName = 'GetDatasetDataEx'
DataRequestCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtBinary
end
item
Name = 'DatasetName'
ParamType = fIn
DataType = rtString
Value = 'ListaAnosPresupuestos'
end
item
Name = 'Params'
ParamType = fIn
DataType = rtUserDefined
UserClassName = 'TDADatasetParamArray'
end
item
Name = 'UserFilter'
ParamType = fIn
DataType = rtString
Value = ''
end
item
Name = 'IncludeSchema'
ParamType = fIn
DataType = rtBoolean
Value = False
end
item
Name = 'MaxRecords'
ParamType = fIn
DataType = rtInteger
Value = -1
end>
DataUpdateCall.MethodName = 'UpdateData'
DataUpdateCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtBinary
end
item
Name = 'Delta'
ParamType = fIn
DataType = rtBinary
end>
ScriptCall.MethodName = 'GetDatasetScripts'
ScriptCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtString
Value = ''
end
item
Name = 'DatasetNames'
ParamType = fIn
DataType = rtString
Value = 'ListaAnosPresupuestos'
end>
ReadOnly = False
RemoteService = RORemoteService
Adapter = DABinAdapter
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
LogicalName = 'ListaAnosPresupuestos'
IndexDefs = <>
Left = 72
Top = 192
end
object ds_ListaAnosPresupuestos: TDADataSource
DataTable = tbl_ListaAnosPresupuestos
Left = 72
Top = 136
end
end

View File

@ -53,6 +53,8 @@ type
ds_DetallesPresupuestos: TDADataSource;
tbl_Presupuestos: TDACDSDataTable;
ds_Presupuestos: TDADataSource;
tbl_ListaAnosPresupuestos: TDACDSDataTable;
ds_ListaAnosPresupuestos: TDADataSource;
procedure DAClientDataModuleCreate(Sender: TObject);
public
function PuedoEliminarPresupuesto (CodigoPresupuesto : Integer) : Boolean;
@ -67,6 +69,9 @@ type
procedure Refrescar(lReport: TfrxReport; Const Codigo: Integer; const TamLetra: Integer);
procedure Print(Const Codigo: Integer);
function GetItemsSeleccionados(ASource : IBizPresupuestos): IBizPresupuestos;
function DarListaAnosPresupuestos: TStringList;
procedure FiltrarAno(APresupuestos: IBizPresupuestos; AWhereDataTable: String; const Ano: String);
end;
var
@ -77,7 +82,7 @@ implementation
{$R *.DFM}
uses
Forms, Controls, uDataTableUtils, uBizContacto, Dialogs, Variants,
Forms, Controls, cxControls, uDataTableUtils, uBizContacto, Dialogs, Variants,
uDataModuleContactos, uDataModuleBase, schPresupuestosClient_Intf,
uDAInterfaces, uEditorPreview, uEditorPreviewPresupuesto, uROTypes,
uDBSelectionList;
@ -320,6 +325,55 @@ begin
lReport.ShowPreparedReport;
end;
procedure TdmPresupuestos.FiltrarAno(APresupuestos: IBizPresupuestos; AWhereDataTable: String; const Ano: String);
var
FechaIni: String;
FechaFin: String;
begin
APresupuestos.DataTable.Where.Clear;
APresupuestos.DataTable.Where.AddText(AWhereDataTable);
if (Ano <> 'Todos') then
begin
// Filtrar los presupuestos actuales por años
FechaIni := '01.01.' + Ano;
FechaFin := '31.12.' + Ano;
with APresupuestos.DataTable.Where do
begin
if NotEmpty then
AddOperator(opAND);
AddCondition(fld_PresupuestosFECHAPRESUPUESTO, cMajorOrEqual, FechaIni);
AddOperator(opAND);
AddCondition(fld_PresupuestosFECHAPRESUPUESTO, cLessOrEqual, FechaFin);
end;
end;
end;
function TdmPresupuestos.DarListaAnosPresupuestos: TStringList;
var
AListaAnos: TStringList;
begin
AListaAnos := TStringList.Create;
ShowHourglassCursor;
try
with tbl_ListaAnosPresupuestos do
begin
Open;
First;
while not eof do
begin
AListaAnos.Add(Format('%s=%s', [Fields[0].AsString, Fields[0].AsString]));
Next;
end;
Close;
end;
Result := AListaAnos;
finally
HideHourglassCursor;
end;
end;
initialization
dmPresupuestos := TdmPresupuestos.Create(nil);

View File

@ -1,6 +1,6 @@
inherited fEditorPresupuestos: TfEditorPresupuestos
Left = 221
Top = 235
Top = 205
Width = 781
Caption = 'Lista de presupuestos'
PixelsPerInch = 96
@ -41,7 +41,15 @@ inherited fEditorPresupuestos: TfEditorPresupuestos
end
end
inherited tbxFiltro: TTBXToolbar
Left = 471
inherited lblAno: TTBXLabelItem
Visible = True
end
inherited cbxListaAnos: TTBXComboBoxItem
Visible = True
end
inherited sepAno: TTBXSeparatorItem
Visible = True
end
end
end
inherited StatusBar: TStatusBar

View File

@ -20,7 +20,7 @@ type
property Presupuestos: IBizPresupuestos read GetPresupuestos write
SetPresupuestos;
end;
TfEditorPresupuestos = class(TfEditorGrid, IEditorPresupuestos)
frViewBarraSeleccion: TfrViewBarraSeleccion;
actAceptado: TAction;
@ -42,8 +42,12 @@ type
procedure actAceptadoExecute(Sender: TObject);
procedure actRechazadoExecute(Sender: TObject);
procedure actPendienteExecute(Sender: TObject);
procedure OnListaAnosChange(Sender: TObject; const Text: string);
procedure FormShow(Sender: TObject);
private
FPresupuestos: IBizPresupuestos;
protected
function GetPresupuestos: IBizPresupuestos;
function GetSelectionBarVisible: Boolean;
@ -171,9 +175,17 @@ end;
procedure TfEditorPresupuestos.SetPresupuestos(const Value: IBizPresupuestos);
begin
FPresupuestos := Value;
dsDataTable.DataTable := FPresupuestos.DataTable;
if Assigned(ViewGrid) then
(ViewGrid as IViewPresupuestos).Presupuestos := Presupuestos;
if Assigned(FPresupuestos) then
begin
//Se guarda el where de la sentencia origen, por si el editor tiene filtros que
//afecten a este where y en un futuro se desea volver al where origen (filtro de año))
WhereDataTable := FPresupuestos.DataTable.Where.Clause;
dsDataTable.DataTable := FPresupuestos.DataTable;
if Assigned(ViewGrid) then
(ViewGrid as IViewPresupuestos).Presupuestos := Presupuestos;
end;
end;
procedure TfEditorPresupuestos.SetSelectionBarVisible(const Value: Boolean);
@ -249,6 +261,21 @@ begin
end;
end;
procedure TfEditorPresupuestos.OnListaAnosChange(Sender: TObject; const Text: string);
begin
dmPresupuestos.FiltrarAno(Presupuestos, WhereDataTable, Text);
if Presupuestos.DataTable.Active then
actRefrescar.Execute;
end;
procedure TfEditorPresupuestos.FormShow(Sender: TObject);
begin
ListaAnos := dmPresupuestos.DarListaAnosPresupuestos;
cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED
inherited;
end;
initialization
RegisterEditor(IBizPresupuestos, ShowEditorPresupuestos, etItems);
RegisterEditor(IBizPresupuestos, ShowSelectEditorPresupuestos, etSelectItems);

View File

@ -9,19 +9,27 @@ const
{ Data table rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
RID_DetallesPresupuestos = '{A6A79145-2CF4-404F-AF3C-216C6C1C6220}';
RID_Presupuestos = '{5B155DB3-9C72-4E74-AF1E-2F5F54B8C085}';
RID_Presupuestos_RefreshDataset = '{A4DBCB7A-51D7-4CC6-AE4C-4F3E92E621C3}';
RID_InformeCabeceraPresupuesto = '{264277A9-3681-40C0-90A1-E3164B449B02}';
RID_InformeDetallesPresupuesto = '{31CD6A31-A8D3-4D6E-9AA5-FD7D0B85DDBA}';
RID_ListaAnosPresupuestos = '{95031149-82C7-4C73-BC10-9B1285B42FD8}';
RID_DetallesPresupuestos = '{4155E7A3-B36F-440C-9232-FCDA6E0E57D3}';
RID_Presupuestos = '{3C692B06-401D-4BB5-9E59-1029ECE88CCA}';
RID_Presupuestos_RefreshDataset = '{4DDAA5E9-1786-49E9-82E4-92A8E5A30D2E}';
RID_InformeCabeceraPresupuesto = '{3826E313-F328-47E3-AFF6-4C02E162BD3C}';
RID_InformeDetallesPresupuesto = '{363E9ABE-D657-4094-A45A-1F44E3CC35DE}';
{ Data table names }
nme_ListaAnosPresupuestos = 'ListaAnosPresupuestos';
nme_DetallesPresupuestos = 'DetallesPresupuestos';
nme_Presupuestos = 'Presupuestos';
nme_Presupuestos_RefreshDataset = 'Presupuestos_RefreshDataset';
nme_InformeCabeceraPresupuesto = 'InformeCabeceraPresupuesto';
nme_InformeDetallesPresupuesto = 'InformeDetallesPresupuesto';
{ ListaAnosPresupuestos fields }
fld_ListaAnosPresupuestosANO = 'ANO';
{ ListaAnosPresupuestos field indexes }
idx_ListaAnosPresupuestosANO = 0;
{ DetallesPresupuestos fields }
fld_DetallesPresupuestosCODIGOPRESUPUESTO = 'CODIGOPRESUPUESTO';
fld_DetallesPresupuestosNUMCONCEPTO = 'NUMCONCEPTO';
@ -203,9 +211,38 @@ const
idx_InformeDetallesPresupuestoPOSICION = 7;
type
{ IListaAnosPresupuestos }
IListaAnosPresupuestos = interface(IDAStronglyTypedDataTable)
['{6D5B13E0-C373-43E8-B599-1AD86BD6ABF2}']
{ Property getters and setters }
function GetANOValue: String;
procedure SetANOValue(const aValue: String);
{ Properties }
property ANO: String read GetANOValue write SetANOValue;
end;
{ TListaAnosPresupuestosDataTableRules }
TListaAnosPresupuestosDataTableRules = class(TDADataTableRules, IListaAnosPresupuestos)
private
protected
{ Property getters and setters }
function GetANOValue: String; virtual;
procedure SetANOValue(const aValue: String); virtual;
{ Properties }
property ANO: String read GetANOValue write SetANOValue;
public
constructor Create(aDataTable: TDADataTable); override;
destructor Destroy; override;
end;
{ IDetallesPresupuestos }
IDetallesPresupuestos = interface(IDAStronglyTypedDataTable)
['{44CD0F43-9391-4901-9C68-B711CBCB7FDC}']
['{18414808-5E3F-4017-8DCF-885665361C3C}']
{ Property getters and setters }
function GetCODIGOPRESUPUESTOValue: Integer;
procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer);
@ -294,7 +331,7 @@ type
{ IPresupuestos }
IPresupuestos = interface(IDAStronglyTypedDataTable)
['{27C72B9E-C122-4FA0-A412-B2681821A051}']
['{3B57E67A-BCF1-4A9C-8DE3-680F3FC7E851}']
{ Property getters and setters }
function GetCODIGOEMPRESAValue: Integer;
procedure SetCODIGOEMPRESAValue(const aValue: Integer);
@ -461,7 +498,7 @@ type
{ IPresupuestos_RefreshDataset }
IPresupuestos_RefreshDataset = interface(IDAStronglyTypedDataTable)
['{36CACFE6-C6B9-497D-A821-2ABF5E3298F0}']
['{5097F042-BB92-4714-98E3-38D672728B8B}']
{ Property getters and setters }
function GetCODIGOValue: Integer;
procedure SetCODIGOValue(const aValue: Integer);
@ -514,7 +551,7 @@ type
{ IInformeCabeceraPresupuesto }
IInformeCabeceraPresupuesto = interface(IDAStronglyTypedDataTable)
['{B0CC1F1A-3AC1-4696-A03F-15F309307109}']
['{68F7F7E4-616C-464B-A795-E4ACAFC2D708}']
{ Property getters and setters }
function GetCODIGOEMPRESAValue: Integer;
procedure SetCODIGOEMPRESAValue(const aValue: Integer);
@ -729,7 +766,7 @@ type
{ IInformeDetallesPresupuesto }
IInformeDetallesPresupuesto = interface(IDAStronglyTypedDataTable)
['{331BAA43-0C6C-45D7-A7C2-098D7686A53F}']
['{25CACDCE-E4DB-42FC-B0B8-78493C06240D}']
{ Property getters and setters }
function GetCODIGOPRESUPUESTOValue: Integer;
procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer);
@ -802,6 +839,28 @@ implementation
uses Variants;
{ TListaAnosPresupuestosDataTableRules }
constructor TListaAnosPresupuestosDataTableRules.Create(aDataTable: TDADataTable);
begin
inherited;
end;
destructor TListaAnosPresupuestosDataTableRules.Destroy;
begin
inherited;
end;
function TListaAnosPresupuestosDataTableRules.GetANOValue: String;
begin
result := DataTable.Fields[idx_ListaAnosPresupuestosANO].AsString;
end;
procedure TListaAnosPresupuestosDataTableRules.SetANOValue(const aValue: String);
begin
DataTable.Fields[idx_ListaAnosPresupuestosANO].AsString := aValue;
end;
{ TDetallesPresupuestosDataTableRules }
constructor TDetallesPresupuestosDataTableRules.Create(aDataTable: TDADataTable);
begin
@ -1669,6 +1728,7 @@ end;
initialization
RegisterDataTableRules(RID_ListaAnosPresupuestos, TListaAnosPresupuestosDataTableRules);
RegisterDataTableRules(RID_DetallesPresupuestos, TDetallesPresupuestosDataTableRules);
RegisterDataTableRules(RID_Presupuestos, TPresupuestosDataTableRules);
RegisterDataTableRules(RID_Presupuestos_RefreshDataset, TPresupuestos_RefreshDatasetDataTableRules);

View File

@ -9,16 +9,46 @@ const
{ Delta rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
RID_DetallesPresupuestosDelta = '{27189DEC-DB55-4CFF-90D4-3CCC8C3789B7}';
RID_PresupuestosDelta = '{AD80280F-15D4-422B-9E7C-B413BD6D9270}';
RID_Presupuestos_RefreshDatasetDelta = '{F4E70462-4089-44C8-AFAA-B6FDEFE43DB9}';
RID_InformeCabeceraPresupuestoDelta = '{41A03000-031E-4727-B794-E79D553EC52B}';
RID_InformeDetallesPresupuestoDelta = '{741759BF-9981-4B00-A217-C5C769B36552}';
RID_ListaAnosPresupuestosDelta = '{CBA70605-3C3B-48A1-A28C-B1E97902006E}';
RID_DetallesPresupuestosDelta = '{A06F07C8-8609-4E0C-A202-CDFD98C02B75}';
RID_PresupuestosDelta = '{475CF11F-7C34-4390-B427-291574D72D01}';
RID_Presupuestos_RefreshDatasetDelta = '{7B057008-D651-4A1C-B4B7-08C7C4A566F9}';
RID_InformeCabeceraPresupuestoDelta = '{749B0EED-D424-4553-BE62-F24B9EE4B0DE}';
RID_InformeDetallesPresupuestoDelta = '{322F58BC-E445-4DF9-9BFB-86086B38356B}';
type
{ IListaAnosPresupuestosDelta }
IListaAnosPresupuestosDelta = interface(IListaAnosPresupuestos)
['{CBA70605-3C3B-48A1-A28C-B1E97902006E}']
{ Property getters and setters }
function GetOldANOValue : String;
{ Properties }
property OldANO : String read GetOldANOValue;
end;
{ TListaAnosPresupuestosBusinessProcessorRules }
TListaAnosPresupuestosBusinessProcessorRules = class(TDABusinessProcessorRules, IListaAnosPresupuestos, IListaAnosPresupuestosDelta)
private
protected
{ Property getters and setters }
function GetANOValue: String; virtual;
function GetOldANOValue: String; virtual;
procedure SetANOValue(const aValue: String); virtual;
{ Properties }
property ANO : String read GetANOValue write SetANOValue;
property OldANO : String read GetOldANOValue;
public
constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
destructor Destroy; override;
end;
{ IDetallesPresupuestosDelta }
IDetallesPresupuestosDelta = interface(IDetallesPresupuestos)
['{27189DEC-DB55-4CFF-90D4-3CCC8C3789B7}']
['{A06F07C8-8609-4E0C-A202-CDFD98C02B75}']
{ Property getters and setters }
function GetOldCODIGOPRESUPUESTOValue : Integer;
function GetOldNUMCONCEPTOValue : Integer;
@ -117,7 +147,7 @@ type
{ IPresupuestosDelta }
IPresupuestosDelta = interface(IPresupuestos)
['{AD80280F-15D4-422B-9E7C-B413BD6D9270}']
['{475CF11F-7C34-4390-B427-291574D72D01}']
{ Property getters and setters }
function GetOldCODIGOEMPRESAValue : Integer;
function GetOldCODIGOValue : Integer;
@ -307,7 +337,7 @@ type
{ IPresupuestos_RefreshDatasetDelta }
IPresupuestos_RefreshDatasetDelta = interface(IPresupuestos_RefreshDataset)
['{F4E70462-4089-44C8-AFAA-B6FDEFE43DB9}']
['{7B057008-D651-4A1C-B4B7-08C7C4A566F9}']
{ Property getters and setters }
function GetOldCODIGOValue : Integer;
function GetOldNOMBREValue : String;
@ -364,7 +394,7 @@ type
{ IInformeCabeceraPresupuestoDelta }
IInformeCabeceraPresupuestoDelta = interface(IInformeCabeceraPresupuesto)
['{41A03000-031E-4727-B794-E79D553EC52B}']
['{749B0EED-D424-4553-BE62-F24B9EE4B0DE}']
{ Property getters and setters }
function GetOldCODIGOEMPRESAValue : Integer;
function GetOldCODIGOValue : Integer;
@ -610,7 +640,7 @@ type
{ IInformeDetallesPresupuestoDelta }
IInformeDetallesPresupuestoDelta = interface(IInformeDetallesPresupuesto)
['{741759BF-9981-4B00-A217-C5C769B36552}']
['{322F58BC-E445-4DF9-9BFB-86086B38356B}']
{ Property getters and setters }
function GetOldCODIGOPRESUPUESTOValue : Integer;
function GetOldNUMCONCEPTOValue : Integer;
@ -691,6 +721,33 @@ implementation
uses
Variants, uROBinaryHelpers;
{ TListaAnosPresupuestosBusinessProcessorRules }
constructor TListaAnosPresupuestosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
begin
inherited;
end;
destructor TListaAnosPresupuestosBusinessProcessorRules.Destroy;
begin
inherited;
end;
function TListaAnosPresupuestosBusinessProcessorRules.GetANOValue: String;
begin
result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosPresupuestosANO];
end;
function TListaAnosPresupuestosBusinessProcessorRules.GetOldANOValue: String;
begin
result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosPresupuestosANO];
end;
procedure TListaAnosPresupuestosBusinessProcessorRules.SetANOValue(const aValue: String);
begin
BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosPresupuestosANO] := aValue;
end;
{ TDetallesPresupuestosBusinessProcessorRules }
constructor TDetallesPresupuestosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
begin
@ -1964,6 +2021,7 @@ end;
initialization
RegisterBusinessProcessorRules(RID_ListaAnosPresupuestosDelta, TListaAnosPresupuestosBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_DetallesPresupuestosDelta, TDetallesPresupuestosBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_PresupuestosDelta, TPresupuestosBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_Presupuestos_RefreshDatasetDelta, TPresupuestos_RefreshDatasetBusinessProcessorRules);

View File

@ -6,8 +6,8 @@ object srvPresupuestos: TsrvPresupuestos
ConnectionName = 'IBX'
ServiceSchema = schPresupuestos
ServiceAdapter = DABINAdapter
Left = 729
Top = 363
Left = 728
Top = 316
Height = 359
Width = 328
object schPresupuestos: TDASchema
@ -15,6 +15,39 @@ object srvPresupuestos: TsrvPresupuestos
DataDictionary = dmServer.DataDictionary
Diagrams = dmServer.DADiagrams
Datasets = <
item
Params = <>
Statements = <
item
Connection = 'IBX'
SQL =
'select ANO from'#10'(select distinct(substr(FECHAPRESUPUESTO, 1,4)) ' +
'as ANO'#10'from presupuestos'#10'order by 1 desc)'#10#10'UNION ALL'#10#10'select dis' +
'tinct '#39'Todos'#39' as ANO'#10'from empresas'
StatementType = stSQL
ColumnMappings = <
item
DatasetField = 'ANO'
TableField = 'ANO'
end>
end>
Name = 'ListaAnosPresupuestos'
Fields = <
item
Name = 'ANO'
DataType = datString
Size = 254
BlobType = dabtUnknown
DisplayWidth = 0
Alignment = taLeftJustify
InPrimaryKey = False
Calculated = False
Lookup = False
LookupCache = False
end>
BusinessRulesClient.ScriptLanguage = rslPascalScript
BusinessRulesServer.ScriptLanguage = rslPascalScript
end
item
Params = <
item

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More