Q9:工程表の受注情報に欄を加えようと、列を追加したところ、「リストのサイズが適切ではない」とのエラーになりました。
Q9-1:
確かにアプリケーションで取得しているMySQLからの情報の列数は元のままです。テーブルの列数は画面編集で編集した内容で修整されると考えていたのですが、何かほかに設定する必要がありそうですが、どうも分かりません。
A9-1:
お問い合わせのエラーは、設定しようとしたリストのサイズとテーブルの列数が一致しなかったために発生したものです。
受注情報テーブルの列を新しく追加することによりテーブルの列数は4となりますが、MySQLから取得したテーブルの列数は3のままです。そのため、アプリケーションでは、[A02, A02, 2010/05/10 12:00:00]のような要素数3のリストを列数4の受注情報テーブルに設定しようとします。その結果、「リストのサイズが合わない」というエラーが発生しています。
すなわち、テーブルの列数は画面編集した内容で修正されるのですが、そこに設定するリストのサイズが修正後の列数と食い違っているために、エラーとなっています。
エラー発生を回避する方法としましては、設定するリストに要素を1つ追加してサイズをテーブルの列数と合わせるか、あるいは、リストとして一括で設定するのではなく、リストに含まれる要素を1つずつ取り出して受注情報テーブルのセルに逐次設定し、リストのすべての要素を設定し終えた時点で処理を終了するという方法が考えられます。
受注情報テーブルへのデータ設定処理は、Null判定[ID:7-26 KEY:"受注情報テーブル設定"]から発生する処理完了イベントに記述されていますので、この部分を修正することになります。
Q9-3:
ご教授いただいた作業表1,2を試してみましたが、両方ともうまく機能していません。
変更内容は受注情報の納期の次にお客様名の列を加えることですが、作業表2では読み込まれている情報にお客様名の欄の情報が出来ていず、作業表1では “Null” の列が作成されましたがDBにある情報は反映されず、ブランクのままです。何か基本的な問題があるかと悩んでいます。作業を続けていますが、何かアドバイスがあればよろしくお願いします。
作業表1で気になるのは「追加位置と追加データはアプリケーションにより変更」とコメントがありましたが、これらの情報をどう設定するのか、属性情報設定でも、起動メソッドでも該当すると思われる情報入力項目は見つからず、困っていますが、これができていないためかとも考えています。
A9-3:
まずはじめに確認させていただきたいのですが、
(1) ラベル[7-42]に設定されているSQL文は正しいでしょうか。
工程管理システム簡易版の配布時の状態では、
select label,product,delivery from project order by label
となっておりますが、この文の「delivery」の次に、データベースのテーブルのフィールド名(お客様名の列名)に相当する文字列がきちんと追加されているでしょうか。
例:フィールド名がAAAの場合(projectにAAAフィールドがある場合)
select label,product,delivery,AAA from project order by label
(2)オペランドとして設定されているリストデータは正しいでしょうか。
デバッガを用いるか、「リスト」コンポーネントに設定するなどして、追加した項目がデータベースから読み込まれているか、ご確認をお願いします。
先のメールまでにお知らせしました対処法は、リストの要素数が、テーブルの列数よりも1つ少ない場合の対処法です。
きちんと4つの要素のリストが取得され、テーブルの列数が4つになっている場合には、先のメールでお知らせした処理(作業表1、作業表2での方法)は不要になります。
(作業表1の方法では、単にnullをリストに追加し設定しておりますので、このままでは、セルにnullしか設定されません。nullの代わりにお客様名を設定できれば、正しく動作するはずです。作業表2につきましては、上述のリストデータが正しければ、正しく動作するはずです。)
まずは、ご確認をお願い申し上げます。
ご連絡:
事は、このメールを戴くちょっと前に、取得している情報がdeliveryまでであることから、SQL文が修整されていないことに気がつきました。ご教授いただいた例は便宜的な列の追加であって、恒常的な列の追加ではないことであることも気がついたところです。テーブルを変えても、入手する情報の内容が元のままでは入手できませんね。
今修整して問題が解決したことが確認できました。