Google
オフコン練習帳内を検索
インターネット全体を検索

NECオフコン関連
オフコン一般
情報

NECのオフコン情報掲示板(ノウハウ系)

NECのオフコンを活用するためのノウハウを話し合うための掲示板です。

1: #NFCNVの制限?(2)   2: LLNIPの印刷(3)   3: #BKUPでusbに直接出力できますか?(3)   4: A−VXのプリンタ設定方法が分かりません(2)   5: OSのCDについて(4)   6: 初期プログラムに関する質問(4)   7: ボリュームMAPにあるが、#ABCだとファイルがみつからない(2)   8: SYS@DDFの復旧(2)   9: スプールデータの取り出し方法についての質問(10)   10: SG処理にて、PAGW実行中にエラーが発生しました(9)   11: ソースライブラリの一括検索(9)   12: 帳表をPDF印刷する方法(PRINTVEWを使わず)はありますか(2)   13: SKYLINKでテーブルを検索するとエラーとなる(1)   14: オフコン(3)   15: 管理人さんへの質問です(3)   16: #LTEDITでフォームのソースを指定するとメンバーが見つからないと表示される(4)   17: UPS無しの構成へのシステム移行(12)   18: #NFCNV でパソコンへ転送すると、データの先頭に空白がついてしまう(3)   19: CBL85資産をOPENcobolに移行する(3)   20: COBOLソースから仕様書の鏡作成ツール(3)   21: PrintBridgeの使い方(8)   22: WSエミュレータをWindows7Pro32bitSP1PCにインストール出来なくなった(1)   23: 漢字とANKの縮小印字について(3)   24: #NFCNVで先頭のカラムが0になるのは?(2)   25: N7884-14Bと互換性があるプリンタについて(2)   26: 表示(印刷)を任意の順番にしたいのですが・・・(6)   27: JSまたはPMのコールが間違っています(3)   28: ページプリンターのSG方法(2)   29: SMARTの画面明細項目が終われない(8)   30: AVXでの外字(槇)について(6)  

 新規投稿 | スレッド表示 | ツリー表示 | 投稿順表示 | i-mode | トップ 
« 1 ... 63 64 65 (66) 67 68 69 ... 108 »

Re:FTP受信
よしぼ〜 2006-8-24 18:14:00  [返信] [編集]

はじめまして。



当方、Express5800/670Xiを使用しております。

FTP環境を構築しています。



江須扇さんのご想像のとおり、FTPクライアントと

FTPサーバーは別の有償ソフトになっております。



FTPクライアントは、A-VXからのアクションで

データの送信と受信が可能ですが、Windowsから

A-VX にデータを送信することはできません。

それをするためには、FTPサーバーが必要です。



Re:FTP受信
goodmoon 2006-8-24 13:39:00  [返信] [編集]

江須扇さん、はじめまして。

お返事ありがとうございます。

現在使用している機種はExpress5800/680Aiです。

ですので#NFCNVは使用できるのですが、今回は自サーバのWindows側からのアクションでA−VX側へデータを送信する方法がないものかと考えているのです。

私もあまり詳しくないのでWindowsからFTP送信してA−VXで受け取れないかと単純に考えていたのですが・・・

何か良い方法はないでしょうか?
Re:FTP受信
江須扇 2006-8-24 12:49:00  [返信] [編集]

goodmoonさん初めまして江須扇と申します。

まず機種はなんでしょうか?

Express5800/700シリーズ以降であれば、

標準装備の#NFCNVで、自サーバーのWindows領域の

共有フォルダへの読み書きはできます。

S7200シリーズ以前の機種でしょうか?

その場合は有償ソフトにFTPはあったと記憶しております。

有償ソフトの為、添付マニュアル等は私はもっておりません。

有償ソフト購入時に添付されているマニュアルで確認して

いただくか購入先のSEに確認するのが良いと思います。

FTP機能としては理論的には

FTPクライアント送信、

FTPクライアント受信

FTPサーバー送信

FTPサーバー受信

4種あると思いますが、1有償ソフトで全てできたのか、

