| 742 | */ |
| 743 | template<typename T> |
| 744 | void SetColumn(const size_t pColumnIdx, const std::vector<T>& pColumn) |
| 745 | { |
| 746 | const size_t dataColumnIdx = GetDataColumnIndex(pColumnIdx); |
| 747 | |
| 748 | while (GetDataRowIndex(pColumn.size()) > GetDataRowCount()) |
| 749 | { |
| 750 | std::vector<std::string> row; |
| 751 | row.resize(GetDataColumnCount()); |
| 752 | mData.push_back(row); |
| 753 | } |
| 754 | |
| 755 | if ((dataColumnIdx + 1) > GetDataColumnCount()) |
| 756 | { |
| 757 | for (auto itRow = mData.begin(); itRow != mData.end(); ++itRow) |
| 758 | { |
| 759 | if (std::distance(mData.begin(), itRow) >= mLabelParams.mColumnNameIdx) |
| 760 | { |
| 761 | itRow->resize(GetDataColumnIndex(dataColumnIdx + 1)); |
| 762 | } |
| 763 | } |
| 764 | } |
| 765 | |
| 766 | Converter<T> converter(mConverterParams); |
| 767 | for (auto itRow = pColumn.begin(); itRow != pColumn.end(); ++itRow) |
| 768 | { |
| 769 | std::string str; |
| 770 | converter.ToStr(*itRow, str); |
| 771 | mData.at(static_cast<size_t>(std::distance(pColumn.begin(), itRow) + mLabelParams.mColumnNameIdx + 1)).at( |
| 772 | dataColumnIdx) = str; |
| 773 | } |
| 774 | } |
| 775 | |
| 776 | /** |
| 777 | * @brief Set column by name. |
no test coverage detected