![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Есть кнопка которая по щелчку проставляет, во всех строках поле перевозчик в значение компания, если поле расстояние <=200
Надо сделать чтобы значение компания ставилось не во всех строках, а в определенном количестве которое считывается из поля edit1 Понимаю что надо в цикл запихнуть счетчик, но ни в какаю не получается, вот код кнопки, помогите, а то ни как не получается Код:
procedure TForm1.N5Click(Sender: TObject);
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;
end; |
|
#2
|
|||
|
|||
|
Вопрос снимаю было недавно просветление сделал вот так, вроде работает:
Код:
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;
end; |
|
#3
|
|||
|
|||
|
Код:
procedure TForm1.N5Click(Sender: TObject);
var
ACount : Integer;
ATotal : Integer;
begin
ACount := 0;
ATotal := StrToInt(Edit1.Text);
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;
Inc(ACount);
end;
If ACount >= ATotal Then Break;
datamodule2.VednaOtgruzTable.Next;
end;
end;Годится? |
|
#4
|
|||
|
|||
|
Супер, еще раз огромное спасибо, если бы не твои ответы, я бы до сих пор думал в какую сторону копать, а сейчас, у меня клиент почти все что надо умеет, может конечно криво, но умеет
|
|
#5
|
|||
|
|||
|
Цитата:
If ACount >= ATotal Then Break; добавити while (not datamodule2.VednaOtgruzTable.eof)or(ACount <= ATotal ) do |