別々の有償ソフトになっていたのかまったく記憶がありません。

FTPクライアント、FTPサーバーと2種類の有償ソフトに

なっているとすれば、たぶん送受信機能はあると想像しますが・・・・

すいません、まったく答えになってないですね。
FTP受信
goodmoon 2006-8-24 11:02:00  [返信] [編集]

A-VXからWindowsへFTP送信でデータを出力したことはあるのですが、その逆の受信というのは可能なものなのでしょうか?

あまり詳しくないので検討違いの質問でしたら申し訳ありません。
Re:[5]:16進を10進に変換する方法
ゼロ 2006-8-22 13:02:00  [返信] [編集]

ありがとうございます、希望通りの結果を得ることができました。

プログラムもすっきりして大満足です。



上1桁が負を表すってことをすっかり忘れていました、2進数なんて20年近く前に情報処理二種の試験勉強した依頼なんで。



次の課題はデータのデータ上に直接持っていないデータの追加可能件数をどうやって求めるか頭をひねってみようと思います。
「ジョブ起動ユーティリティ」のUWSCでの代替方法
江須扇 2006-8-19 23:22:00  [返信] [編集]

パソコン側でデータを作った後に、自動的に、オフコン側での処理を
する場合は、通常は「ジョブ起動ユーティリティ」を使いますが、
パソコン側の自動実行を含めて実行する場合はフリーソフトの、
UWSCを使うと便利です。

http://www.h7.dion.ne.jp/~umiumi/

具体的にはWeb-EDIのデータを自動的にオフコンに取り込む処理で
使っております。


そのエミュレータの起動のサンプルスクリプトです。
参考になればとアップロードしました。
SAMPLEというAPを実行して終わるサンプルです。
WindowsXPでは巧くいきますがなぜかMeでは画面が読み取れません、
従ってXPのみの対応です。



但し
SGは WSモード WSM=25R
でエミュレータのフォントサイズは24にしてあります。

-----------------------------------------------------------

public fontsize
public xx1
public yy1
fontsize=24
disp=getid("WSエミュレータ","EmlMainWnd")
ifb disp < 0 then
 exec("c:\ws-eml\pcws32.exe")
 sleep (3)    
 repeat
  sleep (1)
  disp=getid("WSエミュレータ","EmlMainWnd")
 until disp<>0
 repeat
  sleep (1)
  posxy(2,1)
  acep=POSACC(disp,xx1,yy1)
  print acep
 until acep="CO"
 sckey(disp,VK_ALT,C,L)
 repeat
  sleep (1)
  posxy(1,11)
  acep=POSACC(disp,xx1,yy1)
  print acep
 until acep="識"
 sckey(disp,0,0,0,VK_RETURN)
 repeat
  sleep (1)
  posxy(4,1)
  acep=POSACC(disp,xx1,yy1)
  print acep
 until acep="RU"
else
 repeat
  sleep (1)
  posxy(2,5)
  acep=POSACC(disp,xx1,yy1)
  print acep
 until acep="^^"
endif

sckey(disp,S,A,M,P,L,E,VK_OEM_PLUS,VK_RETURN)
repeat
  sleep (10)
  posxy(2,5)
  acep=POSACC(disp,xx1,yy1)
  print acep
until acep="^^"
sckey(disp,VK_ALT,C,O)

procedure posxy (lin,col)
  xx1 = fontsize / 2 - 1 + ( col - 1 ) * fontsize / 2
  yy1 = fontsize + 1 + ( lin - 1 ) * ( fontsize + 2 )
fend
Re:[5]:16進を10進に変換する方法
江須扇 2006-8-19 16:49:00  [返信] [編集]

ご指摘の通りですね。

COMP-1場合、
−32768≦x≦32767
となり、上1桁目のビットは負をあらわすので、
16進数を単純に10進数に戻せない場合があると言うことですね。

例えば、

02 REI1 USAGE IS COMP-1
02 REI1-ANS PIC 9(5)

IF REI1 < 0
   THEN COMPUTE REI1-ANS = REI1 + 65536
   ELSE MOVE REI1 TO REI1-ANS
