powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Crystal Reports репорт только при не нулевых данных
9 сообщений из 9, страница 1 из 1
Crystal Reports репорт только при не нулевых данных
    #37681783
mbrg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,

В Crysтal Reports полный новичок, поетому наверно и вопрос такой:
Есть Репорт, который опрашивает ДБ каждые 3 часа,
как зделать так, чтобы отчет создавался только если будут найдены подходящие данные.
т.е не нулевая выборка из ДБ.

Спасибо

P.S.
Crystal Reports XI
...
Рейтинг: 0 / 0
Crystal Reports репорт только при не нулевых данных
    #37681954
trew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mbrg,

авторРепорт, который опрашивает ДБ каждые 3 часа
Наверно, это делает не Репорт, а некая программа (job).
Если Вы программируйте на VB.NET или C#.NET, напишите проверку в коде: если DataSet пустой показать пользователю сообщение, иначе открыть отчет.
...
Рейтинг: 0 / 0
Crystal Reports репорт только при не нулевых данных
    #37682050
mbrg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
trew,

Спасибо, но это не совсем так,

На основе быборки из ДБ генерируется ХМЛ файл,
хотелось бы, если выборка пустая, чтобы фаил не создавался совсем.
Сейчас я делаю деление на количество выбраных строк, и если выборка нулевая,
то происходит ошибка деление на 0, и отчет не создается.
Ищу другие варианты.
...
Рейтинг: 0 / 0
Crystal Reports репорт только при не нулевых данных
    #37682121
mbrg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mbrg,

Да, забыл, управляется ето все с помощью

Central Management Console.
там все планируется откуда, куда, когда и что
...
Рейтинг: 0 / 0
Crystal Reports репорт только при не нулевых данных
    #37682338
Peter Kirillow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mbrg,
в BO есть события.
создайте событие и подключите в шедулинг, чтобы отчет создавался по наступлению этого события.
если тригера события не произойдет, отчет не запустится
напишите простенький java, который будет сначала лезть в базу и проверять наличие данных, а потом инициировать событие на сервере BO
могу привести пример кода, который инициирует событие. остальное сами ))
в принципе CMC тоже не нужен, т.к. если уж такая пьянка, то и сам отчет и рассылку можно сделать из java (.NET как удобней)

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
package businessobjects_sdk.events;

import com.crystaldecisions.sdk.exception.SDKException;
import com.crystaldecisions.sdk.framework.CrystalEnterprise;
import com.crystaldecisions.sdk.framework.IEnterpriseSession;
import com.crystaldecisions.sdk.occa.infostore.IInfoObjects;
import com.crystaldecisions.sdk.occa.infostore.IInfoStore;
import com.crystaldecisions.sdk.plugin.desktop.event.IEvent;
import com.crystaldecisions.sdk.plugin.desktop.event.IUserEvent;

public class trigger {
    private IEnterpriseSession _enterpriseSession;
    private IInfoStore _infoStore = null;
    private IInfoObjects _infoObject = null;

    public static void main(String[] args) {
        if (args.length != 4) {
            System.err.println(
                    "Usage: businessobjects_sdk.events.trigger <cmsname> " +
                    "<username> <password> <EventName>");
            System.exit(1);
        }
        trigger trigger_event = new trigger(args);
    }

    public trigger(String[] args) {
        String cmsname = args[0];
        String username = args[1];
        String password = args[2];
        String authType = "secEnterprise";
        String EventName = args[3];

        try {
            _enterpriseSession = CrystalEnterprise.getSessionMgr().logon(
                    username,
                    password, cmsname, authType);

            _infoStore = (IInfoStore) _enterpriseSession.getService("",
                    "InfoStore");

            _infoObject = (IInfoObjects) _infoStore.query
                          (
                                  "SELECT * FROM   CI_SYSTEMOBJECTS WHERE " +
                                  "SI_KIND = 'Event' and SI_NAME = '" +
                                  EventName + "'"
                          );

            if (_infoObject.getResultSize() >= 1) {
                IEvent oEvent = (IEvent) _infoObject.get(0);
                IUserEvent lUserEvent = (IUserEvent) oEvent.getEventInterface();
                lUserEvent.trigger();
                _infoStore.commit(_infoObject);
                System.out.println("Success.");
            } else {
                System.out.println("Error: UserEvent [" + EventName + "] not found.");
            }
        } catch (SDKException sdkEx) {
            System.out.println("Error: " + sdkEx.getMessage());
        } finally {
            if (_enterpriseSession != null) {
                _enterpriseSession.logoff();
            }
        }
    }
}
...
Рейтинг: 0 / 0
Crystal Reports репорт только при не нулевых данных
    #37682423
SmileWithMe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
@"На основе б ыборки из ДБ генерируется ХМЛ файл,"
Я бы Нашел то место кода, Где генерирутеться хмл файл. И там добалив всего одну строчку кода : "проверку на пустой запрос."(т.е. простое условие Логика типа if Not (<путой запрос>) then <нормальная работа> )
...
Рейтинг: 0 / 0
Crystal Reports репорт только при не нулевых данных
    #37682710
mbrg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Peter Kirillow,

Спасибо, интересно придумано.
Что смушает так нужно 2 раза ДБ опрашивать, там довольно много таблиц и продолжается 3-15 мин.
Но всетаки хотелось бы встроенными средствами(если они есть):
т.е как нибудь типа проверить переменную из репорта , она всеравно уже есть, и ей присвоено значение и остановитсиа или дальше двигаться.
Я предпологал что гдето в консоле должно быть такое, опрашивать переменые из репорта.
Но не знаю где и как.
...
Рейтинг: 0 / 0
Crystal Reports репорт только при не нулевых данных
    #37682832
mbrg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SmileWithMe,

Спасибо,
Имелось в виду что репорт запоминается как файл.
Если нет даных, то запоминаетсиа как файл без даных, СМС все равно выполняет свою работу.
Если email ,то посылает пустой email.
Хтотел просто культурно остановить(а не оборвать выполнение как сейчас) CMC, и ждать следуещего выполненя.
...
Рейтинг: 0 / 0
Crystal Reports репорт только при не нулевых данных
    #37749230
mbrg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Peter Kirillow,

Spasibo za sovet, vospolzovalsia i dlia drugih celej,
vse zdorovo poluchilos'.
Spasibo
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Crystal Reports репорт только при не нулевых данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]