人に聞けない痔の悩み、これでスッキリ >>

単純にコピー、貼り付けだと上手くセルに入らないし、データ量が膨大なので、いちいちそんなことやってられません。当方、AS400は全くわからないのですが、なんかそんなソフト、ツールはあるのでしょうか?また、自分で作ることとかできるんでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (1件)

ツールやソフトがあるかどうかわかりませんが、仮にあったとしても、高価だと思いますよ。



OB96さんは、ASはまったくわからないと言う事ですが、コマンドとかの入力もした事無いですか?

もし、少々コマンド入力などの知識があれば、ちょっと面倒だけど、テキストデータを落として、P-COMかCAのデータ転送ツールを使ってエクセルで読み込ませる方法があります。
但し、エクセルのセルにキレイにデータが落ちるかどうかはわかりません。
(帳票によっては、複雑な印字をしている場合があるので)

簡単に手順を説明すると、

(1)AS側で、転送用の仮ファイルを作成
  CRTPF FILE(XXLIB/FL200) RCDLEN(200) IGCDTA(*YES) SIZE(*NOMAX)
  ※XXLIBは自分で作成してください。
(2)AS側で、スプールファイルを(1)にコピー
  CPYSPLF FILE(スプールファイルのファイル名) TOFILE(XXLIBLIB/FL200)
(3)(2)でコピーされたものをASからPCへデータ転送
(4)エクセルで開く時、セルを分割させながら開く

という様になります。
    • good
    • 0
この回答へのお礼

ありがとうございます!スプールFをPFにコピーするとは、知らなかったです・・・。(^_^;)
ただ、やはりセル内にきちんと収めるのは無理ですね・・・。それと、改ページも。これが、限界ですか。
でも、助かりました!また、よろしくお願いします!

お礼日時:2003/05/08 20:47

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q出力待ち行列のデータをエクセルに落としたい(iSeries,AS400)

会社のホストでAS400を使用しています。
CLやRPGのソース内を検索するコマンドがあり、
それを使用すると検索結果がスプールに一覧として格納されます。

現在は画面で表示してコピーして、エクセルに転記しています。
これが凄く面倒なのですが、スプールにたまったデータを、
直接エクセルに落とし込むようなやり方などあるのでしょうか?

Aベストアンサー

PcommであればインストールフォルダにSPL2Fileというものがあります
(フルインストールのみ)
これをつかってスプールファイルをテキストファイルに出力できます

クライアントアクセス(iseries ACCESS)のばあい
インストールフォルダにwrkprt.exeやwrksplf.exeがありますので
そこで該当のスプールファイルを表示して
デスクトップなどにドラッグアンドドロップすることで
テキストファイル化できます

CPYSPLFというASのコマンドを使って1回物理ファイルにした上で
データ転送で取得という方法もあります

QAS400 印刷用ファイルからCSVに変換する方法

AS400に無知な者です。
今現在使用しているASのバージョンすら
わかっていません。


実行すると自動的にデータが集計され
印刷用ファイルができるプログラムがあります。
データ形式で作成することは選択できません。

現在はASから印刷された帳票をみながら
エクセルに入力したりと、
かなりお馬鹿なことをしています。

わざわざ印刷しなくても
スプールにおちた印刷用ファイルを
CSVなどPC上で処理できるデータにかえる
コマンド等はないものでしょうか?

最初からデータ形式でおとせという
つっこみがきそうですが
どのファイルにアクセスして
どういう処理をしてるのか全く持って不明のため
現在の実力では不可能です。

誰かたすけてくださいまし。

Aベストアンサー

CPYSPLFコマンドでスプールファイルを物理ファイルへ変換できます。
その物理ファイルをPCへ転送すればできます。

参考URL:http://www.onbedo.com/forCOMP/AS400/qa_os.html

QAS400 CPYSPLFコマンドの使い方

CPYSPLFコマンドを使いたいのですが
具体的な構文がわかりません。

