Куда вставить цикл?
Есть Вордовский документ с таблицей. Я хотела пробежаться по строкам таблицы и по заданному критерию осуществить объединение столбцов по строкам.
Критерий в конкретном случае такой: если в 1 и 2 стролбце i-й строки есть текст, во 2 столбце последующей строки также он присутствует, а в ячейке 1 столбца i+1 строки текст отсутствует, то за этим следует объединение ячеек построчно.
Код:
for (int i=1; i <=rows_count; i++) {
int flag_fld1=Trim(AnsiString(fld1)).Length();
int flag_fld2=Trim(AnsiString(fld2)).Length();
int flag_fld11_1=Trim(AnsiString(fld11_1)).Length();
int flag_fld21_1=Trim(AnsiString(fld21_1)).Length();
for(int j=1; j <=col_count; j++) {
if (flag_fld1>0 && flag_fld2>0 && flag_fld11_1 ==0 && flag_fld21_1>0) {
Variant start_cell = Tables3.OleFunction("Cell",i,j);
Variant end_cell = Tables3.OleFunction("Cell",i+1,j);
start_cell.OleProcedure("Merge",end_cell);
}
}
int flag_fld1=Trim(AnsiString(fld1)).Length();
int flag_fld2=Trim(AnsiString(fld2)).Length();
int flag_fld11_1=Trim(AnsiString(fld11_1)).Length();
int flag_fld21_1=Trim(AnsiString(fld21_1)).Length();
for(int j=1; j <=col_count; j++) {
if (flag_fld1>0 && flag_fld2>0 && flag_fld11_1 ==0 && flag_fld21_1>0) {
Variant start_cell = Tables3.OleFunction("Cell",i,j);
Variant end_cell = Tables3.OleFunction("Cell",i+1,j);
start_cell.OleProcedure("Merge",end_cell);
}
}
Но у меня пробежка по таблице идет однократно. Как заставить еще раз пробежаться по таблице, чтобы еще раз проверить ее на выполнение условия. И так до тех пор, пока строк, подходящих под условие не останется.
Нужно бы начинать с конца и тогда хватит только одного прохода.
Цитата:
Originally posted by 123tk
Нужно бы начинать с конца и тогда хватит только одного прохода.
Нужно бы начинать с конца и тогда хватит только одного прохода.
Не поняла.:???: А как это будет выглядеть?