Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 40 41 42 43 44 [45] 46 47 48 49 .. 76   вперед  Ctrl
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
McFozzy
Member

Откуда: Litva
Сообщений: 138
[quot AndreiRantsevich]
AndreiRantsevich
пропущено...
Вот список изменений:
2.15
NEW FEATURES:
-Columns finder. Allows to find column by name among current or all present results grid.
Right-click results grid and choose "Find column" to use this feature.

очень понравился поиск по столбикам.

пожелания:
- поиск с применениями wildchar
- история бывших поисков в dropdown меню
5 янв 15, 17:51    [17087040]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
dalex1973
Member

Откуда: Польша
Сообщений: 287
Андрей,

а как в форматтере установить наличие/отсутствие переноса по логическим условиям в WHERE?
WHERE M2.f_Company_ID=T.CompanyID AND M2.f_User_ID=T.UserID
надо(вариант 1):
WHERE 
    M2.f_Company_ID=T.CompanyID 
AND M2.f_User_ID=T.UserID
вариант 2
WHERE 
M2.f_Company_ID=T.CompanyID AND 
M2.f_User_ID=T.UserID
8 янв 15, 11:02    [17093694]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
dalex1973
Member

Откуда: Польша
Сообщений: 287
Ещё FatalActionGuard постоянно даёт предупреждение на таких запросах:

	DELETE c FROM #Company c
	WHERE NOT EXISTS (SELECT 1 FROM ...
        WHERE s.f_Company_ID = c.f_ID)

WITH C
AS (
SELECT
	'f_' + CAST(DENSE_RANK() OVER (ORDER BY t.NAME) AS varchar(30)) Colname_New,
	DENSE_RANK() OVER (ORDER BY t.NAME) RowID_New,
	ColName,
	RowID
FROM #tmpRes t)
UPDATE C
SET	c.ColName = Colname_New,
	c.RowID = RowID_New

причём все три чекбокса на исключения я включил.

И неплохо бы подсвечивать пробленые места.
9 янв 15, 11:07    [17096061]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10436
Есть длинный скрипт, пускаю, получаю сообщение:

SSMSBoost guard: обнаружен update без where

Yes No

У меня три километра скрипт... почему бы не дать хотя бы первое вхождение обнаруженной фигни ?
Номер строки на худой конец.
26 янв 15, 14:13    [17170884]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
McFozzy
Member

Откуда: Litva
Сообщений: 138
AndreiRantsevich,

функциональность Find in Result Grid перестала работать.
После нажатия правой клавиши на гриде появляется меню, но если нажать на Find in Result Grid то меню исчезает, но новое диалоговое окно не появляется
это только у меня?
28 янв 15, 10:38    [17181075]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
dalex1973
Member

Откуда: Польша
Сообщений: 287
McFozzy,

у меня работает нормально
проверьте, может у вас окно куда-то съехало?
28 янв 15, 10:57    [17181224]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
McFozzy
Member

Откуда: Litva
Сообщений: 138
dalex1973,

может и съехало... но очень далеко съехало :) - ни как не могу найти.
restart SSMS не помогло...
28 янв 15, 12:52    [17182335]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 765
Winnipuh
Есть длинный скрипт, пускаю, получаю сообщение:

SSMSBoost guard: обнаружен update без where

Yes No

У меня три километра скрипт... почему бы не дать хотя бы первое вхождение обнаруженной фигни ?
Номер строки на худой конец.

Согласен, мы это добавим
28 янв 15, 13:16    [17182556]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 765
McFozzy
AndreiRantsevich,

функциональность Find in Result Grid перестала работать.
После нажатия правой клавиши на гриде появляется меню, но если нажать на Find in Result Grid то меню исчезает, но новое диалоговое окно не появляется
это только у меня?

Спасибо, действительно есть баг. Уже нашли и исправили. Сделаем апдейт небольшой через неделю.
28 янв 15, 13:17    [17182576]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
McFozzy
Member

Откуда: Litva
Сообщений: 138
AndreiRantsevich,

Не хватает функциональности в форматере чтобы установить форматирование множественных JOIN условий (ON... AND...)
Например:
select
	*
from dbo.VelocitySearch as vs
	inner join dbo.VelocityItem as vi
		on	vs.VelocitySearchId = vi.VelocitySearchId 
			and vi.VelocityTypeId = 1
29 янв 15, 17:10    [17190930]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Leax
Member

Откуда: Киев
Сообщений: 432
А можно как-то заскриптовать выделенный кусок грида, чтобы он попал в буфер обмена, как будто я его скопировал из Excel, а не из грида студии?
При копировании из грида студии и из Excel вставка в Outlook дает совсем разные результаты- нет табличного форматирования и т.п.
5 мар 15, 10:37    [17345379]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10436
AndreiRantsevich
Winnipuh
Есть длинный скрипт, пускаю, получаю сообщение:

SSMSBoost guard: обнаружен update без where

Yes No

У меня три километра скрипт... почему бы не дать хотя бы первое вхождение обнаруженной фигни ?
Номер строки на худой конец.

Согласен, мы это добавим


спасибо.

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

зы. Я нарывался на это на апдейте или удалении из временных таблиц внутри процедуры.
5 мар 15, 11:15    [17345603]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Leax
Member

Откуда: Киев
Сообщений: 432
Leax
А можно как-то заскриптовать выделенный кусок грида, чтобы он попал в буфер обмена, как будто я его скопировал из Excel, а не из грида студии?
При копировании из грида студии и из Excel вставка в Outlook дает совсем разные результаты- нет табличного форматирования и т.п.

А ещё лучше - добавить в контекстное меню команду вроде "Copy as Excel cells"
5 мар 15, 12:21    [17346035]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 765
Leax
Leax
А можно как-то заскриптовать выделенный кусок грида, чтобы он попал в буфер обмена, как будто я его скопировал из Excel, а не из грида студии?
При копировании из грида студии и из Excel вставка в Outlook дает совсем разные результаты- нет табличного форматирования и т.п.

А ещё лучше - добавить в контекстное меню команду вроде "Copy as Excel cells"


У нас даже такой уже пункт записан. Формировать XML Spreadsheet мы уже умеем, осталось научиться правильно записывать его в буфер обмена. Если кто хочет нам помочь и написать на c# маленькиу прототип (с правильным выставлением типа данных в буфере и т.д.), то будем благодарны. Тогда эта функциональность быстро попадёт в релиз. Награда - профессиональная лицензия.

У нас пока некоторая задержка с планами, т.к. обновляем сайт и дорабатывает саму программу. Релиз планировали на 1-е марта, но пока не вписались. Ещё дней 10 будем над ним работать.
5 мар 15, 14:17    [17346905]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
AndreiRantsevich, я правильно понимаю, что это нужно сделать, не поднимая процесс Excel и не пользуясь библиотеками Excel? Иначе пример то банально прост:

+
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;

namespace ConsoleApplication
{
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            Excel.Application xlApp = new Excel.Application();
            Excel.Workbook wb = xlApp.Workbooks.Add();
            Excel.Worksheet ws = (Excel.Worksheet)wb.Worksheets[1];
            ws.Paste();
            ws.UsedRange.Copy();
            wb.Close(false);
            xlApp.Quit();
        }
    }
}
5 мар 15, 17:55    [17348770]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
Для примера я просто скопировал несколько строк из грида, запустил это приложение, после того, как оно отработало - вставил результат в Outlook в виде таблицы.
5 мар 15, 17:57    [17348778]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 765
Minamoto
AndreiRantsevich, я правильно понимаю, что это нужно сделать, не поднимая процесс Excel и не пользуясь библиотеками Excel? Иначе пример то банально прост:

+
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;

namespace ConsoleApplication
{
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            Excel.Application xlApp = new Excel.Application();
            Excel.Workbook wb = xlApp.Workbooks.Add();
            Excel.Worksheet ws = (Excel.Worksheet)wb.Worksheets[1];
            ws.Paste();
            ws.UsedRange.Copy();
            wb.Close(false);
            xlApp.Quit();
        }
    }
}

Спасибо, но тут надо без участия Экселя, он тяжеловесный слишком.
Вопрос пока остаётся открытым. Решить то мы его сможем, просто может кто-то поможет нам сэкономить время.
5 мар 15, 18:22    [17348884]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
AndreiRantsevich, без участия Excel сложнее, но тоже реализуемо )

