markdown 更多信息请访问我们的相关信息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown 更多信息请访问我们的相关信息相关的知识,希望对你有一定的参考价值。

Функция возвращает таблицу значений с колонками, имена которых заданы в списке колонок. Далее по этой ТЗ легко заполнить, например, табличную часть используя ЗаполнитьЗначенияСвойств().
    
```
&НаСервере
// Функция загружает данные из указанного dbf файла в таблицу значений.
// Параметры:
//  ИмяФайла - строка - полный путь к файлу.
//  Кодировка - КодировкаXBase.
//  СписокКолонок - СписокЗначений - список колонок, которые будут прочитаны,
//      СписокКолонок.Значение - имя колонки в dbf файле,
//      СписокКолонок.Представление - имя колонки в таблице значений,
//      СписокКолонок.Пометка - читать колонку из файла; истина = читать,
//      ложь = колонка будет создана в итоговой ТЗ, но не заполнена.
//
Функция ЗаполнитьТЗизDBF(ИмяФайла, Кодировка, СписокКолонок)
    
    // Открытие файла данных
    ФайлДанных = Новый XBase(ИмяФайла);
    ФайлДанных.Кодировка = Кодировка;
    Если Не ФайлДанных.Открыта() Тогда
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = "Не удалось открыть файл " + ИмяФайла;
        Сообщение.Сообщить();
        Возврат Неопределено;
    КонецЕсли;
    
    // Переменные и объекты, что бы не создавать постоянно в цикле
    ОписаниеБулево = Новый ОписаниеТипов("Булево");
    ОписаниеДаты = Новый ОписаниеТипов("Дата",,, Новый КвалификаторыДаты(ЧастиДаты.Дата));
    
    // Создание таблицы значений
    ТабЗнач = Новый ТаблицаЗначений;
    Для Каждого Поле из ФайлДанных.Поля Цикл
        Колонка = СписокКолонок.НайтиПоЗначению(Поле.Имя);
        Если Колонка <> Неопределено Тогда
            Если Поле.Тип = "L" Тогда
                Тип = ОписаниеБулево;
            ИначеЕсли Поле.Тип = "D" Тогда
                Тип = ОписаниеДаты;
            ИначеЕсли (Поле.Тип = "N") ИЛИ (Поле.Тип = "F") Тогда
                Тип = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(Поле.Длина, Поле.Точность));
            Иначе
                Тип = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(Поле.Длина));
            КонецЕсли;
            ТабЗнач.Колонки.Добавить(Колонка.Представление, Тип);
        КонецЕсли;
    КонецЦикла;
    
    // Заполнение строк таблицы
    Если (ТабЗнач.Колонки.Количество() <> 0) И (ФайлДанных.Первая()) Тогда
        Пока Истина Цикл
            СтрокаТаб = ТабЗнач.Добавить();
            Для Каждого Поле из ФайлДанных.Поля Цикл
                Колонка = СписокКолонок.НайтиПоЗначению(Поле.Имя);
                Если (Колонка <> Неопределено) И Колонка.Пометка Тогда
                    СтрокаТаб[Колонка.Представление] = ФайлДанных[Поле.Имя];
                КонецЕсли;
            КонецЦикла;
            Если Не ФайлДанных.Следующая() Тогда Прервать; КонецЕсли;
        КонецЦикла;
    КонецЕсли;
        
    ФайлДанных.ЗакрытьФайл();
    Возврат ТабЗнач;
КонецФункции
```

以上是关于markdown 更多信息请访问我们的相关信息的主要内容,如果未能解决你的问题,请参考以下文章

javascript 更多信息,请查看更多相关信息

javascript 更多信息,请访问

php 更多信息,请访问

php 更多信息,请访问

php 更多信息,请访问

php 更多信息,请访问