• Tidak ada hasil yang ditemukan

L - 1 LAMPIRAN. Spefikasi Proses Builder

N/A
N/A
Protected

Academic year: 2021

Membagikan "L - 1 LAMPIRAN. Spefikasi Proses Builder"

Copied!
19
0
0

Teks penuh

(1)

LAMPIRAN

Spefikasi Proses Builder

Proses membuka, membuat baru, dan menutup database

Module TMainForm.MenuOpenClick Begin

Jalankan OpEndialog1 Jika Memilih File Begin

Buka GlobalModule.DatabaseConnection Berdasarkan OpEndialog1.FileName Aktifkan Menu Close

Aktifkan Menu Category Aktifkan Menu Statement Aktifkan Menu Rules NonAktifkan Menu Open NonAktifkan Menu New End

End

Module TMainForm.MenuCloseClick Begin

NonAktifkan Menu Close NonAktifkan Menu Category NonAktifkan Menu Statement NonAktifkan Menu Rules Aktifkan Menu Open Aktifkan Menu New

Hilangkan item FrmViewCategory.TreeViewStatementList Hilangkan item FrmViewCategory.TreeViewStatementTree Hilangkan Form FrmEditorRules

Hilangkan Form FrmEditorInput Close DatabaseConnection End

Module TMainForm.MenuOpenClick Begin

Jika Jalankan SaveDialog1 = True maka Begin

Copy dan rename file Database yang kosong disiapkan ke SaveDialog1.Filename

Buka GlobalModule.DatabaseConnection Berdasarkan OpEndialog1.FileName Aktifkan Menu Close

Aktifkan Menu Category Aktifkan Menu Statement Aktifkan Menu Rules NonAktifkan Menu Open NonAktifkan Menu New End

End

Proses aktifasi viewer

Module TGlobalModule.DatabaseConnectionAfterConnect Begin

Open FrmViewCategory.ADODataSetCategory, Query ambil kategori pada Viewer Aktifkan Menu NewCategory pada MainForm

(2)

Module TFrmViewCategory.ADODataSetCategoryAfterConnect Begin

Jika State ADODataSetCategory = browse dan FlagAddEdit = False maka Begin

Jika FrmEditorRules Ada maka Hilangkan FrmEditorRules

Jika FrmEditorInput <> nil maka Hilangkan FrmEditorInput

Buat item TreeViewStatementList tidak ada yang dipilih Buat item TreeViewStatementTree tidak ada yang dipilih Panggil Module CreateStatement

Panggil Module CreateStatementTree

Jika ADODataSetCategory tidak kosong maka Begin

Aktifkan Menu NewStatement pada MainForm

Aktifkan Menu NewFromTemplate pada MainForm End

End End

Module TFrmViewCategory.DataSourceADODataSetCategoryChange Begin

Jika ADODataSetCategory tidak kosong maka Begin

Jika ADODataSetCategory['IdCategory']='Template' maka

Begin

NonAktifkan Menu EditCategory pada MainForm NonAktifkan Menu DeleteCategory pada MainForm

End

Jika Tidak

Begin

Aktifkan Menu EditCategory pada MainForm Aktifkan Menu DeleteCategory pada MainForm

End

End End

Membuat viewer list statement dan prosess tree

Module TFrmViewCategory.CreateStatement Module Variabel

i,j : integer TT,TR : TtreeNode Begin

Hilangkan Item TreeViewStatementList Jika ADODataSetCategory kosong Maka

Keluar Module

Buka query ADODataSetStatement, query Statement Buka query ADODataSetRules, query Rules

Pergi ke Item ADODataSetStatement pertama

Lakukan perulangan dari i =1 sampai ADODataSetStatement.RecordCount Begin

TT = Tambah item pada TreeViewStatementList ADODataSetStatement ['IdStatement'] Children dari root

(3)

Pergi ke Item pertama ADODataSetRules

TT.StateIndex =1, beri gambar icon statement

Lakukan perulangan dari j = 1 sampai ADODataSetRules.RecordCount Begin

TR = Tambah item pada TreeViewStatementList ADODataSetRules['IdRules']Children dari TT TR.StateIndex = 2, beri gambar icon Rules TT.Expanded = true

Pergi ke Item ADODataSetRules berikutnya End

Pergi ke Item ADODataSetStatement berikutnya End

Buat item TreeViewStatementList tidak ada yang dipilih End Module TFrmViewCategory.CreateStatementTree Module Variabel DS_Statement : TADODataSet i : integer TT: TtreeNode Begin

Hilangkan Item TreeViewStatementTree Jika ADODataSetCategory kosong Maka

Keluar Module Create DS_Statement

set koneksi database DS_Statement

DS_Statement query = 'Select * from Statement where IdCategory = ''' + ADODataSetCategory['IdCategory'] + ''' dan type = true'

Buka query DS_Statement

Lakukan perulangan dari j = 1 sampai DS_Statement.RecordCount Begin

TT = Tambah item pada TreeViewStatementTree DS_Statement['IdStatement'] Children dari root

TT.StateIndex =1, beri gambar icon statement TT.Expanded =true

Pangil Module CreateStatementTreeNode(TT) Pergi ke item DS_Statement berikutnya End

tutup query dan bebaskan object DS_Statement

Buat item TreeViewStatementTree tidak ada yang dipilih End Module TFrmViewCategory.CreateStatementTreeNode Variable Module DS_Rules,DS_statement : TADODataSet i,j : integer TR,TTT,TS: TTreeNode StatementStr,categoryStr : string Begin Create DS_Rules

DS_Rules set koneksi database DS_Rules

DS_Rules query = 'Select * from Rules where IdCategory = ''' +

ADODataSetCategory['IdCategory'] + ''' dan IdStatement = '''+TT.Text+''' order by IdRules'

Buka query DS_Rules

Lakukan perulangan dari i = 1 sampai DS_Rules.RecordCount Begin

TR = Tambah item pada TreeViewStatementTree DS_Statement['IdStatement'] Children dari TT

TT.StateIndex = 2 //beri gambar icon Rules Create DS_statement

DS_statement.Connection = GlobalModule.DataBaseAdoConn(set konesi database)

(4)

ADODataSetCategory['IdCategory'] + ''' dan IdStatement = '''+TT.Text+''' dan IdRules ='''+DS_Rules['IdRules']+''' dan link=true dan Value<>'''' Order by Value'

Buka query DS_statement

Lakukan perulangan dari i = 1 DS_statement.RecordCount Begin

Panggil Module GlobalModule.SplitCategoryStatement (DS_statement['Value'], categoryStr, StatementStr) Jika categoryStr = ADODataSetCategory['IdCategory'] maka Begin

TTT = TT Repeat

Jika TTT.Text = StatementStr maka Begin

TS = Tambah item pada TreeViewStatementTree DS_Statement ['IdStatement'] Children dari TR

TS.StateIndex = 3 //beri gambar icon Statement recursive TR.Expanded=true

Keluar dari looping End

TTT=TTT.Parent Jika TTT=nil maka Begin

TS= Tambah item pada TreeViewStatementTree DS_Statement ['IdStatement'] Children dari TR

TS.StateIndex=1(beri gambar icon Statement)

Panggil Module CreateStatementTreeNode(TS) //Recursive TR.Expanded=true

Keluar dari perulangan End Jika tidak TTT=TTT.Parent Until(TTT=nil) End Jika tidak Begin

TS = Tambah item pada TreeViewStatementTree DS_Statement ['IdStatement'] Children dari TR

TS.StateIndex=4 //beri gambar icon ke kategori lain End

ke itemDS_statement berikutnya End

tutup query DS_statement

bebaskan dari memory DS_statement ke item DS_Rules berikutnya End

tutup query DS_Rules bebaskan memory DS_Rules TT.Expanded=true

End

Membuat, mengedit, menghapus category

Module TMainform.MenuNewCategoryClick Begin

Try //Error Handler

FrmViewCategory.FlagAddEdit = true FrmCategory.FlagSave = False

tambah item pada ADODataSetCategory tampilkan Form kategory

jika frmCategory.FlagSave maka Begin

(5)

Pangil Module FrmViewCategory.CreateStatementTree jika FrmEditorRules <> nil maka

Begin

Bebaskan Form editor Rules FrmEditorRules = nil End

jika FrmEditorInput <> nil maka Begin

Bebaskan Form editor Input FrmEditorInput = nil End

NonAktifkan Menu RulesNew NonAktifkan Menu RulesDelete NonAktifkan DeleteState NonAktifkan SavetoTemplate End FrmViewCategory.FlagAddEdit = false except End End Module TMainForm.MenuEditCategoryClick Module Variabel OldCategoryId:string Begin OldCategoryId = FrmViewCategory.ADODataSetCategory['IdCategory'] FrmViewCategory.FlagAddEdit = true FrmCategory.FlagSave = False Edit item ADODataSetCategory Tampilkan Form Category

FrmViewCategory.FlagAddEdit = false

Jika (FrmEditorRules <> nil) dan (frmCategory.FlagSave) maka Begin

FrmEditorRules.CategoryId=FrmViewCategory.ADODataSetCategory['IdCategory'] Pangil Module GlobalModule.editStatement(OldCategoryId

+'.',FrmEditorRules.CategoryId+'.')

Pangil Module GlobalModule.editInput('<%'+OldCategoryId +'.' ,'<%'+FrmEditorRules.CategoryId+'.')

Panggil Module FrmEditorRules.PanelCanvasEnter( FrmEditorRules.Controllmove )

End

jika (FrmEditorInput <> nil) dan (frmCategory.FlagSave) maka Begin

FrmEditorInput.CategoryId=FrmViewCategory.ADODataSetCategory['IdCategory'] Pangil Module GlobalModule.editStatement(OldCategoryId +'.',

FrmEditorInput.CategoryId+'.')

Pangil Module GlobalModule.editInput('<%'+OldCategoryId +'.' , '<%' + FrmEditorInput.CategoryId + '.' )

Pangil Module FrmEditorInput.updateInputText('<%'+OldCategoryId +'.' , '<%' + FrmEditorInput.CategoryId +'.',True)

End End

Module TMainForm.MenuCategoryDeleteClick Begin

Jika Konfirmasi Delete categoryMessageDlg = Yes maka Begin

jika FrmEditorRules <> nil maka Begin

Bebaskan Form editor Rules FrmEditorRules = nil End

(6)

jika FrmEditorInput <> nil maka Begin

Bebaskan Form editor Input FrmEditorInput = nil End

jika FrmViewCategory.ADODataSetCategory['IdCategory']<>'Template' maka FrmViewCategory.ADODataSetCategory.Delete

Jika tidak

Tampilkan Pesan('can''t not delete category template') End

End

Membuat, menghapus statement

Module untuk menyesuaikan perubahan input

Module TGlobalModule.editInput(IdOld,IdNew:string) menurut perubahan statement/category Variabel Module DSInput :TADODataSet i : integer temp : string Begin create DSInput

Set koneksi database DSInput

DSInput query = 'select * from [input] where [Default value] like ''%'+IdOld+'%'' atau [text] like ''%'+IdOld+'%'''

Buka query DSInput

lakukan perulangan i= 1 sampai DSInput.RecordCount Begin

edit input DSInput

jika DSInput['Default value']<> Null maka

DSInput['Default value'] = StringReplace(DSInput['Default value'],IdOld,IdNew,[rfReplaceAll,rfIgnoreCase] )

jika DSInput['text']<> Null maka

Ubah DSInput['text'] = StringReplace( DSInput['text'], IdOld, IdNew, [rfReplaceAll, rfIgnoreCase] )

save perubahan DSInput

pergi ke item DSInput selanjutnya End

tutup query DSInput

bebaskan dari DSInput memory End

Module untuk menyesuaikan perubahan Rules menurut perubahan statement/category

Module TGlobalModule.editStatement(IdOld,IdNew:string) Variabel Module DSDetRul :TADODataSet i:integer Begin Create DSDetRul

set koneksi database DSDetRul

DSDetRul query = 'select * from DetilRules where Link = true dan [Value] like ''%'+IdOld+'%'''

Buka query DSDetRul

lakukan perulangan i = 1 sampai DSDetRul.RecordCount Begin

Edit itemDSDetRul

DSDetRul['value']=StringReplace(DSDetRul['value'],IdOld,IdNew,[rfReplaceAll,r fIgnoreCase] )

save perubahan DSDetRul

Pergi ke itemDSDetRul berikutnya End

(7)

Bebaskan dari DSDetRul memory End Module TMainForm.MenuCreateStatementBlankClick var i,x:integer Begin

Refresh query FrmStatement.ADODataSet1 Tambah item pada FrmStatement.ADODataSet1

FrmStatement.Flag=false

FrmStatement.ADODataSet1['IdCategory']=FrmViewCategory.ADODataSetCategory['Id Category']

FrmStatement.ADODataSet1['type']=false Tampilkan form Statement

jika FrmStatement.Flag maka Begin

jika FrmEditorInput <> nil maka Begin

Bebaskan Form Editor Input dari memory FrmEditorInput=nil

End

jika FrmEditorRules <> nil maka Begin

Bebaskan Form Editor Rules dari memory FrmEditorRules=nil

End

Buat item FrmViewCategory.TreeViewStatementList tidak dipilih Buat itemFrmViewCategory.TreeViewStatementTree tidak dipilih Panggil Module FrmViewCategory.CreateStatement

Panggil Module FrmViewCategory.CreateStatementTree

Lakukan perulangan i = 0 sampai frmViewCategory.TreeViewStatementList. Items.Count -1

Begin

jika FrmViewCategory.TreeViewStatementList.items[i].Level = 0 maka jika FrmViewCategory.TreeViewStatementList.items[i].Text =

FrmStatement.ADODataSet1 ['IdStatement'] maka FrmViewCategory.TreeViewStatementList.Selected = FrmViewCategory.TreeViewStatementList.items[i] End End End Module TMainForm.MenuNewFromTemplateClick var i:integer Begin

Refresh query FrmStatement.ADODataSet1 Tambah item pada FrmStatement.ADODataSet1 Tampikan Form Template

FrmStatement.Flag=false

FrmStatement.ADODataSet1['IdCategory']=FrmViewCategory.ADODataSetCategory['IdCat egory']

FrmStatement.ADODataSet1['type']=false Tampilkan form Statement

jika FrmStatement.Flag maka Begin

jika FrmEditorInput <> nil maka Begin

Bebaskan Form Editor Input dari memory FrmEditorInput=nil

End

(8)

Begin

Bebaskan Form Editor Rules dari memory FrmEditorRules=nil

End

Pangil Module GlobalModule.CopyState ('Template', FrmTemplate.ADODataSet1 ['Idstatement'],FrmViewCategory.ADODataSetCategory['IdCategory'], FrmStatement.ADODataSet1['IdStatement']) FrmViewCategory.TreeViewStatementList.Selected=nil FrmViewCategory.TreeViewStatementTree.Selected=nil FrmViewCategory.CreateStatement FrmViewCategory.CreateStatementTree

Lakukan perulangan i = 0 sampai frmViewCategory.TreeViewStatementList. Items.Count -1

Begin

jika FrmViewCategory.TreeViewStatementList.items[i].Level = 0 maka jika FrmViewCategory.TreeViewStatementList.items[i].Text = FrmStatement.ADODataSet1 ['IdStatement'] maka

FrmViewCategory.TreeViewStatementList.Selected = FrmViewCategory.TreeViewStatementList.items[i] End End End Module TGlobalModule.CopyState(IdCatTemplt,IdStateTemplt,Idcat,IdState:string) variabel Module i,j:integer Begin

Tutup query DatasetStateTempllt Tutup query DatasetState

DatasetStateTempllt query = 'select * from Statement where idCategory = '''+IdCatTemplt+''' dan Idstatement ='''+IdStateTemplt+''''

DatasetState query = 'select * from Statement where idCategory = '''+IdCat+''' dan Idstatement ='''+IdState +''''

Buka query DatasetStateTempllt Buka query DatasetState

Buka query DataSetInputTemplt Buka query DataSetInput Edit item DatasetState

DatasetState['BackGroundColor']=DatasetStateTempllt['BackGroundColor'] Update perubahan pada DatasetState

Lakukan perulangan i=1 to DataSetInputTemplt.RecordCount do Begin

Tambah item pada DataSetInput DataSetInput['IdCategory']=Idcat DataSetInput['IdStatement']=IdState DataSetInput['IdInput']=DataSetInputTemplt['IdInput'] DataSetInput['TypeInput']=DataSetInputTemplt['TypeInput'] DataSetInput['Text']=DataSetInputTemplt['Text'] DataSetInput['FontName']=DataSetInputTemplt['FontName'] DataSetInput['FontColor']=DataSetInputTemplt['FontColor'] DataSetInput['FontSize']=DataSetInputTemplt['FontSize'] DataSetInput['FontBold']=DataSetInputTemplt['FontBold'] DataSetInput['FontItalic']=DataSetInputTemplt['FontItalic'] DataSetInput['FontUnderline']=DataSetInputTemplt['FontUnderline'] DataSetInput['FontStrikeThrough']=DataSetInputTemplt['FontStrikeThrough'] DataSetInput['BackGroundColor']=DataSetInputTemplt['BackGroundColor'] DataSetInput['Stretch']=DataSetInputTemplt['Stretch'] DataSetInput['Left']=DataSetInputTemplt['Left'] DataSetInput['Top']=DataSetInputTemplt['Top'] DataSetInput['Width']=DataSetInputTemplt['Width'] DataSetInput['Height']=DataSetInputTemplt['Height'] DataSetInput['Parent']=DataSetInputTemplt['Parent'] DataSetInput['TypeEdit']=DataSetInputTemplt['TypeEdit'] DataSetInput['BrowseText']=DataSetInputTemplt['BrowseText']

(9)

DataSetInput['Default Value']=DataSetInputTemplt['Default Value'] Update perubahan pada DataSetInput

Pergi ke item DataSetInputTemplt berikutnya End

Tutup query DataSetInputTemplt Tutup query DataSetInput Buka query DatasetRulesTemplt Buka query DatasetRules

Buka query DatasetDetRulTempllt Buka query DatasetDetRul

Lakukan perulangan i =1 to DatasetRulesTemplt.RecordCount do Begin

Tambah item pada DatasetRules DatasetRules['IdCategory']=Idcat DatasetRules['IdStatement']=IdState

DatasetRules['IdRules']=DatasetRulesTemplt['IdRules'] Update perubahan pada DatasetRules

lakukan perulangan j=1 to DatasetDetRulTempllt.RecordCount do Begin DatasetDetRul.AppEnd DatasetDetRul['IdCategory']=Idcat DatasetDetRul['IdStatement']=IdState DatasetDetRul['IdRules']=DatasetRulesTemplt['IdRules'] DatasetDetRul['Value']=DatasetDetRulTempllt['Value'] DatasetDetRul['Comparision']=DatasetDetRulTempllt['Comparision'] DatasetDetRul['IdInput']=DatasetDetRulTempllt['IdInput'] DatasetDetRul['Parent']=DatasetDetRulTempllt['Parent'] DatasetDetRul['Link']=DatasetDetRulTempllt['Link'] Update perubahan pada DatasetDetRul

Pergi ke item DatasetDetRulTempllt berikutnya End

Pergi ke item DatasetRulesTemplt berikutnya End

Tutup query DatasetDetRulTempllt Tutup query DatasetDetRul

Tutup query DatasetRulesTemplt Tutup query DatasetRules

Tutup query DatasetStateTempllt Tutup query DatasetState

End Module TMainForm.DeleteStateClick Variabel Module statementId : string CategoryId:string DSComm : TADOCommand Begin

jika FrmEditorInput <> nil maka Begin

Jika Konfirmasi Delete Statement = Yes maka Begin

statementId = FrmEditorInput.StatementId CategoryId = FrmEditorInput.CategoryId Bebaskan Form Editor Input dari memory FrmEditorInput=nil

Buat Item FrmViewCategory.TreeViewStatementList tidak terpilih Buat Item FrmViewCategory.TreeViewStatementTree tidak terpilih Create DSComm

Setting koneksi database DSComm

DSComm query = 'delete from Statement where IdCategory ='''+CategoryId +''' dan IdStatement ='''+StatementId+''''

Execute query command DSComm Bebaskan memory DSComm

(10)

Pangil Module FrmViewCategory.CreateStatement Pangil Module FrmViewCategory.CreateStatementTree End

End End

Module TMainForm.SavetoTemplateClick Begin

Jika FrmEditorInput <>nil maka Begin

FrmStatement.Flag=false

Refresh query FrmStatement.ADODataSet1 Tambah item pada FrmStatement.ADODataSet1

FrmStatement.ADODataSet1['IdCategory']='Template' FrmStatement.ADODataSet1['type']=false

Tampilkan Form Statement jika FrmStatement.Flag maka Begin

GlobalModule.CopyState(FrmEditorInput.CategoryId,FrmEditorInput.StatementId ,'Template',FrmStatement.ADODataSet1['IdStatement'] )

Tampilkan Pesan('Template has been save') End

End End

Membuat, menghapus Rules

Module TMainForm.RulesNewClick Variabel Module

i,j : integer Begin

Jika (FrmEditorInput <> nil) atau (FrmEditorRules <> nil) maka Begin

Refresh query FrmAddRules.ADODataSet1.Close Tambah item pada FrmAddRules.ADODataSet1 FrmAddRules.Flag=false

jika FrmEditorRules <> nil maka Begin

FrmAddRules.ADODataSet1['IdCategory']=FrmEditorRules.CategoryId FrmAddRules.ADODataSet1['IdStatement']=FrmEditorRules.StatementId End

jika FrmEditorInput <> nil maka Begin

FrmAddRules.ADODataSet1['IdCategory']=FrmEditorInput.CategoryId FrmAddRules.ADODataSet1['IdStatement']=FrmEditorInput.StatementId End

Tampilkan Form AddRules jika FrmAddRules.Flag maka Begin

jika FrmEditorInput <>nil maka Begin

Bebaskan Form EditorInput dari memory FrmEditorInput=nil

End

jika FrmEditorRules <>nil maka Begin

Bebaskan Form EditorRules dari memory FrmEditorRules=nil

End

Buat item FrmViewCategory.TreeViewStatementList tidak ada yang dipilih

(11)

dipilih

Panggil Module FrmViewCategory.CreateStatement Panggil Module FrmViewCategory.CreateStatementTree

Lakukan perulangan i = 0 to FrmViewCategory.TreeViewStatementList.Items. Count-1 do

Begin

jika FrmViewCategory.TreeViewStatementList.items[i].Level = 0 maka jika FrmViewCategory.TreeViewStatementList.items[i].Text =

FrmAddRules.ADODataSet1['IdStatement'] maka Begin

Lakukan perulangan j=0 to FrmViewCategory.TreeViewStatementList. Items[i].Count -1 do jika FrmViewCategory.TreeViewStatementList.items[i].item[j].Text = FrmAddRules.ADODataSet1['IdRules'] maka FrmViewCategory.TreeViewStatementList.Selected = FrmViewCategory.TreeViewStatementList.items[i].Item[j] End End End End End Module TMainForm.RulesDeleteClick Variabel Module statementId,CategoryId,RulesId : string DSComm : TADOCommand Begin

Jika FrmEditorRules <> nil maka Begin

Jika Konfirmasi Delete Rules = Yes maka Begin

statementId = FrmEditorRules.StatementId CategoryId = FrmEditorRules.CategoryId RulesId = FrmEditorRules.RulesId Bebaskan Form EditorRules dari memory FrmEditorRules=nil

Buat item FrmViewCategory.TreeViewStatementList tidak dipilih Buat item FrmViewCategory.TreeViewStatementTree tidak dipilih CreateDSComm

Setting koneksi database DSComm

DSComm query = 'delete from Rules where IdCategory ='''+CategoryId +''' dan IdStatement ='''+StatementId+''' dan IdRules ='''+RulesId+''''

Jalankan query command DSComm

DSComm query = 'delete from DetilRules where IdCategory ='''+CategoryId +''' dan IdStatement ='''+StatementId+''' dan IdRules ='''+RulesId+'''' Jalankan query DSComm

Bebaskan DSComm dari memory

Jalankan Module FrmViewCategory.CreateStatement Jalankan Module FrmViewCategory.CreateStatementTree End

End End

Memilih item(rules/statement) pada viewer list statement atau proses tree untuk di edit pada editor

Module TFrmViewCategory.TreeViewStatementListChange(Node: TTreeNode) Begin

(12)

Jika Node <> nil maka Begin

SelTreeview = TreeViewStatementList

Buat item TreeViewStatementTree tidak dipilih jika TreeViewStatementList ada yang dipilih maka pangil Module IDEEdit1Click(self)

End

Jika FrmEditorInput <>nil maka Begin

Aktifkan menu New Rules pada main form

Aktifkan menu Delete Statement pada main form

Jika ADODataSetCategory['Idcategory']<> 'Template' maka Aktifkan menu SavetoTemplate pada main form

Jika tidak

NonAktifkan menu SavetoTemplate pada main form End

Jika tidak

Non Aktifkan menu Delete Statement pada main form Jika FrmEditorRules <> nil maka

Begin

Aktifkan menu New Rules pada main form Aktifkan menu Delete Rules pada main form End

Jika tidak

NonAktifkan menu Delete Rules pada main form

Jika (FrmEditorRules = nil) dan (FrmEditorInput=nil) maka Begin

NonAktifkan menu New Rules pada main form End

End

Module TFrmViewCategory.TreeViewStatementTreeChange( Node: TTreeNode) Begin

Jika Node <> nil maka Begin

SelTreeview= TreeViewStatementTree

Buat item TreeViewStatementList tidak dipilih

Jika jika item TreeViewStatementTree ada yang dipilih maka IDEEdit1Click(self)

End

Jika FrmEditorInput <>nil maka Begin

Aktifkan menu New Rules pada main form

Aktifkan menu Delete Statement pada main form

Jika ADODataSetCategory['Idcategory']<> 'Template' maka Aktifkan menu SavetoTemplate pada main form

Jika tidak

NonAktifkan menu SavetoTemplate pada main form End

Jika tidak

Non Aktifkan menu Delete Statement pada main form Jika FrmEditorRules <> nil maka

Begin

Aktifkan menu New Rules pada main form Aktifkan menu Delete Rules pada main form End

Jika tidak

NonAktifkan menu Delete Rules pada main form

Jika (FrmEditorRules = nil) dan (FrmEditorInput=nil) maka Begin

NonAktifkan menu New Rules pada main form End

(13)

Module TFrmViewCategory.IDEEdit1Click Variabel Module

Node : TTreeNode Begin

Jika (item TreeViewStatementList tidak ada yang dipilih) dan (Jika item TreeViewStatementList tidak ada yang dipilih) maka

Keluar module

Jika SelTreeview = TreeViewStatementList maka Begin

Jika item TreeViewStatementList tidak ada yang dipilih maka Keluar module

node = TreeViewStatementList.Selected End

Jika tidak Begin

Jika Item TreeViewStatementTree tidak ada yang dipilih maka Keluar module

node = TreeViewStatementTree.Selected End

Jika FrmEditorRules <> nil maka Begin

Bebaskan Form EditorRules dari memory FrmEditorRules = nil

End

Jika FrmEditorInput <> nil maka Begin

Bebaskan FormEditorInput dari memory FrmEditorInput=nil

End

Jika (Node.StateIndex = 1) atau (Node.StateIndex = 3) maka Begin

Create FrmEditorInput

FrmEditorInput.StatementId = Node.Text FrmEditorInput.CategoryId = DBEdit1.Text

Panggil Module FrmEditorInput.InitiateStatement

Panggil Module FrmEditorInput.CreateInput(FrmEditorInput.PanelCanvas,'') FrmEditorInput.Controllmove = FrmEditorInput.PanelCanvas FrmEditorInput.ShowProperty FrmEditorInput.FormStyle = fsMDIChild FrmEditorInput.left = Self.Width FrmEditorInput.Top=0 FrmEditorInput.Width =800 FrmEditorInput.Height =663 FrmEditorInput.Visible=true MainForm.DeleteState.Enabled=true End Jika tidak Begin

Jika Node.StateIndex = 2 maka Begin

Create FrmEditorRules

FrmEditorRules.StatementId = Node.Parent.Text FrmEditorRules.RulesId= Node.Text

FrmEditorRules.CategoryId = DBEdit1.Text

Panggil Module FrmEditorRules.InitiateStatement

Panggil Module FrmEditorRules.CreateInput(FrmEditorRules.PanelCanvas,'') FrmEditorRules.FormStyle = fsMDIChild FrmEditorRules.left = Self.Width FrmEditorRules.Top=0 FrmEditorRules.Width =800 FrmEditorRules.Height =663 FrmEditorRules.Visible=true

(14)

End End End

Membuat Editor Input dan Editor Rules

Module TFrmEditorInput.CreateInput (Vparent:TWinControlIdinput:string) Variable Module RS,DSUserArchive:TADODataSet i: integer value:string begin Create query RS Setting koneksi RS

Query RS = 'Select * from [Input] Where Parent = '''+Idinput+''' and IDStatement = '''+StatementId+''' and IDCategory = '''+CategoryId+'''' Buka query

Ciptakan komponen berdasarkan RS['TypeInput'] Jika RS['TypeInput']=1 maka

Begin

Panggil Module CreateInput(Groupbox yang diciptakan, RS[IdInput]) End

End

Module TFrmEditorRules.CreateInput (Vparent:TWinControlIdinput:string) Variable Module RS,DSUserArchive:TADODataSet i: integer value:string begin Create query RS Setting koneksi RS

Query RS = 'Select * from [Input] Where Parent = '''+Idinput+''' and IDStatement = '''+StatementId+''' and IDCategory = '''+CategoryId+'''' Buka query

Ciptakan komponen berdasarkan RS['TypeInput'] Jika RS['TypeInput']=1 maka

Begin

Panggil Module CreateInput(Groupbox yang diciptakan, RS[IdInput]) End

End

Spesifikasi Proses Client

User login Module TForm1.btnLoginClick Variabl module str1,str2:Variant Begin str1 = Edit1.Text str2 =Edit2.Text if str2 = '' then str2 = Null

Jika cari item ADODataSet1 'IdUser’= str1 dan Password =’str2’ ada maka Begin

FrmInput.UserId = Edit1.text

Tampilkan Form pilih kategory dan start point End

Else Begin

(15)

ShowMessage('Invalid UserId / Password ') End

End

Memilih kategory(topik) dan start topik

Category query = select * from Category where idcategory<>'Template' Start Topic query = select IdStatement, Keterangan from Statement where

IdCategory = :IdCategory and Type=true // detil dari Master(category query) Module TForm2.ButtonSimulasiClick

Begin

Tampilkan Form simulasi client End

Simulasi input

Module TFrmInput.FormShow Begin

Panggil Module HapusInput

CategoryId = Form2.ADODataSet1['IdCategory'] StatementId = Form2.ADODataSet2['IdStatement'] Panggil Module InitiateStatement

Panggil Module CreateInput(self,'') Panggil Module Prosesinput

Panggil Module ShowAll End

Module TFrmInput.HapusInput Variabel module

j:integer Begin

Lakukan perulangan j=banyaknya component control pada menu simulasi – 1 sampai 0

Begin

Jika formsimulasi.component[j] adalah input maka Begin

//input :radiobutton, checkbox, groupbox, label, edit, button, image, //datetimepicker class yang sudah dimodif

Bebaskan formsimulasi.component[j] dari memory End End End Module TFrmInput.ShowAll Variabel module j:integer Begin

Lakukan perulangan j=banyaknya component control pada menu simulasi – 1 sampai 0

Begin

Jika formsimulasi.component[j] adalah input maka Begin

//input :radiobutton, checkbox, groupbox, label, edit, button, image, //datetimepicker class yang sudah dimodif

Tunjukan formsimulasi.component[j] ke layar End End End Module TFrmInput.InitiateStatement Variabel module DS: TADODataSet Begin

(16)

Create query DS

Setting koneksi database DS

DS query = 'Select * from Statement where IdStatement = '''+StatementId +''' and IdCategory = ''' +CategoryId +''''

Buka query DS

Jika DS['BackGroundColor'] <> Null maka

Backgroundcolor Form simulasi = DS['BackGroundColor'] Tutup query DS

Bebaskan DS dari memory End

Module TFrmInput.CreateInput (Vparent:TWinControlIdinput:string) Variable module RS,DSUserArchive:TADODataSet i: integer value:string Begin Create query RS Setting koneksi RS

Query RS = 'Select * from [Input] Where Parent = '''+Idinput+''' and IDStatement = '''+StatementId+''' and IDCategory = '''+CategoryId+'''' Buka query

Ciptakan komponen berdasarkan RS['TypeInput'] Jika RS['TypeInput']=1 maka

Begin

Panggil Module CreateInput(Groupbox yang diciptakan, RS[IdInput]) //rekursive End End Module TFrmInput.Prosesinput Variabel module j:integer idInput:string Value,TempV:string DSUserArchive:TADODataSet Begin ifchange =false

Lakukan perulangan j=banyaknya component control pada menu simulasi – 1 sampai 0

Begin

IdInput=''

Jika formsimulasi.component[j] adalah input maka Begin

//input :radiobutton, checkbox, groupbox, label, edit, button, image, //datetimepicker class yang sudah dimodif

formsimulasi.component[j].! =

ProsesValue(formsimulasi.component[j] sebagai Input).???) Value = formsimulasi.component[j].!

//??? = valuedef / textdef(bisa sendiri/semuanya) //!: caption, text,value tergantung dari jenis inputnya Idinput = (formsimulasi.component[j] sebagai Input).IdInput // Input : radiobutton, checkbox, groupbox, label, edit, button, image, //datetimepicker class yang sudah dimodif

End

if idInput<>'' then Begin

Create query DSUserArchive

Seting koneksi dabatabase DSUserArchive

Query DSUserArchive = 'Select * from UserArchieve where IdStatement = '''+StatementId +''' and IdCategory = '''

+CategoryId +''' and IdInput = '''+ idInput +''' and IdUser = ''' + UserId+ ''''

(17)

Buka query DSUserArchive

jika item DSUserArchive ada maka Begin DSUserArchive.Edit DSUserArchive['Value']= Value End else Begin

tambah item DSUserArchive DSUserArchive['Value']= Value DSUserArchive['Idcategory']= CategoryId DSUserArchive['IdStatement']= StatementId DSUserArchive['IdInput']= idInput DSUserArchive['IdUser']= UserId End

Lakukan update pada item DSUserArchive Tutup query DSUserArchive

End End

ifchange=true End

Spesifikasi Proses Distribution

Inisialisasi AWAL

delQuery = false AKHIR

btnConLeft

JIKA LABEL btnConLeft = 'Open' browse file

JIKA browse file menghasilkan path dan nama file Tampilkan path dan nama file pada status informasi Hubungkan aplikasi dengan database

Tampilkan semua kategori

Rubah label btnConLeft = ‘close’ Aktifkan tombol leftPaneDelete

Jika Pane Kiri dan Pane Kanan terhubung database Aktifkan tombol Move

Aktifkan tombol Copy AKHIR JIKA

AKHIR JIKA SELAIN ITU

Putuskan hubungan aplikasi dengan database yang sedang terhubung Tampilkan status informasi = 'Left Path : NOT OPENED'

Rubah label btnConLeft ='Open'

Non aktifkan tombol btnLeftPaneDelete Non aktifkan tombol btnMove

Non aktifkan tombol btnCopy AKHIR JIKA

btnConRight

JIKA LABEL btnConRight = 'Open' browse file

JIKA browse file menghasilkan path dan nama file Tampilkan path dan nama file pada status informasi Hubungkan aplikasi dengan database

Tampilkan semua kategori

Rubah label btnConRight = ‘close’ Aktifkan tombol rightPaneDelete

Jika Pane Kiri dan Pane Kanan terhubung database Aktifkan tombol Move

(18)

Aktifkan tombol Copy AKHIR JIKA

AKHIR JIKA SELAIN ITU

Putuskan hubungan aplikasi dengan database yang sedang terhubung Tampilkan status informasi = 'right Path : NOT OPENED'

Rubah label btnConRight ='Open'

Non aktifkan tombol btnRightPaneDelete Non aktifkan tombol btnMove

Non aktifkan tombol btnCopy AKHIR

btnLeftPaneDelete AWAL

Konfirmasi bahwa kategori yang terpilih pada pane kiri akan dihapus JIKA Konfirmasi = True

Hapus knowledge aktif pane kiri

AKHIR JIKA

AKHIR

btnRightPaneDelete AWAL

Konfirmasi bahwa kategori yang terpilih pada pane kanan akan dihapus JIKA Konfirmasi = True

Hapus knowledge aktif pane kanan

AKHIR JIKA

AKHIR btnCopy

JIKA label btnCopy = 'copy >>'

JIKA kategori yang mau dikopi sudah ada pada pane kanan Tampilkan Peringatan

DelQuery = False SELAIN ITU DelQuery = True

Salin kategori kiri yang dipilih ke pane kanan

AKHIR JIKA

SELAIN ITU

JIKA kategori yang mau dikopi sudah ada pada pane kiri Tampilkan Peringatan

DelQuery = False SELAIN ITU DelQuery = True

Salin kategori kanan yang dipilih ke pane kiri AKHIR JIKA

btnMove AWAL

JIKA label btnMove = 'move >>' Panggil modul btnCopy

JIKA DelQuery = True

Panggil modul btnRightPaneDelete DelQuery = False

AKHIR JIKA SELAIN ITU

Panggil modul btnCopy JIKA DelQuery = True

Panggil modul btnLeftPaneDelete DelQuery = False

AKHIR JIKA AKHIR btnAbout

(19)

AWAL

Tampilkan form About AKHIR

Referensi

Dokumen terkait

Pada 10 Maret 2017, DIDOSMA yang kala itu merupakan salah satu program kerja Departemen Humas BEM FKIP Universitas Sanata Dharma, pertama kali dilaksanakan

terkait dengan pengajaran yang dilakukan oleh mahasiswa. Evaluasi yang diberikan guru pembimbing lebih kepada cara menghadapi siswa. Dalam melaksanakan praktik mengajar

kesehatan pegawai yang real time melalui mekanisme sistem informasi • Jumlah dan jenis tenaga/SDM yang handal bidang IT masih terbatas • Metoda pelaporan yang

pasang surut dan non-pasang surut, secara biologis adalah tumbuhan Cattail merupakan rumput khas lahan basah non-pasang surut..  L ahan berawa campuran ini mempunyai kandungan

Penelitian yang dilakukan oleh Olutola dan Mokuolu pada tahun 2006 pada anak-anak penderita malaria dengan anemia berat di departemen kegawatdaruratan anak di

Sebuah genre film sering terdiri lebih dari satu genre karena banyak film yang mengabungkan elemen-elemen yang biasa terdapat dalam beberapa genre, atau film

Berikut adalah tampak dari pemodelan stuktur utama rangka baja jembatan dan atap yang Berikut adalah tampak dari pemodelan stuktur utama rangka baja jembatan dan