印刷用フォルダ「PRT10」にあるファイル「JAC110」を
フォルダ「KEIRI」のファイル「QRYDATA」に移したいのです。
(PRT10には沢山のスプールファイルがあります。)

http://www.onbedo.com/forCOMP/AS400/qa_os.html
というページに
Q: スプールファイルを保管するには?
A: CPYSPLFを使用しましょう。
例)
CRTPF FILE(MyLIB/MyPF) RCDLEN(200) IGCDTA(*YES)
CPYSPLF FILE(MySPL) TOFILE(MyLIB/MyPF) CTLCHAR(*FCFC)
これで物理ファイルMyPFに保管されます。

とアドバイスがあるのですが使えず困ってます。

よろしくお願いします。

Aベストアンサー

構文はこうなります。
CPYSPLF FILE(<スプール出力のファイル名>) TOFILE(MYLIB/QHSTLOG) JOB(<番号>/<ユーザー>/<ジョブ>) SPLNBR(*LAST)

参考URL:http://www-06.ibm.com/jp/domino02/software/lotus/support/pdguide/pdguide.nsf/index/c4_8

QAS400プリンタセッション作成について質問させてください

AS400のプリンタセッションを作りたく思いいろいろ調べました。
下記手順で間違ったところがあればご指摘・またはアドバイス等頂きたく思い投稿させて頂きました。

(1)端末(WinXP pro)にパーソナルコミュニケーションズ(PCOMM)4.3を導入。

※PCOMM以外にもクライアントアクセスなるソフトがあったのですがPCOMMと大きく違いはあるのでしょうか?

(2)同端末に出力したいプリンタのドライバインストール。

(3)PCOMM起動。通信→構成の[リンクパラメータ]でAS400のIPアドレスを記入。[セッションパラメータ]でセッションタイプのプリンタにチェックを入れる。
ホストのタイプはAS400、接続タイプはTELNETの5250を選択。

※セッションパラメータ中にワークステーション名という項目があるのですがここにはどういった値を入れればよいのでしょう?またこの画面内にある[拡張]をクリックして開くところにあるメッセージ待ち行列とは気にしなくていいのでしょうか?

(4)ファイル→プリンタ設定より出力したいプリンタを選らんでOKをクリック。

(5)テスト印刷

以上、実際に試せる環境がないのでこれで出力できるか確認できていませんが詳しい方いらっしゃいましたらご教授願います。

AS400のプリンタセッションを作りたく思いいろいろ調べました。
下記手順で間違ったところがあればご指摘・またはアドバイス等頂きたく思い投稿させて頂きました。

(1)端末(WinXP pro)にパーソナルコミュニケーションズ(PCOMM)4.3を導入。

※PCOMM以外にもクライアントアクセスなるソフトがあったのですがPCOMMと大きく違いはあるのでしょうか?

(2)同端末に出力したいプリンタのドライバインストール。

