Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод в DBGrid 
:(
    Опции темы
_Nick_
Дата 10.3.2007, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть вот такой вот код:
Код

procedure TForm1.Button1Click(Sender: TObject);
var number: integer;
    kol_parts:integer;
    Value:integer;
    ii: integer;
    Valuee:Tstringfield;
begin
  number:=StrToInt(Edit1.Text);  // число
  kol_parts:=StrToInt(Edit2.Text); // количество частей
  ClientDataSet1:=TClientDataSet.Create(Application);
  Valuee:=TStringField.Create(Application);
  Valuee.FieldName:='Valuee';
  Valuee.Size:=30;
  Valuee.DataSet:=ClientDataSet1;
  ClientDataSet1.CreateDataSet;
  ClientDataSet1.LogChanges:=false;
  value:=number div kol_parts;  // значение для записи
  ShowMessage(IntToStr(value));
  DBGrid1.Columns.Clear;
  for  ii:=1 to kol_parts do
  begin
    ClientDataSet1.Append;
    ClientDataSet1.FieldByName('Valuee').AsInteger:=value;
    ClientDataSet1.Next;
  end;
  DataSource1:=TDataSource.Create(Application);
  DataSource1.DataSet:=ClientDataSet1;
  DBGrid1.DataSource:=DataSource1;
end;

он разделяет введеное число на указанное количество равных частей и выводит это в строки DBGrid в 1 колонку
пример 
введено 1000
кол-во частей 2
выводит в 2 строки по 500 в каждой
Мне надо, что б этот код генерировал 2 колонки  и в одну как и было выводил разделенное число, а во вторую выводил дату(день.месяц.год) причем месяц на следующей строчке увеличивался бы на 1, а по достижению 12 увеличивался бы и год на 1 (день вводиться пользователем)
например

    дата          разделенное число
12.01.2007          500
12.02.2007          500
...                         ...
Помогите такое реализовать


Это сообщение отредактировал(а) _Nick_ - 10.3.2007, 15:08
PM MAIL   Вверх
remax
Дата 11.3.2007, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент
**


Профиль
Группа: Участник Клуба
Сообщений: 686
Регистрация: 7.4.2002
Где: Украина, Харьков

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



И в чем проблема?
1) В секции var обьявляешь еще одну переменную типа Tstringfield, например -Value2.
2) Создаешь ее.
3) В цикле, заполняешь обе переменные своими значениями. (Не забывашь использовать DateToStr и IntToStr)
И все...

 smile  smile 


--------------------
Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку
PM MAIL ICQ Skype   Вверх
_Nick_
Дата 12.3.2007, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вот похимичил с кодом, у меня не получаеться сделать так что когда количество месяцев превысит 12 увеличивался бы и год

вот мой подправленный код
Код

procedure TForm1.rasClick(Sender: TObject);
var number: integer;
    kol_parts:integer;
    Value:integer;
    mes:integer;
    ii: integer;
     i: integer;
    Valuee:Tstringfield;
    DDD:Tstringfield;
    Year, Month, Day, Hour, Min, Sec, MSec: Word;
    Present: TDateTime;
    ye:integer;
begin

  number:=StrToInt(DBEdit3.Text);  // число
  kol_parts:=StrToInt(DBEdit4.Text); // количество частей
  ClientDataSet1:=TClientDataSet.Create(Application);
  Valuee:=TStringField.Create(Application);
  DDD:=TStringField.Create(Application);
  Valuee.FieldName:='Первая колонка';
  DDD.FieldName:='Вторая колонка';
  Valuee.Size:=10;
  DDD.Size:=15;
  Valuee.DataSet:=ClientDataSet1;
  DDD.DataSet:=ClientDataSet1;
  ClientDataSet1.CreateDataSet;
  ClientDataSet1.LogChanges:=false;
    Present:= Now;
    DecodeDate(Present, Year, Month, Day);

  value:=number div kol_parts;  // значение для записи
   mes:=(Month);
   ye:=(Year);
  DBGrid2.Columns.Clear;
  for  ii:=1 to kol_parts do
  begin
    ClientDataSet1.Append;
    ClientDataSet1.FieldByName('Первая колонка').AsInteger:=value;
    ClientDataSet1.FieldByName('Вторая колонка').AsInteger:=ye;
    mes:=mes+1;
  end;
//   if mes>12 then
//   ye:=(year)+1;
//    begin
 //    ClientDataSet1.Append;
 //    ClientDataSet1.FieldByName('Первая клонка').AsInteger:=value;
 //    ClientDataSet1.FieldByName('Вторая колонка').AsInteger:=ye;
 // end;

  DataSource2:=TDataSource.Create(Application);
  DataSource2.DataSet:=ClientDataSet1;
  DBGrid2.DataSource:=DataSource2;
  end;


Это сообщение отредактировал(а) _Nick_ - 12.3.2007, 21:53
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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