Topic: Сбор данных из TableGrid1 в Label

Всем приветики!
Открыл эту ветку...так как для меня сбор данных из TableGrid1 на данный момент актуально...
Прилагаю проектик рабочий ...считает сколько количество записей в TableGrid1 и выводит в Label...

Post's attachments

Attachment icon TableGrid1.zip 336.35 kb, 513 downloads since 2015-12-07 

2 (edited by Роман 2015-12-07 21:41:27)

Re: Сбор данных из TableGrid1 в Label

На основании этой темы, у меня возникла сложность....
есть TableGrid1 в нём есть колонка "prrofit"...в этой колонки веществ. числа: отрицательные и положительные!
Друзья подскажите как подсчитать количество всех  строк с отрицательными значениями из колонки "prrofit" в TableGrid1
и вывести их количество в Label ?  (в идеале было бы назначить Form1_Button3_OnAfterClick) ...где Button3 это поиск!

                                                                                                            С Уважением и Благодарностью Роман!!!

Re: Сбор данных из TableGrid1 в Label

Для подсчета количества записей, сумм колонки, ср. значение и др, вы можете использовать подвал грида с необходимой формулой, подробней:
http://myvisualdatabase.com/help_ru/com … ooter.html

Dmitry.

Re: Сбор данных из TableGrid1 в Label

Роман wrote:

На основании этой темы, у меня возникла сложность....
есть TableGrid1 в нём есть колонка "prrofit"...в этой колонки веществ. числа: отрицательные и положительные!
Друзья подскажите как подсчитать количество всех  строк с отрицательными значениями из колонки "prrofit" в TableGrid1
и вывести их количество в Label ?  (в идеале было бы назначить Form1_Button3_OnAfterClick) ...где Button3 это поиск!

                                                                                                            С Уважением и Благодарностью Роман!!!

пример:

procedure Form1_GridAbonent_OnChange (Sender: string);
var
   i,c,q: integer;
   iValue: double;
begin

     q := 0;
     c := Form1.GridAbonent.RowCount - 1;
     for i := 0 to c do
         if ValidFloat(Form1.GridAbonent.Cells[3, i]) then
         begin
             iValue := StrToFloat(Form1.GridAbonent.Cells[3, i]);
             if iValue < 0 then Inc(q);
         end;
     Form1.Label5.Caption := FloatToStr(q);

end;
Dmitry.

Re: Сбор данных из TableGrid1 в Label

Дмитрий Вы не поверите, но это РАБОТАЕТ УррррА!!!
СПАСИБО...СПАСИБО...СПАСИБО...и ещё раз СПАСИБО!!! (P/S много ли человеку надо для счастья......)

6 (edited by Роман 2015-12-08 01:05:51)

Re: Сбор данных из TableGrid1 в Label

Дмитрий взгляните пожалуйста при пожалуйста...

//считаем количество строк в колонке [4,i] со значением 'buy'...
 procedure Form1_TableGrid1_OnChange (Sender: string);
var
   i,c: integer;
   s: string;
begin
     c := Form1.TableGrid1.RowCount - 1;
     for i := 0 to c do
     begin
         if Form1.TableGrid1.Cells[4,i] = 'buy'  then Form1.Label35.Caption := IntToStr(i) + ' ';

     end;
end;

что я опять не так делаю...?

Re: Сбор данных из TableGrid1 в Label

//считаем количество строк в колонке [4,i] со значением 'buy'...
procedure Form1_TableGrid1_OnChange (Sender: string);
var
   i,c,q: integer;
   s: string;
begin
     q := 0;
     c := Form1.TableGrid1.RowCount - 1;
     for i := 0 to c do
         if Form1.TableGrid1.Cells[4,i] = 'buy'  then Inc(q);

     Form1.Label35.Caption := IntToStr(q);
end;
Dmitry.

8 (edited by Роман 2015-12-08 03:34:52)

Re: Сбор данных из TableGrid1 в Label

Столько восторга! связанного с Вашей поддержкой...
Настоящие человеческое СПАСИБО!
два маленьких вопросика, для общего образования:

//при открытии  Form10 (для новой записи) подставляет значения в ComboBox1
 procedure Form10_OnShow (Sender: string; Action: string);
begin
if Action = 'NewRecord' then
begin
Form10.ComboBox1.dbItemID :=Form3.TableGrid1.dbItemID;

Form3.Close;  // ВОПРОС: 1) С  Form3 двойным кликом по гриду  была вызвана Form10 (новая запись)
.............................Запись пойдёт в Form1...Form3 нужна была, чтоб взять значение в ComboBox1
.............................Существует способ при открытии Form10 (новая запись) закрыть предыдущую Form3...?
end;
end;

ВОПРОС:
2)После удаления записи из грида...какую назначить процедуру чтоб сработало:
Form1.Button8.Click; (процедура на кнопку удалить не подходит...)

Re: Сбор данных из TableGrid1 в Label

1.
закрыть форму Form3 получиться только при закрытии формы Form10.
для формы Form10 создайте событие OnClose

procedure Form10_OnClose (Sender: string; Action: string);
begin
    Form3.Close;
end;

2. Для кнопки удаления записи создайте событие OnAfterClick

procedure Form1_Button5_OnAfterClick (Sender: string);
begin
    Form1.Button8.Click;
end;
Dmitry.

Re: Сбор данных из TableGrid1 в Label

Спасибо за ценную информацию!

Re: Сбор данных из TableGrid1 в Label

Доброго времени суток Дмитрий!
В гриде у меня есть колонка с вещест.числами  положительными, так и с отрицательными числами...
пытаюсь к поиску прикрутить CheckBox..., чтоб по клику показывал строчки в гриде с положительными или отриц...

procedure Form1_CheckBox7_OnClick (Sender: string);
var
i,c: integer;
s: string;
begin
c := Form1.TableGrid1.RowCount - 1; for i := 0 to c do
begin
s := Form1.TableGrid1.Cells[20,i];
if ValidFloat(s) then if StrToFloat(s) < 0 then Form1.CheckBox3.Checked := True;
  end;
end;

Только не смейтесь...я и сам понимаю, что это каша...подмогните?

Re: Сбор данных из TableGrid1 в Label

Роман
Это можно реализовать с помощью вычисляемого поля
(CASE WHEN realvalue>=0 THEN 1 WHEN realvalue<0 THEN 0 ELSE NULL END)


затем на форме расположить CheckBox и присвоить ему данное выч. поле с помощью свойств TableName, FieldName
также данный CheckBox необходимо добавить в настройки кнопки Поиск.

Dmitry.

Re: Сбор данных из TableGrid1 в Label

Это просто чудеса...СПАСИБО!