Пример #1
0
        private void PrintActs()
        {
            if (RequestList.Count == 0)
            {
                MessageBox.Show("Нельзя экспортировать пустой список!", "Ошибка");
                return;
            }
            try
            {
                var saveDialog = new SaveFileDialog();
                saveDialog.AddExtension = true;
                saveDialog.DefaultExt   = ".doc";
                saveDialog.Filter       = "Word файл|*.doc";
                if (saveDialog.ShowDialog() == true)
                {
                    var fileName = saveDialog.FileName;
                    if (fileName.EndsWith(".doc"))
                    {
                        var stiReport = new StiReport();
                        stiReport.Load("templates\\act.mrt");
                        var requestsDto = RequestList.Select(x => new
                        {
                            RequestNumber = x.Id,
                            Address       = x.FullAddress,
                            ClientName    = x.MainFio,
                            ClientPhones  = x.ContactPhones,
                            ParentService = x.ParentService,
                            Service       = x.Service,
                        }).ToArray();
                        StiOptions.Engine.HideRenderingProgress = true;
                        //StiOptions.Engine.HideExceptions = true;
                        StiOptions.Engine.HideMessages = true;


                        stiReport.RegBusinessObject("", "Acts", requestsDto);
                        stiReport.Render();
                        var reportStream = new MemoryStream();
                        stiReport.ExportDocument(StiExportFormat.Rtf, reportStream);
                        //stiReport.ExportDocument(StiExportFormat.Pdf, reportStream);
                        reportStream.Position = 0;
                        File.WriteAllBytes(fileName, reportStream.GetBuffer());

                        MessageBox.Show("Данные сохранены в файл\r\n" + fileName);
                    }
                }
            }
            catch
            (Exception exc)
            {
                MessageBox.Show("Произошла ошибка:\r\n" + exc.Message);
            }
        }