Обнаруженные баги в Fastreport .net

2456715

Комментарии

  • отредактировано 06:39
    Добрый день.

    Обнаружили несколько ошибок:

    1. Если подключать источник данных через Rep.RegisterData(List, ... ), где public class List: BindingList<System.Xml.XmlElement>, ITypedList, не отображаются поля типа Image (Bitmap) - хотя при Биндинге этого источника к любым объектом, отображающим DataSet, все нормально.

    2. При подключении событий через инспектор свойств, собития слетают. В коде есть текс события, а в инспекторе нет, и соответственно потом эти события не обрабатываюся.

    3. В редакторе кода Ctrl+C, Ctrl+V то работает, то нет закономерность не определии.

    4. если загружать шаблон отчета динамически, не восстанавливаются, приходитс делать так
                    Rep.Load(LocalFileName);
    
                    string refs = doc.DocumentElement.GetAttribute("ReferencedAssemblies").Replace("\r\n", "|").Trim();
                    if (refs != "")
                        Rep.ReferencedAssemblies = refs.Split('|');
                    refs = doc.DocumentElement.GetAttribute("ScriptText").Trim();
                    if (refs != "")
                        Rep.ScriptText = refs;
    


    Самое неприятное, конечно п.1
  • отредактировано 06:39
    Здравствуйте,

    1) можете прислать тестовое приложение? Я пробовал добавлять поле типа Image в бизнес-объект из демки, все работает.
    2) поправил.
    3) можете привести последовательность действий?
    4) что именно "не восстанавливаются"?
  • отредактировано 06:39
    RichText не отображается при просмотре - это просто не доделано?

    При экспорте в PDF RichText как и в VCL будет выводиться картинкой?
  • отредактировано 06:39
    Здравствуйте,

    А как же отчет "General|Mail merge"? Там RichText и все отображается.
    RichText во всех экспортах будет в виде картинки.
  • отредактировано 06:39
    Нашел, не отображается rich если в его тексте нет выражений. Поправлено.
  • Dracula_DISDracula_DIS Москва
    отредактировано 06:39
    Будет ли реализованы дефолтные значения для полей с датами??
    аля гридВьюв.
    При совпадении дефолтной даты с датой из источника - показывать пустое поле..
  • отредактировано August 2008
    Здравствуйте,

    Это можно сделать с помощью скрипта. Вот пример из демки: на событие BeforePrint объекта Text4 повешен обработчик,
    который "гасит" дату 19.02.1952:
        private void Text4_BeforePrint(object sender, EventArgs e)
        {
          DateTime date = ((DateTime)Report.GetColumnValue("Employees.BirthDate"));
          //              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          if (date.Year == 1952 && date.Month == 2 && date.Day == 19)
            Text4.Text = "";
        }
    

    отмеченная часть вставляется в скрипт автоматом, если перетянуть поле из окна DataDictionary в
    скрипт.
  • Dracula_DISDracula_DIS Москва
    отредактировано 06:39
    Хотелось бы делать это не используя скрипт, согласитесь проставить значение в свойстве объекта много удобнее чем писать кусок скрипта. Эта функциональность достаточно часто бывает нужна, поэтому я вижу смысл вшить этот функционал в генератор.
  • отредактировано 06:39
    О каком св-ве идет речь? Что-то в DataGridView не вижу такого:
    "Будет ли реализованы дефолтные значения для полей с датами??
    аля гридВьюв. "
  • Dracula_DISDracula_DIS Москва
    отредактировано 06:39
    AlexTZ написал: »
    О каком св-ве идет речь? Что-то в DataGridView не вижу такого:
    "Будет ли реализованы дефолтные значения для полей с датами??
    аля гридВьюв. "
    Прошу прощенья, может я не четко выразился, речь идет вот о чем:
    Dim pColumn As DataGridViewColumn = ...........
    pColumn.DefaultCellStyle.Format = "dd.MM.yyyy HH:mm"
    pColumn.DefaultCellStyle.DataSourceNullValue = Me.DefaultDateValue
    
  • отредактировано 06:39
    Хорошая идея. У объекта "Текст" было свойство HideZeros, которое позволяло прятать нули. Теперь вместо него появилось строковое св-во HideValue. Оно позволяет прятать любое значение (для того, чтобы спрятать нули, установите его в 0). Для того, чтобы спрятать дату, надо указать нечто типа: 1.1.1900 0:00:00
    Имейте в виду, что этот механизм зависит от региональных установок. Фактически внутри сравниваются строки:
    if (expression_value.ToString() == HideValue) ...
  • Dracula_DISDracula_DIS Москва
    отредактировано 06:39
    Огромное спасибо, это как раз то что нам было нужно.

    Обнаружил баг: при вызове previewControl1.Clear(); не исчезает счетчик страниц в статус баре контрола.
  • Dracula_DISDracula_DIS Москва
    отредактировано 06:39
    При изменении структуры XML файла с данными, чтобы увидить эти изменения приходится удалять сорс и добавлять новый, при этом все ссылки в бендах теряются, если выбрать Edit в меню дата сорса и заново загрузить xml и xsd файл, изменения не видятся
  • Dracula_DISDracula_DIS Москва
    отредактировано 06:39
    При Preview примера из Демо...


    Подробная информация об использовании оперативной
    (JIT) отладки вместо данного диалогового
    окна содержится в конце этого сообщения.

    ************** Текст исключения **************
    System.IndexOutOfRangeException: Индекс находился вне границ массива.
    в FastReport.Dock.DockPanelPersist.LoadFromXml(DockPanel dockPanel, Stream stream, DeserializeDockContent deserializeContent, Boolean closeStream)
    в FastReport.Dock.DockPanel.LoadFromXml(Stream stream, DeserializeDockContent deserializeContent)
    в FastReport.Preview.PreviewControl.fssUZ3ryY()
    в FastReport.Preview.PreviewControl.doT2vZeoF()
    в FastReport.Preview.PreviewControl..ctor()
    в djeessxLgL9fwdc4UKn.GQY2hOxyfgaTkwVwWgA.wE2JpLnmq()
    в djeessxLgL9fwdc4UKn.GQY2hOxyfgaTkwVwWgA..ctor()
    в FastReport.Report.ShowPrepared(Boolean modal, Form mdiParent)
    в FastReport.Report.Show()
    в Demo.Form1.btnPreview_Click(Object sender, EventArgs e)
    в System.Windows.Forms.Control.OnClick(EventArgs e)
    в System.Windows.Forms.Button.OnClick(EventArgs e)
    в System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    в System.Windows.Forms.Control.WndProc(Message& m)
    в System.Windows.Forms.ButtonBase.WndProc(Message& m)
    в System.Windows.Forms.Button.WndProc(Message& m)
    в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    ************** Загруженные сборки **************
    mscorlib
    Версия сборки: 2.0.0.0
    Версия Win32: 2.0.50727.1434 (REDBITS.050727-1400)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    Demo
    Версия сборки: 1.0.0.0
    Версия Win32: 1.0.0.0
    CodeBase: file:///P:/projects/Stroyform/FastReport/demo.exe
    System.Windows.Forms
    Версия сборки: 2.0.0.0
    Версия Win32: 2.0.50727.1434 (REDBITS.050727-1400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    System
    Версия сборки: 2.0.0.0
    Версия Win32: 2.0.50727.1434 (REDBITS.050727-1400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
    System.Drawing
    Версия сборки: 2.0.0.0
    Версия Win32: 2.0.50727.1434 (REDBITS.050727-1400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    FastReport
    Версия сборки: 0.1.83.0
    Версия Win32: 0.1.83.0
    CodeBase: file:///P:/projects/Stroyform/FastReport/FastReport.DLL
    System.Data
    Версия сборки: 2.0.0.0
    Версия Win32: 2.0.50727.1434 (REDBITS.050727-1400)
    CodeBase: file:///C:/Windows/assembly/GAC_32/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll
    System.Xml
    Версия сборки: 2.0.0.0
    Версия Win32: 2.0.50727.1434 (REDBITS.050727-1400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
    FastReport.Dock
    Версия сборки: 1.0.0.0
    Версия Win32: 1.0.0.0
    CodeBase: file:///P:/projects/Stroyform/FastReport/FastReport.Dock.DLL
    System.Design
    Версия сборки: 2.0.0.0
    Версия Win32: 2.0.50727.1434 (REDBITS.050727-1400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Design/2.0.0.0__b03f5f7f11d50a3a/System.Design.dll
    FastReport.Editor
    Версия сборки: 1.0.0.0
    Версия Win32: 1.0.0.0
    CodeBase: file:///P:/projects/Stroyform/FastReport/FastReport.Editor.DLL
    System.Windows.Forms.resources
    Версия сборки: 2.0.0.0
    Версия Win32: 2.0.50727.1434 (REDBITS.050727-1400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll
    System.resources
    Версия сборки: 2.0.0.0
    Версия Win32: 2.0.50727.1434 (REDBITS.050727-1400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.resources/2.0.0.0_ru_b77a5c561934e089/System.resources.dll
    tqkd_msb
    Версия сборки: 0.0.0.0
    Версия Win32: 2.0.50727.1434 (REDBITS.050727-1400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
    mscorlib.resources
    Версия сборки: 2.0.0.0
    Версия Win32: 2.0.50727.1434 (REDBITS.050727-1400)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    wcj9juil
    Версия сборки: 0.0.0.0
    Версия Win32: 2.0.50727.1434 (REDBITS.050727-1400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll

    ************** Оперативная отладка (JIT) **************
    Для подключения оперативной (JIT) отладки файл .config данного
    приложения или компьютера (machine.config) должен иметь
    значение jitDebugging, установленное в секции system.windows.forms.
    Приложение также должно быть скомпилировано с включенной
    отладкой.

    Например:

    <configuration>
    <system.windows.forms jitDebugging="true" />
    </configuration>

    При включенной отладке JIT любое необрабатываемое исключение
    пересылается отладчику JIT, зарегистрированному на данном компьютере,
    вместо того чтобы обрабатываться данным диалоговым окном.


  • отредактировано 06:39
    Пришлите мне на tz at fast-report.com конфиг-файл, он находится в
    C:\Documents and Settings\Имя_юзера\Local Settings\Application Data\FastReport\
  • отредактировано 06:39
    Dracula_DIS написал: »
    При изменении структуры XML файла с данными, чтобы увидить эти изменения приходится удалять сорс и добавлять новый, при этом все ссылки в бендах теряются, если выбрать Edit в меню дата сорса и заново загрузить xml и xsd файл, изменения не видятся

    Исправил, свежая версия соберется через час.
  • Dracula_DISDracula_DIS Москва
    отредактировано 06:39
    AlexTZ написал: »
    Пришлите мне на tz at fast-report.com конфиг-файл, он находится в
    C:\Documents and Settings\Имя_юзера\Local Settings\Application Data\FastReport\

    Отправил. OS - Windows Vista
  • отредактировано 06:39
    Удалите этот файл, FR при запуске создаст новый, правильный.
    Можете вспомнить, что делали с окном превью? В конфиг какое-то странное состояние сохранилось.
  • Dracula_DISDracula_DIS Москва
    отредактировано 06:39
    AlexTZ написал: »
    Удалите этот файл, FR при запуске создаст новый, правильный.
    Можете вспомнить, что делали с окном превью? В конфиг какое-то странное состояние сохранилось.
    К сожалению не могу, меня позвали когда уже не работало...
  • отредактировано 06:39
    Окно превью используете стандартное, или свое, на основе компонента "PreviewControl"?
  • Dracula_DISDracula_DIS Москва
    отредактировано 06:39
    AlexTZ написал: »
    Окно превью используете стандартное, или свое, на основе компонента "PreviewControl"?
    Стандартное, вызов был из дизайера.
  • Dracula_DISDracula_DIS Москва
    отредактировано September 2008
    1. Таблица, по идее вторая колонка должна оставаться на 1 листе, т.к. входит в границы 1 листа.
    2. Page Footer не появляется на последней страице, когда эти страницы создаются для размещения неумещающихся на одной странице объектов. в данном примере уже на второй странице нет футера.
    3. Линия расположенная в Page Footer должна быть двойной, хотя в этом текстовом поле двойная черта отображается нормельно.
    4. Хотелось бы иметь локализацию PageN PageNofM для русского языка, как вариант убрать из переменных текстовки и оставить только числа, чтобы аналог можно было делать таким образом (Страница №PageN) , (Страница PageN из TotalPages)
    5.Печатал предыдущий пункт, не понял как вводить текст заключенный в квадратные скобки
    XrpVfuTWW0.png
    Код отчета:
    <?xml version="1.0" encoding="utf-8"?>
    <Report ScriptText="using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Drawing;
    using System.Data;
    using FastReport;
    using FastReport.Data;
    using FastReport.Dialog;
    using FastReport.Barcode;
    using FastReport.Table;
    using FastReport.Utils;
    
    namespace FastReport
    {
      public class ReportScript
      {
    
        private void Table1_ManualBuild(object sender, EventArgs e)
        {
          Table1.PrintRows();
          Table1.PrintColumns();
        }
      }
    }
    " DoublePass="true" ReportInfo.Created="09/03/2008 22:02:37" ReportInfo.Modified="09/03/2008 22:47:57" ReportInfo.CreatorVersion="0.1.90.0">
      <Dictionary>
        <TableDataSource Name="Products" ReferenceName="NorthWind.Products">
          <Column Name="ProductID" DataType="System.Int32"/>
          <Column Name="ProductName" DataType="System.String"/>
          <Column Name="SupplierID" DataType="System.Int32"/>
          <Column Name="CategoryID" DataType="System.Int32"/>
          <Column Name="QuantityPerUnit" DataType="System.String"/>
          <Column Name="UnitPrice" DataType="System.Decimal"/>
          <Column Name="UnitsInStock" DataType="System.Int16"/>
          <Column Name="UnitsOnOrder" DataType="System.Int16"/>
          <Column Name="ReorderLevel" DataType="System.Int16"/>
          <Column Name="Discontinued" DataType="System.Boolean" BindableControl="CheckBox"/>
          <Column Name="EAN13" DataType="System.String"/>
        </TableDataSource>
      </Dictionary>
      <ReportPage Name="Page1">
        <ReportTitleBand Name="ReportTitle1" Width="718.2" Height="94.5">
          <TableObject Name="Table1" Left="453.6" Top="37.8" Width="387.44" Height="18.9" Border.Lines="All" ManualBuildEvent="Table1_ManualBuild">
            <TableColumn Name="Column1" Width="133.87"/>
            <TableColumn Name="Column2" Width="133.87"/>
            <TableColumn Name="Column3" Width="119.7"/>
            <TableRow Name="Row1">
              <TableCell Name="Cell1" Fill.Color="Red" Text="Column1"/>
              <TableCell Name="Cell2" Fill.Color="Blue" Text="Column2"/>
              <TableCell Name="Cell3" Fill.Color="Lime" Text="Column3"/>
            </TableRow>
          </TableObject>
          <TextObject Name="Text2" Left="18.9" Top="18.9" Width="415.8" Height="47.25" Border.Lines="All" Border.Style="Double" Fill.Color="Lime" CanGrow="true" Text="1. Таблица, по идее вторая колонка должна оставаться на 1 листе, т.к. входит в границы 1 листа.
    2. Page Footer не появляется на последней страице, когда эти страницы создаются для размещения неумещающихся на одной странице объектов. в данном примере уже на второй странице нет футера.
    3. Линия расположенная в Page Footer должна быть двойной, хотя в этом текстовом поле двойная черта отображается нормельно.
    4. Хотелось бы иметь локализацию PageN PageNofM для русского языка, как вариант убрать из переменных текстовки и оставить только числа, чтобы аналог можно было делать таким образом  (Страница №PageN) , (Страница PageN из TotalPages)
    5.Печатал предыдущий пункт, не понял как вводить текст заключенный в квадратные скобки" VertAlign="Center" Font="Arial, 14pt"/>
        </ReportTitleBand>
        <PageFooterBand Name="PageFooter1" Top="98.5" Width="718.2" Height="18.9">
          <LineObject Name="Line1" Width="718.2" Border.Style="Double" Border.Width="3"/>
          <TextObject Name="Text1" Left="623.7" Width="94.5" Height="18.9" Text="[PageNofM]" VertAlign="Center"/>
        </PageFooterBand>
      </ReportPage>
    </Report>
    

    Почему не печатается таблица??
    Переменная в Page Footer показывает что всего страниц 2 хотя видно что она всего одна....
    wwvzNVSQgA.png
    Код отчета:
    <?xml version="1.0" encoding="utf-8"?>
    <Report ScriptText="using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Drawing;
    using System.Data;
    using FastReport;
    using FastReport.Data;
    using FastReport.Dialog;
    using FastReport.Barcode;
    using FastReport.Table;
    using FastReport.Utils;
    
    namespace FastReport
    {
      public class ReportScript
      {
        private void Table2_ManualBuild(object sender, EventArgs e)
        {
          // get the data source by its name
          DataSourceBase rowData = Report.GetDataSource("Products");
          // init the data source
          rowData.Init();
          
          // print the first table row - it is a header
          Table2.PrintRow(0);
          // each PrintRow call must be followed by either PrintColumn or PrintColumns call
          // to print cells on the row
          Table2.PrintColumns();
          
          // now enumerate the data source and print the table body
          while (rowData.HasMoreRows)
          {
            // print the table body  
            Table2.PrintRow(1);
            Table2.PrintColumns();
            
            // go next data source row
            rowData.Next();
          }
          
          // print the last table row - it is a footer
          Table2.PrintRow(2);
          Table2.PrintColumns();
        }
      }
    }
    " DoublePass="true" ReportInfo.Created="09/03/2008 22:02:37" ReportInfo.Modified="09/03/2008 22:46:13" ReportInfo.CreatorVersion="0.1.90.0">
      <Dictionary>
        <TableDataSource Name="Products" ReferenceName="NorthWind.Products">
          <Column Name="ProductID" DataType="System.Int32"/>
          <Column Name="ProductName" DataType="System.String"/>
          <Column Name="SupplierID" DataType="System.Int32"/>
          <Column Name="CategoryID" DataType="System.Int32"/>
          <Column Name="QuantityPerUnit" DataType="System.String"/>
          <Column Name="UnitPrice" DataType="System.Decimal"/>
          <Column Name="UnitsInStock" DataType="System.Int16"/>
          <Column Name="UnitsOnOrder" DataType="System.Int16"/>
          <Column Name="ReorderLevel" DataType="System.Int16"/>
          <Column Name="Discontinued" DataType="System.Boolean" BindableControl="CheckBox"/>
          <Column Name="EAN13" DataType="System.String"/>
        </TableDataSource>
      </Dictionary>
      <ReportPage Name="Page2">
        <ReportTitleBand Name="ReportTitle2" Width="718.2" Height="56.7">
          <TableObject Name="Table2" Left="9.45" Width="472.5" Height="56.7" ManualBuildEvent="Table2_ManualBuild">
            <TableColumn Name="Column4" Width="245.7"/>
            <TableColumn Name="Column5" Width="113.4"/>
            <TableColumn Name="Column6" Width="113.4"/>
            <TableRow Name="Row2">
              <TableCell Name="Cell4" Border.Lines="All" Border.Color="LightGray" Fill="Glass" Fill.Color="LightGray" Fill.Blend="0.47" Fill.Hatch="false" Text="Product name" Padding="5, 0, 0, 0" VertAlign="Center" Font="Tahoma, 8pt, style=Bold"/>
              <TableCell Name="Cell5" Border.Lines="All" Border.Color="LightGray" Fill="Glass" Fill.Color="LightGray" Fill.Blend="0.47" Fill.Hatch="false" Text="Unit price" Padding="0, 0, 5, 0" HorzAlign="Right" VertAlign="Center" Font="Tahoma, 8pt, style=Bold"/>
              <TableCell Name="Cell6" Border.Lines="All" Border.Color="LightGray" Fill="Glass" Fill.Color="LightGray" Fill.Blend="0.47" Fill.Hatch="false" Text="Units in stock" HorzAlign="Center" VertAlign="Center" Font="Tahoma, 8pt, style=Bold"/>
            </TableRow>
            <TableRow Name="Row2">
              <TableCell Name="Cell6" Border.Lines="All" Border.Color="LightGray" Text="[Products.ProductName]" Padding="5, 0, 0, 0" VertAlign="Center" Font="Tahoma, 8pt"/>
              <TableCell Name="Cell7" Border.Lines="All" Border.Color="LightGray" Text="[Products.UnitPrice]" Padding="0, 0, 5, 0" HorzAlign="Right" VertAlign="Center" Font="Tahoma, 8pt" Format="Currency" Format.UseLocale="true"/>
              <TableCell Name="Cell8" Border.Lines="All" Border.Color="LightGray" Text="[Products.UnitsInStock]" HorzAlign="Center" VertAlign="Center" Font="Tahoma, 8pt"/>
            </TableRow>
            <TableRow Name="Row3">
              <TableCell Name="Cell11" Border.Lines="All" Border.Color="LightGray" Fill.Color="LightGray" VertAlign="Center" Font="Tahoma, 8pt"/>
              <TableCell Name="Cell12" Border.Lines="All" Border.Color="LightGray" Fill.Color="LightGray" Text="Total:" Padding="0, 0, 5, 0" HorzAlign="Right" VertAlign="Center" Font="Tahoma, 8pt"/>
              <TableCell Name="Cell13" Border.Lines="All" Border.Color="LightGray" Fill.Color="LightGray" Text="[Sum(Cell8)]" HorzAlign="Center" VertAlign="Center" Font="Tahoma, 8pt"/>
            </TableRow>
          </TableObject>
          <TextObject Name="Text1" Left="500.85" Width="207.9" Height="56.7" CanGrow="true" Text="Почему не печатается таблица??
    Переменная в Page Footer показывает что всего страниц 2 хотя видно что она всего одна...."/>
        </ReportTitleBand>
        <PageFooterBand Name="PageFooter2" Top="60.7" Width="718.2" Height="18.9">
          <LineObject Name="Line2" Width="718.2" Border.Style="Double" Border.Width="3"/>
          <TextObject Name="Text3" Left="623.7" Width="94.5" Height="18.9" Text="[PageNofM]" VertAlign="Center"/>
        </PageFooterBand>
      </ReportPage>
    </Report>
    

    Если поставить Эту страницу первой то таблица печатается, если остаить так как есть то не печатается...
    И как сделать чтоб эта текстовка была полностью видна и не налезала на таблицу??
    TN55Id7H2c.png
    Код отчета:
    <?xml version="1.0" encoding="utf-8"?>
    <Report ScriptText="using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Drawing;
    using System.Data;
    using FastReport;
    using FastReport.Data;
    using FastReport.Dialog;
    using FastReport.Barcode;
    using FastReport.Table;
    using FastReport.Utils;
    
    namespace FastReport
    {
      public class ReportScript
      {
    
        private void Table1_ManualBuild(object sender, EventArgs e)
        {
          // get the data source by its name
          DataSourceBase rowData = Report.GetDataSource("Products");
          // init the data source
          rowData.Init();
          
          // print the first table row - it is a header
          Table1.PrintRow(0);
          // each PrintRow call must be followed by either PrintColumn or PrintColumns call
          // to print cells on the row
          Table1.PrintColumns();
          
          // now enumerate the data source and print the table body
          while (rowData.HasMoreRows)
          {
            // print the table body  
            Table1.PrintRow(1);
            Table1.PrintColumns();
            
            // go next data source row
            rowData.Next();
          }
          
          // print the last table row - it is a footer
          Table1.PrintRow(2);
          Table1.PrintColumns();
        }
      }
    }
    " TextQuality="Regular" ReportInfo.Description="Demonstrates how to print multiple Table rows with a script. To do this:
    
    - select the Table object;
    
    - go "Properties" window and click the "Events" button to view list of available events;
    
    - doubleclick the "ManualBuild" event;
    
    - you will see the empty event handler. You need to print rows using TableObject.PrintRow method; in each row, you must also print all columns (using PrintColumns method). See the script code for more details.
    
    When you run a report, the Table will repeat a row and fill it with data." ReportInfo.Created="01/17/2008 20:40:24" ReportInfo.Modified="09/03/2008 22:43:42" ReportInfo.CreatorVersion="0.1.90.0">
      <Dictionary>
        <TableDataSource Name="Products" ReferenceName="NorthWind.Products">
          <Column Name="ProductID" DataType="System.Int32"/>
          <Column Name="ProductName" DataType="System.String"/>
          <Column Name="SupplierID" DataType="System.Int32"/>
          <Column Name="CategoryID" DataType="System.Int32"/>
          <Column Name="QuantityPerUnit" DataType="System.String"/>
          <Column Name="UnitPrice" DataType="System.Decimal"/>
          <Column Name="UnitsInStock" DataType="System.Int16"/>
          <Column Name="UnitsOnOrder" DataType="System.Int16"/>
          <Column Name="ReorderLevel" DataType="System.Int16"/>
          <Column Name="Discontinued" DataType="System.Boolean" BindableControl="CheckBox"/>
          <Column Name="EAN13" DataType="System.String"/>
        </TableDataSource>
      </Dictionary>
      <ReportPage Name="Page2">
        <ReportTitleBand Name="ReportTitle2" Width="718.2" Height="37.8"/>
        <PageHeaderBand Name="PageHeader1" Top="41.8" Width="718.2" Height="18.9">
          <TextObject Name="Text5" Width="160.65" Height="18.9" Text="ProductName"/>
          <TextObject Name="Text6" Left="160.65" Width="94.5" Height="18.9" Text="EAN13"/>
        </PageHeaderBand>
        <DataBand Name="Data1" Top="64.7" Width="718.2" Height="18.9" DataSource="Products">
          <TextObject Name="Text4" Width="160.65" Height="18.9" Text="[Products.ProductName]"/>
          <TextObject Name="Text3" Left="160.65" Width="94.5" Height="18.9" Text="[Products.EAN13]"/>
        </DataBand>
        <PageFooterBand Name="PageFooter2" Top="87.6" Width="718.2" Height="18.9"/>
      </ReportPage>
      <ReportPage Name="Page1">
        <ReportTitleBand Name="ReportTitle1" Width="718.2" Height="103.95">
          <TextObject Name="Text2" Width="718.2" Height="28.35" CanGrow="true" Text="Если поставить Эту страницу первой то таблица печатается,  если остаить так как есть то не печатается...
    И как сделать чтоб эта текстовка  была полностью видна и не налезала на таблицу??" HorzAlign="Center" VertAlign="Center" Font="Tahoma, 14pt, style=Bold"/>
          <TableObject Name="Table1" Left="9.45" Top="28.35" Width="472.5" Height="56.7" ManualBuildEvent="Table1_ManualBuild">
            <TableColumn Name="Column1" Width="245.7"/>
            <TableColumn Name="Column2" Width="113.4"/>
            <TableColumn Name="Column3" Width="113.4"/>
            <TableRow Name="Row1">
              <TableCell Name="Cell1" Border.Lines="All" Border.Color="LightGray" Fill="Glass" Fill.Color="LightGray" Fill.Blend="0.47" Fill.Hatch="false" Text="Product name" Padding="5, 0, 0, 0" VertAlign="Center" Font="Tahoma, 8pt, style=Bold"/>
              <TableCell Name="Cell2" Border.Lines="All" Border.Color="LightGray" Fill="Glass" Fill.Color="LightGray" Fill.Blend="0.47" Fill.Hatch="false" Text="Unit price" Padding="0, 0, 5, 0" HorzAlign="Right" VertAlign="Center" Font="Tahoma, 8pt, style=Bold"/>
              <TableCell Name="Cell3" Border.Lines="All" Border.Color="LightGray" Fill="Glass" Fill.Color="LightGray" Fill.Blend="0.47" Fill.Hatch="false" Text="Units in stock" HorzAlign="Center" VertAlign="Center" Font="Tahoma, 8pt, style=Bold"/>
            </TableRow>
            <TableRow Name="Row2">
              <TableCell Name="Cell6" Border.Lines="All" Border.Color="LightGray" Text="[Products.ProductName]" Padding="5, 0, 0, 0" VertAlign="Center" Font="Tahoma, 8pt"/>
              <TableCell Name="Cell7" Border.Lines="All" Border.Color="LightGray" Text="[Products.UnitPrice]" Padding="0, 0, 5, 0" HorzAlign="Right" VertAlign="Center" Font="Tahoma, 8pt" Format="Currency" Format.UseLocale="true"/>
              <TableCell Name="Cell8" Border.Lines="All" Border.Color="LightGray" Text="[Products.UnitsInStock]" HorzAlign="Center" VertAlign="Center" Font="Tahoma, 8pt"/>
            </TableRow>
            <TableRow Name="Row3">
              <TableCell Name="Cell11" Border.Lines="All" Border.Color="LightGray" Fill.Color="LightGray" VertAlign="Center" Font="Tahoma, 8pt"/>
              <TableCell Name="Cell12" Border.Lines="All" Border.Color="LightGray" Fill.Color="LightGray" Text="Total:" Padding="0, 0, 5, 0" HorzAlign="Right" VertAlign="Center" Font="Tahoma, 8pt"/>
              <TableCell Name="Cell13" Border.Lines="All" Border.Color="LightGray" Fill.Color="LightGray" Text="[Sum(Cell8)]" HorzAlign="Center" VertAlign="Center" Font="Tahoma, 8pt"/>
            </TableRow>
          </TableObject>
        </ReportTitleBand>
        <PageFooterBand Name="PageFooter1" Top="107.95" Width="718.2" Height="18.9">
          <TextObject Name="Text1" Left="623.7" Width="94.5" Height="18.9" Text="[PageN]" HorzAlign="Right" VertAlign="Center" Font="Tahoma, 8pt"/>
        </PageFooterBand>
      </ReportPage>
    </Report>
    

    Отчеты также продублировал вам на почту...
  • Dracula_DISDracula_DIS Москва
    отредактировано 06:39
    Есть кто живой?
  • отредактировано 06:39
    Здравствуйте,

    Неделю меня не было на рабочем месте, завтра постараюсь все поправить.
  • отредактировано 06:39
    Здравствуйте,
    написал:
    1. Таблица, по идее вторая колонка должна оставаться на 1 листе, т.к. входит в границы 1 листа.
    Не входит, это только так кажется :) Если просуммировать ширину первых двух колонок и позицию таблицы на листе, получится, что вторая колонка на лист не помещается. 3.54см+3.54см+12см > 19см (размер печатной области)
    написал:
    2. Page Footer не появляется на последней страице, когда эти страницы создаются для размещения неумещающихся на одной странице объектов. в данном примере уже на второй странице нет футера.
    Это поправил.
    написал:
    3. Линия расположенная в Page Footer должна быть двойной, хотя в этом текстовом поле двойная черта отображается нормельно.
    Этот стиль используется только для рамок объектов типа "Текст". Линии и фигуры со стилем "двойная" не рисуются.
    написал:
    4. Хотелось бы иметь локализацию PageN PageNofM для русского языка, как вариант убрать из переменных текстовки и оставить только числа, чтобы аналог можно было делать таким образом (Страница №PageN) , (Страница PageN из TotalPages)
    Это будет позже, пока локализации для русского языка нет.
    написал:
    5.Печатал предыдущий пункт, не понял как вводить текст заключенный в квадратные скобки
    Надо либо отключить обработку выражений в тексте (св-во AllowExpressions у объекта "Текст"), либо указать другую пару символов, обозначающих выражения, в свойстве Brackets.
    написал:
    Почему не печатается таблица??
    Поправил.
    написал:
    Если поставить Эту страницу первой то таблица печатается, если остаить так как есть то не печатается...
    Поправил.
    написал:
    И как сделать чтоб эта текстовка была полностью видна и не налезала на таблицу??
    Добавьте к ReportTitle дочерний бэнд (ChildBand) и разместите таблицу в нем.

    PS: Исправления будут доступны завтра.
  • Dracula_DISDracula_DIS Москва
    отредактировано 06:39
    Отлично..
    На счет таблиц - в таком случае хотелось бы в свойствах Cell иметь возможность менять размеры ячейки, иначе точно отпозиционировать только при помощи дизайнера не получается..
  • отредактировано 06:39
    Размеры столбцов/строк можно менять достаточно просто. Выделите строку/столбец (для этого курсор мыши поместите над столбцом или слева строки, он при этом меняет свою форму; либо выберите нужную строку/столбец в окне Report Tree) и поменяйте св-во Width (для столбца) или Height (для строки) в окне Properties.
  • отредактировано 06:39
    По поводу исправлений: сейчас у нас проблемы с сервером автосборки. Я сообщу дополнительно, когда он заработает.
  • Dracula_DISDracula_DIS Москва
    отредактировано 06:39
    При добавлении XML connection не добавляются Relation
  • отредактировано 06:39
    Если в дезайнере выбрать текстовое поле (TextObject) и несколько раз сменить тип используемого шрифта, приложение выдает Unhandled excaption с сообщением вида: Font 'a' cannot be found, вместо символа "а" выдает и другие буквы.... баг проявляется во всех версиях
Дискуссия закрыта.