ASSG

帳票設計を機能アップ

最近はコロナ禍の影響もありペーパレスが一段と進んでいます。 帳票出力の要望は少なく、もっぱらCSV出力になっていました。その方がデータとして活用もできて文字数の制限も少ないので、開発者もエンドユーザーもWinWinじゃないでしょうか(某総理の口調で…

ひとりごと CNTFLDの罠

いつの頃からあるのか分からないのですが、2行以上にまたがる入カフィールドが可能ですね。幾つか制約があって、出カフィールドはダメ(入出力の保護にして回避)、サブファイルはダメですね。 今日知ったのは、前のフィールドとは2桁以上空けないとダメ。マ…

自動生成サブルーチン #disp_record_SEARCHについて

#disp_record_SEARCHは検索のサブルーチンです。 画面設計の[検索]のオウンコードをサブルーチンにします。 一例として検索のオウンコードと、生成後のRPGコードを紹介します。 [検索のオウンコード] ======================================= CALLP SRCT…

自動生成サブルーチン #disp_record_CHECKについて

#disp_record_CHECKは入力チェックのサブルーチンです。 画面設計の[入力チェック]のオウンコードをサブルーチンにします。 一例として入力チェックのオウンコードと、生成後のRPGコードを紹介します。 [入力チェックのオウンコード] ===================…

自動生成サブルーチン disp_record_INITATRについて

disp_record_INITATRは属性初期化のサブルーチンです。 //-------------------------------------------------------------------- // #DSP04_INITATR 属性初期化 //-------------------------------------------------------------------- BEGSR #DSP04_INI…

自動生成サブルーチン #disp_record_INITFLDについて

#disp_record_INITFLDはフィールド初期化のサブルーチンです。 //-------------------------------------------------------------------- // #DSP04_INITFLD フィールド初期化 //-------------------------------------------------------------------- BEG…

自動生成サブルーチン #disp_recordについて

#disp_recordは画面入出力を行うサブルーチンです。 0010 //-------------------------------------------------------------------- 0011 // #DSP01入出力 0012 //-------------------------------------------------------------------- 0013 BEGSR #DSP01…

自動生成サブルーチン #SCREEN_BACKについて

#SCREEN_BACKは前画面に遷移(戻る)するためのサブルーチンです。 //------------------------------------------------------------ // #SCREEN_BACK 前画面に戻る //------------------------------------------------------------ BEGSR #SCREEN_BACK; /…

自動生成サブルーチン #INITについて

初期処理サブルーチン[#INIT]のご紹介です。 #INITのオウンコード部分は、サブルーチン一覧に登録が必要です。 後半に第一画面への遷移コードが自動生成されます。 //------------------------------------------------------------------------------ // 初…

サブルーチンの自動生成について

ASSGの対話型プログラムでは、「サブルーチンの自動生成」が可能です。 自動生成されるルーチンは下記の通りです。 MAIN:メインルーチン(画面遷移の制御部分のみ) #INIT:初期処理(第一画面への画面遷移部分のみ) #SCREEN_BACK:前画面遷移 #disp_record…

AS400のWINDOW表示と罫線に悩む

AS400でもWINDOW表示が使えるようになり、画面デザインの幅が広がりました。 ところが、WINDOW内に罫線を引くのにとても悩みました。 WINDOW本体のレコードと罫線レコードのレコードキーワードで、 WINDOW(2 60 10 10) のように指定しても罫線は表示できませ…

ドキュメントの機能改善

ドキュメントの機能改善 途中経過報告です。 テンプレートを使うことはできました。 Sheets.Add(before:=Worksheets("sheet1"), Type:=Template_Path).name = new_name Template_Path:テンプレート用ブックファイルのPath new_name:追加するシート名 ただ、…

ドキュメントについて

唐突ですが、エクセルって本当に便利なツールですよね。様々な使い方があると思うのですが、アプリの開発でも各種の仕様書やDB設計書やフローチャートなどなど、切り離せない存在です。 ASSGは開発ツールなので、仕様書やフローチャートなどのドキュメント…

ひとりごと、エクスプローラーが使い難い!

Windowsは3.1の時代から使っているけど、時に新しいバージョンになると使い難くなってることがある。Win10でエクスプローラーを開くと「クイックアクセス」が開くようになった。Cドライブはどこだ?ネットワークはどこだ?って、目的の場所を開くのに手間が…

設計情報の保管と復元

ASSGはExcelVBAを使って開発しています。アプリケーションとデータ(設計情報)を切り離すようにしているので、次のようなメリットが得られています。 ブックファイルが肥大化しない アプリケーションがバージョンアップしても過去の設計情報が使える テンプ…

SQLについて

RPGで扱うファイルはF仕様書で定義し、READ/CHAIN/WRITE命令で読み書きすることが続いていたと思います。RPGサイクルを使って読み書き命令を書かないこともありました。まぁ、それはそれで短時間で作れるし、コード行数が少ないので品質の良いプログラム…

エディタについて

ここまで、ASSGで扱うRPG生成に直結する主な機能をご紹介してきました。 ここからはエディタ機能や設計情報保管/復元などの補助的な機能をご紹介します。 今回はエディタです。エディタは・・・機能低いです。できれば構文チェックや色付けなどの機能を盛り…

プロトタイプについて

これまで、ファイル、画面、帳票、ワークの各フィールドについてご紹介してきました。 今回はプロトタイプです。これがASSGで扱うすべてのフィールドです。 ASSGでは共通サブルーチンのプログラム名やパラメータフィールドを、「プロトタイプ」で定義します…

帳票設定について

またまた昔話で恐縮ですが、印刷出力の定義は「O仕様書」のみでやっていました。外部定義が有ったのかは記憶にありませんが、とにかく「O仕様書」でした。この「O仕様書」がやっかいで、フィールドの桁指定は「終わりの位置」なんですね。 ReportProgramGene…

フィールドの挿入について

若い頃はRPGだけを使っていたので迷うことはなかったけど、色々な言語を使っていると、同様の命令コードを迷うことがあります。私が一番間違うのは[SELECT]命令です。[SELECT CASE]だったか[SELECT WHEN]だったか、しょっちゅう迷っていました。 ASSGを使…

データ定義について

ワークフィールドは気を抜くと乱雑になり、後で見たときにRPGコードが追えなくなることがあります。時々目にするスイッチ的なワークを多用したプログラムは、スパゲティコードと同様にバグの原因になりますね。 ASSGではワークフィールドはデータ定義タブ…

共通メモについて その2

仕事をしていると「メモ」って結構取りますよね。ノートに書いたり、何かの裏紙に書いたり。でも、後から見ようとすると探すのに苦労します。 また、マニュアルの同じページを何度も見て、「あ~、なんて物覚えが悪いんだオレ」って悲しくなります。それを解…

共通メモ機能について

二年程前から、C仕様書はFFで書くようになりました。 またファイルの読み書きはSQL文で書くようになりました。 理由は見やすいし、RPG未経験者でもなんとか読める、からです。 ただ困ったことに、命令コードを他の言語と間違えます。SEUだと文法…

画面フィールドのイベント2 検索

基幹システムの開発を始めた頃の話ですが・・・ 伝票入力は、紙の伝票に手書きして、得意先コードや商品コードを調べて記入してから端末に向かって入力していました。そもそも自分の机には端末など無い時代。一台の端末を共有していました。 今ではコード検…

AS400にログインできない!?

いつものようにASSGを起動して、AS400にログインすると、ダンマリ~ ログインではAS400のシステム製造番号QSRLNBRを取得するのにFTP使っているのですが、GETが動かない様子。ファイアウォールの受信の規則を見ると「ブロック」になってる。「許可」に変更し…

画面フィールドのイベント

入力画面を作る場合、一般的には「初期化」「検索」「入力チェック」が必要になります。そしてサブルーチンとして「画面1初期化サブ」「画面1検索サブ」「画面1入力チェックサブ」などを作ります。 ASSGでもRPGコードの生成結果としてこのようなサブルー…

プログラム開発を楽にしたい

画面設計が楽になると、さらに新しい要求が沸きあがりました。 「対話型プログラムはできないか?」 欲しい機能を考えました。 ・プログラムの全体像が把握しやすいこと ・画面のフィールド単位に「初期化」「検索」「入力チェック」を書けること ・必須チェ…

画面設計をもっと楽にしたい

画面は苦労の連続。項目配置に苦労しながら、紙の設計書に書いては消しの繰り返し。 VISIOやエクセルが使えるようになって少しは楽になったけど、結局SDAでいちから入力。 そんな苦労もASSGで解消できたけど、「もっと楽にしたい」と新たな要求が沸き起こり…

さようならSDA

AS400の前身、SYSTEM34でのRPGⅡが私のオフコン開発の始まりでした。 当時の開発環境も記憶が薄れていますが、紙の仕様書(H仕様書とかC仕様書などのカラムが印刷された紙)に鉛筆でコーディングし、端末に座ってパンチ。コンパイルリストを印刷して、机上デ…

ツール開発のきっかけ

本ツール(ASSGと命名しています)の開発は約2年前。 テストデータのメンテツールをEXCEL VBA で作成したのがASSGの始まりでした。 現在は「使用ファイル」の情報取得に引き継がれています。 次の画面はASSGのメインメニューです。 この情報はAS400よりDSPF…