Как связать документ PDF с записью с помощью Visual Studio LightSwitch 2011? - PullRequest
0 голосов
/ 20 сентября 2011

У меня возникла следующая проблема: Как связать документ PDF с записью в сетке данных с помощью Visual Studio LightSwitch 2011 и Visual Basic?

Любая помощь будет потрясающей, спасибо!

1 Ответ

1 голос
/ 23 сентября 2011

Вот самый простой способ сделать это: добавить пользовательскую команду в панель команд строки сетки данных для своей таблицы данных.В этом примере я вызываю команду «Открыть файл PDF».Затем добавьте этот код в код Выполнить для команды:

partial void OpenPDFFile_Execute()
{
    const string LOCAL_SERVER_PDF_DIR = @"\\MyServer\PDFs\";
    const string WEB_SERVER_PDF_DIR = "http://myweb.server/PDFs/";
    const string PDF_SUFFIX = ".pdf"; //assumes you do not include the extension in the db field value

    if (AutomationFactory.IsAvailable)
    {
        //if the AutomationFactory is available, this is a desktop deployment
        //use the shell to open a PDF file from the local network
        dynamic shell = AutomationFactory.CreateObject("Shell.Application");

        string filePath = LOCAL_SERVER_PDF_DIR + this.PDFFiles.SelectedItem.FileName + PDF_SUFFIX;
        shell.ShellExecute(filePath);
    }
    else
    {
        //otherwise this must be a web deployment
        //in order to make this work you must add a reference to System.Windows.Browser
        //to the Client project of your LS solution
        var uri = new Uri(WEB_SERVER_PDF_DIR + this.PDFFiles.SelectedItem.FileName + PDF_SUFFIX);
        HtmlPage.Window.Navigate(uri, "_blank");
    }

}

Вам потребуется добавить следующий импорт в начало файла кода пользователя, чтобы этот код компилировался:

using System.Runtime.InteropServices.Automation;
using System.Windows.Browser;

Я должен отметить, что вам нужен каталог для сервера PDF-файлов.Этот пример является гибким в отношении развертывания, поскольку он обрабатывает как настольные, так и веб-конфигурации.Поскольку вам необходимо настроить директорию PDF, вам может потребоваться просто обработать один параметр конфигурации простым способом (или вы можете открыть один и тот же каталог PDF через http и как локальную сетевую папку).

Выможет также хотеть представить это как истинную ссылку вместо кнопки.Для этого вам понадобится пользовательский элемент управления SilverLight.В любом случае, я бы порекомендовал сначала реализовать ссылку PDF с помощью кнопки.Затем вы можете переместить этот же код в обработчик событий ссылки как отдельный проект, если на это стоит потратить время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...