|
![]() |
#1 |
Участник
|
По поводу переключения раскладки - можно не заморачиваться с ней, а воспользоваться PasteSpecial
X++: COMExcelDocument_RU excel = new COMExcelDocument_RU(); TextBuffer tb = new TextBuffer(); COM Doc; COM app; COM sheet; COM cell; ; excel.newFile(); doc = excel.getComDocument(); app = doc.Application(); sheet = app.ActiveSheet(); cell = sheet.Range("B2"); cell.Select(); tb.setText("Строка1\tКолонка2\nСтрока2\tКолонка2\nСтрока3\tКолонка2\nСтрока4\tКолонка2"); tb.toClipboard(); sheet.PasteSpecial(COMVariant::createFromStr("Текст"));
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#2 |
Участник
|
Господа доброе утро! Подскажите кто знает, предположит что при экспорте данных из Axapta в Excel, я использую буфер обмена - естественно системный буфер теряется; вопрос - как сохранить его, а потом вернуть обратно? Пытался использовать TextBuffer userBuffer = new TextBuffer();
но он прокатывает только для текста, а если картинка ну или вообще что либо? Последний раз редактировалось LiSA; 29.03.2006 в 10:43. |
|
![]() |
#3 |
NavAx
|
Есть способ узнать раскладку клавиатуры:
1. Добавляем функцию в класс WinApi: Код: client static int GetKeyboardLayout (int _idThread) { DLL _winApiDLL = new DLL('USER32'); DLLFunction _getKeyboardLayout = new DLLFunction(_winApiDLL, 'GetKeyboardLayout'); _getKeyboardLayout.returns(ExtTypes::DWord); _getKeyboardLayout.arg(ExtTypes::DWord); return _getKeyboardLayout.call(_idThread); } Возвращаемое значение - идентификатор языка ввода данных потока. Младшее слово содержит Идентификатор Языка для языка ввода данных, а старшее слово содержит дескриптор устройства к физической раскладки клавиатуры. 409 (HEX) - английская раскладка, 419 (HEX) - русская раскладка 2. Вызываем так: Код: static void Job4(Args _args) { int res; ; res = WinApi::GetKeyboardLayout(0) & 0xffff; switch (res) { case 0x409: Info('EN'); break; case 0x419: Info('RU'); break; default : Info('Unknown'); } } |
|
![]() |
#4 |
Участник
|
Roman777 спасибо!
|
|