Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопросы по экспорту и базам данных [D7, XP]


Страницы:   1 2

Defort ©   (2006-11-19 22:10:00) 

Добрый вечер, господа. Как-то (может кто помнит), меня тут послали, так как посчитали мое знание баз недостаточном, чтобы считать меня достойным разговора. Но с базами, почитав книжку, я разобрался. Теперь у меня новые вопросы:

Вопрос первый.

Мне нужно, чтобы автоматически формировалась таблица График платежей (то есть в течении всего периода действия договора - с начального по конечную дату - каждый первый день месяца производился платеж). Я пытался сначала разбить по дате, потом сосчитать количество строк, поделить на нее всю сумму и разместить по строкам (надеюсь понятно объяснил). У меня никак не получается это сделать. Вообще. Может кто поможет? о_О

Вопрос 2: по экспорту в Эксель. Все работает, но только номер договора он рассматривает как вариантный тип (то есть если я пишу номер 02.03 - он рассматривает как дату, если 17 - как число). Это не есть хорошо, так как я говорю ему рассматривать как строку. Вот мой код:

Sheet.Cells[index,1]:=DataModule1.ADOTable1.Fields.Fields[1].AsString;

Не подскажете, в чем может быть ошибка?

Заранее всех благодарю!


Defort   (2006-11-24 22:27:00) [21]


> зачем разбирать дату, а затем снова собирать ее?

Когда я писал IncMonth(days) у меня циклило (days - дата) - посмотри на условие  цикла - может оно неправильно


> какая база?


MS Access


Sam Stone   (2006-11-24 20:47:00) [22]

> Это язык SQL? Я не учил его еще. Буду благодарен за примерный
> код

учи http://cs.ifmo.ru/education/documentation/sql_kg/

> Да, кстати, и с датами правильно сделано?

зачем разбирать дату, а затем снова собирать ее?

> не добавляет

какая база? коммит не помешало бы сделать в некоторых случаях.


Defort   (2006-11-24 20:40:00) [23]

Да, кстати, и с датами правильно сделано?


Defort   (2006-11-24 20:33:00) [24]


> апрос сделать:
> INSERT INTO <Table> ...
> Или вопрос не в этом?


Это язык SQL? Я не учил его еще. Буду благодарен за примерный код


Kolan   (2006-11-23 23:00:00) [25]

> Вопрос собственно как правильно добавить новые строки

Запрос сделать:
INSERT INTO <Table> ...
Или вопрос не в этом?


Defort   (2006-11-23 22:56:00) [26]

Вроде с датой разобрался, теперь не глют по крайней мере. Но и не добавляет.

procedure TNewGraphForm.SubKindClick(Sender: TObject);
var i:integer;
   summ: real;
   days, days2: variant;  //начальная и конечная даты
   AYear, AMonth, ADay, AYear2, AMonth2, ADay2: Word; //для раскодировки
   m: integer;

begin
 if SubKind.ItemIndex=0 then
   days:=DataModule1.ADOTable1.FieldValues['Дата заключения'];
   days2:=DataModule1.ADOTable1.FieldValues['Дата закрытия'];

   DecodeDate(days, AYear, AMonth, ADay); Inc(AMonth);
   DecodeDate(days2, AYear2, AMonth2, ADay2);
   while (AMonth<AMonth2) and(AYear<=AYear2) do
     begin
       DataModule1.ADOTable3.Insert;  //по задумке добавление новой строки
       DataModule1.ADOTable3.FieldValues['Дата платежа']:=EncodeDate(AYear, AMonth, ADay);//присваиваение полю Дата платежа текущей даты
       DataModule1.ADOTable3.Post; //по задумке принятие изменений
       Inc(AMonth);
     end;
end;


Вопрос собственно как правильно добавить новые строки. Сенкс.


Anatoly Podgoretsky   (2006-11-20 23:04:00) [27]

> Defort  (20.11.2006 20:20:05)  [5]

Решение не соответсвует постановке, а для чего я тебе список функций приводил? Для того, чтобы ты их внимательно посмотрел.
Можешь к ним добавить еще две - DecodeDate и :=


Sam Stone   (2006-11-20 21:30:00) [28]

> [5] Defort ©   (20.11.06 20:20)

Читаем описание IncMonth до просветления.


Defort   (2006-11-20 20:20:00) [29]

В таком виде программу вообще циклит:

var i:integer; {счетчик для цикла}
   summ: real; //переменные для заполения автоматически
   days: variant;
begin
 if SubKind.ItemIndex=0 then
   days:=DataModule1.ADOTable1.FieldValues['Дата заключения'];
   IncMonth(days);
   while days<DataModule1.ADOTable1.FieldValues['Дата закрытия'] do
     begin
       DataModule1.ADOTable3.Append;
       DataModule1.ADOTable3.FieldValues['Дата платежа']:=days;
       {DataModule1.ADOTable3.FieldValues['Сумма платежа']:=summ;
       DataModule1.ADOTable3.FieldValues['Погашен']:=false;
       DataModule1.ADOTable3.FieldValues['Пени']:=0;
       DataModule1.ADOTable3.FieldValues['Остаток']:=summ;
       Application.MessageBox(PCHar('График платежей создан. Проверьте его правильность и отредактируйте поля в случае надобности'), 'Внимание!', MB_OK); //Выводится ошибка на экран}
       DataModule1.ADOTable3.Post;
       IncMonth(days);
     end;
end;


:(


Anatoly Podgoretsky   (2006-11-20 19:44:00) [30]

> Defort  (20.11.2006 19:24:03)  [3]

В месяце не обязательно 30 дней

EncodeDate, IncMonth


Defort   (2006-11-20 19:24:00) [31]

2EvS
Показываю что деле, только плиз не смеятся. Здесь я пытался сделать только чтобы появилась много строк с отличающимися на 30 дней датами, так как не знаю как сделать, чтобы период разбивался именно по первому дню месяца.

var days, i:integer; {ñ÷åò÷èê äëÿ öèêëà}
   summ: real; //ïåðåìåííûå äëÿ çàïîëåíèÿ àâòîìàòè÷åñêè
   days2: variant;
begin
if SubKindRadioGroup.ItemIndex=0 then
   days2:=DataModule1.ADOTable1.FieldValues['Äàòà çàêëþ÷åíèÿ']+30;
   while days2


Sergey13   (2006-11-20 08:37:00) [32]

> Вопрос первый.
> надеюсь понятно объяснил
Не особо.
Если платеж проходит автоматически (в чем я лично сомневаюсь), то почему бы каждое первое число не запускать процедуру, где на каждый договор вводить 1 запись с датой и уммой платежа, равной остатку/количество оставшихся месяцев.


EvS   (2006-11-19 23:09:00) [33]

> Как-то (может кто помнит), меня тут послали

Тут таких не меряно.

> Вопрос первый.

Причем здесь строки,посчитай кол-во месяцев и дели.
Показывай что делал.

> Вопрос 2

Форматировать нужно ячейки Экселя.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо