作成した返信
-
著者投稿
-
MZPlatformユーザー会サイト管理者
ファイルが正常にダウンロードできない状態になっておりました。ご迷惑をおかけして申し訳ありません。すでに修正しましたが、同じものをここに添付しておきます。
添付ファイル:
MZPlatformユーザー会サイト管理者残念ながら、Windowsのショートカットが指し示す実体のファイル名やフォルダ名は、MZで取得できません。ショートカットが指し示す実体のファイルやフォルダのパス名を直接お使いください。
実体のフォルダ名をファイルコンポーネントに設定すれば、配下に存在するファイル名のリストが取得できると思います。
MZPlatformユーザー会サイト管理者帳票の余白ではなく、印刷ダイアログのページ設定のマージンのことですね。
こちらで確認したところ、プリンタの機種によるかもしれませんが、確かに変更できませんでした。
これはプリンタ側の制限だと思います。この場合、帳票の余白を0にすると印刷範囲が少なくなって、ご指摘のように画像が切れますので、むしろ帳票の余白を印刷ダイアログのマージンに合わせた方が良さそうです。- この返信は、 MZPlatformユーザー会 により、 5 年, 7 ヶ月 前 に編集されました。
MZPlatformユーザー会サイト管理者帳票編集画面か帳票プレビュー画面にある「用紙設定」ボタンで、上下左右の余白を0に設定できますが、何か他に問題があればお知らせください。
MZPlatformユーザー会サイト管理者「外部プログラム通信」コンポーネントの動作は起動対象によって変わってしまうのですが、今回のVBScript実行に関しては実行結果を取得してから次の処理に移ることができません。どうしても実行の指示後、非同期で遅れてデータ生成イベントが発生します。
そのため、繰り返し計算をFORループで単純に実行することができません。上記の動作の仕組みを理解した上で同様の処理を実現する必要があります。一例として、そのサンプルを添付します。回数のカウンタとして整数格納変数と、繰り返しおよびその終了条件として等価演算を使用しました。
ご確認ください。
添付ファイル:
MZPlatformユーザー会サイト管理者追加質問の意図と添付ファイルとの関係がわからないので、もう少し説明をお願いします。
まずは添付していただいたサンプルをこちらで実行すると、「未設定」になります。
こちらで修正したものを添付しますが、このように記述すると少し時間が経ってから実行結果が表示されます。このように、外部プログラム通信の「startProgram」の呼び出し後、処理自体は先に進んでフレームが表示されます。それと並行してスクリプトが実行され、完了した時点でデータ生成イベントが発生して出力結果が得られます。元は変数に入れているだけだったのでラベルの表示は変わりませんでしたが、修正後は直接ラベルを書き換えているので、表示が変わります。
上記で成功の状態になったとして、「処理が終わった後」と「処理の途中」が何を指しているかがわかりませんので、説明をお願いします。
添付ファイル:
MZPlatformユーザー会サイト管理者こちらがVBScriptになじみがないため、下記の前提に誤りがあればご指摘ください。
「コマンドラインに標準出力」との記述から、WindowsのコマンドプロンプトからVBScriptを実行して、その結果が標準出力で表示される前提でお答えします。
MZ側でこのような出力を受け取るためには、「外部プログラム通信」コンポーネントを使用します。ただし、このコンポーネントは状況に応じて設定を適切に変更しないと正常に動作しないため、もし何らかのサンプルを添付(ZIPファイルとして)していただければこちらでもテストします。
こちらで準備できたVBScriptサンプルからの出力を取り込むMZアプリのサンプルZIPファイルを添付しますので、展開して実行し、下記の手順で操作して動作をご確認ください。
実行後に表示される上側のフィールドにコマンドプロンプトのコマンドcmdが入力されているので、その右側にある「起動」ボタンを押します。
中央のテキストエリアにコマンドプロンプトからの出力が表示されたら、下側のフィールドにVBScriptを実行するコマンドを入力して、その右側の「送信」ボタンを押します。
コマンドは例えば、「cscript //nologo (パス\ファイル名).vbs」という感じに入力します。実行結果が中央のテキストエリアに表示されたら、「出力取込」ボタンを押します。
ダイアログが2回表示されて、1つ目は変数に格納された文字列全体、2つ目はその中から切り出した対象の文字列が表示されます。2つ目の文字列切り出し方法は、実行結果の出力に応じてビルダーで変更する必要があります。
コンポーネントの使い方も、ビルダー上での接続方法をご覧ください。添付ファイル:
MZPlatformユーザー会サイト管理者サーバ上のテキストファイルが、LANに接続する別のPCからファイルパス指定で参照できるものとしてお答えします。
テキストファイルを開く場合は、「テキストファイル入力」を使います。常にファイルを監視するには、例えば「タイマー」で一定時間経過ごとにファイルを開くことが考えられます。
テキストファイルにどのような内容を記述するかにもよりますが、「テキストファイル入力」で取得した文字列を「文字列格納変数」に入れて、必要な部分文字列を切り出したり、それを数値として判定して各種条件分岐で処理を記述することが考えられます。
なお、データベースにデータが記録されているのであれば、ファイルではなくデータベースへのSQL文で値を取得して同様の処理を実行することも考えられます。
以上、まずは上記の情報から処理をご検討ください。
MZPlatformユーザー会サイト管理者はい、フレームのメソッド起動で可能です。
「フレームを表示する()」の前でも後でも、「setFrameLocation(int,int)」で画面内のフレーム左上の位置を指定できます。このメソッドは日本語化されていませんので、起動メソッド情報の画面で「全メソッド対象」をチェックしていただくと一覧から選択できるようになります。Javadocでの説明も合わせてご確認ください。
file:///C:/MZPlatform/3.6/docs/javadoc/jp/go/aist/dmrc/platform/beans/gui/container/PFFrame.html#setFrameLocation-int-int-
MZPlatformユーザー会サイト管理者ガントチャートの色指定メソッドとしては、個別に指定する「指定された系列の色を設定する(Color,int)」と、リストで指定する「全系列の色を設定する(PFObjectList)」があります。
個別指定については下記リンク先をご覧ください。
https://ssl.monozukuri.org/mzplatform/faq/faq/faq_technical/chart/chart_a19.html全系列指定については、リストデータを扱う必要がありますが、必要なリストデータの要素数が見た目通りにならない場合があります。その場合、個別指定でも位置指定が思った通りにならなくなります。ガントチャートのテーブルデータを設定した後、一度「全系列の色を取得する()」でリストデータを取得しリスト格納変数に入れて必要な操作をするなど、お試しいただければと思います。これらについて、他の投稿やFAQでも関連する記述がありますので、ご覧ください。
https://ssl.monozukuri.org/mzplatform/forums/topic/ガントチャートの色指定について/
https://ssl.monozukuri.org/mzplatform/faq/faq/faq_technical/chart/chart_a22.html -
著者投稿