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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.07.2013, 12:23   #31
alfikss
Пользователь
 
Регистрация: 07.05.2013
Сообщений: 24
По умолчанию

Не удалось сжать архив до 500кб, поэтому сделал 2.
Надеюсь в коде не заблудитесь=) Если что спрашивайте
Вложения
Тип файла: rar На форум.part01.rar (390.6 Кб, 10 просмотров)
Тип файла: rar На форум.part02.rar (340.9 Кб, 8 просмотров)
alfikss вне форума Ответить с цитированием
Старый 29.07.2013, 13:03   #32
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

еще бы расписал что по твоему должно быть (делаться)?
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 29.07.2013, 13:09   #33
alfikss
Пользователь
 
Регистрация: 07.05.2013
Сообщений: 24
По умолчанию

При выборе организации из ЛистБокса в СтрингГрид должна появиться информация о комплектах.
Изображения
Тип файла: jpg 3.jpg (21.9 Кб, 122 просмотров)
alfikss вне форума Ответить с цитированием
Старый 29.07.2013, 13:20   #34
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ОМГ!!

Посмотрите на процедуру sgSelectCell, которая у Вас назначена на Sg - OnSelectCell

И обратите внимание на то, что в ней переопределяется Query1

удалить то, что красным
Цитата:
Код:
procedure TForm2.sgSelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
CurRow:=ARow;
Procent.Text:=sg.Cells[3,ARow];
rub.Text:=sg.Cells[4,ARow];
fix.Text:=sg.Cells[5,ARow];
cb.ItemIndex:=cb.Items.IndexOf(sg.Cells[6,ARow]);
cbVer.ItemIndex:=cbVer.Items.IndexOf(sg.Cells[1,ARow]);
if cbVer.Text='Флеш' then cbLoc.Visible:=true else
begin
  cbLoc.Checked:=false;
  cbLoc.Visible:=false;
end;

if (cbVer.Text='Флеш') and (fix.Text<>'0') then
begin
cbLoc.Checked:=false;
cbLoc.Visible:=false;
end;

Query1.Active:=false;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT compl.flash');
Query1.SQL.Add('FROM org INNER JOIN (cena INNER JOIN compl ON cena.id_cena = compl.id_cena) ON org.id_org = compl.id_org');
Query1.SQL.Add('WHERE ((cena.Complect)=:compl) AND ((org.nazv)=:nazv);');
Query1.Parameters.ParamByName('compl').Value:=sg.Cells[0,CurRow];
Query1.Parameters.ParamByName('nazv').Value:=org.Items[org.ItemIndex];
Query1.Active:=true;
Query1.ExecSQL;
Query1.First;
if Query1.Fields[0].Value='0' then cbLoc.Checked:=false else cbLoc.Checked:=true;
end;
ещё есть вопросы?

Последний раз редактировалось Serge_Bliznykov; 29.07.2013 в 13:24.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.07.2013, 13:55   #35
alfikss
Пользователь
 
Регистрация: 07.05.2013
Сообщений: 24
По умолчанию

Говорила мне мама следи за запросами. Себя матерю, тебе спасибо.

п.с. остается вопрос почему это все дело работало?
alfikss вне форума Ответить с цитированием
Старый 29.07.2013, 14:04   #36
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

не за что...
а кто его знает, почему оно работало...


Кстати, есть такой контрол - DBGrid.
Обычно для отображения табличных данных его используют (ну или продвинутых потомков, типа TDBGridEh из EhLib )
и ещё пара советов.
Если видите, что один и тот же код Вы пишете несколько раз, то это повод выносить подобный код в процедуры (у Вас там много такого дублирующего кода).
Форматируйте код с помощью отступов. Это резко повышает читабельность кода!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.07.2013, 14:10   #37
alfikss
Пользователь
 
Регистрация: 07.05.2013
Сообщений: 24
По умолчанию

Я привык просто к StringGrid, мне кажется ручками удобнее заносить и получать данные. А по-поводу процедур - я эту программу для себя делаю и поэтому особо не заморачиваюсь с правилами оформления.
Но как бы то ни было еще раз спасибо =)
alfikss вне форума Ответить с цитированием
Старый 29.07.2013, 14:45   #38
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Цитата:
мне кажется ручками удобнее заносить и получать данные.
когда кажеться - креститься нужно ;-)
прислушайся к совету. ведь не просто так они (компоненты типа DBGrid) придуманы.
да и на один такой косяк занесения данных вручную ты уже наткнулся только что).
а по поводу правил оформления кода - изначально привыкай к правильному (пусть даже для себя).
вот ты попросил помощи, показал нам код ... а нам тяжело его читать т.к. он плохо оформлен. а где гарантия что в следующий раз никого не обломит искать косяки в неоформленном коде?) ... вывод делай сам
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 29.07.2013, 15:13   #39
alfikss
Пользователь
 
Регистрация: 07.05.2013
Сообщений: 24
По умолчанию

Да я все прекрасно понимаю. Я не обитаю на форумах. Все делаю сам. Это исключение. Удачи =)
alfikss вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
RecordCount в dbExpress при запросе SELECT с параметром Leximus БД в Delphi 0 31.05.2012 09:50
Сброс ОС PashaSoscov Операционные системы общие вопросы 5 07.01.2012 23:00
QTimer, сброс Vanta11a Qt и кроссплатформенное программирование С/С++ 2 13.09.2011 13:32
Listview vs сброс bulldog5293 Общие вопросы Delphi 0 13.01.2011 21:46
Проблема с RecordCount в SQLQuery Stalevar БД в Delphi 2 23.04.2009 18:57