Единственное замечание - я сделал чисто Proof of Concept, не делая какого то особого форматирования, без подгонки ширины колонок под данные и т.п., и проверял только вставкой в Outlook - сработало, на другом ПО проверок не делал.

В Clipboard перед выполнением находится фрагмент грида, скопированный из студии, примерно такой:

1 1 2013-09-13 02:00:21.200
2 1 2013-09-14 02:00:35.227
3 1 2013-09-15 02:00:12.283

Код:
+
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;

namespace ConsoleApplication2
{
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {

            IDataObject clipboard = Clipboard.GetDataObject();

            string res = "<col width=64 span=3 style='width:48pt'><tr height=20 style='height:15.0pt'>" +
                "<td height=20 align=right width=64 style='height:15.0pt;width:48pt'>";

            res += clipboard.GetData(DataFormats.Text).ToString();

            res = res.Replace('\t'.ToString(), "</td><td width=64 style='width:48pt'>");

            res = res.Replace('\n'.ToString(), 
                "</td></tr><tr height=20 style='height:15.0pt'><td height=20 align=right style='height:15.0pt'>");

            res += "</td></tr>";

            res = GetHtmlData(res);

            var newObject = new DataObject();

            newObject.SetData(DataFormats.Text, clipboard.GetData(DataFormats.Text));
            newObject.SetData(DataFormats.UnicodeText, clipboard.GetData(DataFormats.UnicodeText));
            newObject.SetData(DataFormats.StringFormat, clipboard.GetData(DataFormats.StringFormat));
            newObject.SetData(DataFormats.Html, res);

            Clipboard.SetDataObject(newObject, true);

        }

        private static string GetHtmlData(string html)
        {
            var sb = new StringBuilder();

            const string header = @"Format:HTML  Format 
Version:1.0 
StartHTML:<<<<<<<1 
EndHTML:<<<<<<<2 
StartFragment:<<<<<<<3 
EndFragment:<<<<<<<4 
StartSelection:<<<<<<<3 
EndSelection:<<<<<<<3";

            sb.Append(header);
            int startHtml = sb.Length;

            sb.Append(@"<!DOCTYPE HTML PUBLIC  ""-//W3C//DTD HTML 4.0  Transitional//EN"">
<html xmlns:v=""urn:schemas-microsoft-com:vml"" xmlns:o=""urn:schemas-microsoft-com:office:office"" 
xmlns:x=""urn:schemas-microsoft-com:office:excel"" xmlns=""http://www.w3.org/TR/REC-html40"">
<head><meta http-equiv=Content-Type content=""text/html; charset=utf-8"">
<meta name=ProgId content=Excel.Sheet>
<meta name=Generator content=""Microsoft Excel 15"">
<style><!--table	{mso-displayed-decimal-separator:""\,"";	mso-displayed-thousand-separator:"" "";}
@page {margin:.75in .7in .75in .7in; mso-header-margin:.3in; mso-footer-margin:.3in;} tr {mso-height-source:auto;} 
col {mso-width-source:auto;} br {mso-data-placement:same-cell;} 
td {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:11.0pt; 
font-weight:400; font-style:normal; text-decoration:none; font-family:Calibri, sans-serif; mso-font-charset:204; 
mso-number-format:General; text-align:general; vertical-align:bottom; border:none; mso-background-source:auto; 
mso-pattern:auto; mso-protection:locked visible; white-space:nowrap; mso-rotate:0;} --> </style></head>
<body link=""#0563C1"" vlink=""#954F72""> 
<table border=0 cellpadding=0 cellspacing=0 width=192 style='border-collapse:collapse;width:144pt'>
<!--StartFragment-->");
            int fragmentStart = sb.Length;

            sb.Append(html);
            int fragmentEnd = sb.Length;

            sb.Append(@"<!--EndFragment--></table></body></html>");
            int endHtml = sb.Length;

            // Backpatch offsets 

            sb.Replace("<<<<<<<1", String.Format("{0,8}", startHtml));
            sb.Replace("<<<<<<<2", String.Format("{0,8}", endHtml));
            sb.Replace("<<<<<<<3", String.Format("{0,8}", fragmentStart));
            sb.Replace("<<<<<<<4", String.Format("{0,8}", fragmentEnd));

            return sb.ToString();
        }
    }
}
10 мар 15, 18:38    [17366558]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
Зависимость от Microsoft.Office.Interop.Excel в коде осталась от предыдущих экспериментов, ее можно убрать.
10 мар 15, 18:40    [17366564]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 765
Minamoto
AndreiRantsevich, без участия Excel сложнее, но тоже реализуемо )

