Q116-1:CSV入力時のヘッダの扱いはどうなっているのか、テーブルセル結合は可能か、タブ機能の実装はどのようにするのか。
A116-1:
> 【疑問点1】
メールで教授いただいた、CSV取り込みのサンプルを使って検証を行いました。
そこで質問があります。CSVデータをテーブル内にセットするとCSVデータの1行目がヘッダとしてセットされます。(添付画像の状態)
この場合でも、1行目はデータベースに登録されるのでしょうか?
あらかじめヘッダを設定していたとしてもテーブル全体へのデータセットになっているようで、ヘッダを固定する事が難しい状態です。
データベースへ登録する際、テーブルの列ヘッダはデータベーステーブルの列名(フィールド名)と解釈されます。したがって、列ヘッダとしてセットされたCSVの1行目のデータはデータベースへは登録されません。
CSVの1行目のデータを登録するためには、CSV入力コンポーネントの「一行目をヘッダとして読み込むかどうかを設定する(boolean)」メソッドを実行し、一行目をヘッダとして扱わないようにします。この設定は、コンポーネント属性情報設定ダイアログ(CSV入力コンポーネント上右クリック>属性情報設定...と選択して起動)で、「HeaderEnabled」属性をfalseとすることでも行うことができます。
> 【疑問点2】
テーブル内のデータセットに関する質問です。
決められた数の行データを「ロットNo.」としてまとめたいのですが、テーブルコンポーネント内でセルの結合は実装可能でしょうか?
また、テーブルコンポーネントでは難しい場合、他のコンポーネントで代用可能なようでしたら、ご教授いただけると助かります。
テーブルコンポーネントでのセル結合はできません。次善の手段として、「ロットNo.」&「ロット製作時間」用のテーブルとそれ以外の属性用のテーブルを分け、縦スクロールを同期させる方法が考えられます。ただし、行の高さの調整などに手間がかかるかもしれません。
「ロットNo.」とそれに関係する数行のデータの関連付けが一目で分かればよいのであれば、セル結合にはこだわらず、中央付近の行にだけ「ロットNo.」&「ロット製作時間」を表示して他の行は空白とし、色分けのみ行うというのも一案かと存じます。
> 【タブ機能について】
データ入力画面の機能として、「親管1」や「枝管1」といった部品名をクリックするとタブのような動きをさせる予定です。
「親管1」をクリックすると親管1の切断・曲げ情報を表示、「親管2」をクリックすると親管2の切断・曲げ情報を…。というように画像よりも入力項目が多くなります。
タブの動き自体は、タブコンポーネントで実装可能だと思いますが、入力項目が多いことと、タブを実装することで開発工数は思った以上にかかると考えています。
「タブを実装」の内容が何を指しているのか分からないのですが、タブの動きは標準のタブコンポーネントで提供されています。実際の使用例は、付属のサンプル「タブ.mzax」をご覧ください。また、このサンプルには簡単な説明文書も用意されており、スタート>すべてのプログラム>MZ Platform 2.4>ドキュメントインデックスとたどり、表示されたWEBページの左下にある「サンプル(タブ)」よりご覧いただけます。
タブコンポーネントは、パネルを貼り付けていくことで、その個数だけタブを生成します。親管1〜親管5、枝管1〜枝管6のインタフェースおよび内部の処理がまったく同じであるならば、GUI複合コンポーネントで1つだけ作成し、それらをコピーするのがよいでしょう。GUI複合コンポーネントはパネルの1つとして扱えますので、それらをタブコンポーネントに貼り付けていけばそれほど開発工数が膨らむことはないように思います。複合コンポーネントにつきましては、付属の「複合コンポーネントチュートリアル」をご覧ください。こちらもまた、上述のドキュメントインデックスよりご覧いただけます。