progressokulu.com advanced business language slide 10

42

Upload: kaan-verdioglu

Post on 29-Jun-2015

239 views

Category:

Technology


2 download

DESCRIPTION

"ABL'e Giriş Eğitimi" nde kullandığımız 10. Bölüm sunumudur.

TRANSCRIPT

Page 1: progressokulu.com Advanced Business Language Slide 10
Page 2: progressokulu.com Advanced Business Language Slide 10

Bölüm 10 : Modüler Prosedürler Geliştirmek

Bu dersi tamamladığımız zaman şunları yapabileceksiniz;

• AppBuilder bileşenlerini açıklamak• AppBuilder’dan veritabanına bağlanmak• AppBuilder’dan prosedür açmak ve çalıştırmak• Yapısal prosedürler yaratmak• Modüler kodlamayı açıklamak• Dış prosedürler çağırmak• İç prosedürler oluşturmak ve çağırmak• Kullanıcı tanımlı fonksiyonlar yaratmak ve çağırmak• Kalıcı prosedürler yaratmak ve çağırmak• Bir uygulamayı derlemek

Page 3: progressokulu.com Advanced Business Language Slide 10

AppBuilder Araçları

Desktop

AppBuilder

Nesne paleti

AppBuilder simgesi

Page 4: progressokulu.com Advanced Business Language Slide 10

Bir Veritabanına Bağlanmak

Page 5: progressokulu.com Advanced Business Language Slide 10

AppBuilder’daki Dosyalarla Çalışmak

Yeni

Aç Kaydet Çalıştır

Dur

Page 6: progressokulu.com Advanced Business Language Slide 10

Dosya İsimlendirme Üslubu

DEFINE INPUT PARAMETER pcDeptCode AS CHARACTER NO-UNDO.DEFINE OUTPUT PARAMETER pcDepartment AS CHARACTER NO-UNDO.FIND Department NO-LOCK WHERE Department.DeptCode = pcDeptCode NO-ERROR.IF AVAILABLE(Department) THEN ASSIGN pcDepartment = Department.DeptName.

eEmpLib.p prosedüründeki iş mantığı

City.w grafiksel prosedürü içindeki GUI penceresi

Müşteri bilgisi

Müşteri No:İsim:Şehir:

Sipariş No:Teslim Tarihi:

Çıkışİptal

Dosya Raporlar Bul Yardım

Page 7: progressokulu.com Advanced Business Language Slide 10

Yapısal Prosedür Bölümleri

Definitions/*************************************/

Main Block/*************************************/

Internal Procedures/*************************************/

Functions/*************************************/

Page 8: progressokulu.com Advanced Business Language Slide 10

Yapısal Prosedurler Yaratmak

1. Procedures’i seç

2. Diğer seçimleri kaldır

3. Structured Procedures’i seç

Page 9: progressokulu.com Advanced Business Language Slide 10

Yapısal Prosedurler

Tree view

Section editor

Page 10: progressokulu.com Advanced Business Language Slide 10

AppBuilder’da Kod Önizlemesi

Page 11: progressokulu.com Advanced Business Language Slide 10

Section Editor’ü Kullanmak

1. Bir prosedür seç 2. Prosedürü düzenle

Page 12: progressokulu.com Advanced Business Language Slide 10

AppBuilder’da Bir Dosya Açmak

Bu dosya veritabanına erişiyor mu?

FIND Customer WHERE ...

Page 13: progressokulu.com Advanced Business Language Slide 10

Progress Advisor

Ne yapmak istersiniz?

Page 14: progressokulu.com Advanced Business Language Slide 10

Pencereler ve Diyalog Kutuları

Pencere

Diyalog kutusu

Kullanıcı hareketi gerekli

Opsiyonel menü

Minimize, Maksimize, Kapat

Kapat

Page 15: progressokulu.com Advanced Business Language Slide 10

Bir GUI Penceresi İçin Varsayılan Kod

Boş pencere

Boş pencere için Main

Block kodu

Page 16: progressokulu.com Advanced Business Language Slide 10

Uygulama 1 : AppBuilder’ı Keşfetmek

Page 17: progressokulu.com Advanced Business Language Slide 10

Modüler Kodlama

A Prosedürü

Main Block:Procedure: CalcVacationProcedure: GetEmpNameFunction: CalcAge

B prosedürü

Main Block:Procedure: GetCustBalanceProcedure: GetCustLimitProcedure: GetCustName

Application

Page 18: progressokulu.com Advanced Business Language Slide 10

İç Prosedur’leri Çalıştırmak

/***** Internal Procedures *******/RUN valDept (INPUT fiDeptCode, OUTPUT fiDeptName).<sonraki deyimler>

PROCEDURE valDept: <prosedür deyimleri>END PROCEDURE.

wDepartment.w

Page 19: progressokulu.com Advanced Business Language Slide 10

Bir Blok İçinde Varsayılan Hata Yönetimi

Çağıran prosedür

Çağrılan prosedür......RUN... ...... /****** Definitions ******/

INPUT parametre tanımlaması OUTPUT parametre tanımlaması

Input değeriOutput değeri

Page 20: progressokulu.com Advanced Business Language Slide 10

Parametre İsimlendirme Üslubu

Parametre tipi Önerilen önek Örnek

Character pc pcDeptCode

Date pdt pdtBirthDate

Integer pi piReturnCount

Decimal pd pdPrice

Logical pl plOK

ROWID pr prCustRow

Page 21: progressokulu.com Advanced Business Language Slide 10

Birden Çok Parametre Göndermek

Çağıran prosedür Çağrılan prosedür

/**** Procedure: valDept ****/INPUT parameter pcDeptCode

OUTPUT parameter pcDeptName

RUN valDept (INPUT fiDeptCode, OUTPUT fiDeptName)

Departman kodu (input)

Dönen departman adı (output)

Page 22: progressokulu.com Advanced Business Language Slide 10

Nasıl Çalışır?1. Departman kodu girilir

2. Butona basılır

3. Butonun olay prosedürü valDept prosedürünü çağırır

4. valDept prosedürü tarafından üretilen Departman Adı bilgisi görüntülenir

DO: ASSIGN fiDeptCode. RUN valDept (INPUT fiDeptCode, OUTPUT fiDeptName). DISPLAY fiDeptName WITH FRAME {&FRAME-NAME}.END.

Page 23: progressokulu.com Advanced Business Language Slide 10

Bir İç Prosedur’deki Yerel Tanımlamalar

Page 24: progressokulu.com Advanced Business Language Slide 10

Olay Kodu Eklemek

Buton arkasındaki olay kodu

Page 25: progressokulu.com Advanced Business Language Slide 10

Prosedur’lerin Aranma Sırası

1. İç prosedür mü?

Hayır?

2. PROPATH klasörlerini incele

RUN getCustRec.

Page 26: progressokulu.com Advanced Business Language Slide 10

Dış Prosedur Çağırmak

Çağırılan prosedür: valRep.p

Çağıran prosedür

. . .

. . .RUN valRep.p.<sonraki deyim>.. . . DO:

. . . . . . . . .END.

Page 27: progressokulu.com Advanced Business Language Slide 10

Modülerlik ve Yeniden Kullanılabilirlik

PROCEDURE getCustomerBalance: RUN getCustRec. . . .PROCEDURE getCustLimit: RUN getCustRec. . . .PROCEDURE getCustName: RUN getCustRec.

PROCEDURE getCustRec: (Prosedür deyimleri).END PROCEDURE.

Page 28: progressokulu.com Advanced Business Language Slide 10

Fonksiyonların Yeniden Kullanımı

Hacim ve yüzey alanlarıyükseklik ve açıya ihtiyaç duyar

Page 29: progressokulu.com Advanced Business Language Slide 10

Bu Fonksiyonu Ne Zaman Kullanırız?

Function YearsOld Function YearsEmployed

Page 30: progressokulu.com Advanced Business Language Slide 10

Yeni Bir Fonksiyon Tanımlamak

Fonksiyon adı

Dönüş tipi

Page 31: progressokulu.com Advanced Business Language Slide 10

Yeni Bir Fonksiyon Yaratmak

Parametreleri buraya girin

Dönüş değerini de buraya

Page 32: progressokulu.com Advanced Business Language Slide 10

Fonksiyon Çağırmak

1. Kaydı seçin

2. Browse’daki kaydın değeri şu anda değişti

3. Fonksiyonu çağırın

Page 33: progressokulu.com Advanced Business Language Slide 10

Uygulama 2 : Parametreler ve Fonksiyonlar

Page 34: progressokulu.com Advanced Business Language Slide 10

Belleğe Yerleşen Kütüphane Modülü

/* eEmpLibrary.p */Procedure calcVacation:......Procedure setVacation:......

Page 35: progressokulu.com Advanced Business Language Slide 10

Kalıcı Prosedur’ler Yaratmak

DEFINE VARIABLE hEmpLib AS HANDLE NO-UNDO.

RUN eEmpLibrary.p PERSISTENT SET hEmplib.

eEmpLibrary.p

Page 36: progressokulu.com Advanced Business Language Slide 10

Bir İç Prosedur’ü Çağırmak

hEmpLib

RUN calcVacation IN hEmpLib (INPUT Employee.EmpNum, INPUT fiStart, INPUT fiEnd, OUTPUT logOK).

calcVacation

Page 37: progressokulu.com Advanced Business Language Slide 10

Bir Kalıcı Prosedur’ü Bellekten Silmek

DELETE PROCEDURE hEmpLib

eEmpLibrary.p

Page 38: progressokulu.com Advanced Business Language Slide 10

Uygulama 3 : Kalıcı Prosedur’ler

Page 39: progressokulu.com Advanced Business Language Slide 10

Uygulamayı Derlemek

Page 40: progressokulu.com Advanced Business Language Slide 10

Uygulama 4: Uygulamayı Derlemek

Page 41: progressokulu.com Advanced Business Language Slide 10
Page 42: progressokulu.com Advanced Business Language Slide 10