From 60e5de564744ce08e05788efd073dba3dd7d77d2 Mon Sep 17 00:00:00 2001 From: roberto Date: Wed, 28 May 2008 17:53:12 +0000 Subject: [PATCH] Arreglo para que cuando la tabla a copiar no tenga elementos seleccionados, se aplique un filtro para que nos devuelva la tabla vacia git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@387 0c75b7a4-871f-7646-8a2f-f78d34cc349f --- Source/Base/Utiles/uDataTableUtils.pas | 34 +++++++++++++++++--------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/Source/Base/Utiles/uDataTableUtils.pas b/Source/Base/Utiles/uDataTableUtils.pas index 71d91c83..9d82981a 100644 --- a/Source/Base/Utiles/uDataTableUtils.pas +++ b/Source/Base/Utiles/uDataTableUtils.pas @@ -87,12 +87,17 @@ begin if ASource.Active then ASource.Close; - for i := 0 to AObj.SelectedRecords.Count - 1 do - begin - if (i > 0) then - ASource.Filter := ASource.Filter + ' or '; - ASource.Filter := ASource.Filter + '(ID = ' + IntToStr(AObj.SelectedRecords.Items[i]) + ')'; - end; + //Si no hay elemento seleccionados filtramos para que ATarget se quede vacia + if (AObj.SelectedRecords.Count = 0) then + ASource.Filter := ASource.Filter + '(ID = ' + IntToStr(ID_NULO) + ')' + //En caso contrario filtramos por los elementos seleccionados + else + for i := 0 to AObj.SelectedRecords.Count - 1 do + begin + if (i > 0) then + ASource.Filter := ASource.Filter + ' or '; + ASource.Filter := ASource.Filter + '(ID = ' + IntToStr(AObj.SelectedRecords.Items[i]) + ')'; + end; ASource.Filtered := True; end; @@ -369,12 +374,17 @@ begin if ASource.Active then ASource.Close; - for i := 0 to AObj.SelectedRecords.Count - 1 do - begin - if (i > 0) then - ASource.Filter := ASource.Filter + ' or '; - ASource.Filter := ASource.Filter + '(ID = ' + IntToStr(AObj.SelectedRecords.Items[i]) + ')'; - end; + //Si no hay elemento seleccionados filtramos para que ATarget se quede vacia + if (AObj.SelectedRecords.Count = 0) then + ASource.Filter := ASource.Filter + '(ID = ' + IntToStr(ID_NULO) + ')' + //En caso contrario filtramos por los elementos seleccionados + else + for i := 0 to AObj.SelectedRecords.Count - 1 do + begin + if (i > 0) then + ASource.Filter := ASource.Filter + ' or '; + ASource.Filter := ASource.Filter + '(ID = ' + IntToStr(AObj.SelectedRecords.Items[i]) + ')'; + end; ASource.Filtered := True; end;