Как в таблице сделать первую строку названиями столбцов

nikatin72

Client
Регистрация
16.12.2016
Сообщения
123
Благодарностей
18
Баллы
18
Добрый вечер , подскажите как сделать что бы в таблице в первом стобце шло наименование столбцов допустим А1 Имя , В1 Фамилия, С1 отчество ?
 

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 763
Благодарностей
1 391
Баллы
113
а в чем собственно сложность? при создании блока таблица ставьте в настройках что первая строка - заголовки и пишите строку если данных нет
 

nikatin72

Client
Регистрация
16.12.2016
Сообщения
123
Благодарностей
18
Баллы
18
а в чем собственно сложность? при создании блока таблица ставьте в настройках что первая строка - заголовки и пишите строку если данных нет
поставил что первая строка заголовок но это не помогло , а под словом пишешь строку вы имеете ввиду {-string.Spase-} написать и всё?
 

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 763
Благодарностей
1 391
Баллы
113
заголовок это обычная строка таблицы .. её и нужно написать
например так ... это на c#

project.Tables["mytable"].AddRow("firstname"+"\t"+"lastname"+"\t"+"patronymic");

в результате запишется строка таблицы состоящая из 3-х столбцов .. по умолчанию они разделяются символом \t (табуляция)
 

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 763
Благодарностей
1 391
Баллы
113
при этом заголовк никак не будет отличаться от остальных строк т.е не будет выделен цветом или жирностью какой-то итд .... обычная строка ... просто при чтении из такой таблицы ZP не будет ее возвращать в результате, она не будет участвовать в подсчете строк
 
  • Спасибо
Реакции: nikatin72

nikatin72

Client
Регистрация
16.12.2016
Сообщения
123
Благодарностей
18
Баллы
18
при этом заголовк никак не будет отличаться от остальных строк т.е не будет выделен цветом или жирностью какой-то итд .... обычная строка ... просто при чтении из такой таблицы ZP не будет ее возвращать в результате, она не будет участвовать в подсчете строк
с чего лучше начать изучать C#?
 

nikatin72

Client
Регистрация
16.12.2016
Сообщения
123
Благодарностей
18
Баллы
18
при этом заголовк никак не будет отличаться от остальных строк т.е не будет выделен цветом или жирностью какой-то итд .... обычная строка ... просто при чтении из такой таблицы ZP не будет ее возвращать в результате, она не будет участвовать в подсчете строк
с твоим кодом всё получилось,спасибо.
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 415
Благодарностей
5 454
Баллы
113
заголовок это обычная строка таблицы .. её и нужно написать
например так ... это на c#

project.Tables["mytable"].AddRow("firstname"+"\t"+"lastname"+"\t"+"patronymic");

в результате запишется строка таблицы состоящая из 3-х столбцов .. по умолчанию они разделяются символом \t (табуляция)
Может подскажешь, иногда у меня не срабатывает разделитель в экшене в таблицу. Сразу много строк записываю за раз и 5% примерно с ошибками. Если по одной строке записывать через шарп и лочить, то может исправит ситуацию? Проблема только с одной ячейкой, в ней много текста, всяких табуляций.

Пример записи
1|2|много текста|4|5
1|2|много текста|4|5
1|2|много текста|4|5
1|2|много текста|4|5
1|2|много текста|4|5

и так неск тысяч строк.
 

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 763
Благодарностей
1 391
Баллы
113
Может подскажешь, иногда у меня не срабатывает разделитель в экшене в таблицу. Сразу много строк записываю за раз и 5% примерно с ошибками. Если по одной строке записывать через шарп и лочить, то может исправит ситуацию? Проблема только с одной ячейкой, в ней много текста, всяких табуляций.

Пример записи
1|2|много текста|4|5
1|2|много текста|4|5
1|2|много текста|4|5
1|2|много текста|4|5
1|2|много текста|4|5

и так неск тысяч строк.
может там в тексте разделитель встречается?

на c# с локом можно попробовать
будет примерно такой код

Код:
var result = project.Lists["result"]; // список с данными для записи в таблицу ... в каждой строке данные разделены символом |

