[{"id":"08e0fe96-3025-463b-bcee-87f4b29c462b","tags":[{"product":null,"links":null,"id":"92283933-94f9-4e9a-8d93-15ba4ec8b3ec","name":"upd","color":"#7e678a","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"0d5035e7-1a53-4dc5-b32e-9ce261bfa47e","tags":[{"product":null,"links":null,"id":"92283933-94f9-4e9a-8d93-15ba4ec8b3ec","name":"upd","color":"#7e678a","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"2fb2b485-f567-436c-9ca9-06dd71ceadb3","tags":[{"product":null,"links":null,"id":"92283933-94f9-4e9a-8d93-15ba4ec8b3ec","name":"upd","color":"#7e678a","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"c1466f0c-9710-41d3-9812-c7321630328a","tags":[{"product":null,"links":null,"id":"e1d31134-0bda-4c05-bee0-b1f21f82940b","name":"new","color":"#00A273","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"b0e616b5-b520-405e-b108-e81363a8dd74","tags":[{"product":null,"links":null,"id":"92283933-94f9-4e9a-8d93-15ba4ec8b3ec","name":"upd","color":"#7e678a","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"f5712fda-d364-4652-9783-3073e2560b97","tags":[{"product":null,"links":null,"id":"92283933-94f9-4e9a-8d93-15ba4ec8b3ec","name":"upd","color":"#7e678a","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"8f03c498-1e02-459a-a6de-ee619033d6d2","tags":[{"product":null,"links":null,"id":"92283933-94f9-4e9a-8d93-15ba4ec8b3ec","name":"upd","color":"#7e678a","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"2b701643-01a1-40e0-b49b-0a6e93c1f847","tags":[{"product":null,"links":null,"id":"e1d31134-0bda-4c05-bee0-b1f21f82940b","name":"new","color":"#00A273","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"07b4f367-7ddc-4c8a-932c-b180f112364e","tags":[{"product":null,"links":null,"id":"e1d31134-0bda-4c05-bee0-b1f21f82940b","name":"new","color":"#00A273","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]}]
        
(Showing Draft Content)

ビューワの使用(Next.js)

Next.jsはReactをベースに開発されたフレームワークであり、アプリケーションに対して明確に定義された構造を提供し、最適化によって開発プロセスを高速化します。このチュートリアルでは、帳票ビューワコンポーネントを使用してNext.jsアプリケーションを作成し、単純なレポートを表示します。

Next.jsアプリケーションを作成する

Next.jsアプリケーションを作成する簡単な方法はCLIツールのcreate-next-appを使用することです。

create-next-appを使用するためには事前にNodeJSがコンピュータにインストールされている必要があります。

  1. コマンドプロンプトで次のコマンドを入力して、新しいNext.jsアプリケーションを作成します。

npx create-next-app@latest arjs-nextjs-viewer-app

上記コマンドを実行すると複数のプリセットの選択肢が表示されます。このトピックではデフォルトの選択肢で作成するため、次のように設定します。

Would you like to use TypeScript with this project?……Yes
Would you like to use ESLint with this project?……Yes
Would you like to use Tailwind CSS with this project?……Yes
Would you like to use 'src/' directory with this project?……No
Use App Router (recommended)?……Yes
Would you like to customize the default import alias?……No
  1. 作成したディレクトリを作業ディレクトリとします。次のコマンドを入力して作業ディレクトリに移動します。

cd arjs-nextjs-viewer-app
  1. 次のコマンドを入力してActiveReportsJSReact対応パッケージ、およびビューワを日本語化するためのローカライズパッケージをインストールします。

npm install @mescius/activereportsjs-react @mescius/activereportsjs-i18n
  1. React用の帳票ビューワコンポーネントをNext.jsで機能させるには、componentsというフォルダ(存在しない場合はアプリケーションのルートフォルダに作成)に、ReportViewer.tsxファイルを追加し、以下の内容を設定します。

"use client";
import { Viewer } from "@mescius/activereportsjs-react";
import { Props as ViewerProps } from "@mescius/activereportsjs-react";
import "@mescius/activereportsjs/pdfexport";
import "@mescius/activereportsjs-i18n";
import React from "react";

// レポートビューワのデフォルトのテーマをインポートします。
import "@mescius/activereportsjs/styles/ar-js-ui.css";
import "@mescius/activereportsjs/styles/ar-js-viewer.css";

const ViewerWrapper = (props: ViewerWrapperProps) => {
  const ref = React.useRef<Viewer>(null);
  React.useEffect(() => {
    ref.current?.Viewer.open(props.reportUri);
  }, [props.reportUri]);
  return <Viewer {...props} ref={ref} />;
};
export type ViewerWrapperProps = ViewerProps & { reportUri: string };
export default ViewerWrapper;

Next.jsではクライアントコンポーネントとして使用する際、use clientを宣言する必要があります。

  1. app\page.tsxファイルを開き、その内容を次のように変更します。

import type { NextPage } from "next";
import React from "react";
import { ViewerWrapperProps } from "../components/ReportViewer";

// 動的インポートを使用して、レポートビューワのラッパーをロードします。詳細については、「https://nextjs.org/docs/advanced-features/dynamic-import」を参照してください。
import dynamic from "next/dynamic";
const Viewer = dynamic<ViewerWrapperProps>(
  async () => {
    return (await import("../components/ReportViewer")).default;
  },
  { ssr: false }
);

const Home: NextPage = () => {
  return (
    <div
      style={{ width: "100%", height: "100vh" }}
    >
      <Viewer reportUri="reports/quick-start-sample.rdlx-json" language="ja" />
    </div>
  );
};

export default Home;

ActiveReportsJSはクライアントサイド(ブラウザ上)で動作する帳票ライブラリのため、{ ssr: false }オプションを指定し、SSR(サーバーサイドレンダリング)しないように設定します。

  1. public\reportsディレクトリを作成し、サンプルレポートを作成するで作成したquick-start-sample.rdlx-jsonファイルを配置します。

  2. 次のコマンドを入力してNext.jsアプリケーションを実行します。

npm run dev
  1. ブラウザで「localhost:3000」を参照し、アプリケーションを表示します。

quick-start-viewer