END-IF

等の工夫が必要という事ですね。


2バイトまでしか使えないので、
4バイトの場合はCOMP-2を使いますがこれも
−2147483648≦y≦2147483647
なので

02 REI2 USAGE IS COMP-2
02 REI2-ANS PIC 9(10)

IF REI2 < 0
   THEN COMPUTE REI2-ANS = REI2 + 4294967296
   ELSE MOVE REI2 TO REI2-ANS
END-IF

6バイトの場合は

02 REI3.
  03 REI31 USAGE IS COMP-1
  03 REI32 USAGE IS COMP-2
02 REI31-ANS PIC 9(05)
02 REI32-ANS PIC 9(10)
02 REI3-ANS  PIC 9(15)

IF REI31 < 0
   THEN COMPUTE REI31-ANS = REI31 + 65536
   ELSE MOVE REI31 TO REI31-ANS
END-IF
IF REI32 < 0
   THEN COMPUTE REI32-ANS = REI32 + 4294967296
   ELSE MOVE REI32 TO REI32-ANS
END-IF
COMPUTE REI3-ANS = REI31-ANS * 4294967296 + REI32-ANS

等の作業が必要と言うことでしょうか?
Re:16進を10進に変換する方法
江須扇 2006-8-19 7:35:00  [返信] [編集]

>2バイト単位しか利用できませんが、USAGE COMP-1
>を利用したらいかがでしょうか?


という事で、4バイトの場合は、 USAGE COMP-2
を利用していただくこととなります。
但し、
COMP-1 が−32768≦x≦32767
COMP-2 が−2147483648≦y≦2147483647
となります。

詳しくは、COBOL言語説明書、2.4.3.4 データの表現形式
をご覧下さい。
Re:16進を10進に変換する方法
ゼロ 2006-8-18 10:18:00  [返信] [編集]

遅くなりましたが、江須扇様レスありがとうございました。


USAGE COMP-1を使用してレコード長、ブロック長、更新回数は問題なく10進に変換できました。


01 FDF-RECORDSIZE PIC X(2).  : 内容 '0256'(h)
01 WORK-RECORDSIZE.
 02 WORK-RSIZ1  PIC X(5).
 02 WORK-RSIZ2  REDEFINES WORK-RSIZ1 USAGE COMP-1.

MOVE FDF-RECORDSIZE TO WORK-RSIZ2.


これで、WORK-RSIZ1の内容が’256d’になっていました。

USAGE COMP-1の仕組みがよく理解できていないので結果論ですが、16進数→10進数の変換は出来たようです。

問題になったのが第1〜第4エクステント開始終了アドレス。
これは上記の方法で変換するとまったく意味不明な値が帰ってきたので下記のような変換テーブルを作って1バイトづつ判断して内部16進から外部16進に変換しました。
あとは16進→10進への計算ルーチンを作って10進にしました。
もっといい方法があるかもしれませんがこれしか思いつきませんでした。


01 H-TABLE  PIC X(16) VALUE ""00010203・・・0D0EOF"".
01 H-TBL  REDEFINES H-TABLE PIC X(1) OCCURS 16 TIMES.
01 D-TABLE  PIC X(32) VALUE "00010203・・・0D0E0F".
01 D-TBL  REDEFINES D-TABLE PIC X(2) OCCURS 16 TIMES.

Re:16進を10進に変換する方法
ちょっと前までA-VXユーザ 2006-8-17 23:18:00  [返信] [編集]

USAGE COMP-1 って、2進数ですね。

16進数は、4bits表現で、0〜9,A〜Fですよね。

きっと間違っていないと思いますが、ちょっと気になって、



余計なお世話だったかな?



以上
Re:ご苦労様です−3 (聞くと怖い話)
ちょっと前までA-VXユーザ 2006-8-17 23:15:00  [返信] [編集]

今は、A-NXが手元で使えないので、詳細に分かりませんが、

確か、#SABC4 と言うUTLで、COBOL85で作ったLMから、

リンクされているCU名、REV(=SU のREV)が表示出来たはずですね。