Единственное замечание - я сделал чисто Proof of Concept, не делая какого то особого форматирования, без подгонки ширины колонок под данные и т.п., и проверял только вставкой в Outlook - сработало, на другом ПО проверок не делал.
....

Minamoto, спасибо за пример.
Я так понимаю что он больше ориентирован на вставку данных НЕ в эксель, а, например, в письма Outlook, правильно ? Т.к. насколько я понял отсутствует информация о типах данных.
Пользователям нужен универсальный способ, что бы данные копировались так, как будто их скопировали из экселя. Потом вставляй хоть в письмо, хоть в нотпад, хоть в другой эксель. Ваш пример можно до этого доработать ?
11 мар 15, 13:55    [17369901]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
AndreiRantsevich, ну, в общем, Excel умеет вставленные данные сам разбирать по колонкам - если скопировать данные из грида в студии и вставить в Excel - он их разделит, и даже распознает типы данных. Поэтому каких то специальных ухищрений, как мне кажется, для этого не нужно делать.

Я попробовал обработанные данные вставить в Excel - получил корректную таблицу, с единственным минусом - даты отобразились как числа, что исправилось простым изменением формата ячейки.

Конечно, можно доработать механизм - кроме формирования формата HTML, можно формировать еще XML SpreadSheet - более близкий к Excel формат, возможно, он даст еще больше контроля над вставляемыми в Excel данными.

В Outlook данные вставляются корректно - как таблица, в Notepad - как текст, так как буфер обмена содержит блок для типа данных "текст".

Вообще, если копировать данные из Excel, то в буфер обмена помещаются данные в примерно 15 форматах, включая RTF и бинарные форматы Office - BIFF, не хотелось бы воспроизводить их все, тем более, что простого текста + HTML должно быть достаточно.
11 мар 15, 15:00    [17370395]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 765
Minamoto
AndreiRantsevich, ну, в общем, Excel умеет вставленные данные сам разбирать по колонкам - если скопировать данные из грида в студии и вставить в Excel - он их разделит, и даже распознает типы данных. Поэтому каких то специальных ухищрений, как мне кажется, для этого не нужно делать.

Я попробовал обработанные данные вставить в Excel - получил корректную таблицу, с единственным минусом - даты отобразились как числа, что исправилось простым изменением формата ячейки.

Конечно, можно доработать механизм - кроме формирования формата HTML, можно формировать еще XML SpreadSheet - более близкий к Excel формат, возможно, он даст еще больше контроля над вставляемыми в Excel данными.

В Outlook данные вставляются корректно - как таблица, в Notepad - как текст, так как буфер обмена содержит блок для типа данных "текст".

Вообще, если копировать данные из Excel, то в буфер обмена помещаются данные в примерно 15 форматах, включая RTF и бинарные форматы Office - BIFF, не хотелось бы воспроизводить их все, тем более, что простого текста + HTML должно быть достаточно.


А чем вы пользовались для изучения содержания буфера обмена ? Что посоветуете ?
Мы конечно хотим сделать более менее гибко и поддержать несколько форматов.
11 мар 15, 15:31    [17370684]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
AndreiRantsevich, пользовался http://stackoverflow.com/, в основном :)

Разбирался вообще с объектом Clipboard, и что он возвращает.

Накидал простенький прототипчик для получения всех объектов, и их содержимого, вот он уже в причесанном виде:

+
using System;
using System.Windows.Forms;

namespace ConsoleApplication3
{
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {

            IDataObject clipboard = Clipboard.GetDataObject();

            String[] allFormats = clipboard.GetFormats();

            System.IO.MemoryStream ms = new System.IO.MemoryStream();


            string theResult = "The format(s) associated with the data are:" + '\n';
            for (int i = 0; i < allFormats.Length; i++)
            {
                theResult += "Format: " + allFormats[i] + '\n';

                try
                {

                    try
                    {
                        ms = (System.IO.MemoryStream)clipboard.GetData(allFormats[i]);

                        var sr = new System.IO.StreamReader(ms);

                        theResult += "Data: " + sr.ReadToEnd() + '\n';

                    }
                    catch
                    {

                        theResult += "Data: " + clipboard.GetData(allFormats[i]) + '\n';

                    }
                }
                catch
                { }

                System.IO.File.WriteAllText(@"Result.txt", theResult);
            }
            
            


        }
    }
}


