フォーラムへの返信
-
投稿者投稿
-
MZPlatformユーザー会キーマスター
お問い合わせありがとうございます。
ver.3.6で[データベースアクセス]をお使いの際に、JAVAフォルダー内へJDBCドライバーの設定をしていただきましたが、ver.4.0では別のJAVAフォルダー(jre8_mz4.0)を参照しています。ご面倒をお掛けいたしますが、
ver.3.6用のフォルダー内(例:C:\MZPlatform\Java\jre8_mz3.6_64\lib\ext)にあるJDBCドライバーをコピーして\Java\jre8_mz4.0\lib\ext内に入れてください。以上、お試しいただいても改善されない場合は、再度ご連絡いただければ幸いです。
よろしくお願い申し上げます。MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
日付型のデータの操作には[カレンダー]コンポーネントをお使いください。
[カレンダー]という名前ですが、日付に関わる内部処理の部品です。[カレンダー]のメソッド「カレンダーを現在時刻に設定()」で[カレンダー]に現在日時データを設定することができます。
日付の部分はメソッド「setDate(int)」で引数に「1」を設定します。SQL文で日付範囲を指定してデータベースから検索する場合は、「0時0分0秒」から「23時59分59秒」までが検索範囲になるように時刻部分にも着目しなければなりません。
[カレンダー]で「時刻を零時に設定する()」こともできますし、時間の加減計算なども可能です。また書式を指定して日付を表す文字列を取得することができます。以上、簡単ですが日付設定のサンプルを添付いたします。ご参考になれば幸いです。
ご不明な点がございましたら、どうぞ再度ご連絡ください。
よろしくお願い申し上げます。添付ファイル:
MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
添付のアプリケーションを拝見いたしました。
該当箇所では直前に[テーブル]の「指定セルの値を取得」していますので、その次の[コンボボックス]の処理ではメソッド「指定項目を選択する(Object)」、引数に「取得方法:メソッド処理結果、メソッド/値:指定セルの値を取得する」を設定します。
[コンボボックス]のに該当のラベル名の要素があれば、それが選択されます。以上お試しいただいても改善されない場合は、どうぞ再度ご連絡ください。
どうぞよろしくお願い申し上げます。MZPlatformユーザー会キーマスターご連絡ありがとうございます。
お知らせいただいた内容から、列の追加はMZ上の処理で追加するのが簡単かと存じます。
また、[テーブル]の場合、右クリック>[テーブル]>[行ヘッター]>[表示有無]から番号表示ができますので、帳票表示時に列を追加する方法をご紹介します。
[帳票]の[テーブル要素]のデータ取得先を[テーブル格納変数]とし、変数に列やセルデータの設定をします。[繰り返し制御(FOR)]を使い、テーブルの行数分、値設定の処理を行います。ご参考までに簡単なサンプルファイルを作成しましたので、ご覧ください。
ご検討いただき、ご不明な点、ご要望等ございましたら、再度ご連絡いただければ幸いです。
どうぞよろしくお願い申し上げます。添付ファイル:
MZPlatformユーザー会キーマスターご連絡ありがとうございます。
DBテーブルに「workingTime」に当たる列を設けていないのであれば、検索SQLで設定する方が簡単かと存じます。例えばMySQLですと、
「select timestampdiff(minute, dateStart, dateEnd) as 列の名前 from task」で稼働時間が取得できます。列の名前を付けるのは、設定しないと列名が長くなってしまうためで、必須ではありません。minuteの部分をhour, day等に変えることで、他の単位での差分も取得できます。MySQLServerの場合はDATEDIFF関数があり、「select datediff(minute, dateStart, dateEnd) as 列の名前 from task」となるかと存じます。手元で検証しておらず申し訳ありませんが、宜しければお試しください。
なお、MZ内でも[カレンダー]コンポーネント等を使って、時間の差分計算が可能ですので、ご要望があればどうぞお知らせください。
どうぞよろしくお願い申し上げます。MZPlatformユーザー会キーマスターご連絡ありがとうございます。
taskテーブルの「めっき」「検査」といった工程名(=process列)が、「Process1」、「process2」という工程IDになっていて、別に工程名テーブルがあるとしたら、検索SQL文実行時に取得してしまうのが一番簡単かと思います。
例えば、工程名テーブルの名前が「kotei」、列名は「koteiID,koteiname」だとします。
以前のサンプルでは「select id, process, workingTime, dateEnd, dateStart, isCompleted from task where projectLabel=’A01′ 」というSQLを実行していますが、
これを
「 select id, koteiname, workingTime・・・・from task inner join kotei on process=koteiID where projectLabel=’A01′;」
といったSQL文にすることが考えられます。MySQLでは上記実行されましたが、データベースによって書式が違う可能性もあります。
また、一旦工程名テーブルとtaskテーブルを別々にSQLで取得し、MZ内の処理で[テーブル]のデータを変更することも可能です。
ご検討いただき、ご不明な点、ご要望等ございましたら、再度ご連絡いただければ幸いです。
どうぞよろしくお願い申し上げます。MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
文字列の操作には[文字列格納変数]をお使いください。
メソッド「指定インデックス間の部分文字列に置き換える(int,int)」で引数0と引数1には位置番号を指定します。引数0の位置の文字は取り出される中に含まれますが、引数1の位置の文字は含まれないことに注意してください。先頭から10文字を指定する場合は(0,11)を指定します。実行後、変数内の文字列は置き換えられます。例えば、以下のような処理が考えられます。
何かのタイミングで以下の2つの処理を設定します。
(1)新しく[リスト格納変数2]「空のリストを設定する()」を設定します。
取り出した文字列を格納する準備です。
(2)[繰り返し制御(FOR)]「繰り返し処理を実行する」を実行します。
引数0 開始値:固定値 0
引数1 開始値を含めるかどうか:固定値 true
引数2 終了値:メソッド戻り値[リスト格納変数]「要素数を取得する」
引数3 終了値を含めるかどうか:固定値 false
引数4 増減値:固定値 1[繰り返し制御(FOR)]を接続先とし、以下の処理を設定します。
(3)[リスト格納変数]「要素を位置指定で取得する(int)」
引数には『メソッド戻り値[繰り返し制御(FOR)]「現在値を取得する」』を指定します。
(4)(3)で取得した要素を[文字列格納変数]「文字列を設定する(String)」で設定します。引数の取得方法は「メソッド処理結果」です。
(5)上記の[文字列格納変数]「指定インデックス間の部分文字列に置き換える(int,int)」を設定します。
(6)[リスト格納変数2]「最後尾に要素を追加する(Object)」を設定します。
引数は『メソッド戻り値 [文字列格納変数]「文字列を取得する」』です。以上の処理実行後、つまり繰り返し処理の呼び出し後に[リスト格納変数2]からテーブルセル選択リストにリストを設定します。
前回ご覧いただいたサンプルでは、[テーブル]のセル選択リストを選択したタイミングで「Where plojectLabel=”選択されたセル文字列”」の条件句の付いたSQL文を発行していますが、10文字の文字列では条件句が効かなくなるため、
1.「Where like “○○%”」となるように雛型文を変更する
2.選択されたセルと同位置の[リスト格納変数]の要素を取得して雛形文と置き換える
などが考えられます。以上ご検討いただき、ご不明な点、ご質問等ございましたら、再度ご連絡いただければ幸いです。どうぞよろしくお願い申し上げます。
MZPlatformユーザー会キーマスターご連絡ありがとうございます。
[Excelファイルアクセス]で使用しているApache POIのバージョンにより、再計算が行われない現象が見られます。大変申し訳ございませんが、現在のところ解決の方法が見つかりませんでした。エクセルファイルを開いた後、Ctrl+Alt+F9キーを押すと、再計算されるかと思います。
MZ側での自動的な対処方法でなく申し訳ございませんが、よろしければお試しください。7月に予定しておりますMZ Platform次期バージョンでは、値を保存後エクセルファイルを開いたときに再計算が行われるメソッドを追加しております。現在のバージョンでは利用できないメソッドであるため、次期バージョンをリリースしたタイミングで、こちらの掲示板に再度ご連絡いたします。
ご不便をお掛けいたしますが、どうぞよろしくお願い申し上げます。- この返信は1年、 9ヶ月前にMZPlatformユーザー会が編集しました。
- この返信は1年、 9ヶ月前にMZPlatformユーザー会が編集しました。
MZPlatformユーザー会キーマスターご返信ありがとうございます。
無事動作したとのことで安心いたしました。
上手く検証環境が整わず、何度もお手数をお掛けいたしました。MZPlatformユーザー会キーマスターご返信ありがとうございます。
大変お手数をお掛けしております。[SMTPメール送信]で使用しているJavaMailを更新するために、お手数ですが以下をお試しください。
1)MZPlatform\Java\jre8_mz3.6(_64)\lib\extフォルダ内の「mail.jar」ファイルを切り取り、どこか適当なフォルダに移動し保管しておきます。(新しいファイルと置き換えたいので、移動させます)2) MZPlatform\Java\jre8_mz3.6(_64)\lib\extフォルダ内に添付の「javax.mail-1.6.2.jar」ファイルを入れます。
3)MZ Platformを再度立ち上げます。
以上お試しいただいても解決しない場合は、再度ご連絡いただけないでしょうか。
大変ご面倒をお掛けいたしますが、どうぞよろしくお願いいたします。添付ファイル:
-
投稿者投稿