lock(SyncObjects.TableSyncer){
    for(int i=0; i<result.Count; i++){
        var data = result[i].Split(new string[]{"|"},StringSplitOptions.None);
        project.Tables["mytable"].AddRow(data[0]+"\t"+data[1]+"\t"+data[2]+"\t"+data[3]+"\t"+data[4]);
    }
}
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 415
Благодарностей
5 454
Баллы
113

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 763
Благодарностей
1 391
Баллы
113
Разделителя нету 100%, мне orka13 как раз посоветовал попробовать на шарпе и использовать другой разделитель.
можно и с другим разделеителем попробовать

Код:
var mytable = project.Tables["mytable"]; // таблица в которую записываем
mytable.ColSeparator = "~||~"; // задаем свой разделитель ячеек таблицы
var result = project.Lists["result"]; // список с данными для записи в таблицу ... в каждой строке данные так же разделены символом ~||~

lock(SyncObjects.TableSyncer){
    for(int i=0; i<result.Count; i++){
        var data = result[i].Split(new string[]{"~||~"},StringSplitOptions.None);
        mytable.AddRow(data[0]+"~||~"+data[1]+"~||~"+data[2]+"~||~"+data[3]+"~||~"+data[4]);
    }
}
 
  • Спасибо
Реакции: Mikhail B.

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 415
Благодарностей
5 454
Баллы
113

nikatin72

Client
Регистрация
16.12.2016
Сообщения
123
Благодарностей
18
Баллы
18
а в чем собственно сложность? при создании блока таблица ставьте в настройках что первая строка - заголовки и пишите строку если данных нет
А как сделать что бы ширина столбца менялась в зависимости от содержимого ячейки .
Вот тут не понимаю что делать
public DataGridViewAutoSizeColumnsMode AutoSizeColumnsMode { get; set; }
 

nikatin72

Client
Регистрация
16.12.2016
Сообщения
123
Благодарностей
18
Баллы
18
можно и с другим разделеителем попробовать

Код:
var mytable = project.Tables["mytable"]; // таблица в которую записываем
mytable.ColSeparator = "~||~"; // задаем свой разделитель ячеек таблицы
var result = project.Lists["result"]; // список с данными для записи в таблицу ... в каждой строке данные так же разделены символом ~||~

lock(SyncObjects.TableSyncer){
    for(int i=0; i<result.Count; i++){
        var data = result[i].Split(new string[]{"~||~"},StringSplitOptions.None);
        mytable.AddRow(data[0]+"~||~"+data[1]+"~||~"+data[2]+"~||~"+data[3]+"~||~"+data[4]);
    }
}
при этом заголовк никак не будет отличаться от остальных строк т.е не будет выделен цветом или жирностью какой-то итд .... обычная строка ... просто при чтении из такой таблицы ZP не будет ее возвращать в результате, она не будет участвовать в подсчете строк
строка с заголовками копируется постоянно копируется как этого избежать ?
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
Я перед записью таблицы в файл делаю ее конвертацию в "мульти-строку" через кубик C#:
C#:
// get table by name "Table_1"
IZennoTable table = project.Tables["Table_1"];
// convert table to string
return table.ToString();
Потом при записи файла проверяю: если файл уже есть, то шаб просто дописывает строки, если его нет, то создает файл записывая строку заголовков столбцов, а уже после нее мульти-строку с данными ({-String.Tab-} - это разделитель столбцов в таблице в виде пробельного таба, вы там свой укажите).
 
Последнее редактирование:

nikatin72

Client
Регистрация
16.12.2016
Сообщения
123
Благодарностей
18
Баллы
18
Я перед записью таблицы в файл делаю ее конвертацию в "мульти-строку" через кубик C#:
C#:
// get table by name "Table_1"
IZennoTable table = project.Tables["Table_1"];
// convert table to string
return table.ToString();
Потом при записи файла проверяю: если файл уже есть, то шаб просто дописывает строки, если его нет, то создает файл записывая строку заголовков столбцов, а уже после нее мульти-строку с данными ({-String.Tab-} - это разделитель столбцов в таблице в виде пробельного таба, вы там свой укажите).
Спасибо за информацию
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)