Простейший пример - копирую данные из грида студии, запускаю прототипчик, проверяю, что попало в файл. Потом вставляю данные в Excel, форматирую, если нужно (типы данных привожу), копирую из Excel, снова запускаю прототипчик, смотрю, что добавилось. Гуглю, как реализовать такие форматы.
Добавляется очень много, не вижу смысла в том, чтобы реализовывать их все - думаю, будет абсолютно достаточно для 99% случаев сделать корректное создание типа данных HTML (то, что я выше добавлял) и XML Spreadsheet - это более близкий к Excel формат.

Вообще эту работу я могу проделать, если дадите мне пример кода, как у вас подхватываются данные из грида студии и как обрабатываются (какие объекты, содержащие строки и колонки, какие типы данных перехватываются, и т.д.)
11 мар 15, 15:40    [17370737]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 765
Minamoto
AndreiRantsevich, пользовался http://stackoverflow.com/, в основном :)

Разбирался вообще с объектом Clipboard, и что он возвращает.

Накидал простенький прототипчик для получения всех объектов, и их содержимого, вот он уже в причесанном виде:

+
using System;
using System.Windows.Forms;

namespace ConsoleApplication3
{
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {

            IDataObject clipboard = Clipboard.GetDataObject();

            String[] allFormats = clipboard.GetFormats();

            System.IO.MemoryStream ms = new System.IO.MemoryStream();


            string theResult = "The format(s) associated with the data are:" + '\n';
            for (int i = 0; i < allFormats.Length; i++)
            {
                theResult += "Format: " + allFormats[i] + '\n';

                try
                {

                    try
                    {
                        ms = (System.IO.MemoryStream)clipboard.GetData(allFormats[i]);

                        var sr = new System.IO.StreamReader(ms);

                        theResult += "Data: " + sr.ReadToEnd() + '\n';

                    }
                    catch
                    {

                        theResult += "Data: " + clipboard.GetData(allFormats[i]) + '\n';

                    }
                }
                catch
                { }

                System.IO.File.WriteAllText(@"Result.txt", theResult);
            }
            
            


        }
    }
}


Простейший пример - копирую данные из грида студии, запускаю прототипчик, проверяю, что попало в файл. Потом вставляю данные в Excel, форматирую, если нужно (типы данных привожу), копирую из Excel, снова запускаю прототипчик, смотрю, что добавилось. Гуглю, как реализовать такие форматы.
Добавляется очень много, не вижу смысла в том, чтобы реализовывать их все - думаю, будет абсолютно достаточно для 99% случаев сделать корректное создание типа данных HTML (то, что я выше добавлял) и XML Spreadsheet - это более близкий к Excel формат.

Вообще эту работу я могу проделать, если дадите мне пример кода, как у вас подхватываются данные из грида студии и как обрабатываются (какие объекты, содержащие строки и колонки, какие типы данных перехватываются, и т.д.)


Буду благодарен если поможете довести всё до конца. Пишите дальше мне на support@, что бы тут не засорять тему.
С данными всё даже ещё проще: к нас есть скриптеры грида. С их помощью мы можем сгенерировать любой документ.
Остаётся положить его потом в правильном виде с правильным типом в буфер.
Предлагаю остановиться на 3-х: текст, xml spreadsheet, html. Все они уже генерируются скриптером, надеюсь вы им уже пользовались. Если нет - то посмотрите там что к чему. Найдите как правильно записывать в буфер результаты работы 2-х наших скриптеров (Excel (MS XML Spreadsheet), HTML <table>) и это и будет ответ на вопрос. Если что-то не подойдёт, то мы можем подправить скриптеры или сделать новые.
11 мар 15, 16:13    [17370991]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Penner
Member

Откуда:
Сообщений: 320
что-то подозрително тихо :(
7 апр 15, 11:09    [17482438]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 40 41 42 43 44 [45] 46 47 48 49 .. 76   вперед  Ctrl
Все форумы / Microsoft SQL Server Ответить