Помогите с базой

Тема в разделе "Delphi - Базы данных", создана пользователем Kirill1987, 21 июл 2008.

  1. Kirill1987

    Kirill1987 Гость

    Помогите пожалуйста,а то уже голова плавится, файлы проекта прилагаю, вопросы следубщие:
    1) Операции> проставить направления компании
    я написал чтобы ставились все направления до 200 километров, а надо чтобы они ставились только до значения edit1, понимаю что надо в цикл счетчик запихнуть, но не получается, куда я только его не пихал уже :ph34r:
    2) надо создать таблицу след вида
    Дата (предполагаю лукап полем из таблицы список ведомостей)
    перевозчик (перевозчики)
    количество отказов
    количество дополнительных заявок
    Надо чтобы в нее при операции>провести основную ведомость в столбец 'количество отказов' добавлялось количество отказов перевозчика, то что перевозчик отказался - определяется по полю подтверждение - если false - отказался
    А при операции> провести дополнительную ведомость в столбец дополнительных заявок - количество как раз где подтверждение true
    это как реализовать вообще не понимаю



    Поправка по первому вопросу, надо чтобы значение компания ставилось не всем направлениям до 200 км, а только тому количеству которое в edit1
     

    Вложения:

  2. Kirill1987

    Kirill1987 Гость

    В общем, я студент и это первая база которую пишу, хотелось бы чтобы ее кто то посмотрел, наверняка куча ошибок везде но это не особо принципиально, просто интересно,, а вопросы вот конкнретные:
    1) есть обработчик на кнопку проставить направления компании
    Код (Text):
    begin
    datamodule2.VednaOtgruzTable.First;
    while not datamodule2.VednaOtgruzTable.eof do
    begin
    if datamodule2.VednaOtgruzTable.FieldByName('Расстояние').AsVariant<=200
    then
    begin
    datamodule2.VednaOtgruzTable.Edit;
    datamodule2.VednaOtgruzTable.FieldByName('Перевозчик').AsString:='Компания';
    datamodule2.VednaOtgruzTable.Post;
    end;
    datamodule2.VednaOtgruzTable.Next;
    end;
    он работает, но надо чтобы значения компания ставились, не по всей таблице, а только на первых 40 направлениях подходящих понимаю нужен счетчик, но как реализовать не знаю
    2) как в связанной таблице считать количество отказов и взятых перевозчиком дополнительных заявок
     
  3. etc

    etc Гость

    Да просто заводите переменную, и в цыкле наращиваете ее пока не достигнет предела по условию.
    Что за таблица, то за отказы, что за доп. заявки? Количество расчитываеться путем сложения удовл. условию элементов/позиций/....

    Я вам тоже вопрос задам : есть у меня одна штука, хорошая такая штука, надо сказать, так вот когда ее берут и делают непотребное, то получаеться полная ерунда. Не подскажите как исправить? ------ это к тому что ваш вопрос примерно такого же содержания.
     
  4. Kirill1987

    Kirill1987 Гость

    Заводил переменную вставлял в цикл, не работает, пробовал разные конструкции не получается, поэтому и вопрос написал
     
  5. etc

    etc Гость

    Показывайте пробы.
     
  6. Kirill1987

    Kirill1987 Гость

    Вопрос снимаю было недавно просветление сделал вот так, вроде работает:
    procedure TForm1.N5Click(Sender: TObject);
    var
    i:integer;
    c:integer;
    begin
    i:=0;
    c:=strtoint(edit1.text);
    datamodule2.VednaOtgruzTable.First;
    while not datamodule2.VednaOtgruzTable.Eof do
    if datamodule2.VednaOtgruzTable.FieldByName('Расстоян ие').AsVariant<=200
    then
    begin
    datamodule2.VednaOtgruzTable.Edit;
    datamodule2.VednaOtgruzTable.FieldByName('Перевозч ик').AsString:='Компания';
    datamodule2.VednaOtgruzTable.Post;
    inc(i);
    if i<c
    then
    datamodule2.VednaOtgruzTable.Next
    else
    datamodule2.VednaOtgruzTable.Last;
    end
    else
    datamodule2.VednaOtgruzTable.Next;

    Единственное, не уверен в корректности вот этой строки
    else
    datamodule2.VednaOtgruzTable.Last;
    Может можно, как нибудь цикл по другому завершить
     
  7. etc

    etc Гость

    Не нужен там if , все должен делать while
     
Загрузка...

Поделиться этой страницей