Добрый день! подскажите, пожалуйста, какие есть функции чтобы експортировать данные напрямую в Ексель, в шаблон(шаблоны будут загружены в детальку "Файлы" воркспейса "Библиотека").
Зарание спасибо.
Нравится
Здравствуйте!
В Terrasoft CRM CRM появилась возможность создания отчётов в MS Excel и MS Word (на соновании шаблона).
Все отчёты, которые регистрируются в системы в разделе [Отчёты] прикрепляются к нужному разделу в свойствах при создании записи отчёта.
Обратите внимание, что все отчёты строятся на основании ранее созданного запроса в разделе [Запросы], вытянув нужные поля.
В данный момент можно сделать отчёт на основании шаблона MS Word или просто создать отчёт в MS Excel на основании запроса.
Более подробно можете ознакомиться с данной функциональностью в руководстве пользователя.
Terrasoft Support Team
Это все канечно хорошо....но мне нужно открыть уже существующий Ексель файл в котором уже есть все записи и поля с записями и названиями....мне нужно всместо, например, поля з записю SaleTotal записать информацию из датасета,или просто какую-нибуть инфу. Как именно открыть ексель файл и получить доступ к его полям?
Если говорить о отчете такого вида как вы указали в аттаче - то вам будет проще это сделать через кубы или на крайний случай через сводную таблицу в Excel.
Второй вариант - выгружать данные на скрытый лист и нужный вид формировать макросами из шаблона
Здравствуйте!
Приводим ниже код скрипта из проекта, в котором реализована работа с шаблоном MS Excel, присвоение полей ячейкам и сохранение на закладку "Файлы".
function GenerateSupplierSuggestion(Dataset) {
var TenderID = Dataset.Values('ID');
var TenderNumber = Dataset.Values('TenderNumber');
var StartDate = Dataset.Values('StartDate');
var FinishDate = Dataset.Values('FinishData');
var TempModelFileID = GetFileID('SupplierSuggestion');
var FileName = TenderNumber + '.xls';
var TempModelFilePath = LoadFileFromDatabase(TempModelFileID, FileName, true);
var ExcelApplication = GetXLSApp();
var WorkBook = ExcelApplication.WorkBooks.Open(TempModelFilePath);
var Sheet = WorkBook.ActiveSheet;
var Sheets = WorkBook.Sheets;
System.BeginProcessing();
try {
// Create Excel file
Sheet = Sheets('Приглашение на тендер');
Sheet.Range('C4') = TenderNumber;
Sheet.Range('C5') = StartDate;
Sheet.Range('C6') = FinishDate;
var OfferingInTenderDataset= GetOfferingInTenderDataset();
EnableAllFilters(OfferingInTenderDataset.SelectQuery.Items(0).Filters, false);
ApplyDatasetFilter(OfferingInTenderDataset, 'TenderID', TenderID, true);
OfferingInTenderDataset.Open();
OfferingInTenderDataset.GotoFirst();
var ScheduleDataset = GetScheduleDataset();
EnableDatasetFilters(ScheduleDataset, false);
var RowIndexOut = 9;
var RowIndexIn = 17;
while (!OfferingInTenderDataset.IsEOF) {
ScheduleDataset.Close();
ApplyDatasetFilter(ScheduleDataset, 'TenderID', TenderID, true);
var OfferingInTenderID = OfferingInTenderDataset.Values('ID');
ApplyDatasetFilter(ScheduleDataset, 'OfferingInTenderID', OfferingInTenderID, true);
ScheduleDataset.Open();
if (!ScheduleDataset.IsEmptyPage) {
var ProductCode = OfferingInTenderDataset.Values('ProductCode');
var ProductType = OfferingInTenderDataset.DataFields('ProductTypeID').DisplayValue;
var ProductProfile = OfferingInTenderDataset.DataFields('ProductProfileID').DisplayValue;
var Product = OfferingInTenderDataset.DataFields('ProductID').DisplayValue;
var ProductUnits = OfferingInTenderDataset.DataFields('ProductUnitsID').DisplayValue;
var TotalCount = OfferingInTenderDataset.Values('TotalCount');
var Currency = 'UAH';
// Copy Page ---------------------------------------------------
Sheets('Продукт').Copy(Sheets('Продукт'));
var Index = Sheets('Продукт').Index;
var CopySheetName = GetOfferingPageName(ProductCode);
// var CopySheetName = 'Продукт' + ' ' + ProductCode;
var CopySheet = Sheets(Index-1);
CopySheet.Name = CopySheetName;
// Page --- Приглашение на тендер ------------------------------
Sheet = Sheets('Приглашение на тендер');
Sheet.Range('B'+RowIndexOut) = ProductCode;
Sheet.Range('C'+RowIndexOut) = ProductType;
Sheet.Range('D'+RowIndexOut) = ProductProfile;
Sheet.Range('E'+RowIndexOut) = Product;
Sheet.Range('F'+RowIndexOut) = ProductUnits;
Sheet.Range('G'+RowIndexOut) = TotalCount;
Sheet.Range('H'+RowIndexOut) = Currency;
Sheet.Select();
var SelectSheetName = 'B'+RowIndexOut+':H'+RowIndexOut;
WorkBook.ActiveSheet.Hyperlinks.Add(ExcelApplication.Range(SelectSheetName),
'', '\''+ CopySheetName + '\'!A1', "Перейти на продукт");
RowIndexOut++;
// Page --- Заявка на тендер -----------------------------------
Sheet = Sheets('Заявка на тендер');
Sheet.Range('B'+RowIndexIn) = ProductCode;
Sheet.Range('C'+RowIndexIn) = ProductType;
Sheet.Range('D'+RowIndexIn) = ProductProfile;
Sheet.Range('E'+RowIndexIn) = Product;
Sheet.Range('F'+RowIndexIn) = ProductUnits;
var FormatFormula = '=\'' + CopySheetName + '\'!%1';
Sheet.Range('G'+RowIndexIn).Formula = FormatStr(FormatFormula, 'H4');
Sheet.Range('H'+RowIndexIn).Formula = FormatStr(FormatFormula, 'H5');
Sheet.Range('I'+RowIndexIn).Formula = FormatStr(FormatFormula, 'H6');;
Sheet.Range('J'+RowIndexIn) = Currency;
Sheet.Select();
var SelectSheetName = 'B'+RowIndexIn+':J'+RowIndexIn;
WorkBook.ActiveSheet.Hyperlinks.Add(ExcelApplication.Range(SelectSheetName),
"", '\''+ CopySheetName + '\'!A1', "Перейти на продукт");
RowIndexIn++;
// Page --- Продукт + [Код продукта] ---------------------------
Sheet = CopySheet;
Sheet.Range('C3') = ProductCode;
Sheet.Range('C4') = ProductType;
Sheet.Range('C5') = ProductProfile;
Sheet.Range('C6') = Product;
Sheet.Range('C7') = ProductUnits;
Sheet.Range('C8') = TotalCount;
Sheet.Range('C9') = Currency;
ScheduleDataset.GotoFirst();
var i = 13;
while (!ScheduleDataset.IsEOF) {
Sheet.Range('B'+i) = ScheduleDataset.Values('Date');
Sheet.Range('C'+i) = ScheduleDataset.Values('Count');
Sheet.Range('D'+i) = ScheduleDataset.Values('Comment');
ScheduleDataset.GotoNext();
i++;
}
}
OfferingInTenderDataset.GotoNext();
}
// Delete form page ----------------------------------------------------
ExcelApplication.DisplayAlerts = false;
ExcelApplication.Worksheets('Продукт').Delete();
ExcelApplication.DisplayAlerts = true;
} finally {
OfferingInTenderDataset.Close();
ScheduleDataset.Close();
System.EndProcessing();
}
DeleteFile(FileName);
// File saving
var TempFilePath = GetBaseTemporaryFileName(FileName);
WorkBook.SaveAs(TempFilePath);
WorkBook.Close(false);
var FileID = Connector.GenGUID();
var FileDataset = GetFileToBase();
FileDataset.DisableEvents();
try {
FileDataset.Append();
FileDataset.ValAsStr('ID') = FileID;
FileDataset.ValAsStr('ItemTypeID') = ft_File;
FileDataset.ValAsStr('Link') = FileName;
FileDataset.ValAsInt('Revision') = 1;
FileDataset.Post();
} finally {
FileDataset.EnableEvents();
}
SaveFileToDatabase(FileID, TempFilePath);
var InsertQuery = GetFileInTenderInsert();
InsertQuery.ColumnsValues.ItemsByName('IsActionFile').Value = 1;
InsertQuery.ColumnsValues.ItemsByName('FileID').Value = FileID;
InsertQuery.ColumnsValues.ItemsByName('TenderID').Value = TenderID;
InsertQuery.ColumnsValues.ItemsByName('ID').Value = Connector.GenGUID();
InsertQuery.Execute();
}
Terrasoft Support Team