メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

この資料では、ギリシャ語 (gr) 地域の Microsoft Dynamics NAV に該当します。

現象

ギリシャ語の Office 言語パックがインストールされているを使用するいると仮定します。Microsoft Dynamics NAV 2009 年のギリシャ語版のセグメントに複数の 8 つの線のセグメントを作成するとき Word のオートメーションで「無効な差し込みフィールド」エラーが発生します。
この問題は、次の製品で発生します。

  • Microsoft Dynamics NAV 2009 の R2 のギリシャ語版

  • ギリシャ語版の Microsoft Dynamics NAV 2009 サービス パック 1


解決策

修正プログラムの情報

サポートされている修正プログラムはマイクロソフトから現在入手可能です。ただし、この資料に記載されている問題を解決するためのものはのみ。この特定の問題が発生したシステムにのみ適用してください。この修正プログラムは、今後さらにテストを行うことがあります。この問題で深刻な影響を受けていない場合は、次の Microsoft Dynamics NAV 2009 サービス パックまたは修正プログラムを含む次の Microsoft Dynamics NAV バージョン待つことを勧めします。

注: かかる料金が免除されるテクニカル サポート担当者 Microsoft Dynamics および関連製品のことは、通常は特別な場合は、特定の更新プログラムは、問題を解決するにを決定します。追加の質問および問題の特定のアップデートの対象にはなりませんが、通常のサポート料金が適用されます。



インストール情報

マイクロソフトでは解説することのみを目的としてプログラミング例を提供しています。暗示あるいは明示していることに対しての保証はしておりません。ここで言う保証とは、特定の目的に対する商品性や適合性の暗示的保証を含んでいますが、それに限定されるわけではありません。この資料では、例示されているプログラミング言語およびプロシージャの作成やデバッグに使用するツールにお客様が精通していることを前提としています。マイクロソフトのサポート エンジニアは、特定のプロシージャの機能を説明することができますが、機能の追加またはお客様固有の要件を満たすようにプロシージャを作成するこれらの例は変更されません。

注: この修正プログラムをインストールする前に、Microsoft Navision のすべてのクライアント ユーザーがシステムの電源を記録することを確認します。これには、Microsoft Navision アプリケーション サービス (NAS) クライアントのユーザーが含まれます。この修正プログラムを実装すると、ログオンしている唯一のクライアント ユーザーが必要です。

この修正プログラムを実装するには、開発者用のライセンスが必要です。

ユーザー アカウントまたはデータベース ログイン ウィンドウに Windows のログイン ウィンドウにある「スーパー」ロール id を割り当てられていることをお勧めします。ユーザー アカウントには、「スーパー」ロール ID を割り当てることができません、する場合は、ユーザー アカウントが次のアクセス許可を持っているを確認する必要があります。

  • 変更するオブジェクトの変更のアクセス許可。

  • システム オブジェクトの ID 5210オブジェクトおよびシステム オブジェクトの ID 9015オブジェクトの実行が許可されます。



注: データの修復を実行する必要があるない限り、データ ストアへの権限を持っている必要はありません。

コードの変更

