Показать сообщение отдельно
Старый 04.04.2008, 10:05   #1  
Blog bot is offline
Blog bot
Участник
 
25,475 / 846 (79) +++++++
Регистрация: 28.10.2006
palleagermark: Spell checking from AX
Источник: http://palleagermark.blogspot.com/20...g-from-ax.html
==============

The AX class SysSpellChecker is a wrapper for the spellchecker of Word. Using this class you can offer spellchecking from AX.

Here is some sample code, checking text from a form string control:

X++:
    SysSpellChecker spellChecker    = SysSpellChecker::newCurrentLanguage();
    TextBuffer      textBuffer      = new TextBuffer();
    int             wordStart;

    int             startSeparator;
    int             endSeparator;
    str             wordToCheck;
    List            spellingSuggestions;
    ListEnumerator  listEnumerator;
    ;

    super();

    startLengthyOperation();

    setPrefix("Spell check");

    textBuffer.setText(stringEdit.text());

    startSeparator = 1;

    while (startSeparator)
    {
        wordStart      = textBuffer.find('[^ \n\t\\!\\'\\\#\%\&\/\(\)\=\?\,\.\:\;\*\}\{\|]', startSeparator) ? textBuffer.matchPos():0;

        if (!wordStart)
            break;

        endSeparator   = textBuffer.find('[ \n\t\\!\\'\\\#\¤\%\&\/\(\)\=\?\,\.\:\;\*\}\{\|]', wordStart)? textBuffer.matchPos():0;
        wordToCheck    = textBuffer.subStr(wordStart, (endseparator ? endseparator : textBuffer.size()+1) - wordStart);

        if (spellChecker.checkSpelling(wordToCheck) == false)
        {
            warning (strfmt("@SYS84009", wordToCheck));
            spellingSuggestions = spellChecker.getSpellingSuggestions(wordToCheck);
            listEnumerator = spellingSuggestions.getEnumerator();
            while (listEnumerator.moveNext())
            {
                info (strFmt("Suggestion: %1", listEnumerator.current()));
            }
        }

        startSeparator = endSeparator;
    }

    spellChecker.finalize();

    info ("Spell check done");

    endLengthyOperation();
Unfortunately there is a bug in the checkSpelling method of the COM object from Word, so it will always use your default language of your Office setup as the language to check your text again. So you can't spellcheck for other languages than you default language of Office. You can change the default language from the Office Tools.


Источник: http://palleagermark.blogspot.com/20...g-from-ax.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.