Текущий архив: 2009.01.04;
Скачать: CL | DM;
Вниз
Здравствуйте! Помогите мне, пожалуйста!!!! Найти похожие ветки
← →
Asellya (2008-11-21 09:36) [0]Дельфи изучаю недавно. Через пару дней нужно сдать отчет по производственно-технологической практике, а у меня пока не хватает навыков, чтобы решить задачу:
Даны 2 таблицы, абсолютно одинаковые по структуре - 4 столбца с такими заголовками "Номер №", "Наименование материала", "Единица измерения", "Количество". Если запись в столбце "Наименование материала" повторяется в обеих таблицах, то тогда "Количество", соответствующее этому материалу суммируется. При этом создается третья таблица с точно такой же структурой и результаты заносятся в нее уже под другими "Номерами№". А те записи, что не повторяются в двух таблицах, просто заносятся в третью в исходном виде.
Извините, за размашистость вопроса!!! Вот до чего я додумалась:procedure TForm1.Button1Click(Sender: TObject);
var i,j,a,b,k,l:integer;
m,n:real;
MatS,EdS,KolSK,MatU,EdU,KolUC:Array [0..50]of string;
begin
for j:=0 to StringGrid1.RowCount do
for i:=1 to 3 do
begin
MatS[j]:=StringGrid1.Cells[i,j];
EdS[j]:=StringGrid1.Cells[i,j];
TRY
KolSK[j]:=StringGrid1.Cells[i,j];
except
on Exception:EConvertError do
begin
ShowMessage("Количество материала " +
"нужно указывать цифрами " +#13+
"Используйте запятую, при записи дробных чисел.");
exit;
end;
end;
end;
for b:=0 to StringGrid2.RowCount do
for a:=1 to 3 do
begin
MatU[b]:=StringGrid2.Cells[a,b];
EdU[b]:=StringGrid2.Cells[a,b];
TRY
KolUC[b]:=StringGrid2.Cells[a,b];
except
on Exception:EConvertError do
begin
ShowMessage("Количество материала " +
"нужно указывать цифрами " +#13+
"Используйте запятую, при записи дробных чисел.");
exit;
end;
end;
end;
k:=0;
l:=1;
for j:=0 to StringGrid1.RowCount do
for b:=0 to StringGrid2.RowCount do
if MatS[j]=MatU[b]
then begin
StringGrid3.Cells[l,k]:=MatU[b];
l:=l+1;
StringGrid3.Cells[l,k]:=EdU[b];
l:=l+1;
TRY
m:=StrToFloat(KolUC[b]);
n:=StrToFloat(KolSK[j]);
StringGrid3.Cells[l,k]:=FloatToStrF(n+m,ffgeneral, 3,1);
except
on Exception:EConvertError do
begin
ShowMessage("Количество материала " +
"нужно указывать цифрами " +#13+
"Используйте запятую, при записи дробных чисел.");
exit;
end;
end;
l:=1;
k:=k+1;
end
else begin
StringGrid3.Cells[l,k]:=MatS[j];
l:=l+1;
StringGrid3.Cells[l,k]:=EdS[j];
l:=l+1;
StringGrid3.Cells[l,k]:=KolSK[j];
l:=1;
StringGrid3.Cells[l,k+1]:=MatU[b];
l:=l+1;
StringGrid3.Cells[l,k+1]:=EdU[b];
l:=l+1;
StringGrid3.Cells[l,k+1]:=KolUC[b];
k:=k+1;
l:=1;
end;
end;
← →
Сергей М. © (2008-11-21 09:42) [1]В чем собссно вопрос заключается ?
← →
Сергей М. © (2008-11-21 09:47) [2]
> TRY
> KolSK[j]:=StringGrid1.Cells[i,j];
> except
> on Exception:EConvertError
Пеорвое же что бросается в глаза - ожидаемое исключение никогда не возникнет, ибо в выражении присваивания никакой конвертации типов данных не осуществляется
Страницы: 1 вся ветка
Текущий архив: 2009.01.04;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.01 c