13.08.2007, 08:02 | #1 |
Участник
|
Экспорт из журнала базы данных
Привет, народ!
Вопрос: можно ли скопировать в буфер, либо экспортировать каким-либо другим способом информацию из журнала базы данных, из правой части окна - там где выводится список полей измененной записи со старыми и новыми их значениями |
|
13.08.2007, 10:04 | #2 |
Участник
|
Вот такой job посмотрите. Я форматированием не занимался.
Но думаю суть будет ясна и привести к божескому виду сможете. X++: static void tutorial_ShowDataBaseLogAsString(Args _args) { TextBuffer textBuffer = new TextBuffer(); SysDataBaseLog dataBaseLog; List dataList; ListEnumerator dataListEnumerator; str data; container tmpCon; FieldId fieldId; ; while select dataBaseLog where dataBaseLog.table == tableNum(CustTable) && dataBaseLog.LogType == DataBaseLogType::Insert && dataBaseLog.createdDate == 06\08\2007 { textBuffer.appendText(strFmt("\nОписание: %1, Тип записи: %2, Таблица: %3\n\n", dataBaseLog.Description, dataBaseLog.LogType, tableId2Name(dataBaseLog.table))); dataList = dataBaseLog.getDataAslist(); dataListEnumerator = dataList.getEnumerator(); while (dataListEnumerator.moveNext()) { tmpCon = dataListEnumerator.current(); fieldId = conpeek(tmpCon, 1); textBuffer.appendText(strFmt("Поле: %1\n", fieldId2name(dataBaseLog.table, fieldId))); textBuffer.appendText(strFmt("Новое значение: %1\n", dataBaseLog.contents2Str(conpeek(tmpCon, 2), fieldId))); textBuffer.appendText(strFmt("Старое значение: %1\n", dataBaseLog.contents2Str(conpeek(tmpCon, 3), fieldId))); } } textBuffer.toFile("C:\\test.txt"); } |
|
13.08.2007, 11:20 | #3 |
Moderator
|
А я вот еще какую фигнюшку замастырил для работы с текущим содержанием этого окна. Перекрываем метод doubleClick у контрола ListView формы SysDatabaseLog, т.е. полный путь к новому методу будет такой: \Forms \SysDatabaseLog \Designs \Design \[Tab:Tab] \[TabPage:History] \ListView:List \Methods \doubleClick.
В этот метод вставляем следующий код: X++: public void doubleClick() { int i; container c; ; for (i=1; i<= conlen(DBHistory.Data); i++) { c = conpeek(DBHistory.Data, i); info(strfmt( '%1 -- %2 -- %3', fieldId2Name(DBHistory.Table, conpeek(c,1)), conpeek(c,2), conpeek(c,3) )); } } |
|
14.08.2007, 07:26 | #4 |
Участник
|
Круто! всем спасибо за советы
|
|