Crystal Report распечатать простой текст в столбцах - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть отчет в Crystal Report, который показывает список адресов, взятых из БД и отформатированный следующим образом:

`<some codes regarding object to send>
<Name> <Surname>
<Address>
<zip> <City>
<other informations>`

Мне нужно распечатать эти адреса в 3 или 4 столбцах (по выбору пользователя)в простом тексте.С отчетом в формате PDF проблем нет, но если я задаю простой текст, он показывает только один столбец.Можешь мне помочь?Спасибо и всего наилучшего

Ответы [ 2 ]

0 голосов
/ 24 сентября 2019

Я не буду менять первый ответ, потому что, возможно, он может быть полезен для кого-то еще.

Вот очень скучное новое решение, если вы не придумали лучшую идею.Я напишу для 3 столбцов.Вам нужно будет адаптировать для 4 столбцов (или просто создать другой rpt для 4 столбцов).

  1. Забудьте опцию «форматировать с несколькими столбцами».Просто создайте нормальный раздел деталей.

  2. Создайте следующую скучную формулу.Давайте назовем его «fieldsFiller»:

    shared stringvar address1;
    shared stringvar address2;
    shared stringvar address3;
    shared stringvar name1;
    shared stringvar name2;
    shared stringvar name3;
    shared stringvar surname1;
    shared stringvar surname2;
    shared stringvar surname3;
    shared stringvar zip1;
    shared stringvar zip2;
    shared stringvar zip3;
    shared stringvar city1;
    shared stringvar city2;
    shared stringvar city3;
    //TODO do the same for the others fields you need

    if recordnumber mod 3 = 1 then (
        address1 := {YourDataSource.Address};
        name1 := {YourDataSource.Name};
        surname1 := {YourDataSource.Surname};
        zip1 := {YourDataSource.Zip};
        city1 := {YourDataSource.City};
        //TODO do the same for the others fields you need
    )
    else if recordnumber mod 3 = 2 then (
        address2 := {YourDataSource.Address};
        name2 := {YourDataSource.Name};
        surname2 := {YourDataSource.Surname};
        zip2 := {YourDataSource.Zip};
        city2 := {YourDataSource.City};
        //TODO do the same for the others fields you need
    )
    else if recordnumber mod 3 = 0 then (
        address3 := {YourDataSource.Address};
        name3 := {YourDataSource.Name};
        surname3 := {YourDataSource.Surname};
        zip3 := {YourDataSource.Zip};
        city3 := {YourDataSource.City};
        //TODO do the same for the others fields you need
    )
Поместите формулу fieldsFiller в подробный раздел и отключите ее. Используйте эксперта раздела в подробном разделе, чтобы подавить ее в соответствии со следующей формулой:
  recordnumber mod 3 > 0
Это будет слишком скучно ... Создайте одну формулу для каждой общей переменной, которую вы объявили в формуле "fieldsFiller".Например, создайте формулу с именем «address1» с таким содержанием:
  shared stringvar address1;
  address1;
Поместите формулы в раздел подробностей.Поместите их как поля, рядом.
name1 surname1   name2 surname2     name3 surname3
address1         address2           address3
zip1 city1       zip2 city2         zip3 city3
Попробуйте.
0 голосов
/ 20 сентября 2019

Общая идея заключается в создании двух разделов деталей.Один с 3 столбцами, другой с 4 столбцами.И показать или скрыть один из них.

Шаг за шагом:

  1. Создать параметр с количеством столбцов.Давайте назовем это {? NumberOfColumns}.Я предполагаю, что, как вы сказали, это может быть только 3 или 4.

  2. Создайте две секции деталей: A и B.

  3. Используйте эксперт раздела для подавления раздела подробностей A, когда {? NumberOfColumns} = 4.

  4. Используйте эксперт раздела для подавления раздела подробностей B, когда {? NumberOfColumns} = 3.

  5. Использование эксперта раздела в разделе А. Отметьте «форматировать с несколькими столбцами».На вкладке «Макет» установите ширину, чтобы она соответствовала только 3 столбцам в разделе (~ ширина страницы / 3).

  6. Используйте эксперт раздела в разделе B. Отметьте «форматировать несколькими столбцами»,На вкладке «Макет» установите ширину, чтобы она соответствовала только 4 столбцам в разделе (~ ширина страницы / 4).

  7. Поместите поле в оба раздела с подробностями.

  8. Выполните необходимые точные настройки.

...