Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2013, 20:11   #1
SashOkSerg
mother russia
Пользователь
 
Аватар для SashOkSerg
 
Регистрация: 09.11.2012
Сообщений: 25
По умолчанию Фильтрация данных



Помогите пожалуйста сделать (цикл) выборку значений , т.е. когда я выбираю в комбобоксе "ВО 1111 АА" в поле Едит1 должно быть "ВО 2222 АА" , а в поле Едит2 - "Иванов" и т.д... + надо предусмотреть что БД будет заполняться с 0...

Код:
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{
StringGrid1->Cells[0][0]="Номер авто";
StringGrid1->Cells[1][0]="Номер прицепа";
StringGrid1->Cells[2][0]="Фамилия";

StringGrid1->ColWidths[0]=135;
StringGrid1->ColWidths[1]=135;
StringGrid1->ColWidths[2]=140;

// загрузка файла
TStringList *slist = new TStringList();
slist->LoadFromFile("firmy.ini");
for(int i=0; i<slist->Count; i++)
  {
   if(StringGrid1->RowCount < i+1) StringGrid1->RowCount++;
   StringGrid1->Rows[i]->CommaText = slist->Strings[i];
  }
delete slist;

// выпадающий список в комбобоксе
for ( int j=1;  j<StringGrid1->RowCount;  j++ )
  {
ComboBox1->Items->Add(StringGrid1->Cells[0][j]);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
// сохранение файла
TStringList *firmy = new TStringList;
      for(int i=0;i<StringGrid1->RowCount;i++)
        {
         firmy->Add(StringGrid1->Rows[i]->CommaText);
        }
      firmy->SaveToFile("firmy.ini");
      delete firmy;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1Click(TObject *Sender)
{
// стараюсь написать но не могу....
if (ComboBox1->ItemIndex == 0)
{

for ( int i=1;  i<StringGrid1->Cells[i][1];  i++ )
for ( int j=2;  j<StringGrid1->Cells[1][j];  j++ )
{
Edit1->Text = StringGrid1->Cells[1][i];
Edit2->Text = StringGrid1->Cells[2][j];
}
}
Ниже код если известна БД....
Код:
//-------------------------------------

if (ComboBox1->ItemIndex == 0)
{
Edit1->Text = StringGrid1->Cells[1][1];
Edit2->Text = StringGrid1->Cells[2][1];
}
if (ComboBox1->ItemIndex == 1)
{
Edit1->Text = StringGrid1->Cells[1][2];
Edit2->Text = StringGrid1->Cells[2][2];
}
if (ComboBox1->ItemIndex == 2)
{
Edit1->Text = StringGrid1->Cells[1][3];
Edit2->Text = StringGrid1->Cells[2][3];
}
Мне все равно что вы обо мне думаете, я о вас не думаю вообще.

Последний раз редактировалось Stilet; 16.03.2013 в 23:21.
SashOkSerg вне форума Ответить с цитированием
Старый 16.03.2013, 22:47   #2
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

Код:
for ( int i=1; i < StringGrid1->RowCount; i++ )
{
  if( StringGrid->Cells[0][i] == ComboBox1->Items->Item[ ComboBox1->ItemIndex] )
  {
    Edit1->Text = StringGrid1->Cells[1][i];
    Edit2->Text = StringGrid1->Cells[2][i];
    break;
  }
}
FataLL вне форума Ответить с цитированием
Старый 17.03.2013, 12:50   #3
SashOkSerg
mother russia
Пользователь
 
Аватар для SashOkSerg
 
Регистрация: 09.11.2012
Сообщений: 25
По умолчанию

Цитата:
Сообщение от FataLL Посмотреть сообщение
Код:
for ( int i=1; i < StringGrid1->RowCount; i++ )
{
  if( StringGrid->Cells[0][i] == ComboBox1->Items->Item[ ComboBox1->ItemIndex] )
  {
    Edit1->Text = StringGrid1->Cells[1][i];
    Edit2->Text = StringGrid1->Cells[2][i];
    break;
  }
}
Спасибо за помощь но Ваш код не работает! [C++ Error] Unit1.cpp(64): E2316 'Item' is not a member of 'TStrings'


Пришлось чуть изменить:
Код:
if (StringGrid1->RowCount>1)
{
  Edit1->Text = StringGrid1->Cells[1][ComboBox1->ItemIndex+1];
  Edit2->Text = StringGrid1->Cells[2][ComboBox1->ItemIndex+1];
}
Мне все равно что вы обо мне думаете, я о вас не думаю вообще.

Последний раз редактировалось SashOkSerg; 17.03.2013 в 12:52.
SashOkSerg вне форума Ответить с цитированием
Старый 18.03.2013, 17:38   #4
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

Я имел в виду так:
Код:
for ( int i=1; i < StringGrid1->RowCount; i++ )
{
  if( StringGrid->Cells[0][i] == ComboBox1->Items->Strings[ ComboBox1->ItemIndex] )
  {
    Edit1->Text = StringGrid1->Cells[1][i];
    Edit2->Text = StringGrid1->Cells[2][i];
    break;
  }
}
Твой код правильно работает только в том случае, если сортировка в комбобоксе и гриде одинаковая. А если нет?

Последний раз редактировалось FataLL; 18.03.2013 в 17:40.
FataLL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фильтрация данных uiivalet Общие вопросы Delphi 0 10.03.2012 21:38
Фильтрация данных snikers987 PHP 1 07.02.2011 23:36
Фильтрация данных Savin БД в Delphi 3 10.06.2010 18:17
Фильтрация данных skiffter Помощь студентам 10 17.11.2009 16:44
фильтрация данных elen1khp БД в Delphi 6 28.09.2009 20:01