0

Google スプレッドシートで作成している UI に問題があります。最初に、それがどのように機能するかについて少し説明し、それから問題に取り掛かります。UI は、SQL データベースに接続する非常に単純なプログラムであり、ユーザーは新しいレコードの作成、クエリ、検索、およびレポートのレンダリングを行うことができます。GUI ビルダーですべてのパネル (イントロ ページ、作成レコードなど) を作成しました。ユーザーが UI をナビゲートするときに、グリッドをユーザーに表示する新しいパネルと交換します。たとえば、イントロ ページには作成ボタンがあり、ユーザーがボタンをクリックすると、イントロ パネルがあったグリッドがレコード作成パネルに置き換えられます。ユーザーがデータをクエリ/検索するための 2 つの方法を作成しました。最初の方法は、イントロ パネルで番号範囲を選択し、[クエリ] ボタンをクリックすることです。これにより、最後の 10 件ほどのレコードが照会され、MainForm と呼ばれる GUI ビルドのパネルに入れられます。2 つ目は、仕事を「探す」方法です。紹介ページには、ユーザーがボタンをクリックすると新しいページに移動する検索ボタンがあります。グリッドが検索パネルに切り替わります。新しいページ/パネルで、ユーザーは検索するパラメータを入力できます。ユーザーが検索ボタンをクリックすると、イントロ ページからクエリを実行する場合と同じように、プログラムは検索結果を MainForm にロードする必要があります。関数全体を行ごとに分解したので、問題はパネル/コンポーネントのロードに関係していると確信しています。つまり、これらの数行のコードです。紹介ページには、ユーザーがボタンをクリックすると新しいページに移動する検索ボタンがあります。グリッドが検索パネルに切り替わります。新しいページ/パネルで、ユーザーは検索するパラメータを入力できます。ユーザーが検索ボタンをクリックすると、イントロ ページからクエリを実行する場合と同じように、プログラムは検索結果を MainForm にロードする必要があります。関数全体を行ごとに分解したので、問題はパネル/コンポーネントのロードに関係していると確信しています。つまり、これらの数行のコードです。紹介ページには、ユーザーがボタンをクリックすると新しいページに移動する検索ボタンがあります。グリッドが検索パネルに切り替わります。新しいページ/パネルで、ユーザーは検索するパラメータを入力できます。ユーザーが検索ボタンをクリックすると、イントロ ページからクエリを実行する場合と同じように、プログラムは検索結果を MainForm にロードする必要があります。関数全体を行ごとに分解したので、問題はパネル/コンポーネントのロードに関係していると確信しています。つまり、これらの数行のコードです。関数全体を行ごとに分解したので、問題はパネル/コンポーネントのロードに関係していると確信しています。つまり、これらの数行のコードです。関数全体を行ごとに分解したので、問題はパネル/コンポーネントのロードに関係していると確信しています。つまり、これらの数行のコードです。

  var Component = app.loadComponent("MainForm");
  var panel = app.createVerticalPanel().setSize("770px", "900px").add(Component);
  app.getElementById("contentGrid").setWidget(0,0, panel);

しかし、あるケースではロードされるのに、別のケースではロードされないのはなぜでしょうか? また、コンポーネントをロードする方法ではなく、パネル/コンポーネントを返す方法です。

要約すると、クエリ関数を使用してコンポーネントをロードすると機能しますが、検索関数でコンポーネントをロードするとエラーが発生します: 互換性のない型がパラメーターとして渡されました。また、MainForm コンポーネントを他の 2 つの関数としてロードすると、ほとんどの場合は機能しますが、同じエラーが発生することもあります。

4

1 に答える 1

1

あなたのアプローチは理想的でload componentはないと思います。複数回呼び出されることは想定されていません。すべてのパネルを同じコンポーネントに配置し、各パネルの可視性を調整してオンデマンドで表示/非表示にする方がはるかに効率的です。「古いパネル」が隠れたときに「新しいパネル」がその場所に滑り込むように、各パネルを垂直パネルに挿入する必要があります。

このアプローチの例は、タブをシミュレートするためにこの投稿に示されています。これは、ニーズに簡単に適応させることができます。

ところで、完全な UI が最初から準備されているため、この方法も非常に高速で応答性が高いです ;-)

于 2013-01-28T07:09:09.067 に答える