2011-03-11 2 views
0

제가 일하는 의료 회사는 환자 파일의 디지털 사본을 보관할 수 있도록 EMR 시스템 설정을 제공하므로 검색 및 빠른 액세스가 가능합니다. EMR 시스템에 전자 메일을 저장할 수있는 새로운 요청이 있었지만 .msg 파일은 매우 멋지게 표시되지 않습니다. 그것은 파일을 멋지게 .htm으로 표시하므로 사용자가 단일 버튼을 누르는 것만으로 .htm 형식의 특정 폴더에 전자 메일 메시지를 저장하는 방법을 찾을 수 있기를 바랍니다.메일 메시지 툴바에 "save as html"이 있습니다.

이 간단한 작업을 수행하기 위해 vs 2010을 사용하여 추가 기능을 작성해야합니까? 아니면 이것을 할 수있는 더 좋은 방법이 있을까요?

지난 몇 일 동안 명령 줄을 사용하여 간략하게 추가 기능을 살펴 보았지만 메일 항목에 메뉴 항목을 추가하거나 이벤트 처리기를 잃거나 많은 시간 동안 화재가 발생하는 등 많은 문제가 발생했습니다. , 그래서 내가 틀린 나무를 짖고 있는지 궁금 하네.

편집 : 리본 바 사용자 정의를 보면 여전히 2003을 사용하는 일부 사용자를 업그레이드해야하지만 명령 모음보다 더 나은 옵션 인 것 같습니다.

답변

0

리본 바가 내가 찾은 최고의 경로 였지만 시작부터 끝까지 완료하는 프로젝트에 훌륭한 방법을 찾는 데 어려움이 있었기 때문에 여기서 작은 글을 쓸 것입니다.

버튼 이미지를 포함하여 기존 메일 메시지에 대해서만 리본에 버튼을 추가하려면.

사용 VS 2010 새 프로젝트, Office에서 "Outlook 2007 추가 기능"을 선택하고 프로젝트 이름을 입력하십시오. 새롭게 생성 된 프로젝트에 원하는 "리본 (XML)"새 이름을 추가합니다. 원하는 이름으로 CustomRibbon을 호출합니다. 새로 만든 CustomRibbon.xml 파일을 열고 탭 노드를 다음과 같이 변경하십시오.

<tab idMso="TabReadMessage"> 

    <group insertBeforeMso="GroupActions" id="CustomGroup" label="GroupNameThatShowsInOutlook"> 
     <button id="btnCustomButton" 
      label = "Text For The Custom Button" 
      supertip="tip for the button hover" 
      onAction ="ButtonClicked" 
      size="large" 
      getImage="GetCustomButtonImage" /> 

    </group> 
    </tab> 

다음은 CustomRibbon.cs 파일에 대한 두 가지 콜백 함수 인 GetCustomButtonImage와 다른 ButtonClicked가 있습니다.

개방 CustomRibbon.cs는

public stdole.IPictureDisp GetCustomButtonImage(Office.IRibbonControl control) 
{ 
    System.Drawing.Image myImage; 
    myImage = OutlookAddIn.Properties.Resources.ImageName; 
    return AxHostConverter.ImageToPictureDisp(myImage); 
} 

이 다음이 표시됩니다 같은 섹션에 다음을 추가 또한

public void ButtonClicked(Office.IRibbonControl Control) 
{ 
    //Do work here 
} 

에 따라 추가 리본 콜백 지역에서,이를 채우기 위해 클래스가 누락 되었다면 곧 살펴볼 것이지만, 먼저 우리가 필요로하는 마지막 부분에 CustomRibbon.cs를 추가 할 것입니다. IRibbonExtensibility 회원 지역에서 GetCustomUI에서 System.Windows.Forms를 사용하여 상단

이 추가 추가 AxHostConverter가 호출

public string GetCustomUI(string ribbonID) 
{ 
    if (ribbonID == "Microsoft.Outlook.Mail.Read") 
    { 
     return GetResourceText("OutlookAddIn.CustomRibbon.xml"); 
    } 
    else 
    { 
     return ""; 
    } 
} 

이 프로젝트에 새 클래스를 추가 기존 코드를 변경; using System.Drawing;

그런 다음 프로젝트로 버튼 이미지를 추가 다음 코드

class AxHostConverter : AxHost 
{ 
    private AxHostConverter() : base("") { } 

    static public stdole.IPictureDisp ImageToPictureDisp(Image image) 
    { 
     return (stdole.IPictureDisp)GetIPictureDispFromPicture(image); 
    } 

    static public Image PictureDispToImage(stdole.IPictureDisp pictureDisp) 
    { 
     return GetPictureFromIPicture(pictureDisp); 
    } 
} 

을 가지고 클래스를 변경하고 해당 자원을 사용하도록 GetCustomButtonImage 기능을 변경합니다. 나는 PNG를 사용했고 투명성이 잘 보이는 행운을 보았습니다.

그리고는 마지막으로 남아 있어야하는 모든 ThisAddIn.cs

protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject() 
    { 
     return new CustomRibbon(); 
    } 

당신은 buttonClicked하고자하고 있고이 설정되어 어떤 코드를 추가하려면 다음과 같은 추가하는 것입니다.

Clickonce를 사용한 배포와 설치는 매우 간단합니다.

관련 문제