COPY原文名、REVも表示(印刷?)出来たと思います。

IDSPと言う、シンボルデバッガがリリースされて少し経ってから

この機能が追加されたと記憶。

COBOL85の翻訳時に、DDFから直接COPY原文を生成出来ましたね。

この辺りを使っていると、非常に便利だった と記憶。

違っていたら、ごめんなさい。



以上

ご苦労様です−3 (聞くと怖い話)
EXCHANGE 2006-8-8 8:52:00  [返信] [編集]

* もう一つ言い忘れたことがありました。



* SYS@DDFには現状運用システムと一致した内容がある。と申しましたが、実はこれには重大な注意事項があります。



* A−VXでは、COBOLの項目定義とDDFのDB定義とが別々に管理されているため、両者に不一致があってもCOBOLプログラムとしては問題なしに稼働してしまう。という問題があります。



* AS/400等では、例えばCRTPFコマンドを実行するとDDSの定義に基づいて、物理ファイルのアロケートとディクショナリへの登録を同時に実行してくれるので、DDS定義(項目定義)、物理ファイル、ディクショナリ定義簿の三者が完全に一致するのですが、

A−VXでは歴史的にファイルベース−−>データベースと追加されてきた経緯からか、このような厳密さがありません。



* コピー句とDD定義の不一致を調べる方法としては、RDBQ2等でデータを覗いてみて、中身が妥当かどうか(桁ずれなども含めて)確認するぐらいしか方法がないようです。

ご苦労様です−2
EXCHANGE 2006-8-8 8:22:00  [返信] [編集]

* 内容の補足です。説明がワンステップ抜けていました。

  差し替えて下さい。



* RUN #DDM; −−−> 2.表定義 −−> MSD SYS@DDF 1.OK −−> (以下同様です)。。。



ご苦労様です
EXCHANGE 2006-8-8 7:57:00  [返信] [編集]

* ヨードさんこんにちわ。なかなかたいへんみたいですね。

  乗せ換えというのは、何度経験してもいつも何か隘路があるようです。



* さて、レイアウトの件の続きですが、#DDMを使ってSYS@DDFをプリントアウトすることが出来ればCOPY句がなくてもかなりな情報が手にはいると思います。



* RUN #DDM; −−−> MSD SYS@DDF 1.OK −−−> 6.リスト出力 −−> 全印刷 登録順 PRN999 1.OK で、少なくともデータベースに登録されている表名(物理ファイル、論理ファイルを含めて)および、項目名(前任者がよほど変わった方でない限りCOBOL上の項目名のまま)を印刷出力できます。



* ただしこの方法は次の点に注意です。

 (1)SYS@DDFは現状の運用システムに使われているので、内容の信憑性は高いが、変更を加えると現状システムに重大な問題が起こることがあるので、A?VX未経験者の場合「リスト出力」程度にした方が安全。 たいていの場合SYS@DDF以外にももう一つXXX@DDFという名前のユーザDDFがアロケートされていると思いますので、まずこちらで確かめてからの方がいいでしょう。(前述の MSD SYS@DDFのところを MSD XXX@DDFに換えて下さい)



 (2)このシステムが カンパニーで運用されている場合は(チェンジDIRにて、カレントディレクトリ上で運用されている場合は)その状態でリストを出力しても他のカンパニーやグローバルのDB表は出力されません。



 (3)#DDMで確認できるのはDB表のみですので、#MAPで確認したときの複数索引順編成ファイルのみになります。 相対編成ファイル、シーケンシャルファイル、それから旧式索引順編成等は確認できません。



 (4)リスト出力はかなりの分量になりますのでたくさんのストックフォームをご用意下さい。リスト出力中のJOBのキャンセル(強制終了)は問題ないと思います。 事前にユーザDDF上でDB表1個、1個出力してみて練習することをおすすめします。

もちろんSYS@DDFの場合も1個1個個別にプリントアウトできます。



 (5)SYS@DDFをいじくることに自信が持てないときはユーザDDFを対象にして下さい。(ただし現状運用システムと完全に一致してる保証はありませんが。。)



 (6)項目名が分からなくても属性のみ分かれば良いのであれば

