[{"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)

Webデザイナコンポーネントの使用(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-designer-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-designer-app
  1. 次のコマンドを入力してActiveReportsJSReact対応パッケージ、およびデザイナを日本語化するためのローカライズパッケージをインストールします。

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

"use client";
import { Designer } from "@mescius/activereportsjs-react";
import { DesignerProps } from "@mescius/activereportsjs-react";
import "@mescius/activereportsjs-i18n/dist/designer/ja-locale";
import React from "react";

// デザイナのデフォルトのテーマをインポートします。
import "@mescius/activereportsjs/styles/ar-js-ui.css";
import "@mescius/activereportsjs/styles/ar-js-designer.css";

const DesignerWrapper = (props: DesignerWrapperProps) => {
  const ref = React.useRef<Designer>(null);
  React.useEffect(() => {
    ref.current?.setReport({id: props.reportUri});
  }, [props.reportUri]);
  return <Designer {...props} ref={ref} />;
};

export type DesignerWrapperProps = DesignerProps & { reportUri: string };
export default DesignerWrapper;

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

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

import type { NextPage } from "next";
import React from "react";
import { DesignerWrapperProps } from "../components/ReportDesigner";

// ダイナミックインポートを使用してデザイナのラッパーをロード
import dynamic from "next/dynamic";
const Designer = dynamic<DesignerWrapperProps>(
  async () => {
    return (await import("../components/ReportDesigner")).default;
  },
  { ssr: false }
);

const Home: NextPage = () => {
  return (
    <div
      style={{ width: "100%", height: "100vh" }}
    >
      <Designer 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-designer