1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Genexus備忘録(操作編)

Last updated at Posted at 2018-10-09

Genexusとは

仕事で使うことになったので備忘録。
https://www.genexus.com/ja-JP/japan
Javaだけかなと思ってたらC#とかRubyとかCOBOLとかRPGも対応してるみたい。
RPGは使ったことないけど、ニッチなとこサポートしてるんだなぁ。

Genexus Wiki

※量が増えてスクロールが面倒になったので記事を分割した。
実装編

ナレッジベース

Projectの事。

オブジェクト

4オブジェクトを使えばとりあえずアプリ作れそう。

  • WebPanel
  • SDT
  • Transaction
  • Procedure

WebPanel

.NetのForm的なもの。
ツールボックスから要素を配置できる。
イベント周りのロジックはここで記載する

SDT

Cの構造体。データ構造のみ表現できて、メソッドとかは持たない。
=Struct,≠Class
ロジックはProcedureに持たせる

Transaction

DBModelみたいなもの

Procedure

業務ロジックとかソースコード、ライブラリ系はこれを使う

オブジェクト検索

クイックアクセス横の三角ボタンに検索窓が隠蔽されている。
image.png

帳票

Procedureで定義する。
作ったレイアウトを、呼び出し元からCallするイメージ。

1:Procedureを作成
2:Procedure本体のプロパティ変更
→Call ProtocolをHTTPに設定する
※Procedureを編集しているタブ名を右クリックするとプロパティ表示できる。
image.png
3:「Layout」タブで帳票定義を設定する
image.png

ツールボックスから項目を置いていく。
残念ながら複数項目を一気に配置したりできないので、地道にレイアウトする。
線はプロパティから縦横変更可能。
また、格子状に箱を作りたい場合は、長方形+線で頑張るしかない。
横に項目を並べたい場合は、標準機能では何ともならないので、工夫が必要。

4:「Source」タブで作ったPrintBlock名を指定して出力する
For Eachで回しているデータと対応していれば、うまいことbindしてくれる。

For Each orders
  print printBlock1

  For Each orders.detail
     print printBlock2
  EndFor

  print printBlock3
End For

改ページはこの命令。

Eject

SDTも指定できるが、Collection型にしたものを画面項目として設定してもうまくいかない。
帳票Layoutには単体のSDTの項目を定義する。

Transaction

1:「ファイル」「新規」「オブジェクト」「共通」Transactionを選択
2:「Structure」タブで項目定義する
・主キーに設定しとくと、同一項目を他Transactionに定義したときに
 自動で外部キーとして処理してくれる。
※逆に、whoカラムみたいな項目の名前が一緒だと、外部キー扱いされる
 悲しみを背負っているので、テーブルごとに別の名前にする必要がある。
・名称項目属性に設定しとくと、Genexusが自動生成してくれるマスメン画面で
 ポップアップlistから選択できる項目になる。(業務では使わんかも?)
・Numericの桁数指定は以下の通り。

Numeric(6.2)->100.00
Numeric(全体桁数.小数部)
※全体桁数には.を含むので注意。

3:実行してみる(F5)
「Web Form」タブを見ると、自動でいい感じのマスメン画面を作ってくれてる。
image.png

虫眼鏡を押すとこんな感じの選択ウィンドウが出てくる。
Transaction定義で設定した「名称項目属性」に下線が出て、選択できるようになる。
image.png

複雑なTransaction

image.png

「レベルを挿入」でデータ構造をネストしたりできる。
式を入力して、自動計算させる事も可能。

なお、ネストした項目でソートする際は以下構文で実施。


// NG(エラーにはならないがソートされない)
&t_order.Sort('amount')

// OK
&t_order.Sort('list.amount')

ほか

続きは随時追記していく方式で。

そのうち書く
・freestyleGrid
・WorkWithPlus

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?