RUN RDBQ2; にてDBのデータを直接覗いてみれば良いでしょう。

こちらはエンドユーザ向けのツール(ACCESSの初歩みたいなもの)ですので直接データを更新したりしない限り便利な道具です。ココには各項目の属性が表示されます。



Re:順序が逆では???
ヨード 2006-8-7 12:00:00  [返信] [編集]

書き込みありがとうございます。

ご指摘頂いた点は、取り越し苦労ではなくまさにその通りです。



現状は、

・前任者の協力が得がたい状況にある。

・稼働中システムとSULの一致は保障できない。

という状況にあります。



それを踏まえて

・出来うる限り前任者の協力を要請

(ソースの有りかすら不明な状況)

それと並行して

・現状システムの分析

・業務フローの再確認と顧客要件(追加、変更)の確認

を実施している状況にあります。



結局のところは再構築となるだろう言う認識のもと

できる限り拾える情報は、拾っておこうというのが

現状といったところでしょうか。

Re:SMARTのデータ入力プログラムについて
MAKI 2006-8-6 16:56:00  [返信] [編集]

最初から修正する予定でしたか。

余計なことを言いました。

SMARTを使うんだったら、特に修正のときは

F3,F4,F9,ADVANCEなどのキーの使い方を覚えると

効率がよくなります。

お勧めします。
Re:16進を10進に変換する方法
江須扇 2006-8-5 18:14:00  [返信] [編集]

はじめましてゼロさん、江須扇と申します。



2バイト単位しか利用できませんが、USAGE COMP-1

を利用したらいかがでしょうか?



全く違う利用例ですがこの掲示板の181番にUSAGE COMP-1

を使ったCOBOLリストが載っております。



16進を10進に変換する方法
ゼロ 2006-8-5 8:59:00  [返信] [編集]

SYS@FDF内よりデータを抜き出してファイルを管理するデータベースを作りたいと思ったのですが、肝心な部分(更新回数、更新日等)が16進の為にそのままでは利用できませんでした。

COBOLで16進から10進に変換する方法を教えてもらえないでしょうか?

COBOLを利用する以外の方法でもかまいませんのでお願いします。



順序が逆では???
EXCHANGE 2006-8-3 11:48:00  [返信] [編集]

* DBを使った部分なら#DDMとか、RDBQ2等で調べれば分かると思います。



* ただ、事情はよく分からないのですが、



 > 頑張って、目と手で1つ1つ変換しました。



> なんとか既存ファイルのレイアウトを確認する方法は無いものでしょうか?



 という下りはちょっといただけないのでは。。

 先にCOPY句も含めてどこに入っているか確認してから

 コンバートした方が。。

  



 > ファイルレイアウトの資料も怪しいものしかなく



 ということは、前任者とのコンタクトが取れない状況のように

 思われます。

 と、言うことは−−−>現在SULに入っているソースが

 稼働中システムと一致しているとどうして保証できるのでしょうか???



* ソースコンバートによるマイグレーションは、

  前任者の協力が必要な場合が多いように思います。



* 私だったら前任者の協力が得られない場合は、

  新規システムとして構築しなおす(再構築する)でしょうね。

  どのみち現時点となっては、

  顧客側の要件も変わっているでしょうし。。



*  すみません。取り越し苦労でしょうか。

Re:変換するソースの指定画面での全ソース指定
ゼロ 2006-8-3 11:16:00  [返信] [編集]

ヨードさん始めまして



一般的かどうかは、分かりませんが私はCOPY句で使用するソースは別SULにまとめて管理するようにしています。



業務ごとにSULは分けていますがCOPY句で使用するSULは他業務でも使用することがあるのでファイルレイアウトの変更等が発生した場合の管理がしやすいからです。



COBOLソース内にどの登録集を使用しているか明記しておくといいかもしれません。

 新規投稿 | スレッド表示 | ツリー表示 | 投稿順表示 | i-mode | トップ 
« 1 ... 63 64 65 (66) 67 68 69 ... 108 »

BluesBB ©Sting_Band