Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Всем привет. Бъюсь и не могу 2й день решить задачу. Есть таблица с3мя столбцами. В столбце B всегда рандомный текст. Как удалить строки с совпадением всех ячеек, игнорируя столбец B? (как на скрине совпадают строка 1 и 4). Желательно решение кубиками, помогите.
var tbl = project.Tables["tbl"];
tbl.Clear(); // это для полной очистки экспериментальной таблицы в PM т.к я ее заполняю сдесь же, для реальной таблицы не применять (!!!!), а то будет чистится на каждом запуске
tbl.ColSeparator = "\t";
// зваолняем эксперименталотную таблицу
tbl.AddRow("aaa"+"\t"+"sdfsfsfas"+"\t"+"bbb");
tbl.AddRow("ccc"+"\t"+"dfge5bcss"+"\t"+"ddd");
tbl.AddRow("aaa"+"\t"+"sdfsfdsa33"+"\t"+"bbb");
tbl.AddRow("vvv"+"\t"+"dfge5bcss"+"\t"+"bbbb");
List<int> indexes = new List<int>();
for(int i=0; i<tbl.RowCount; i++){
var row1 = tbl.GetRow(i).ToList();
string x1 = row1[0]+row1[2];
for(int j=0; j<tbl.RowCount; j++){
if ( i != j ){
var row2 = tbl.GetRow(j).ToList();
string x2 = row2[0]+row2[2];
if ( x1 == x2){
if ( indexes.IndexOf(i) == -1 )
indexes.Add(i);
if ( indexes.IndexOf(j) == -1 )
indexes.Add(j);
}
}
}
}
indexes.Sort();
indexes.Reverse();
for(int i=0; i<indexes.Count; i++){
int index = indexes[i];
tbl.DeleteRow(index);
}
var tbl = project.Tables["tbl"];
tbl.Clear(); // это для полной очистки экспериментальной таблицы в PM т.к я ее заполняю сдесь же, для реальной таблицы не применять (!!!!), а то будет чистится на каждом запуске
tbl.ColSeparator = "\t";
// зваолняем эксперименталотную таблицу
tbl.AddRow("aaa"+"\t"+"sdfsfsfas"+"\t"+"bbb");
tbl.AddRow("ccc"+"\t"+"dfge5bcss"+"\t"+"ddd");
tbl.AddRow("aaa"+"\t"+"sdfsfdsa33"+"\t"+"bbb");
tbl.AddRow("vvv"+"\t"+"dfge5bcss"+"\t"+"bbbb");
List<int> indexes = new List<int>();
for(int i=0; i<tbl.RowCount; i++){
var row1 = tbl.GetRow(i).ToList();
string x1 = row1[0]+row1[2];
for(int j=0; j<tbl.RowCount; j++){
if ( i != j ){
var row2 = tbl.GetRow(j).ToList();
string x2 = row2[0]+row2[2];
if ( x1 == x2){
if ( indexes.IndexOf(i) == -1 )
indexes.Add(i);
if ( indexes.IndexOf(j) == -1 )
indexes.Add(j);
}
}
}
}
indexes.Sort();
indexes.Reverse();
for(int i=0; i<indexes.Count; i++){
int index = indexes[i];
tbl.DeleteRow(index);
}
1) Создать в PM таблицу, указать путь к файлу, поставить галки загржать из файла, сохранять изменения таблицы в файл, тип .xls, xlsx, ... дать таблице название ( в моем примере она называется tbl )
2) Положить в кубик C# код что я кидал выше, кроме этих строк (их просто удалить)
C#:
tbl.Clear(); // это для полной очистки экспериментальной таблицы в PM т.к я ее заполняю сдесь же, для реальной таблицы не применять (!!!!), а то будет чистится на каждом запуске
tbl.ColSeparator = "\t";
// зваолняем эксперименталотную таблицу
tbl.AddRow("aaa"+"\t"+"sdfsfsfas"+"\t"+"bbb");
tbl.AddRow("ccc"+"\t"+"dfge5bcss"+"\t"+"ddd");
tbl.AddRow("aaa"+"\t"+"sdfsfdsa33"+"\t"+"bbb");
tbl.AddRow("vvv"+"\t"+"dfge5bcss"+"\t"+"bbbb");
3) если таблица называется не tbl, а как-то по другому, то подправить на нужное ... например для названия supertable будет так
C#:
var tbl = project.Tables["supertable"];
3) Все готово. Можно выполнить кубик и посмотреть на изменения в таблице. Кстати, изменения в файле иногда происходят в PM/ZP с небольшой задержкой (изначально все быстро меняется в памяти и новые данные сразу же доступны, но в файл изменения скидываются не сразу, а через сколько-то секунд) т.ч смотреть на изменения в файле нужно спустя секунд 5 после отработки кубика, что бы PM точно успел его переписать
1) Создать в PM таблицу, указать путь к файлу, поставить галки загржать из файла, сохранять изменения таблицы в файл, тип .xls, xlsx, ... дать таблице название ( в моем примере она называется tbl )
2) Положить в кубик C# код что я кидал выше, кроме этих строк (их просто удалить)
C#:
tbl.Clear(); // это для полной очистки экспериментальной таблицы в PM т.к я ее заполняю сдесь же, для реальной таблицы не применять (!!!!), а то будет чистится на каждом запуске
tbl.ColSeparator = "\t";
// зваолняем эксперименталотную таблицу
tbl.AddRow("aaa"+"\t"+"sdfsfsfas"+"\t"+"bbb");
tbl.AddRow("ccc"+"\t"+"dfge5bcss"+"\t"+"ddd");
tbl.AddRow("aaa"+"\t"+"sdfsfdsa33"+"\t"+"bbb");
tbl.AddRow("vvv"+"\t"+"dfge5bcss"+"\t"+"bbbb");
3) если таблица называется не tbl, а как-то по другому, то подправить на нужное ... например для названия supertable будет так
C#:
var tbl = project.Tables["supertable"];
3) Все готово. Можно выполнить кубик и посмотреть на изменения в таблице. Кстати, изменения в файле иногда происходят в PM/ZP с небольшой задержкой (изначально все быстро меняется в памяти и новые данные сразу же доступны, но в файл изменения скидываются не сразу, а через сколько-то секунд) т.ч смотреть на изменения в файле нужно спустя секунд 5 после отработки кубика, что бы PM точно успел его переписать