フォーラムへの返信
-
投稿者投稿
-
MZPlatformユーザー会キーマスター
ご連絡ありがとうございます。
データを設定していない空の[テーブル格納変数]を帳票の[テーブル格納変数]のデータ取得元とし、帳票編集画面を表示すると、描画に時間が掛かり画面表示が白くなってしまう現象をこちらでも確認いたしました。
これは修正パッチとは関係なく起っている現象かと存じます。
ご報告いただき大変助かります。誠にありがとうございます。手元で確認した限りでは[テーブル格納変数]に一旦データを設定すれば、その後変数に「空のテーブルを設定」されても帳票編集画面の描画に時間が掛かることはありません。
変数のデータはビルダー終了後は保持されません。
大変お手数ですが、アプリケーションビルダー起動後[テーブル格納変数]にまだ一度もデータが設定されていない状態での帳票編集画面表示を避けるように、処理設定をお願いいたします。この現象が発生しないように修正を検討いたしますが、少々お時間をいただければ幸いです。
修正ファイルができましたら、ご返信申し上げます。ご面倒をお掛けいたしますが、どうぞよろしくお願い申し上げます。
MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
返信が遅くなり申し訳ございません。[帳票]コンポーネントについてご指摘のように、現在のところ行高さが不定の場合に「繰り返し印刷」の表示行数を固定で決めると、表示しきれない行が出てくる可能性があります。
テーブル高さが表示領域よりはみ出してしまった場合、指定表示行数に関わらず最適な行で区切るように修正いたしましたので、ご確認ください。お手数ですが、以下の手順をお試しください。
——————————-
1)添付の「pfppr.jar」をMZPlatform\4.0\jarsフォルダに入れます。
2)MZPlatform\4.0\etcフォルダ内の『PlatformClassPath.ini』をメモ帳などで開き、先頭にパスを記述し、保存します。
例えば以下のような内容になります。
——————————
# MZ Platform ClassPath
jars/pfppr.jar
jars/mzextension.jar
jars/mzplatform.jar
・・・・
——————————
3)アプリケーションビルダーを再び立ち上げてください。以上設定していただいても改善されない場合は、どうぞ再度ご連絡ください。
いつも貴重なご意見をありがとうございます。
どうぞよろしくお願い申し上げます。添付ファイル:
MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
日付型列を含む[テーブル]をそのまま[CSV出力]コンポーネントでCSVファイルとして出力すると、ご指摘の通り空欄にはNULL値が、また値が入っているセルは時間部分まで出力されます。これを防ぐためには一旦列型を文字列型に変換し、日付の値は[カレンダー]コンポーネントで書式を整える必要がありますが、これを簡単に行う複合コンポーネントがありますのでお試しください。
1)アプリケーションビルダー編集画面上で右クリック>[複合コンポーネント追加]>[テーブル]>[テーブル日付データ文字列変換.mzcx]を選択して追加します。2)[CSV出力]の出力のメソッド(例「指定のファイル名でCSVデータを書込む(String, PF
ObjectTable)」の前に[テーブル日付データ文字列変換]の接続処理を追加します。
メソッド「テーブルの日付データを書式指定文字列へ変換(Object, Object)」を設定します。
引数0はテーブルのデータ、引数1は日付書式(例:yyyy/MM/dd)です。
yが年、Mが月、dが日を表します。3)[CSV出力]の引数1に上記2)でのメソッド処理結果を指定します。
文字列型に変換済みのテーブルデータをCSV出力することになります。処理の設定は例えば以下のようになります。
——●——[テーブル日付データ文字列変換]
| テーブルの日付データを書式指定文字列へ変換
| 引数0:メソッド戻り値 テーブル テーブルデータを取得する
| 引数1:固定値 yyyy/MM/dd
|
|——[CSV出力]
指定のファイル名でCSVデータを書込む
引数0:固定値 あるいは ファイル選択ダイアログ等で指定
引数1:メソッド処理結果 テーブルの日付データを書式指定文字列へ変換以上お試しいただき、ご不明な点、ご要望等ございましたら、再度ご連絡ください。
よろしくお願い申し上げます。
- この返信は1年、 5ヶ月前にMZPlatformユーザー会が編集しました。
MZPlatformユーザー会キーマスターご連絡ありがとうございます。
以下の設定をお試しください。
MZ Platform 4.0_32\etcフォルダ内の文書「Platform.ini」の下から三番目の項にJavaInvoke=Java/jre8_mz4.0_32となっているところがあります。
これをJavaInvoke=Java/jre8_mz3.6に変更してみてください。
MZ4.0_32で使用するJavaのバージョンが3.6で使用していたものになります。以上お試しいただき改善されない場合は再度ご連絡いただければ幸いです。
お手数をお掛けいたしますが、どうぞよろしくお願い申し上げます。MZPlatformユーザー会キーマスターご連絡ありがとうございます。
大変申し訳ございませんが、WindowsXPは推奨される動作環境には含まれません。
動作環境については詳しくは『インストールガイド』をご覧ください。
MZ Platform4.0の32ビット版は今回はMZ Platform 4.0_32 という名前でインストールされているので、併せてご確認ください。もし、EXCELファイルアクセス関連のMZ4.0の機能が必要な場合、Apache POIのJARファイルをMZ3.6に設定することで使用できる可能性があります。
現在WindowsXPをインストールしているPCは手元になく確認ができないため、不確実ではありますが、もしご希望がございましたらご連絡いただければ幸いです。以上、解決に結びつかず申し訳ございませんが、どうぞよろしくお願い申し上げます。
MZPlatformユーザー会キーマスター掲示板のシステムエラーのため、対応が大変遅れまして誠に申し訳ございません。
大変ご迷惑をお掛けいたしました。まず、確認させて頂きたいのですが、現在お使いのMZプラットフォームのバージョンは幾つでしょうか。
新しくバージョン4.0を今夏にリリースしております。[EXCELファイルアクセス]関連のEXCELPOIファイルも更新しているため、エラーが回避できる可能性があります。
ダウンロードページから宜しければお試しください。
(複数バージョンを共存させても問題ありません。新しいバージョンをインストール後、旧バージョンをアンインストールしたときに、ファイルアイコンが変わってしまうことがありますが、ファイルの関連付けを確認するか、再度インストーラーを動かすと解決されるかと思います)また、書き込み後のEXCELファイル起動時にどのようなエラーメッセージが表示されるか、お手数ですがお知らせいただけないでしょうか。
実を申しますと、お送りいただいたアプリケーションとファイルをMZver3.6、ver.4.0 にて試してみましたが、手元の環境ではエラーが再現できませんでした。
MZのバージョンアップで改善されない場合は、エラーの内容をお知らせいただくと大変助かります。ご返信が遅くなりましたこと、重ねてお詫び申し上げます。
以上、どうぞよろしくお願い申し上げます。MZPlatformユーザー会キーマスターご返信ありがとうございます。
やはり[カレンダー]では、例えば30時間20分といった表現は取得できないので、[任意精度整数(BigInteger)格納変数]と[文字列格納変数]を使用した例をご紹介します。[任意精度整数(BigInteger)格納変数]で割り算の商と余りが取得できます。
[文字列格納変数]内の雛形文字列を商と余りで置き換えることにします。先頭に「0」を付けるかどうかは「文字列の長さ」によって条件分けします。簡単な動作確認のためのサンプルファイルを作成しましたので、どうぞご覧ください。
ご不明な点がございましたら、ご連絡いただければ幸いです。
どうぞよろしくお願い申し上げます。添付ファイル:
MZPlatformユーザー会キーマスター追記です。
先ほど返信したいずれの方法でも、[テーブル]列の値を取出し、変換して文字列型または日付型に変更しなければなりません。
その際[テーブル格納変数]の列に違う型のデータを設定しようとするとエラーになります。
先に列データ(リスト型)を取得し、該当の列の列型を変更し、再度先ほどご紹介した処理を通ったデータのリストを設定します。もしよろしければ、先ほどご紹介した方法のうち、どれが一番目的に沿ったものかご返信頂ければ、考えられる具体的な処理をご紹介できます。先ほど書きましたメソッド以外にも適当なものがあるかもしれません。よろしくお願い申し上げます。
MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
恐らくSQLServerでSQL実行時にフォーマットを指定するよりも、MZ側で処理を設定した方が簡単かと存じますので、MZプラットフォーム上での処理をご紹介します。
以下の2つの方法が考えられます。
1)時間が23時間59分を超えない場合
[カレンダー]を使用します。
➀[カレンダー]コンポーネントにメソッド「カレンダーを書式指定で設定(String、String)」で値を設定します。引数0には固定値で「m」を、引数1に「分数」を設定します。
➁メソッド「書式指定によるカレンダー文字列表現の取得(String)」で引数に「H:m」、「HH時間mm分」などの書式を設定します。
➂[テーブル]の文字列型列に、取得方法:メソッド処理結果で、➁で取得された文字列を設定します。
または、[テーブル]の列型を日付型に設定後、[表示属性(日付)]>[表示形式]>[その他…]で表示パターンを上記「H:m」にすることも考えられます。この場合➁は不要で➀のすぐ後に[カレンダー]からDate値を取得しセルに設定します。[カレンダー]は1970年1月1日が基準となっており、0月0日などには設定できませんので、24時間以上の場合は目的とした表現が取得できません。
2)24時間以上の場合
割り算をします。
➀[除算(÷)]や[剰余(%)]コンポーネントに入れ、演算結果を取得します。
また、整数のみ扱うことが確実なら[整数(BigInteger)格納変数]でも計算ができます。
例えば30時間40分といった表現なら、変数に値を設定し、メソッド「divide(BigInteger)」、「mod(BigInteger)」(引数はそれぞれ「60」)を実行して、メソッド処理結果を取得します。
➁[文字列格納変数]に文字列を設定し、メソッド「指定した文字列と連結して置き換える(Stirng)」で順次文字列を繋げていくか、「指定文字列と一致する最初の文字列と置き換える(String,String)」で雛形文字列を置換えるなどで書式を整えます。以上ご検討いただき、ご不明な点等ございましたら、どうぞ再度ご連絡ください。
よろしくお願い申し上げます。- この返信は1年、 7ヶ月前にMZPlatformユーザー会が編集しました。
MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
お手数ですが、ライセンス申請ファイルとライセンスファイル(\4.0\etc\PFLicenseKey.mzk、PFLicenseKey.mzl)のアクセス権をご確認いただけないでしょうか。(usersが読み取りと実行、読み取り権限があれば大丈夫かと思います)また、アクセス権に問題がなければ、大変お手数ですが、一旦アンインストールして再度インストールをお試しいただけないでしょうか。
以上お試しいただいても改善されない場合は、ご連絡いただければ幸いです。
その際、OSのバージョンも一緒にお知らせください。
ご面倒をお掛けいたしますが、どうぞよろしくお願い申し上げます。 -
投稿者投稿