Поиск:

Ответ в темуСоздание новой темы Создание опроса
> StringGrid=умножить/делить/сумма/отнять 
:(
    Опции темы
есжик
Дата 1.8.2006, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 31.7.2006

Репутация: нет
Всего: нет



Всем Привет !!!

подскажите инфу или где можно почитать странички 
как в StringGrid делать подсчет (умножить/делить/сумма/отнять)
ps самое действие установки знака понятно  , а вот в какие переменные загонять и 
как выводить результат? бывает не понятно.    

зарание примного благодарен.
PM MAIL   Вверх
Oberon83
Дата 2.8.2006, 07:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 6.5.2005
Где: Республика Чуваши я

Репутация: 1
Всего: 1



А что собственно имелось ввиду? Подобие Excel? Как ты себе этот подсчет представляешь?

Цитата

самое действие установки знака понятно


Куда он устанавливается???
--------------------
OpenArea.ru
PM MAIL ICQ   Вверх
есжик
Дата 2.8.2006, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 31.7.2006

Репутация: нет
Всего: нет



 smile ну компонет BC++B StringGrid - типа таблица 
PM MAIL   Вверх
_hunter
Дата 2.8.2006, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



Доступ ко всем ячейкам сетки можно получить через свойство Cols (это двумерный массив строк)
загонять, соответственно, нужно в ниж же...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
есжик
Дата 3.8.2006, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 31.7.2006

Репутация: нет
Всего: нет



 smile 
подскажите пожалуйста 
как считать что ты все пулучалось 


вопроси к есть, он может и легкий, но что не получается где-то сбиваюсь, подскажи где?
на одну строчку не совпадение в одной ячейке.  плиз хелп. 

1) таблица куда выводить результаты, назвал так sg_p_sv
2) таблица названий sg_org
3) таблица с цифрами №1 sg_p_pr столбец 5 и 6
4) таблица с цифрами №2 sg_p_oc столбец 5 и 6
надо подсчитать данные из таблицы sg_p_pr(столбец 5) минус sg_p_oc(столбец 5)
и sg_p_pr(столбец 6) минус sg_p_oc(столбец 6) если имена таблицы sg_p_prи sg_p_oc равны, в столбце 2 то поместить в таблицу sg_p_sv.
Полный список имен в таблице sg_org в столбце 2.
Если имени из sg_org нет ни sg_p_pr ни sg_p_oc, то в таблице sg_p_sv не чего не писать. 

Код

void __fastcall TForm1::Button1Click(TObject *Sender)
   {
    int sum1, sum2, sum3;
    for(int cur = 1; cur < sg_org->RowCount; cur++)
       {
        sum1=sum2=sum3=0;
        for(int x = 1; x<sg_p_sv->RowCount; x++)
           {
            if(sg_p_pr->Cells[2][cur] == sg_p_oc->Cells[2][x])
               {
                try
                   {
                    StrToFloat(sg_p_pr->Cells[5][cur]);
                    StrToFloat(sg_p_oc->Cells[5][x]);
                    StrToFloat(sg_p_pr->Cells[6][cur]);
                    StrToFloat(sg_p_oc->Cells[6][x]);
                   }
                catch(EConvertError &E)
                   {
                    Abort();
                   }

                sum1 = StrToInt(sg_p_pr->Cells[5][cur]) - StrToInt(sg_p_oc->Cells[5][x]);
                sum2 = StrToInt(sg_p_pr->Cells[6][cur]) - StrToInt(sg_p_oc->Cells[6][x]);
                sum3 = sum1 - sum2;
                sg_p_sv->Cells[5][cur] = sum3;

                if (sg_p_sv->Cells[5][x] > 0)
                   {
                    sg_p_sv->Cells[5][x] = sum3;
                    sg_p_sv->Cells[6][cur] = 0;
                   }
                else
                   {
                    sg_p_sv->Cells[6][x] = sum3*(-1) ;
                    sg_p_sv->Cells[5][cur] = 0;
                   }
               }

            if( sg_p_sv->Cells[2][cur] == sg_p_oc->Cells[2][x])
               {
                sum1 = StrToInt(sg_p_oc->Cells[5][x]);
                sum2 = StrToInt(sg_p_oc->Cells[6][x]);
                sum3 = sum1 - sum2;
                sg_p_sv->Cells[5][cur] = sum3;
               }

            if( sg_p_sv->Cells[2][cur] == sg_p_pr->Cells[2][x] )
               {
                sum1 = StrToInt(sg_p_pr->Cells[5][x]);
                sum2 = StrToInt(sg_p_pr->Cells[6][x]);
                sum3 = sum1 - sum2;
                sg_p_sv->Cells[5][cur] = sum3;
               }

            if (sg_p_sv->Cells[5][cur] > 0)
               {
                sg_p_sv->Cells[5][cur] = sum3;
                sg_p_sv->Cells[6][cur] = 0;
               }
            else
               {
                sg_p_sv->Cells[6][cur] = sum3*(-1);
                sg_p_sv->Cells[5][cur] = 0;
               }
           }
       }
   }


