Как запустить метод настраиваемого действия на уровне поля - PullRequest
0 голосов
/ 29 января 2019

У меня есть проект в datacap, который читает изображения, pdfs и csv, распознает таблицы и экспортирует эти таблицы в формате JSON.

Для этого у меня есть пользовательское действие, которое я написал с использованием шаблона Datacap для C #.

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

Это прототип

public bool XLSToJPG(string filePath);

Все было хорошо, пока я не написал второй метод для записи некоторых журналов для каждого поля, распознанного в моей базе данных, как достоверность символов.Понял, что я не могу вызывать другие уровни, а не Пакет, например, Уровень документа, Страницы, Поля или Символы.

Прототип второго метода

public bool getFieldInfo();

Я печатаю журналытекущий уровень, когда метод вызывается для проверки.Если он печатает 0, то это уровень пакета, 1, 2, 3, 4 - это документ, страница, поле и символ соответственно

Я писал журналы, пытаясь определить, вызывается ли метод для какого-либо уровня.В рулсете я установил «Запуск в начале ...» и выбрал «Любой объект» вместо поля.Это означает, что это должно быть вызвано для всех уровней.Не сработало.

Неважно, какой уровень я пробую, он всегда печатает 0 как текущий уровень.

Сначала метод (действие) вызывался внутри функции сразу после получения полейв предыдущей функции, затем я попытался в своем собственном правиле, затем в своем собственном наборе правил, 0 удачи; ´ (.

Это метод, который я хочу запустить

    public bool getFieldInfo() {
        bool response = false;

        WriteLog("Getting field confidence...");
        WriteLog("Current Level: " + DCO.ObjectType());

        string confidence = DCO.AltConfidenceString[0];

        WriteLog("The current field confidence is: " + confidence);

        response = true;

        //switch (DCO.ObjectType()) {
        //    case Level.Field:
        //        break;
        //    default:    
        //        WriteLog("getFieldInfo should run on the field level.");
        //        break;
        //}


        return response;
    }

Вы можетеПосмотрите, как у меня закончились опции, и я удалил переключатель для печати журнала при каждом вызове, он всегда печатал «getFieldInfo должен выполняться на уровне поля».

Действие должно вызываться только на уровне поля, когда яустановите это в свойствах Правила.

В данный момент он работает на «Любом объекте»

enter image description here

1 Ответ

0 голосов
/ 05 февраля 2019

хорошо .. поэтому я предполагаю, что dll создана с различными функциями, и вам нужна вторая функция на уровне поля.-Если вы используете datacap studio (конечно, это будет), то с левой стороны будет первая ячейка с иерархией документов. -В ней вы можете установить функцию из набора правил (посередине), который добавляется из вашегоdll, которая показана на самой правой стороне .. -вы можете добавить эту функцию в поле внутри иерархии документов, которое будет запускаться только в том случае, если это поле выполняется в наборе правил для проверки чего-либо.

я постараюсь получить несколько экранов, когда дома ..

надеюсь, это поможет

...