Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2013.10.06;
Скачать: [xml.tar.bz2];

Вниз

Скачок записей в DbGridEh при использование Bookmark   Найти похожие ветки 

 
sergeyleroy   (2013-01-17 11:59) [0]

День добрый. Помогите пожалуйста.
Имеется следующий код:
function TGrafikLP.vcf_podschetSymmu(DataS: TADOQuery;
 Grid: TDBGridEH): string;
var
SavePlace:TbookMark;
sum: double;
i, kolznach: integer;
Begin

DataS.DisableControls;

try
SavePlace:= DataS.GetBookmark;
sum:= 0.0;
kolznach:=0;
case Grid.Selection.SelectionType of
   gstRectangle:
     begin
      DataS.Bookmark:= Grid.Selection.Rect.TopRow;
       while true do begin
        for i:= Grid.Selection.Rect.LeftCol to Grid.Selection.Rect.RightCol do begin
         if not DataS.Fields[i].IsNull then
          case DataS.Fields[i].DataType of
           ftSmallint, ftInteger, ftWord, ftFloat,
           ftCurrency, ftLargeint, ftBCD :
               Begin
               sum:=sum+DataS.Fields[i].AsFloat;
               kolznach:=kolznach+1;
               end;
          end; //case
        end;
        if Grid.Selection.Rect.BottomRow = DataS.Bookmark then break;
        DataS.Next;
       end; // while
     end;
 end;//case
 finally
  DataS.GotoBookmark(SavePlace);
  DataS.FreeBookmark(SavePlace);
  sum:=RoundTo(sum,-2);
 end; //try
DataS.EnableControls;

Result:="Количество: " +FloatToStr(kolznach)+"   Сумма: "+ FloatToStrF(sum,ffNumber,10,2);

end;


Данный код выполняет суммирование данных в выделенных ячейках DbGridEH (3.6). Всё бы хорошо, Но когда выбираешь запись (диапазон) внизу или вверху таблицы - запись скачет к центру.
Скачок происходит при следующей выполнении кода:
   ...   DataS.Bookmark:= Grid.Selection.Rect.TopRow;
...
  DataS.GotoBookmark(SavePlace);...


Можно ли как нибудь решить проблему со скачком?


 
sergeyleroy   (2013-01-17 12:34) [1]

Спустя несколько дней решилось!!:)))

function TGrafikLP.vcf_podschetSymmu(DataS: TADOQuery;
 Grid: TDBGridEH): string;
var
SavePlace:TbookMark;
sum: double;
i, kolznach: integer;
n: byte;
Begin

DataS.DisableControls;

try
 Grid.SaveBookmark;
 n:=0;
sum:= 0.0;
kolznach:=0;
case Grid.Selection.SelectionType of
   gstRectangle:
     begin
        If DataS.Bookmark= Grid.Selection.Rect.BottomRow then
        n:=1;
       while true do begin
        for i:= Grid.Selection.Rect.LeftCol to Grid.Selection.Rect.RightCol do begin
         if not DataS.Fields[i].IsNull then
          case DataS.Fields[i].DataType of
           ftSmallint, ftInteger, ftWord, ftFloat,
           ftCurrency, ftLargeint, ftBCD :
               Begin
               sum:=sum+DataS.Fields[i].AsFloat;
               kolznach:=kolznach+1;
               end;
          end; //case
        end;
        if ((Grid.Selection.Rect.BottomRow = DataS.Bookmark) and (n<>1)) or ((n=1) and (Grid.Selection.Rect.TopRow = DataS.Bookmark))  then break;
        If (n=1) then
          DataS.Prior
        else
          DataS.Next;
       end; // while
     end;
 end;//case
 finally

  Grid.RestoreBookmark;
  sum:=RoundTo(sum,-2);
 end; //try
DataS.EnableControls;

Result:="Количество: " +FloatToStr(kolznach)+"   Сумма: "+ FloatToStrF(sum,ffNumber,10,2);

end;


 
sniknik ©   (2013-01-17 12:40) [2]

> sergeyleroy   (17.01.13 11:59)  
> sergeyleroy   (17.01.13 12:34) [1]
> Спустя несколько дней решилось!!:)))
одолжи машину времени... очень надо!


 
sergeyleroy   (2013-01-17 12:48) [3]

Долго думал, а только задал вопрос, сразу нашёлся ответ:)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2013.10.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.003 c
15-1366649723
Rouse_
2013-04-22 20:55
2013.10.06
Нужен третейский судья :)


2-1358698446
Pcrepair
2013-01-20 20:14
2013.10.06
контрол имеющий пару строка-число


2-1358524343
Proshka
2013-01-18 19:52
2013.10.06
Строки после обновления


15-1366883286
О-Сознание
2013-04-25 13:48
2013.10.06
Наглядная настройка параметров.


2-1358341960
McLotos
2013-01-16 17:12
2013.10.06
Разбросать результат SQL-запроса по переменным





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский