Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.08.07;
Скачать: [xml.tar.bz2];

Вниз

StringGrid и таблица Word   Найти похожие ветки 

 
Максон ©   (2011-04-11 12:19) [0]

Уважаемые форумчане, подскажите или наведите на мысль
Каким образом  данные из StringGrid можно перенести в готовую таблицу шаблона Word.


 
clickmaker ©   (2011-04-11 12:37) [1]

н-р, с помощью TWordApplication


 
Dennis I. Komarov ©   (2011-04-11 12:42) [2]

и вот как же на нее наводить, прикажите?

цикл по всем строкам
 цикл по всем столбцам
   в ячейку таблицы в word вставить соотверствующее содержимое из StringGrid


 
OW ©   (2011-04-11 12:49) [3]

var
 W, T: Variant;
begin
 W :=  CreateOleObject("Word.Application");
 try
   W.Documents.Open("C:\1.doc",EmptyParam,EmptyParam,EmptyParam,
                               EmptyParam,EmptyParam,EmptyParam,
                               EmptyParam,EmptyParam,EmptyParam);
   T := W.ActiveDocument.Tables.Item(1);
   T.Cell(1, 1).Range.Text := "qwer";


 
Максон ©   (2011-04-11 12:49) [4]

Это код почему-то не работает

procedure TForm2.DocbtnClick(Sender: TObject);

var RowPoint: Integer;
begin
   if strngrd1.RowCount > 1 then
   begin
     if FileExists(GetCurrentDir + "\mmm.dot") then
     begin
               //
       WA := CreateOLEObject("Word.Application");
       WA.Documents.Add(GetCurrentDir + "\mmm.dot", false, 0);
       WA.Options.CheckSpellingAsYouType := false;
       WA.Options.CheckGrammarAsYouType := false;
       //

       // на всю талицу сделал закладку "Таблица"
       WA.ActiveDocument.Bookmarks.Item("ТАБЛИЦА").Select;
       for RowPoint := 2 to strngrd1.RowCount do
       begin
                   //
         // Добавляем новую строку
         WA.Selection.Tables.Item(1).Rows.Add(EmptyParam);
         // Заполняем строку
         WA.Selection.Tables.Item(1).Cell( 2, 1).Range.Text := IntToStr(RowPoint - 1) + "."; // 1-ый столбец

         WA.Selection.Tables.Item(1).Cell( 2, 2).Range.Text := strngrd1.Cells[0, RowPoint - 1];  // 2-ой столбец

         WA.Selection.Tables.Item(1).Cell( 2, 3).Range.Text := strngrd1.Cells[1, RowPoint - 1];   // 3-тий столбец

         WA.Selection.Tables.Item(1).Cell( 2, 4).Range.Text := strngrd1.Cells[2, RowPoint - 1];   // 4-тый столбец

         WA.Selection.Tables.Item(1).Cell( 2, 5).Range.Text := strngrd1.Cells[5, RowPoint - 1];   // 6-той столбец

         WA.Selection.Tables.Item(1).Cell( 2, 6).Range.Text := strngrd1.Cells[6, RowPoint - 1];   // 7-мой столбец

         WA.Selection.Tables.Item(1).Cell( 2, 7).Range.Text := strngrd1.Cells[7, RowPoint - 1];   // 8-мой столбец

       end;
 end;
 end;
 end;


 
Dennis I. Komarov ©   (2011-04-11 12:59) [5]

Кофе или ромашки?


 
Максон ©   (2011-04-11 13:01) [6]

