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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2010, 21:42   #1
Arinka
Пользователь
 
Регистрация: 06.05.2010
Сообщений: 52
Вопрос Проблема с DBGrid...

Помогите пожалуйста решить следующую проблему:
Имеется DBGrid (сведения о заказах продукции) и StringGrid. Необходимо было создать запрос, при щелчке на кнопку. Данный запрос должен подсчитать общую цену реализованной продукции за каждый месяц. Например, в мае было 10 заказов, нужно сложить их и вычислить общую сумму этих заказов в мае, и так за каждый месяц.

Код нажатия на кнопку запроса:

procedure TForm5.Button1Click(Sender: TObject);
Var
str: string;
i: integer;

begin
StGrid1.Cells[0,0]:=' ПЕРИОД ';
StGrid1.Cells[1,0]:=' ИТОГОВАЯ СУММА ЗА МЕСЯЦ ';
StGrid1.ColWidths[1]:=200; //ширина столбца


i:=1;

while i<=12 do //заполняем ячейки StGrid1'а названиями месяцев
begin
StGrid1.Cells[0,i]:=mon[i];
i:=i+1;
end;

Form5.Table1.Active:=false;
Form5.Table1.Active:=true;

//строим запрос
// SUM- стандартная функция вычисления суммы в запросе
// Cost - столбец Стоимость
// #39 - код символа '
// LIKE - зарезервированное слово в SQL. Определяет, совпадает ли указанная символьная строка с заданным шаблоном
// знак % - любой символ
// компонент DataSource, позволет сделать данные Table1 доступными для визуальных компонентов отображения данных
i:=1;
while i<=12 do
begin
str:='SELECT SUM(Cost) FROM '+#39+'sdelka.db'+#39+' WHERE DataS LIKE '+#39+'%.'+month[i]+'.%'+#39; //например '%.01.%'
//SdelkiForm.Caption:=str;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(str); //добавляем строку str
Query1.Open;
DataSource1.DataSet:=Query1;

if Query1.RecordCount <> 0 then
begin
StGrid1.Cells[1,i]:=Query1.Fields[0].Text;
DataSource1.DataSet:=Query1; // отобразить рез-т выполнения запроса
i:=i+1;
end

else
begin
ShowMessage('В БД нет записей, удовлетворяющих критерию запроса.');
DataSource1.DataSet:=Table1;
end;
end;

end;

При нажатие на кнопку запроса вычисляется общая сумма за каждый месяц в StringGrid, но теряются данные в DBGrid(((((((Остаются только названия полей DBGrid
Arinka вне форума Ответить с цитированием
Старый 27.05.2010, 22:26   #2
Arinka
Пользователь
 
Регистрация: 06.05.2010
Сообщений: 52
По умолчанию

и еще нужно создать кнопку Отмены этого запроса...
Arinka вне форума Ответить с цитированием
Старый 28.05.2010, 03:58   #3
DoDge_VipeR
Форумчанин
 
Аватар для DoDge_VipeR
 
Регистрация: 30.04.2010
Сообщений: 317
По умолчанию

Цитата:
теряются данные в DBGrid(((((((
уберите вот эту строку и будет вам счастье!
Код:
DataSource1.DataSet:=Query1;// отобразить рез-т выполнения запроса
потому что нафига он (результат) вам нужен во всех гридах
Цитата:
кнопку Отмены
Код:
var i,j:integer;
begin
for i:=0 to StGrid1.Colcount-1 do
for j:=1 to stGrid1.Rowcount-1 do
stGrid.cells[i,j]:='';
end;
icq:627719[сто сорок четыре] - помогу с Pascal & Delphi!
DoDge_VipeR вне форума Ответить с цитированием
Старый 28.05.2010, 12:22   #4
Arinka
Пользователь
 
Регистрация: 06.05.2010
Сообщений: 52
Хорошо

DoDge_VipeR спасибо Вам огромное!!!!!!!!!! Работает все без единой ошибки!!!!!=))))))))))))))))))))))) ))))
Arinka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с DBGrid flame33 Помощь студентам 3 12.01.2010 18:40
Проблема с DBGrid Creeepy БД в Delphi 1 21.11.2009 20:09
Проблема с DBGrid tattynaz Общие вопросы Delphi 11 20.08.2009 16:53
Проблема с DBGrid rainbow Общие вопросы Delphi 1 02.10.2008 08:09
проблема с отображением DBGrid gotex БД в Delphi 12 04.06.2008 01:06