вот  smile незнаю где ошибка 
PM MAIL   Вверх
_hunter
Дата 4.8.2006, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



ну так смотри на сколько сбиваешся (обычно на одно значение). и думай почему ты на него сбился.
так же очень помогает отладчик -- пройдись им в пошаговом режиме по коду


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
witeman
Дата 4.8.2006, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 29.3.2005
Где: г.Тюмень

Репутация: нет
Всего: нет



Это конечно  не то о чём вопрос? но тем не менее: Почему бы не использовать TF1Book из ActiveX или Лист Excel (System->OLE) smile 
IMHO...
PM MAIL WWW   Вверх
есжик
Дата 6.8.2006, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 31.7.2006

Репутация: нет
Всего: нет



witeman, не понял а причем тут 
Цитата(witeman @  4.8.2006,  11:10 Найти цитируемый пост)
 TF1Book из ActiveX или Лист Excel (System->OLE)

 smile я же говорю что немного мой код надо подправить 
а за помошь спасибо.


_hunter, я изменил код и сейчас только в одном подсчете идет неправильно 
почему то ставит правильное значение - но в двух ячейках. в той что надо и в следующей 
код сейчас такой 
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
   {
    int sum1, sum2, sum3;
    for(int cur = 1; cur < sg_org->RowCount; cur++)
       {
        sum1=sum2=sum3=0;
        int x = 1;
        for(; x<sg_p_sv->RowCount; x++)
           {
            if(sg_p_pr->Cells[2][cur] == sg_p_oc->Cells[2][x])
               {
                try
                   {
                    StrToFloat(sg_p_pr->Cells[5][cur]);
                    StrToFloat(sg_p_oc->Cells[5][x]);
                    StrToFloat(sg_p_pr->Cells[6][cur]);
                    StrToFloat(sg_p_oc->Cells[6][x]);
                   }
                catch(EConvertError &E)
                   {
                    Abort();
                   }
 int i3 = 0;
   for( ; i3 < sg_p_sv->RowCount; ++i3 )
   {
       if( sg_p_sv->Cells[i3][1] == sg_p_pr->Cells[cur][1] )
           break;            
   }
                sum1 = StrToInt(sg_p_pr->Cells[5][cur]) - StrToInt(sg_p_oc->Cells[5][x]);
                sum2 = StrToInt(sg_p_pr->Cells[6][cur]) - StrToInt(sg_p_oc->Cells[6][x]);
                sum3 = sum1 - sum2;
                sg_p_sv->Cells[5][cur] = sum3;

                if (sg_p_sv->Cells[5][cur] == sum1 - sum2)
                if (sg_p_sv->Cells[5][cur] >= 0)
                   {
                    sg_p_sv->Cells[5][x] = sum3;
                    sg_p_sv->Cells[6][cur] = 0;
                   }
                else
                   {
                    sg_p_sv->Cells[6][x] = sum3*(-1) ;
                    sg_p_sv->Cells[5][cur] = 0;
                   }
               }

            if( sg_p_sv->Cells[2][cur] == sg_p_oc->Cells[2][x])
               {
                sum1 = StrToInt(sg_p_oc->Cells[5][x]);
                sum2 = StrToInt(sg_p_oc->Cells[6][x]);
                sum3 = sum1 - sum2;
                sg_p_sv->Cells[5][cur] = sum3;

               if (sg_p_sv->Cells[5][cur] >= 0)
               {
                sg_p_sv->Cells[5][cur] = sum3;
                sg_p_sv->Cells[6][cur] = 0;
               }
            else
               {
                sg_p_sv->Cells[6][cur] = sum3*(-1);
                sg_p_sv->Cells[5][cur] = 0;
               }

               }

            if( sg_p_sv->Cells[2][cur] == sg_p_pr->Cells[2][x] )
               {
                sum1 = StrToInt(sg_p_pr->Cells[5][x]);
                sum2 = StrToInt(sg_p_pr->Cells[6][x]);
                sum3 = sum1 - sum2;
                sg_p_sv->Cells[5][cur] = sum3;

            if (sg_p_sv->Cells[5][cur] >= 0)
               {
                sg_p_sv->Cells[5][cur] = sum3;
                sg_p_sv->Cells[6][cur] = 0;
               }
            else
               {
                sg_p_sv->Cells[6][cur] = sum3*(-1);
                sg_p_sv->Cells[5][cur] = 0;
               }
               }
           }
       }
}
 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0522 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.