Ребята, ну я правда не знаю как сделать :(


 
Максон ©   (2011-04-11 13:37) [7]

Как посоветовали переделал все

procedure TForm2.DocbtnClick(Sender: TObject);
var
W, T: Variant;
begin
W :=  CreateOleObject("Word.Application");

W.Visible:=True;
W.DisplayAlerts:=True;

try
  W.Documents.Open(GetCurrentDir +"\mmm.dot",EmptyParam,EmptyParam,EmptyParam,
                              EmptyParam,EmptyParam,EmptyParam,
                              EmptyParam,EmptyParam,EmptyParam);
  T := W.ActiveDocument.Tables.Item(1);
  T.Cell(5, 2).Range.Text := strngrd1.Cells[0,2];
 finally
end;
end;


Но все равно не получается отображение данных в таблице. Уже весь букварь перелистал, не могу назначить нужную ячейку в Stringgrid


 
OW ©   (2011-04-11 14:50) [8]


>   T.Cell(1, 1).Range.Text := "qwer";

"qwer" в первой таблице,  в ячейке (1 1), есть?


 
Dennis I. Komarov ©   (2011-04-11 15:27) [9]

Универсальный метод для:

Открываем Ворд (файл)
Макрос на запись
Написали текст
Макрос стоп
Смотрим...


 
Smile   (2011-04-11 15:39) [10]

YurikGL
Уже как несколько лет назад выложил информацию про это в категорию "Статьи", да и на http://articles.org.ru/ много инфы по этому вопросу


 
Максон ©   (2011-04-11 16:57) [11]


> >   T.Cell(1, 1).Range.Text := "qwer";"qwer" в первой таблице,
>   в ячейке (1 1), есть?


Да есть, так получается.
А вот из Stringrid - никак


 
Максон ©   (2011-04-11 17:01) [12]

Ребята, спасибо огромное, щас буду разбираться


 
Dennis I. Komarov ©   (2011-04-11 17:40) [13]


> Да есть, так получается.А вот из Stringrid - никак

Ох уж эти сказочники...


 
Максон ©   (2011-04-11 18:12) [14]

Все равно не получается.


var
RowCount:integer;
begin
....

T.Cell(1, 1).Range.Text:=StringGrid.Cells[1,RowCount-1];


 
OW ©   (2011-04-12 08:38) [15]

sg := stringgrid1;

for i := 0 to sg.rowcount - 1 do
for j := 0 to sg.colcount - 1 do
 Showmessage(sg.cells[i,j]);


 
Максон ©   (2011-04-12 13:30) [16]


> sg := stringgrid1;for i := 0 to sg.rowcount - 1 do for j
> := 0 to sg.colcount - 1 do  Showmessage(sg.cells[i,j]);


у меня вот что вышло.
И добавляются только последние строки


var
i:integer;
T:variant;

begin
//выбираю таблицу
T := WA.ActiveDocument.Tables.Item(3);

//запускаю цикл
       for i := 1 to strngrd1.RowCount-1 do

          begin
         // Добавляем новую строку
         T.rows.add(EmptyParam);
//нумерация строк
         T.Cell(1, 1).Range.Text := IntToStr(RowPoint - 1) + ".";
//ввод данных из Stringgrid
         T.Cell(1, 2).Range.Text := strngrd1.Cells[0, RowPoint - 1];
         T.Cell(1, 3).Range.Text := strngrd1.Cells[1, RowPoint - 1];
         T.Cell(1, 4).Range.Text := strngrd1.Cells[2, RowPoint - 1];


Посоветуйте  пожалуйста как правильно сделать


 
Германн ©   (2011-04-12 13:43) [17]


> //запускаю цикл

Счетчик цикла i. А в теле цикла какой-то непонятный RowPoint.


 
Максон ©   (2011-04-12 13:49) [18]

извиняюсь вот как должно быть


var
i:integer;
T:variant;

begin
//выбираю таблицу
T := WA.ActiveDocument.Tables.Item(3);

//запускаю цикл
      for i := 1 to strngrd1.RowCount-1 do

         begin
        // Добавляем новую строку
        T.rows.add(EmptyParam);
//нумерация строк
        T.Cell(1, 1).Range.Text := IntToStr(i - 1) + ".";
//ввод данных из Stringgrid
        T.Cell(1, 2).Range.Text := strngrd1.Cells[0, i - 1];
        T.Cell(1, 3).Range.Text := strngrd1.Cells[1, i - 1];
        T.Cell(1, 4).Range.Text := strngrd1.Cells[2, i - 1];


 
Smile   (2011-04-12 14:20) [19]

Странная, какая-то ветка.
Похоже, что автор ничего читать и искать не желает
:(
Мог бы зайти сюда:
http://articles.org.ru/cn/?c=92
или уж сразу сюда:
Как экспортировать StringGrid в MS Word таблицуhttp://www.kansoftware.ru/?tid=4061


 
Dennis I. Komarov ©   (2011-04-12 14:40) [20]

У тебя ошибка в программе, ищи...


 
DTMail   (2011-04-13 07:17) [21]

А как организовать аналогичный экспорт данных из StringGrid в открытый документ Word в таблицу в документе, начиная с ячейки, в котоую установлен курсор?


 
Dennis I. Komarov ©   (2011-04-13 14:52) [22]


> DTMail   (13.04.11 07:17) [21]

А зачем?
Для этого буфер обмена вроде бы есть...

Хотя, вроде можно...


 
Максон ©   (2011-04-14 07:09) [23]

Почитав умные книжки у меня вот что получилось.
Объясните пожалуйста, как добавлять все строки.

procedure TForm2.DocbtnClick(Sender: TObject);
var
W, T, N: Variant;
iRows,Cols, i:Integer;

begin
W :=  CreateOleObject("Word.Application");

W.Visible:=True;
W.DisplayAlerts:=True;

try
 W.Documents.Open(GetCurrentDir +"\mmm.dot",EmptyParam,EmptyParam,EmptyParam,
                             EmptyParam,EmptyParam,EmptyParam,
                             EmptyParam,EmptyParam,EmptyParam);

 //  выбор талицы
 T:=W.ActiveDocument.Tables.Item(1);
 // обозначение номера строки в таблице 1
//Данные будут вноситься с 4 строки
 N:=W.ActiveDocument.Tables.Item(1).Rows.Item(4);
 // запуск цикла строк  от 1 до последнего кол-ва в стринггриде
 for i:=1 to strngrd1.RowCount-1 do
 // добавление строк
 T.Rows.Add(N);

 //запуск цикла по строкам и столбцам
 for   iRows:=1 to strngrd1.RowCount-1 do
 for   Cols:=1 to strngrd1.ColCount-1 do

 // нумерация строчек
 T.Cell(iRows+3 ,1).Range.Text:= IntToStr(iRows ) + ".";
 

//ВОТ ДО ЭТОГО МОМЕНТА ВСЕ РАБОТАЕТ

//ЭТОТ КОД ТОЖЕ РАБОЧИЙ ТОЛЬКО ДОБАВЛЯЕТСЯ 1 СТРОКА
 {T.Cell(4,2).Range.Text:= strngrd1.Cells[0,1]+#13+ strngrd1.Cells[1,1]+#13+ strngrd1.Cells[2,1];

 T.Cell(4,3).Range.Text:= strngrd1.Cells[3,1];
 T.Cell(4,4).Range.Text:= strngrd1.Cells[4,1];
 T.Cell(4,5).Range.Text:= strngrd1.Cells[5,1];
 T.Cell(4,6).Range.Text:= strngrd1.Cells[6,1];
 T.Cell(4,7).Range.Text:= strngrd1.Cells[7,1]+","+#13+ strngrd1.Cells[8,1]+","+#13+ strngrd1.Cells[9,1];
 T.Cell(4,8).Range.Text:= strngrd1.Cells[10,1];
 T.Cell(4,9).Range.Text:= strngrd1.Cells[11,1]+#13+ strngrd1.Cells[12,1];
 T.Cell(4,10).Range.Text:= strngrd1.Cells[13,1];
 T.Cell(4,12).Range.Text:= strngrd1.Cells[14,1];
 T.Cell(4,13).Range.Text:= strngrd1.Cells[15,1];
 T.Cell(4,14).Range.Text:= strngrd1.Cells[16,1];
 T.Cell(4,15).Range.Text:= strngrd1.Cells[17,1];}

finally
end;
end;


Вопрос в том как добавлять все строки из Stringgrid, ведь их количество определяется как strngrd1.RowCount.

Все перерыл, ведь запускается цикл от 1
for   iRows:=1 to strngrd1.RowCount-1 do
например, делал вот так

T.Cell(iRows+3,3).Range.Text:= strngrd1.Cells[3,iRows-1];
//Тут  ошибка


Ребята посоветуйте пожалуйста или наведите на мысль


 
Максон ©   (2011-04-14 08:30) [24]


> например, делал вот такT.Cell(iRows+3,3).Range.Text:= strngrd1.
> Cells[3,iRows-1];//Тут  ошибка


при компиляции  выдает ошибку
[Warning] Elector.pas(367): FOR-Loop variable "iRows" may be undefined after loop


 
Dennis I. Komarov ©   (2011-04-14 09:02) [25]


> Ребята посоветуйте пожалуйста или наведите на мысль

...
прицыпились к MSWord со всеми приблудами;
иницилизировали индекс_строки
пока не вышли за предел строк в SG1 делать:
начало
Таблице в Word добавить строку;
Таблица.ячейка(X, последняя):=SG1.Sells[Y, индекс_строки];
(аналогично поступить) с другими
Inc(индекс_строки);
конец;
Корректно отцепились;


Все. Переводи.

> при компиляции  выдает ошибку

не вижу...


 
OW ©   (2011-04-14 09:26) [26]


> Dennis I. Komarov ©   (14.04.11 09:02) [25]
>
>


да он просто издевается, имхо.


 
Dennis I. Komarov ©   (2011-04-14 09:34) [27]


> OW ©   (14.04.11 09:26) [26]

Это ему не поможет... код сам писать будет ;)


 
Максон ©   (2011-04-14 09:39) [28]

Спасибо, Денис.
Заработало.  begin  и end поставил все пошло.
У меня теперь другой вопрос:
1. цикл по столбцам  обязательно делать. у меня количество столбцов фиксированное - их 20.
2. не могу разобраться с индексом строки

Ребята, вы уж меня извините за тупые вопросы я  чуть больше полгода на delphi подсел. Тяму не хватает


 
Dennis I. Komarov ©   (2011-04-14 09:56) [29]

1. Не обязательно.
2. Плохо, а чего с ним разбираться?


 
Максон ©   (2011-04-14 13:57) [30]

Столкнулся еще с одной проблемой
На форме есть Radiogroup пользователь вносит данные в edit-ы, выбирает из Radiogroup нужное событие "есть" или "нет" нажимает на кнопку и в Stringgrid вносится запись, далее после внесения всех данных, нажимает на кнопку "распечатать" и данные из Stringgrid экспортируются в шаблон таблицы word.
Теперь вопрос как сделать так чтобы данные из Stringgrid-а отображались в 2-х таблицах, те у кого есть событие "есть" отображались в таблице 1, а те у кого событие - "нет" в таблице 2.


procedure TForm2.DocbtnClick(Sender: TObject);
var
W, T, N: Variant;
iRows :Integer;
i:Integer;
// индекс строки
//x:string;
//s, r:Integer;
begin

W :=  CreateOleObject("Word.Application");

W.Visible:=True;
W.DisplayAlerts:=True;

try
 W.Documents.Open(GetCurrentDir +"\mmm.dot",EmptyParam,EmptyParam,EmptyParam,
                             EmptyParam,EmptyParam,EmptyParam,
                             EmptyParam,EmptyParam,EmptyParam);

    //  Д Л Я    С О Б Ы Т И Я   "ЕСТЬ"
//данные вносятся в ячейку Stringgrid, но в таблице не отображаются
 if strngrd1.Cells[18, strngrd1.RowCount-1]="есть" then
 begin //

 //  обозначение  таблицы ее номера
 T:=W.ActiveDocument.Tables.Item(1);
 // обозначение номера строки в определенной таблице
 N:=W.ActiveDocument.Tables.Item(1).Rows.Item(4);
 // запуск цикла строк  от 1 до последнего кол-ва в стринггриде
 for i:=1 to strngrd1.RowCount-1 do
 // добавление строк
  T.Rows.Add(N);
 // добавление строчек

 //запуск цикла по строкам и столбцам
 for   iRows:=1 to strngrd1.RowCount-1 do
 //for   Cols:=1 to strngrd1.ColCount-1 do
 begin
 // нумерация строчек
 T.Cell(iRows+3 ,1).Range.Text:= IntToStr(iRows ) + ".";

 

 T.Cell(iRows+3,2).Range.Text:= strngrd1.Cells[0,iRows+0]+#13+ strngrd1.Cells[1,iRows+0]+#13+ strngrd1.Cells[2,iRows+0];

 ////////////
 T.Cell(iRows+3,3).Range.Text:= strngrd1.Cells[3,iRows+0];
 T.Cell(iRows+3,4).Range.Text:= strngrd1.Cells[4,iRows+0];
 T.Cell(iRows+3,5).Range.Text:= strngrd1.Cells[5,iRows+0];
 T.Cell(iRows+3,6).Range.Text:= strngrd1.Cells[6,iRows+0];
 T.Cell(iRows+3,7).Range.Text:= strngrd1.Cells[7,iRows+0]+","+#13+ strngrd1.Cells[8,iRows+0]+","+#13+ strngrd1.Cells[9,iRows+0];
 T.Cell(iRows+3,8).Range.Text:= strngrd1.Cells[10,iRows+0];
 T.Cell(iRows+3,9).Range.Text:= strngrd1.Cells[11,iRows+0]+#13+ strngrd1.Cells[12,iRows+0];
 T.Cell(iRows+3,10).Range.Text:= strngrd1.Cells[13,iRows+0];
 T.Cell(iRows+3,12).Range.Text:= strngrd1.Cells[14,iRows+0];
 T.Cell(iRows+3,13).Range.Text:= strngrd1.Cells[15,iRows+0];
 T.Cell(iRows+3,14).Range.Text:= strngrd1.Cells[16,iRows+0];
 T.Cell(iRows+3,15).Range.Text:= strngrd1.Cells[17,iRows+0];

 end;
 end;

 //    Д Л Я   С О Б Ы Т И Я   "НЕТ"
 if strngrd1.Cells[18, strngrd1.RowCount-1]="нет" then
 begin //

 //  обозначение  таблицы ее номера
 T:=W.ActiveDocument.Tables.Item(2);
 // обозначение номера строки в определенной таблице
 N:=W.ActiveDocument.Tables.Item(2).Rows.Item(4);
 // запуск цикла строк  от 1 до последнего кол-ва в стринггриде
 for i:=1 to strngrd1.RowCount-1 do
 // добавление строк
  T.Rows.Add(N);
 // добавление строчек

 //запуск цикла по строкам и столбцам
 for   iRows:=1 to strngrd1.RowCount-1 do
 //for   Cols:=1 to strngrd1.ColCount-1 do
 begin
 // нумерация строчек
 T.Cell(iRows+3 ,1).Range.Text:= IntToStr(iRows ) + ".";

 

 T.Cell(iRows+3,2).Range.Text:= strngrd1.Cells[0,iRows+0]+#13+ strngrd1.Cells[1,iRows+0]+#13+ strngrd1.Cells[2,iRows+0];

 ////////////
 T.Cell(iRows+3,3).Range.Text:= strngrd1.Cells[3,iRows+0];
 T.Cell(iRows+3,4).Range.Text:= strngrd1.Cells[4,iRows+0];
 T.Cell(iRows+3,5).Range.Text:= strngrd1.Cells[5,iRows+0];
 T.Cell(iRows+3,6).Range.Text:= strngrd1.Cells[6,iRows+0];
 T.Cell(iRows+3,7).Range.Text:= strngrd1.Cells[7,iRows+0]+","+#13+ strngrd1.Cells[8,iRows+0]+","+#13+ strngrd1.Cells[9,iRows+0];
 T.Cell(iRows+3,8).Range.Text:= strngrd1.Cells[10,iRows+0];
 T.Cell(iRows+3,9).Range.Text:= strngrd1.Cells[11,iRows+0]+#13+ strngrd1.Cells[12,iRows+0];
 T.Cell(iRows+3,10).Range.Text:= strngrd1.Cells[13,iRows+0];
 T.Cell(iRows+3,12).Range.Text:= strngrd1.Cells[14,iRows+0];
 T.Cell(iRows+3,13).Range.Text:= strngrd1.Cells[15,iRows+0];
 T.Cell(iRows+3,14).Range.Text:= strngrd1.Cells[16,iRows+0];
 T.Cell(iRows+3,15).Range.Text:= strngrd1.Cells[17,iRows+0];

 end;
 end;
finally
end;
end;


Код рабочий, единственное что не могу сообразить почему он добавляет в таблицу по последней записи, т.е. если последняя запись с событием "есть", то он все данные из Stringgrid перегоняет в первую таблицу и наоборот. Видимо все дело в strngrd1.RowCount-1?
Посоветуйте пожалуйста как быть в данной ситуации?


 
Dennis I. Komarov ©   (2011-04-14 14:39) [31]


> Код рабочий, единственное что ...

Ужас, а не код, даже смотреть противно...

> Посоветуйте пожалуйста как быть в данной ситуации?

Выброси это чудо и переводи [25]


 
OW ©   (2011-04-14 14:57) [32]

Q:почему он добавляет в таблицу по последней записи
A:

>  if strngrd1.Cells[18, strngrd1.RowCount-1]="нет" then
>  begin //

перевод такой
если последняя строка, 18 столбец = "нет"
то, не даем расслабляться компу дальше..


 
Максон ©   (2011-04-15 09:37) [33]

Все равно не получается:(

if strngrd1.Cells[18, strngrd1.RowCount-1]="нет" then

Добавляются данные только в ту таблицу по событию последней строчки.

А как сделать чтоб  все строки с событием "есть" отражались в таблице1,
все строки с событием "нет" отражались в таблице 2.


 
Dennis I. Komarov ©   (2011-04-15 09:52) [34]

Не надо хранить данные в визуальных компонентах, создай хотя бы массив записей и храни (экспортируй) там.

З.Ы. Хотя о чем это я. Чукча писатель...


 
Максон ©   (2011-04-15 09:57) [35]


> З.Ы. Хотя о чем это я. Чукча писатель...

Денис я всегда за здоровую критику, но вот оскорблять не надо.
Основ  delphi не знаю, но очень хочу научится


 
Dennis I. Komarov ©   (2011-04-15 10:21) [36]

Ну так делай выводы...

З.Ы.
http://lurkmore.ru/%D7%F3%EA%F7%E0_%ED%E5_%F7%E8%F2%E0%F2%E5%EB%FC


 
OW ©   (2011-04-15 12:01) [37]


> Максон ©

все что надо
доступ к ячейке там
W :=  CreateOleObject("Word.Application");
try
  W.Documents.Open("C:\1.doc",EmptyParam,EmptyParam,EmptyParam,
                              EmptyParam,EmptyParam,EmptyParam,
                              EmptyParam,EmptyParam,EmptyParam);
  T := W.ActiveDocument.Tables.Item(1);
  T.Cell(1, 1).Range.Text := "qwer";

и
доступ к ячейке тут
for i := 0 to sg.rowcount - 1 do
for j := 0 to sg.colcount - 1 do
Showmessage(sg.cells[i,j]);


остальное - логика. Элементарная.
Денис и Ваш покорный, и любой другой программист, могли бы 150 раз написать все это, но это нужно сделать Вам самому. Если Вам, конечно, это надо - стать программистом
А если нет - какие проблемы.. Если я не могу трубу отлить/выкатать, я ее покапаю в магазине, готовую и красивую.


 
Максон ©   (2011-04-26 11:44) [38]

Здраствуйте, снова мучаюсь со Stringgrid-ом
При вводе в Stringgrid данных , например, 2 строки с событием "есть" и 2 строки с событием "нет" в 2-х таблицах ворд добавляются по 4 строки и нумерация идет дальше, в таблице1 нумерация 1,2 , в таблице 2 нумерация 3,4.
Подскажите, пожалуйста, что здесь неверно?

procedure TForm2.DocbtnClick(Sender: TObject);
var
W, T,L,M, N: Variant;
iRows :Integer;

begin

W :=  CreateOleObject("Word.Application");
W.Visible:=True;
W.DisplayAlerts:=True;

try
 W.Documents.Open(GetCurrentDir +"\mmm.dot",EmptyParam,EmptyParam,EmptyParam,
                             EmptyParam,EmptyParam,EmptyParam,
                             EmptyParam,EmptyParam,EmptyParam);
                 //  обозначение  таблицы ее номера
             T:=W.ActiveDocument.Tables.Item(1);
             // обозначение номера строки в определенной таблице
             N:=W.ActiveDocument.Tables.Item(1).Rows.Item(4);

             L:=W.ActiveDocument.Tables.Item(2);
             // обозначение номера строки в определенной таблице
             M:=W.ActiveDocument.Tables.Item(2).Rows.Item(4);

 //запуск цикла по строкам, т.к. количество столбцов фиксировано
     for   iRows:=1 to strngrd1.RowCount-1 do
     begin
              T.Rows.Add(N);//добавление строк в таблице 1
              L.Rows.Add(M);//добавление строк в таблице 2
//если 19 колонка и строка = "есть" тогда
         if strngrd1.Cells[19, iRows]="есть" then
         begin

//нумерация строкв таблице 1
             T.Cell(iRows+3 ,1).Range.Text:= IntToStr(iRows) + ".";
//заполнение таблицы данными
//.....
             end;
//если 19 колонка   и строка = "нет" тогда
             if strngrd1.Cells[19, iRows]="нет" then
             begin

//нумерация строк в таблице 2
               L.Cell(iRows+3 ,1).Range.Text:= IntToStr(iRows) + ".";
//заполнение таблицы данными
             end;
 

       end;

finally
end;
end;


 
brother ©   (2011-04-26 11:48) [39]

> if strngrd1.Cells[19, iRows]="есть" then


> if strngrd1.Cells[19, iRows]="нет" then

какое будет поведение если там бкдет стоять, например: Есть/Нет?


 
Максон ©   (2011-04-26 11:58) [40]

Если будет стоять "есть", то все  строки  strngrd1.Cells[19, iRows] должны отображаться в таблице1, а если "нет" , то в таблице2.



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

Форум: "Начинающим";
Текущий архив: 2011.08.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.59 MB
Время: 0.004 c
15-1303072193
Юрий
2011-04-18 00:29
2011.08.07
С днем рождения ! 18 апреля 2011 понедельник


15-1302985795
Юрий
2011-04-17 00:29
2011.08.07
С днем рождения ! 17 апреля 2011 воскресенье


15-1303158594
Юрий
2011-04-19 00:29
2011.08.07
С днем рождения ! 19 апреля 2011 вторник


15-1302754323
И. Павел
2011-04-14 08:12
2011.08.07
ABBYY тормозит мою программу. Не пойму, каким образом...


2-1304174015
flesher
2011-04-30 18:33
2011.08.07
SQLite + Zeos. input parameter count is less then expected





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский