フォーラムへの返信
-
投稿者投稿
-
MZPlatformユーザー会キーマスター
容量の関係か、先ほどの回答でファイルをアップロードできませんでした。
こちらのファイルをお使いください。
どうぞよろしくお願いいたします。添付ファイル:
MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
Excelファイルの読み込み/保存にはApch POIというJavaライブラリーを利用しているのですが、現在使用しているバージョンでは、xlsx形式のファイルを出力する際にバグがありエラーが発生している可能性があります。
大変お手数ですが、以下の設定をお試しください。
1)添付のZIPファイル内にある3つのJarファイル
・poi-3.9-20121203.jar
・poi-ooxml-3.9-20121203.jar
・poi-ooxml-schemas-3.9-20121203.jar
を\MZPlatform\3.6(_64)\jars\apache\poiフォルダ内にコピーして入れます。2)\MZPlatform\3.6(_64)\etcフォルダ内にある「PlatformClassPath.ini」というテキストファイルを「メモ帳」などで開き、上記の3つのjarファイルのパスを記述します。
文書の真ん中辺りに# Apache POIという項があり、現在のバージョンは3.6ですが、それを今回設定した3.9のファイルに変更したいです。
旧い記述は消さずに、先頭に「#」を付けてコメントアウトしておいてください。
該当箇所は以下のような内容になります。
———————————
# Apache POI
#jars/apache/poi/poi-3.6-20091214.jar
#jars/apache/poi/poi-ooxml-3.6-20091214.jar
#jars/apache/poi/poi-ooxml-schemas-3.6-20091214.jar
jars/apache/poi/xmlbeans-2.3.0.jar
jars/apache/poi/dom4j-1.6.1.jar
jars/apache/poi/poi-3.9-20121203.jar
jars/apache/poi/poi-ooxml-3.9-20121203.jar
jars/apache/poi/poi-ooxml-schemas-3.9-20121203.jar
———————————–3)「PlatformClassPath.ini」を上書き保存した後で、MZPlatformを起動します。
以上、お手数をお掛けいたしますが、お試しくいただき、改善されない場合には、再度ご連絡ください。
どうぞよろしくお願い申し上げます。- この返信は2年、 9ヶ月前にMZPlatformユーザー会が編集しました。
- この返信は2年、 9ヶ月前にMZPlatformユーザー会が編集しました。
MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
FAQを参考にしていただきありがとうございます。
ご覧いただいたサンプルファイルでは「.*文字列.*」というような正規表現の文字列を作り、対象行を絞り込む処理を行っています。サンプルファイル作成より後のバージョンアップ時に[テーブルサブセット]フィルターに「行データの文字列で行を選択する(int、String)」等、幾つかのメソッドを追加しております。
文字列、数値、日付型データ、正規表現で行を選択することができます。
このメソッドの文字列での行選択の結果は、文字列が含まれるもの全て=あいまい検索となっていますので、今回は特に正規表現を使わず上記メソッドだけで処理を行うことができます。バージョンアップ後はコンポーネント内部で以前の処理方法と同様の処理がメソッドで行えるようになっており、結果は同じになるのですが、分かりにくくお手数をお掛けいたしました。
動作確認のため簡単なサンプルファイルを作成しましたので、ご参考になれば幸いです。
添付ファイル:
MZPlatformユーザー会キーマスターご連絡ありがとうございます。
添付ファイルをよく確認せず、再度ご連絡のお手数をお掛けして申し訳ありませんでした。
エラーが発生する原因ですが、一つ目のセルに入力しエンターキーを押した時点でデータ更新イベントが発生しますが、このときセルの選択は移動していません。
次に2列目のセルにメソッドによって値が設定されると、データ更新イベントが発生します。
このときセル選択は一つ目にセルに置かれているため、また2列目のセルの値設定処理が呼び出されるという繰り返しになっています。データ更新イベントに繋がる[イベント生成]の「アクションイベントの発生(int)」の引数の「メソッド/値」を「選択列の位置を取得する」から「更新された列の列番号を取得する」に変更してお試しください。
ご不明な点がございましたら、再度ご連絡ください。
よろしくお願い申し上げます。MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
、この掲示板に拡張子mzasまたはmzaxのMZPlatformアプリケーションファイルをそのままアップロードするとエラーになってしまいます。大変お手数ですが、Zipファイルに圧縮して再アップロードしていただけないでしょうか。
お手数をお掛けいたしますが、よろしくお願い申し上げます。
MZPlatformユーザー会キーマスター返信が前後してしまい、大変失礼いたしました。
ご連絡ありがとうございます。
一点確認させていただきたいのですが、読み込むデータの数値型とする列には数字以外の文字は含まれていないでしょうか。例えば、単位表記等です。
また、属性設定で「HeaderEnabled」の項が「false」になっていると一行目から行データとして設定されるので、一行目に列名データがある場合、エラーが発生する可能性があります。
大変お手数ですが、ご確認をお願いいたします。また、[テーブル]もメソッドで列型の変更ができますので、行追加は止めて、メソッド「テーブルデータを設定する(PFObjectTable)」でテーブルデータを設定し、後から列型を変更することも考えられます。
列型の変更のメソッドは「setColumnType(Class,int)」(全メソッド対象に☑を入れて表示)
引数0:java.math.BigIntegerまたはjava.math.BigDecimal、引数1:列位置番号(左端0からスタート)です。大変お手数をお掛けいたしますが、以上どうぞよろしくお願い申し上げます。
MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
画面構成部品の[テーブル]の列型の変更は、画面編集の「コンポーネント内容設定」からだと、可能な設定が限られてしまいますので、「実行(設定可)」ボタンで実行し、[テーブル]上で右クリックして出てくるポップアップメニューから設定します。
テーブルの列行がないところで右クリックすると、メニュー内容が変わってしまいますので、列ヘッダーまたは行の上で右クリックします。列型が違ってエラーになってしまう件ですが、表示用[テーブル]数値型列に文字列型のデータを設定、または文字列型の列に数値型のデータを設定してもエラー発生は少ないかと思います。
リストの設定ということですので、列に選択項目リストを設定する場合は、エラーが発生する場合がありましたので、各列型は合わせた方が良いと思います。
ただし、データ型が違って追加できないというエラーではありませんでしたので、まずは上記「実行(設定可)」でのポップアップメニューの列型変更をお試しいただき、解決できない場合には、表示用[テーブル]にどのようなデータをどのように設定するのか、もう少し詳しくお知らせいただけないでしょうか。大変お手数をお掛けいたしますが、どうぞよろしくお願い申し上げます。
MZPlatformユーザー会キーマスターご連絡ありがとうございます。
現在のところ特定のセルのみに選択リストを設定するメソッドはございません。
確かに、例えば先に一列目を全て選択し終えてから二列目に移ると、二列目は全て同じ選択リストが設定されています。選択リストの設定のタイミングをテーブルの「「データ選択イベント」とし、二列目のセルが選択されたときに、検索を行いリストを設定するというのではいかがでしょうか。
上記のように一列目を全て選択し終えて二列目に移った場合でも、一列目セル値をキーとしてそれぞれ違う選択セルリストを設定できるかと思います。ただし、一列目が空白のまま二列目を選択すると、選択リストが表示されてしまうという問題は残ります。
こちらは一列目セルが空白の場合は、二列目セルを選択できないようにする等、色々な方法が考えられるかと思います。動作確認のため、データ選択イベントをきっかけとする処理を設定した簡単なサンプルファイルをお送りします。ファイル内ではデータベース接続を使っていませんが、手元では一部改変してDBへの接続動作確認済みです。
ご不明な点、ご要望等ございましたら、どうぞご連絡ください。
よろしくお願い申し上げます。- この返信は2年、 10ヶ月前にMZPlatformユーザー会が編集しました。
添付ファイル:
MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
直接[テーブル]のセル選択リストを指定するメソッドはありませんので、
1)一旦、データリストを[リスト格納変数]に設定します。
2)[リスト]のメソッド「要素を位置指定で取得する(int)」で、指定位置の値を取得します。
3)取得した値をメソッド「セルの値を設定する(Object,int,int)」で[テーブル]のセルに設定します。引数0は「取得方法:メソッド処理結果」で取得できます。以上、ご不明な点がございましたら、再度ご連絡ください。
よろしくお願いいたします。MZPlatformユーザー会キーマスターご連絡ありがとうございます。
少々強引な方法になりますが、サイズを0に設定すると表示しても見えませんが、フォーカスの移動はできるようです。お送りいただいたファイルに設定してみましたので、ご確認ください。
ご不明な点等ございましたら、再度ご連絡ください。 -
投稿者投稿