作成した返信
-
著者投稿
-
MZPlatformユーザー会サイト管理者
ご連絡ありがとうございます。
データベースからの取得した検索結果データを[テーブル]に設定したときは、「データ設定イベント」が発生します。このデータ発生イベントの接続先に[繰り返し処理(FOR)]を設定し、状態列のセルの値を[等価演算(=)]で判定し、「true」の値の時に各行の背景色を設定します。
もし検索結果データを注文一覧テーブルにメソッド「行を追加する(PFObjectTable)」で設定している場合は、データ設定イベントは発生しませんので、「データ更新イベント」にイベント番号「11(複数行を追加したとき)」で同じように[繰り返し処理(FOR)]を設定します。
前回のサンプルファイルに上記の処理を追加してみましたので、ご参考になれば幸いです。
添付ファイル:
MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
メソッド「getSelectedItems()」で選択要素名のリストを取得することができます。メソッドが英語名のままになっており、判りにくく申し訳ございません。1)既にデータベースから検索したテーブルデータがMZ上にある場合は、[テーブルサブセットフィルタ」を使ってさらに文字列や日付等の条件で行を選択し取得することが可能です。
複数の選択条件がある場合、正規表現を使うことが考えられます。
「AAA|BBB」で「AAA」または「BBB」の文字列という意味になるので、これを[文字列格納変数]の中に作成し、[テーブルサブセットフィルタ」のメソッド「行データの正規表現で行を選択する(int,String)」の引数とします。2)改めてデータベースから検索する場合はSelect文にwhere句を追加することが必要です。
[文字列格納変数]の中にwhere句の雛形を設定し、要素名で置き換えて、さらにSELCT文と結合します。
以上2点について簡単なサンプルファイルを作成しましたので、ご覧下さい。
既にwhere句があるSelect文にさらに条件を追加する場合は少し変更する必要があります。ファイルをご覧いただき、ご不明な点等ございましたら、再度ご連絡いただければ幸いです。
どうぞよろしくお願い申し上げます。- この返信は、 MZPlatformユーザー会 により、 9 ヶ月 前 に編集されました。
添付ファイル:
MZPlatformユーザー会サイト管理者ご連絡ありがとうございます。
お送りいただいたファイルを元にサンプルファイルを作成してみました。テーブルの完了行数をカウントするものとして[テーブルサブセットフィルター]を使っています。該当するデータがある行のデータだけを抜き出すことができます。元のテーブルの行数と比較して、同数になれば完了と判断できます。
[リスト格納変数]のメソッド「indexOf(Object)」でリストの中の該当データの位置を取得できます。完了した製品番号の行を探すのに使うことができます。
[テーブル]背景色の設定には引数に直接「white,red,blue」など入力できます。javaで定義された13色の色名を使用できます。引数欄ではrgb表示に変わります。
サンプルファイルをご覧いただき、ご不明な点がございましたら、再度ご連絡いただければ幸いです。どうぞよろしくお願い申し上げます。
添付ファイル:
MZPlatformユーザー会サイト管理者ご連絡ありがとうございます。
手元で確認した限りでは、結合されたセルの値は結合範囲の『左上』のセルに入っていて、MZの[テーブル]上でもその位置に表示されます。
例えばEXCELのセルA1,A2,B1,B2が結合されているとき、A1に値が入っているということです。
指定位置のセルを読み込む場合でも、テーブル全体を読み込む場合も(繰り返し処理で行とセルを指定している)同じように表示されました。気になりましたのが、「現在のシートの行を選択する」と「現在の行のセルを選択する」の処理の順番ですが、これは行の選択処理を先に設定してください。
また、行やセルの位置は0から数えてスタートするので、A1のセルはMZでは0行目、0番目の位置になりますのでお気を付けください。以上ご確認いただいても、セルの値が読み込めないという場合は、どうぞ再度ご連絡ください。
エラーが発生して読み込めない場合はそのエラーの内容もお知らせください。
そのセルが結合されているか知るメソッド「isCurrentCellMerged()」やセルの結合を解除する「removeMergedRegion(int)」メソッドは存在しますが、セル結合以外の原因があるように推測いたします。なお、最近はセルは結合せず、セルの書式指定で「選択範囲で中央」で中央に配置されていることも多いですが、この場合も範囲の左端のセルに値が入っています。
以上お手数をお掛けいたしますが、どうぞよろしくお願い申し上げます。
MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
最新バージョンのMZ Platform4.0は推奨環境がWindows10および11、Linuxとなっております。
HPでの記載が古く、ご面倒をお掛けいたし申し訳ございません。会員様限定のダウンロードのページから、windows64bit版または32bit版のインストーラーを選択してダウンロードをお願いいたします。
https://ssl.monozukuri.org/mzplatform/download/members_only_dl/ご不明な点がございましたら、再度ご連絡いただければ幸いです。
よろしくお願い申し上げます。- この返信は、 MZPlatformユーザー会 により、 9 ヶ月, 3 週 前 に編集されました。
MZPlatformユーザー会サイト管理者ご連絡ありがとうございます。
[EXCELファイルアクセス]への軽微な修正は行いましたが、ver.4.0と3.6で大きな変更はありません。
手元でもver.3.6_64で確認を行いましたが、固定値で絶対パスでファイル名を指定して、ファイルを読み込むことができました。原因として考えられるのが、ファイルまでのパスにスペースや全角文字が多用されていると読み込めない場合があります。
また、[外部プログラム通信]のメソッド「標準のアプリケーションファイルを開く(File)」の引数の型が「File」型となっている一方で、[EXCELファイルアクセス]のメソッド「ファイルからブックを読み込んで選択する(String)」の引数は「String(文字列)」型となっているように、どこかで文字列型ではなくファイル型やオブジェクト型のデータを要求されている処理があり、エラーが発生していることも考えられます。
[ファイル選択ダイアログ]のデータ選択イベントの内包データとして、「イベント対象データ」はファイルオブジェクト、「選択データ」は選択したファイル名が取得されます。
ただ、「ファイルからブックを読み込んで選択する(String)」で絶対パスでのファイル名でファイルが読み込まれますので、これは少し可能性は低いです。もう一度、[外部プログラム通信]などの余分な処理を削除したサンプルファイルをお送りいたしますので、お試しいただき再度お気づきの点をご連絡いただければ幸いです。
どうぞよろしくお願い申し上げます。添付ファイル:
MZPlatformユーザー会サイト管理者お世話になっております。
お問い合わせありがとうございます。1.印刷ダイアログ画面でのプリンタの「プロパティ」が開かない
大変申し訳ございませんが、[帳票]コンポーネントの印刷プレビュー画面右上に表示される「印刷」ボタンからの印刷プロパティダイアログには、JAVA由来のものを使用しており、一部機能に制限がございます。現在のところ、全てのプリンタで「プロパティ」ボタンを押してもプロパティが表示されません。
プロパティ設定が必要な場合は、予めプリンタ側で印刷設定を行っておく必要があります。
大変ご不便をお掛けいたしますが、どうぞご了承ください。2.「Microsoft Print to PDF」「Microsoft XPS Document Writer」を使用時に、用紙を横向きに設定しても縦向きに印刷される
まず、JAVAの仕様により縦横の向きが限定されており、縦向き用紙の辺の長短に対して、帳票ページの辺の長短も一致する向きで印刷されることをご承知ください。
ご参考:FAQ -帳票&印刷 回答22-https://ssl.monozukuri.org/mzplatform/faq/faq/faq_technical/paper_print/paper_print_a22.html手元のWindows10のPCで検証しました。
ポートはPORTPROMPT:(ローカルポート)を指定し、ドライバー名: Microsoft Print To PDF、ドライバーの種類: Type 4 – ユーザー モード、ドライバーのバージョン: 10.0.17763.1 を使用しています。
1)帳票編集の「用紙設定」画面で横向きを選択します。
2)印刷プレビュー画面から「印刷」ボタンを押すと、印刷プロパティ画面が表示されます。
3)[ぺージ設定(S)]タブを選択して表示すると、用紙の向きが「横」になっているのが確認できます。プリンターの基本設定は操作していません。
4)「印刷」ボタンを押して横向きにPDFが出力されました。XPS出力でも同様です。ただし、以前手元の環境のプリンタ―設定を大分いじったため、デフォルト設定ではない可能性もあります。上記ローカルポートを選ぶと、ファイルの保存先選択画面が表示されないので、ポート名を変更して絶対パスを設定(例:C:\Users\user\Desktop\test.pdfがポート名)しました。そうすると「test.pdf」名で指定フォルダに保存されます。
元々Microsoft print to PDFの印刷基本設定が用紙サイズと用紙の向きしか選べないシンプルなもののため、『PDF化』で検索した中では、サードパーティーになりますが「CubePDF」等使用している例が多いようです。
以上、ご参考になれば幸いです。
ご不明な点、ご要望等ございましたら、再度ご連絡いただければ幸いです。
どうぞよろしくお願い申し上げます。MZPlatformユーザー会サイト管理者ご返信ありがとうございます。
EXCELファイルアクセスのサンプルを無理に使っていただく必要はないので、「ファイルからブックを読み込んで選択する(String)」にファイル名を設定できれば、処理は可能です。
大変失礼いたしました。目的のフォルダ内のファイルを開く、簡単なサンプルファイルを作成してみました。フォルダを指定すると、その中にあるファイルの名前が[リスト]に表示されます。
フォルダやファイル名の取得には[ファイル]コンポーネントを使用します。
今回は下位フォルダは表示せずファイルのみを取得するようにしてありますが、[ファイル]コンポーネントのメソッドによっては、下位フォルダーも取得可能です。
また[テーブル]への設定は[リスト格納変数]にファイルのリストを格納しましたので、要素数と同じ行数の[テーブル]を用意し、列データとしてリストデータを設定することが可能です。[EXCELファイルアクセス]以外にもファイル名が判れば文書を開くことができるコンポーネントとして[外部ファイル通信]などもございます。
また、今回は使用していませんが、複数のEXCELファイル内に格納された同じ文書番号を持つデータを探すには[データベースアクセス]で接続して、Select文で取得することも考えられます。サンプルファイルをご確認いただき、ご不明な点ご要望等ございましたら、どうぞご連絡いただければ幸いです。よろしくお願い申し上げます。
添付ファイル:
MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
[EXCELファイルアクセス]コンポーネントを使ってEXCELファイルを読み込んでいるという前提で回答いたします。
[EXCELファイルアクセス]のメソッド「ファイルからブックを読み込んで選択する(Stirng)」でファイル名を指定して、ファイルを読み込んでいます。このメソッドの引数に絶対パスあるいはビルダーの起動ファイルからの相対パスで、ファイル名を指定することができます。EXCELファイルアクセス.mzaxのサンプルファイルで言うと、例えば[ファンクション(ID:26 EXCELインポート処理(セル用))]の処理要求イベントの2番目の接続処理です。
上記メソッドの引数に直接ファイル名を指定しても動作するはずです。ただし、この処理の前に[ファイル(ID:91 EXCELインポート処理(セル用)]コンポーネントにファイル名を設定しており、これはファイル保存時の拡張子の設定に使われています。
もし例えばサンプルファイルを読み込み時ダイアログ表示無しに改修するとしたら、
1)[ファイル選択ダイアログ]のデータ選択イベントに繋がる2つの処理を[ボタン]のアクションイベントに繋ぎ変えます。
2)1番目の接続処理の[ファイル]コンポーネント「ファイル名を設定する(String)」の引数にファイル名を指定します。
3)2番目の接続処理の[ファンクション]「ファンクションの呼び出し(1引数)」でもファイル名を引数に設定しています。2)でファイル名を設定済みの[ファイル]コンポーネントから「ファイルの絶対パスでのファイル名を取得する」で取得します。あるいは再度ファイル名を直接指定してもよいです。以上、ご不明な点がございましたら、再度ご連絡いただければ幸いです。
なお、MZ Platform4.0から[データベースアクセス]を使ってJDBC接続でエクセルファイルが読み込めるようになりました。
https://ssl.monozukuri.org/mzplatform/docs_web/mztutorialexceldispatch.html
もしご興味があればご検討ください。
どうぞよろしくお願い申し上げます。MZPlatformユーザー会サイト管理者mariaDBへの接続にはお使いになるDBのバージョンに合ったJDBCドライバ(例:mariadb-java-client-3.3.2.jar)をご用意いただき、ドライバ名(org.mariadb.jdbc)とサーバ名(例: jdbc:mariadb://localhost:3306/DBName)を変更すれば、接続が可能です。
サンプルファイルAP_DATA\Sample\データベースアクセス_4(DB切替版).mzaxを使うと、接続確認が簡単にできるかと思います。ただし、各DBによりデータ型の定義やフォーマットに細かい違いがあり、使用できるSQL文の書式や関数名なども違う場合があります。MZPlatformの[データベースアクセス]で実行しているSQLについて、そのまま移行可能か1つずつ検討する必要があります。
テーブル設計依頼時に、ある程度相談可能かと存じます。以上、ご不明な点、ご要望等ございましたら、ご連絡いただければ幸いです。
どうぞよろしくお願い申し上げます。 -
著者投稿