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

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

Массив в Delphi


Dina ©   (2008-01-22 06:44:00) 

Подскажите, как создать такое заполнение, в голову не идет ничего:

Иванов
Иван
Иванович

Петров
Петр
Петрович

Сидоров
Сидор
Сидорович , а в таблице Иванов Иван Иванович
                                  Петров Петр Петрович
                                  Сидоров Сидор Сидорович


Dina   (2008-01-22 08:50:00) [1]

Спасибо, буду пробовать... Выйду на связь с вопросами, если возникнут позже...


Skyle   (2008-01-22 08:42:00) [2]

Что-то типа этого?

procedure TForm1.Button1Click(Sender: TObject);
var
 ArrayData : Variant;
 Excel : OleVariant;
begin
 Excel := CreateOleObject('Excel.Application');
 Excel.DisplayAlerts := False;
 Excel.Visible := True;

 Excel.WorkBooks.Add;

 ArrayData := VarArrayCreate([0, 3, 0, 0], varVariant);
 while not tbvrem.eof do
 begin
   ArrayData[0, 0] := tbvrem.FieldValues['Nom_v'];
   ArrayData[1, 0] := tbvrem.FieldValues['Surname_v'];
   ArrayData[2, 0] := tbvrem.FieldValues['Name_v'];
   ArrayData[3, 0] := tbvrem.FieldValues['Patronymic_v'];

   //координаты передаются через переменные, для каждого человека свои.
   Excel.ActiveSheet.Range['A1:A4'].Value := ArrayData;      

   tbvrem.Next;
 end;

//  Excel.Quit;
//  Excel := UnAssigned;
end;


Dina   (2008-01-22 08:39:00) [3]

Извини, я просто не знаю как корректно с точки зрения программирования объяснить...


Dina   (2008-01-22 08:38:00) [4]

Я не могу написать цикл, именно того, что данные каждого человека, строились в столбик, в заданных ячейках, а данные 4-х человек по строчно,
всмысле у меня должны быть 4 столбика ФИО друг под другом! А я могу сделать только 4 строки друг под другом, вот так: Иванов Иван Иванович
                                                                        Петров Петр Петрович
                                                                       Сидоров Сидо Сидорович,
А мне надо так:
Иванов
Иван
Иванович

Петров
Петр
Петрович

Сидоров
Сидо
Сидорович


Skyle   (2008-01-22 08:33:00) [5]

А в чём конкретно сложность-то?


Dina   (2008-01-22 08:28:00) [6]

Наверное, сначала в цикле надо вставить одного, фамилия, имя, отчество, друг под другом, и внешний цикл, 4-х друг под другом на расстоянии? Но как не пойму


Dina   (2008-01-22 08:25:00) [7]

Если поможешь мне, я буду очень благодарна!
Смотри у меня есть табл *.db, ну формочка нарисована в Дельфи, для ввода и поиска данных о человеке. Сам весь смысл такой, есть готовый бланк на бумаге (квитанции), цветной на спец бумаге, я выгружаю данные в Ёхель, попадаю в нужные ячейки (методом тыка :)), и мне надо попасть в графы этого бланка. На бланке 4 квитанции. Получается мне надо выгрузить 4 человека (данные всмысле ФИО), друг под другом на расстоянии. Как в вопросе:

Иванов
Иван
Иванович

дальше там линии,  печати бланка......

следующий бланк

Петров
Петр
Петрович И так 4-х человек.
Получается в столбик, а сам цикл по строчно


Skyle   (2008-01-22 08:23:00) [8]

Это чтоли?

ArrayData := VarArrayCreate([0..MyAmount * 4 - 1], varVariant);
I := 0;
while not tbvrem.eof do
begin
 ArrayData[I] := tbvrem.FieldValues['Nom_v'];
 Inc(I);
 ArrayData[I] := tbvrem.FieldValues['Surname_v'];
 Inc(I);
 ArrayData[I] := tbvrem.FieldValues['Name_v'];
 Inc(I);
 ArrayData[I] := tbvrem.FieldValues['Patronymic_v'];
 Inc(I);
 tbvrem.Next;
end;


Dina   (2008-01-22 08:20:00) [9]

Я выгружаю в Ёхель. Не поячеечно, а массивом


Skyle   (2008-01-22 08:18:00) [10]

Ну хорошо, хоть и неясно зачем.

А как показываешь-то?


Dina   (2008-01-22 08:16:00) [11]


> ArrayData

Вариантный массив, который заполняем выходными данными


grisme   (2008-01-22 08:05:00) [12]

Dina   (22.01.08 07:10) [2]
курить type TypeName = record


Skyle   (2008-01-22 08:02:00) [13]

А что такое ArrayData?


Dina   (2008-01-22 07:10:00) [14]

Спасибо, но эти фамилии и имена для примера, там разные всякие, я имела ввиду, что мне нужно вывести именно так как я писала, сначала в столбик данные об одном человеке, через несколько строк данные другого человека,
А у меня получается данные об одном человеке в строку:

tbvrem.First;
 i:=1;
 while not tbvrem.Eof do
 begin
     ArrayData[i, 1] := tbvrem.FieldValues['Nom_v'];
     ArrayData[i, 2] := tbvrem.FieldValues['Surname_v'];
     ArrayData[i, 3] := tbvrem.FieldValues['Name_v'];
     ArrayData[i, 4] := tbvrem.FieldValues['Patronymic_v'];
 tbvrem.Next;
 i:=i+1;
 end;


OSokin   (2008-01-22 07:01:00) [15]

Берешь имя Иван, добавляешь к нему -ов и -ович. Например:
Imya := 'Абдурахман';
Familia := Imya + 'ов';
Otchestvo := Familia + 'ич';

Получаем Абдурахманов Абдурахман Абдурахманович


Наверх

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