Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.17;
Скачать: CL | DM;

Вниз

Массив в Delphi   Найти похожие ветки 

 
Dina   (2008-01-22 06:44) [0]

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

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

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

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


 
OSokin   (2008-01-22 07:01) [1]

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

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


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

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

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;


 
Skyle ©   (2008-01-22 08:02) [3]

А что такое ArrayData?


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

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


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


> ArrayData

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


 
Skyle ©   (2008-01-22 08:18) [6]

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

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


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

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


 
Skyle ©   (2008-01-22 08:23) [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:25) [9]

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

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

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

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

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


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

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


 
Skyle ©   (2008-01-22 08:33) [11]

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


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

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

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

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


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

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


 
Skyle ©   (2008-01-22 08:42) [14]

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

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:50) [15]

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



Страницы: 1 вся ветка

Текущий архив: 2008.02.17;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.022 c
2-1201500506
psa247
2008-01-28 09:08
2008.02.17
получить ListView.Data ?


2-1201170599
Res
2008-01-24 13:29
2008.02.17
Файл


3-1191396980
zdm77
2007-10-03 11:36
2008.02.17
Paradox


15-1200306381
alles
2008-01-14 13:26
2008.02.17
Не подскажите программу...


15-1199946021
Некто
2008-01-10 09:20
2008.02.17
Узнаёте?