注: 常にテスト コードを修正、管理された環境で適用する前に、運用コンピューターに修正プログラムします。
この問題を解決するには、次の手順を実行します。

  1. WordManagement codeunit (5054) で次のように新しい関数を作成します。

    LOCAL PROCEDURE InsertCharSet(MergeFileName@1000000000 : Text[260]) : Text[250];VAR
    NewLine : Text[250];
    f: File;
    f2: File;
    b: Integer;
    MergeFileNameServer: Text[250];

    IF NOT ISSERVICETIER THEN
    BEGIN
    IF EXISTS(MergeFileName+'$') THEN
    ERASE(MergeFileName+'$');
    WITH f DO BEGIN
    TEXTMODE(TRUE);
    WRITEMODE(FALSE);
    OPEN(MergeFileName);
    END;
    WITH f2 DO BEGIN
    TEXTMODE(TRUE);
    WRITEMODE(TRUE);
    CREATE(MergeFileName+'$');
    END;
    END
    ELSE
    BEGIN
    MergeFileNameServer := RBAutoMgt.ServerTempFileName(Text029,'.HTM');
    UPLOAD(Text021, '', Text032, MergeFileName, MergeFileNameServer);
    WITH f DO BEGIN
    TEXTMODE(TRUE);
    WRITEMODE(FALSE);
    OPEN(MergeFileNameServer);
    END;
    WITH f2 DO BEGIN
    TEXTMODE(TRUE);
    WRITEMODE(TRUE);
    CREATE(MergeFileNameServer+'$');
    END;
    END;

    REPEAT
    b:=f.READ(NewLine);
    IF NewLine='<html>' THEN
    NewLine:= '<HTML><META charset=windows-1253>';
    f2.WRITE(NewLine);
    UNTIL f.POS>=f.LEN;
    f.CLOSE;
    f2.CLOSE;

    IF ISSERVICETIER THEN
    BEGIN
    ERASE(MergeFileNameServer);
    RENAME(MergeFileNameServer+'$', MergeFileNameServer);
    DOWNLOAD(MergeFileNameServer,Text035,'',Text032,MergeFileName);
    END
    ELSE
    BEGIN
    ERASE(MergeFileName);
    RENAME(MergeFileName+'$', MergeFileName);
    END;
    EXIT (MergeFileName);
  2. WordManagement codeunit (5054) 内のInsertCharSet関数では、次の行で 4 桁のコードを変更します。

    NewLine:= '<HTML><META charset=windows-1253>';

    注: [1253] は、Microsoft Dynamics NAV クライアント言語がギリシャ語 (GR) を使用する正しいコードです。Windows 文字セットのコードを Microsoft Dynamics NAV のクライアントの言語には、この 4 桁のコードを変更します。たとえば、「1257」は、ラトビア語 (LV) の正しいコードです。
    Windows の文字セットの完全な一覧を取得するには、次の web サイトを参照してください。
    http://msdn.microsoft.com/en-us/library/aa752010(v=vs.85).aspx

  3. WordManagement codeunit (5054) 内のCreateWordAttachment関数内のコードを次のように変更します。
    既存のコード

    ...IF ISCLEAR(wrdApp) THEN
    CREATE(wrdApp,FALSE,TRUE);
    Attachment."File Extension" := GetWordDocExt(wrdApp.Version);
    wrdDoc := wrdApp.Documents.Add;
    wrdDoc.MailMerge.MainDocumentType := 0; // 0 = wdFormLetters
    ParamInt := 7; // 7 = HTML
    wrdDoc.MailMerge.OpenDataSource(MergeFileName,ParamInt);
    ...

    置換用コード

    ...IF ISCLEAR(wrdApp) THEN
    CREATE(wrdApp,FALSE,TRUE);
    Attachment."File Extension" := GetWordDocExt(wrdApp.Version);
    wrdDoc := wrdApp.Documents.Add;
    wrdDoc.MailMerge.MainDocumentType := 0; // 0 = wdFormLetters
    ParamInt := 7; // 7 = HTML

    // Add the following line.
    MergeFileName:=InsertCharSet(MergeFileName);

    wrdDoc.MailMerge.OpenDataSource(MergeFileName,ParamInt);
    ...
  4. OpenWordAttachment WordManagement codeunit (5054) には、関数内のコードを次のように変更します。
    既存のコード

    ...IF ISCLEAR(wrdMergefile) THEN
    CREATE(wrdMergefile,FALSE,TRUE);
    MergeFileName := RBAutoMgt.ClientTempFileName(Text029,'.HTM');
    CreateHeader(wrdMergefile,TRUE,MergeFileName);
    IF ISCLEAR(wrdApp) THEN
    CREATE(wrdApp,FALSE,TRUE);
    ...

    置換用コード

    ...IF ISCLEAR(wrdMergefile) THEN
    CREATE(wrdMergefile,FALSE,TRUE);
    MergeFileName := RBAutoMgt.ClientTempFileName(Text029,'.HTM');
    CreateHeader(wrdMergefile,TRUE,MergeFileName);

    // Add the following line.
    MergeFileName:=InsertCharSet(MergeFileName);

    IF ISCLEAR(wrdApp) THEN
    CREATE(wrdApp,FALSE,TRUE);
    ...
  5. WordManagement codeunit (5054) 内のExecuteMerge関数内のコードを次のように変更します。
    既存のコード

    ...wrdDoc := wrdApp.Documents.Open(MainFileName);
    wrdDoc.MailMerge.MainDocumentType := 0;
    Window.UPDATE(6,Text013);
    ParamInt := 7; // 7 = HTML
    wrdDoc.MailMerge.OpenDataSource(MergeFileName,ParamInt);
    Window.UPDATE(6,STRSUBSTNO(Text014,TempDeliverySorter."Correspondence Type"));
    ...

    置換用コード

    ...wrdDoc := wrdApp.Documents.Open(MainFileName);
    wrdDoc.MailMerge.MainDocumentType := 0;
    Window.UPDATE(6,Text013);
    ParamInt := 7; // 7 = HTML

    // Add the following line.
    MergeFileName:=InsertCharSet(MergeFileName);

    wrdDoc.MailMerge.OpenDataSource(MergeFileName,ParamInt);
    Window.UPDATE(6,STRSUBSTNO(Text014,TempDeliverySorter."Correspondence Type"));
    ...
  6. WordManagement codeunit (5054) 内のShowMergedDocument関数内のコードを次のように変更します。
    既存のコード

    ...ParamInt := 7; // 7 = HTML
    wrdDoc.MailMerge.OpenDataSource(MergeFileName,ParamInt);
    ParamInt := 9999998; // 9999998 = wdToggle
    wrdDoc.MailMerge.ViewMailMergeFieldCodes(ParamInt);
    END;
    WordHandler(wrdDoc,Attachment,WordCaption,IsTemporary,MainFileName,IsInherited);
    CLEAR(wrdMergefile);
    CLEAR(wrdDoc);
    CLEAR(wrdApp);
    DeleteFile(MergeFileName);
    ...

    置換用コード

    ...ParamInt := 7; // 7 = HTML

    // Add the following line.
    MergeFileName:=InsertCharSet(MergeFileName);

    wrdDoc.MailMerge.OpenDataSource(MergeFileName,ParamInt);
    ParamInt := 9999998; // 9999998 = wdToggle
    wrdDoc.MailMerge.ViewMailMergeFieldCodes(ParamInt);
    END;
    WordHandler(wrdDoc,Attachment,WordCaption,IsTemporary,MainFileName,IsInherited);
    CLEAR(wrdMergefile);
    CLEAR(wrdDoc);
    CLEAR(wrdApp);
    DeleteFile(MergeFileName);
    ...



必要条件

この修正プログラムを適用するのにはインストールされている以下の製品のいずれかが必要です。

  • Microsoft Dynamics NAV 2009 の R2 のギリシャ語版

  • ギリシャ語版の Microsoft Dynamics NAV 2009 サービス パック 1

アンインストール情報

この修正プログラムを削除することはできません。

状況

マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。

注: これは、マイクロソフト サポートの組織内から直接作成した「高速公開」の資料です。ここに含まれる情報は、新たに発生している問題に応じて現状のまま提供されています。速やかに利用できるようにした結果として、内容には誤植が含まれている可能性があり、事前告知なしで改訂する場合があります。その他の考慮事項については、使用条件を参照してください。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×