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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2016, 18:46   #1
Okayguys
Пользователь
 
Регистрация: 22.04.2013
Сообщений: 12
По умолчанию Помощь с Delphi

Здравствуйте.
В общем такая проблема, есть Richedit, туда забиваю квитанцию, данные беру из Dbgrid, проблема заключается в том, что необходимо посчитать сумму.
Данные берутся из двух таблиц: Тарифы (1 поле не нулевое, остальные нулевые, типа человек выбирает тариф, какой ему лучше - за мегабайты, за сутки или за часы, например, если человек выберет помегабайтный, то остальные поля ему считаться не будут, т.к. они нулевые) и Потребленные ресурсы (там так же 1 поле только не нулевое).
Я целый день сегодня мучался с этим делом, но никак не смог нормально все реализовать.
Я новичок в этом деле и решил пойти примитивным путем, но у меня не получилось это сделать, все время выдает, либо нулевые данные, либо не те.
Прошу помочь.
Вот код, с которым я мучался целый день. Я пошел по пути активного поля Dbgrid, было еще много идей, но не смог найти методы реализации их в интернете (типа активировать определенную строку). Предварительное спасибо за помощь.
Код:
procedure TForm14.FormShow(Sender: TObject);
var
a,b,c,d,e,f:Integer;
begin
a:=strtoint(Form13.DBGrid1.DataSource.DataSet.FieldByName('Количество минут').AsString);
b:=strtoint(Form13.DBGrid1.DataSource.DataSet.FieldByName('Количество дней').asstring);
c:=strtoint(Form13.DBGrid1.DataSource.DataSet.FieldByName('Количество мегабайт').asstring);
d:=strtoint(Form9.DBGrid1.DataSource.DataSet.FieldByName('Цена за минуту').AsString);
e:=strtoint(Form9.DBGrid1.DataSource.DataSet.FieldByName('Цена за сутки').AsString);
f:=strtoint(Form9.DBGrid1.DataSource.DataSet.FieldByName('Цена за мегабайт').AsString);
if((a=0) and (b=0) and (d=0) and (e=0)) then
begin
f:=strtoint(Form9.DBGrid1.DataSource.DataSet.FieldByName('Цена за мегабайт').AsString);
DATA.TPrice.First;
end
else
begin
  Form9.DBGrid1.DataSource.DataSet.Next;
  if((a=0) and (c=0) and (d=0) and (f=0)) then
  begin
  e:=strtoint(Form9.DBGrid1.DataSource.DataSet.FieldByName('Цена за сутки').AsString);
  DATA.TPrice.First;
  end
  else
  begin
    Form9.DBGrid1.DataSource.DataSet.Next;
    if((b=0) and (c=0) and (e=0) and (f=0)) then
    begin
    d:=strtoint(Form9.DBGrid1.DataSource.DataSet.FieldByName('Цена за минуту').AsString);
    DATA.TPrice.First;
    end;
    end;
    end;
RichEdit1.Lines[1]:=RichEdit1.Lines[1] + Form13.DBGrid1.DataSource.DataSet.FieldByName('Номер компьютера').AsString;
RichEdit1.Lines[2]:=RichEdit1.Lines[2] + Form13.DBGrid1.DataSource.DataSet.FieldByName('IP').AsString;
RichEdit1.Lines[4]:=RichEdit1.Lines[4] + Form13.DBGrid1.DataSource.DataSet.FieldByName('Количество минут').AsString;
RichEdit1.Lines[5]:=RichEdit1.Lines[5] + Form13.DBGrid1.DataSource.DataSet.FieldByName('Количество мегабайт').AsString;
RichEdit1.Lines[6]:=RichEdit1.Lines[6] + Form13.DBGrid1.DataSource.DataSet.FieldByName('Количество дней').AsString;
RichEdit1.Lines[7]:=RichEdit1.Lines[7] + IntToStr(a*d+b*e+c*f);
RichEdit1.Lines[8]:=RichEdit1.Lines[8] + Form13.DBGrid1.DataSource.DataSet.FieldByName('Оператор').AsString;;

Последний раз редактировалось Okayguys; 26.11.2016 в 18:50.
Okayguys вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь в Delphi Balder БД в Delphi 0 11.06.2015 22:35
Нужна помощь по Delphi Skullw Помощь студентам 0 08.10.2014 11:57
Нужна помощь по Delphi Виктория 1 Фриланс 5 25.02.2007 21:21