(3)PCOMM起動。通信→構成の[リンクパラメータ]でAS400のIPアドレスを記入。[セッションパラメ...続きを読む

Aベストアンサー

#1の続きです。

>>WinXPではサポート外なのですね。
Pcomm(途中のバージョンからは、製品名としては『HACP』と呼ぶようになりましたが)の各バージョンのOS対応について、以下のURLにリストがありますので参照して下さい。
http://www-06.ibm.com/jp/software/network/pcomm/version.html

昔のバージョンでは『シュリンクラップ』という、パッケージを単体で購入できるものがありましたが、今のPcomm(正確には『HACP』ですが)は確か、『パスポート・アドバンテージ』製品になっているはずですので、ソフトウェア・メンテナンスの契約をちゃんとしていれば、最新バージョンを使用することは可能です。(サポート期間中のものについて『パスポート・アドバンテージ・オンライン』のサイトでダウンロードできますから、最新のものに限らずインストールイメージを入手することは可能です。)


>>ワークステーション名に関しては任意の名前をつけておいて印刷するときディスプレイセッションからその名前を指定すれば出力できるという認識で大丈夫でしょうか?

前回の説明をもう少し具体的に解説します。

例えば、あるPCにディスプレイセッションとプリンタセッションを1つずつ作成したとします。
ディスプレイセッションのワークステーション名を『DSP100』、プリンタセッションのワークステーション名を『PRT100』としたとします。この時、プリンタセッションを作成する際に、メッセージ待ち行列を『DSP100』と指定すれば、AS/400側に出来る『PRT100』という『装置記述』に、メッセージ待ち行列が『DSP100』と指定されるため、『PRT100』というプリンタに関するメッセージ(用紙交換とか、用紙切れとか...)は、デフォルトでは『DSP100』というメッセージ待ち行列(これはとりもなおさず、『DSP100』というディスプレイセッションの装置記述が持つメッセージ待ち行列です)にメッセージが届くことになります。(配布モードが『*BREAK』になっていなくても、SysReqの4番で確認できます。)

ただし、AS/400にサイン・オンした際に実行される(と思われる)初期プログラムによってその設定を変更されるケースもありえますので、『絶対』だとは言えません。



使用するプリンタがCANON LBP-750ということですが、既に販売が終了されている製品です。
このプリンタでの5577エミュレーションモードについてですが、デフォルトでは持っていません。コントロールカード(別売)を追加することによってサポートされることになります。
http://cweb.canon.jp/e-support/qasearch/answer/lasershotprinters/q001000010862.html
コントロールカードを使わない場合であれば、ESC/Pがサポートされていますが、ESC/Pの場合、AS/400側のアプリケーションの作成仕様にもよりますが、制約を受けることが多々あると思って下さい。
一例としてですが、例えば、プリンタファイルを使用した帳票設計で、15CPI(198文字)はサポートされません。(通常では158文字=12CPIまでが限界)


...と、ここまでいろいろ書いてしまいましたが、私もAS/400関連を離れてかなり時間がたっていますので、最新の情報(正しい情報)については、出入りされているベンダーさんに確認していただくのがよいでしょう。(特に5577エミュレーションあたりについては、アプリケーション側の作り込みの仕様との兼ね合いがかなり大きいですから、ベンダーさんだけでなく、SIerさんにも確認する必要があるでしょう。)

#1の続きです。

>>WinXPではサポート外なのですね。
Pcomm(途中のバージョンからは、製品名としては『HACP』と呼ぶようになりましたが)の各バージョンのOS対応について、以下のURLにリストがありますので参照して下さい。
http://www-06.ibm.com/jp/software/network/pcomm/version.html

昔のバージョンでは『シュリンクラップ』という、パッケージを単体で購入できるものがありましたが、今のPcomm(正確には『HACP』ですが)は確か、『パスポート・アドバンテージ』製品になっているはずですの...続きを読む

QRPG パラメーターについて

AS/400のRPG言語に携わり1年が経ちます。
お恥ずかしながら質問させていただきますが、
CLを組んで、CALLでRPGを呼び出す時にパラメーターを受け渡すようにしました。
初めてやってみましたが、なんとか動くようになりましたが、
今度はデバッグするときや、コマンドラインで直接プログラムを呼び出す時、CALLのオプションでパラメーターを指定しなければならなくなりました。
例えばOPTという数字変数のパラメータとAという文字パラメーター、Bという論理データのパラメーターにそれぞれ
1、’登録’、’1’というものを渡したい場合、
CALL PGM(EM02PR) PARM(・・・・・・)
PARMの記述はどう記入すればよいのでしょうか?

おわかりになる方宜しくお願い致します。

Aベストアンサー

CALL PGM(EM02PR) PARM('1' '0' '0' X'1F')もしくは
CALL PGM(EM02PR) PARM('1' '0' '0' X'01F')
どちらかで大丈夫だと思います。
いかがでしょうか。

QRPG 配列宣言について

いつもお世話になっております。
IBM AS/400の駆け出しプログラマーです。
今、配列を使ったシステムを組んでいるのですが、
たとえばAというDBの項目に同じものがいくつかあるとします。
課所コード1(KSCD1)、課所コード2(KSCD2)、・・・・
といったような項目です。
そのAのファイルを読み、課所コードを配列に入れたいのですが、
配列KSCというものに
KSC,1にはKSCD1
KSC,2にはKSCD2といった感じです。
演算仕様書でMOVEL  KSCD1  KSC,1
と個々にやっていく方法以外にレコードを読んだときに自動的に配列に入れるような方法があったら教えていただきたいと思います。
何せ個々に入れていくとそれだけで80行使ってしまうので・・・・
知っている方がいらっしゃいましたらどうかお助けください。
お願い致します。

Aベストアンサー

以下の様にプログラミングすれば可能です。

E* テーブル
E  KSC  80 5 (80はテーブル数、5は桁数)
I  DS
I      1  5 KSCD1 (KSCD1はAファイルのフィールド名)
I      6  10 KSCD2
I      11  15 KSCD3
I      16  20 KSCD4
      ・
      ・
      ・
I     396 400 KSCD80

あとはAファイルを読み込めば KSCD1 --> KSC,1 、KSCD2 --> KSC,2 ・・・・ KSCD80 --> KSC,80に自動的にセットされます。
この方法を使えば、画面ファイルのフィールドも同様に使用できます(私は良く使用しております)。
何かわからないことがあれば、補足します。

QRPGでメッセージファイル利用

AS400初心者です。
RPGのプログラムにてメッセージファイルを利用するにはどのようにしたら良いのでしょうか?

たとえば・・・
(RPG)
  'メッセージID’CHAIN メッセージファイル
  'メッセージファイルのFIELD?' MOVEL ’画面のFIELD?’

あるいは
  RPGからCLを呼び出して・・
 (CL)
   SNDMSG メッセージID  メッセージファイル
   取得したメッセージを何らかの方法でRPGに返す?

初心者で質問の仕方も悪いかもしれませんが、よろしくお願いします。

    

Aベストアンサー

パラメータを渡すというのは、「○件データが更新
されました」の○の部分の数値をその都度変化
させたいという事でしょうか。
現在取り扱っているシステムではメッセージがすべて
固定になっていてそこまでの事はしていないです。
できるかどうかもわかりません。
少し考えてみたのですが次の方法はいかがでしょう。

画面ファイル
WSMSG1 4A O 24 2DSPATR(HI BL)
WSMSG 68A O 24 9DSPATR(HI BL)

配列
E TB1 1 2 4
E TB2 1 2 68

変数部分設定
C MOVE AAAA WSMSG1
キー取得
C MOVE '1003' MSGKEY

メッセージ表示
C MSGKEY LOKUPTB1,M 88
C *IN88IFEQ '1'
C MOVE TB2,M WSMSG
C ENDIF


** TB1
ERR1
1003
** TB2
ERR1 得意先マスタに登録されていません。
1003 更新完了

※メッセージファイルを使用せず、RPGの中で
直接メッセージを指定する方法です。

パラメータを渡すというのは、「○件データが更新
されました」の○の部分の数値をその都度変化
させたいという事でしょうか。
現在取り扱っているシステムではメッセージがすべて
固定になっていてそこまでの事はしていないです。
できるかどうかもわかりません。
少し考えてみたのですが次の方法はいかがでしょう。

画面ファイル
WSMSG1 4A O 24 2DSPATR(HI BL)
WSMSG 68A O 24 9DSPATR(HI BL)

配列
E TB1 1 2 4
E TB2 1 ...続きを読む

QRPGプログラムの*HIVALについて

0001.00 READ PGM 91
0002.00 91 EXSR @shori

0050.00 MOVEL*HIVAL #KF01

っというような流れがあります。
#KF01というのはKFLDで指定してある、
キーフィールドのうちのひとつです。

この場合MOVEL*HIVALというのは何を意味しているのでしょうか?

Aベストアンサー

RPGの場合は MOVE *HIVAL #KF01
だけではキーの中に最高値を入れているだけですので
それだけでは意味をなしません。
その後にキーによるSETLLやSETGTがあると思います。
そこで初めて次処理を何処からするか読み始める位置を
移動のみします。また、その後のREADから実際の処理が
始まります。
ファイルの並び順(降順・昇順)とSET○○と
READの種類により処理も変わってきます。
これらは余計な処理をしなくても良いように必要ない
データは読まないという処理に使用したり、READ
の場合一度ファイルを読むとそのまま同じファイルを
読もうとしても最後まで読まれているため1件も
読まれないということがあるためちゃんとファイルが
読めるようにというときに使用されます。
*LOVAL(最小値)も同じようなときに使用されます。

QDB2のSQL(日付)について

文字列で8桁の日付(例:20041208)を持っている項目の条件に本日日付以上という条件をつけたいのですが、
(例:where NEN >= 本日日付の文字列8桁 )
※NEN:20041208
SQLでシステム日付を文字列8桁にする方法はありますか?
ご教授お願いしますm(_ _)m

Aベストアンサー

(前にも回答したと思うのですが、入っていないようなので再度入力します)

大小の比較をしたいのでしたら、DATE型を文字列にしても駄目で、文字列をDATE型に変換する必要があります。
8文字で表された日付をDATE型に変換する関数はDB2には用意されていないので、自分で用意する必要があります。

CREATE FUNCTION STR2DATE (dateString VARCHAR(8))

RETURNS DATE

SPECIFIC STR2DATE

LANGUAGE SQL

DETERMINISTIC

CONTAINS SQL

BEGIN ATOMIC

DECLARE ret VARCHAR(10);



IF (LENGTH(dateString) != 8) THEN

RETURN DATE('1970-01-01');

END IF;



set ret = LEFT(dateString,4) || '-' || SUBSTR(dateString,5,2) || '-' || RIGHT(dateString,2);



RETURN ret;

END@

という感じでSTR2DATE関数を用意しておいて、
SELECT ... WHERE STR2DATE(NEN) >= CURRENT DATE
とやればうまくいくのではないでしょうか。

(前にも回答したと思うのですが、入っていないようなので再度入力します)

大小の比較をしたいのでしたら、DATE型を文字列にしても駄目で、文字列をDATE型に変換する必要があります。
8文字で表された日付をDATE型に変換する関数はDB2には用意されていないので、自分で用意する必要があります。

CREATE FUNCTION STR2DATE (dateString VARCHAR(8))

RETURNS DATE

SPECIFIC STR2DATE

LANGUAGE SQL

DETERMINISTIC

CONTAINS SQL

BEGIN ATOMIC

DECLARE ret VARCHAR(10);



IF (LENGTH(...続きを読む

QEXCEL(IF関数)でCELLの色を変える。

例えば、IF関数で真ならセルの色を赤色にしたり、文字の色を変えたりする関数とかはあるのでしょうか?わかりません・・・知ってる方いらっしゃれば教えて下さい。

Aベストアンサー

こんばんは。

関数ではありませんが‥

<条件付き書式>ではダメなのでしょうか?

メニュー<書式>-<条件付き書式> です。

どのような条件を想定していらっしゃるのかわかりませんが、
<条件付き書式>については↓の参考URLをご覧ください。

▽条件付き書式・その1
http://homepage1.nifty.com/kenzo30/ex_kisosyo/ex_ks_syokyu4.htm

▽条件付き書式・その2
http://homepage1.nifty.com/kenzo30/ex_kisosyo/ex_ks_syokyu5.htm

参考URL:http://homepage1.nifty.com/kenzo30/ex_kisosyo/ex_ks_syokyu4.htm


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング