Menggunakan Menu CSS Bootstrap Template Di foxpro

November 24, 2016

bosan dengan menu menubar standar foxpro, hati pengen bisa menu kaya di web bisa manfaatkan bootstrap, taraaa foxpro bisa menfaatkan itu kawan, sesuai judul kita akan memanfaatkan menu dari css, misal menggunakan template bootstrap dari AdminLTE, bisa di download di sini https://almsaeedstudio.com/ , langkah selanjutnya

pertama, download tempalte adminLte, dan extrak, jika menggunakan xampp pada window taruh didalam htdocs,berikut gambarnya

1

kedua, kita coba akses di browser ketik localhost/adminLTE 

2

ketiga, ok, lanjut kefoxpor deh, bikin form baru, masukkan ole browser3

keempat,di form.init masukkan sintak ini


thisform.Olecontrol1.Navigate("http://localhost/adminLTE/")

kelimat, buat method di form kasih nama terserah situ aja,misalkan yactions, dan buat property juga dengan nama yurl

sintak method yaction


LPARAMETERS xurl
DO case
case xurl="yvfp://action1/"
MESSAGEBOX("Pesan Dari foxpro",0)
case xurl="yvfp://action2/"
DO FORM autocomplet.scx
ENDCASE

keenam,pada object olecontrol webbrowser tadi, pada event/procedure BeforeNavigate2 seperti gambar dibawah

4

kelimat, mari kita edit, index.html yang ada dala folder AdminLTE, anda bisa gunakan Notepate++ atau lainnya terserah, buka dan tambahakn sintak ini

<li class="treeview">
<a href="#">
<i class="fa fa-laptop"></i>
<span>Foxpro Banget</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<li><a href="yvfp://action1/"><i class="fa fa-circle-o"></i>Messagebox</a></li>
<li><a href="yvfp://action2/"><i class="fa fa-circle-o"></i>Form 2</a></li>
</ul>
</li>

dimana naruhnya mas? ok anda bisa liat contoh sintak sebelumnya, bisa juga copas sintak sebelumnya pastika dari tag html <li> ampe </li> ketaun aja kq klo menggunakan notepad++ berwarna merah dan ada tanda + (plus)

udah gitu aja, inti kuncinya ada di tag <a href=”yvfp://action1/”> ini nanti yang di cek saat even procedure beforenavigate2 itu , OK moga paham yaa, dan ini bukan foxpro run browser lo ini cuma memanfaatkan menu dari template web yang bertebaran di google yang bisa kita pakai diproject foxpro kita, berikut contohnya

6

ciamik bukan, kita bisa edit menu tanpa build exe ulang,apa lagi menunya dihosting , bisa di edit nama aja menunya jika user pengen menu tambahan or pengurangan 😀 , moga mengerti aja, dan selamat berkarya

Iklan

RestApi Yii dengan Foxpro

November 3, 2016

Yaa langsung aja yaa, kita tau sendiri lah sekarang era informasi terbuka,akses informasi bisa dimana saja, salah satu pintu akses informasi yaitu penggunaan webservice atau RestApi, yang mana fungsinya adalah menjembatani antara server dengan client untuk mendapatkan informasi dengan berbagai platform berbeda :), naa kali ini saya mencoba menggunakan foxpro sebagai clientnya yang mana data yg diolah sudah matang artinya siap untuk di push kedalam server ,initnya aplikasi client adalah pengolahaan data akhir dan server menerima data akhirnya saja yang mana data itu akan di tampilkan baik menggunakan browser atau mobile , Ok langsung aja yaa, saya gunakan Yii versi 2 2.10 untuk membangun restApinya 🙂 yang mana alur flownya adalah, client akan mengirimkan username dan password kemudian server akan memberikan token , dan client akan menggunakan token untuk mengirimkan data ke server, keuntungan menggunakan token adalah demi keamanan jadi tidak semua bisa akses bebas kecuali ada izin , informasi juga harus dilindungi demi keamanan data krn sifatnya publik , dibutuhkan MOU kalau mau :D,OK

pertama, saya asumsikan udah pahamlah penggunakan Yii 2 terutama Gii nya 🙂  untuk tutorialnya membangun Api bisa tengok disini aja

http://budiirawan.com/setup-restful-api-yii2/

http://lab-informatika.com/script/23/yii2-membuat-restful-web-service

yaa pinter pinter aja lah 😀

biar ga cape jelasinya saya 😀 intinya sama aja

kedua, krn tujuan saya mempust data, yaa saya menggunakan Update , untuk mengubah data yang sudah ada, Method yang di gunakan pun adalah PUT 🙂 bisa di tengok di User Guide Yii2 😀

sintaknya

yiijson

ketiga , sintak di foxpro sendiri, pertama kita dapatkan token dulu

token

keempat, buat json dari cursor


CREATE CURSOR mData (kode C(10),nama C(20))
INSERT INTO mData values('11','Adi')
INSERT INTO mData values('22','Sadi')
INSERT INTO mData values('33','Tadi')
INSERT INTO mData values('44','Ladi')
INSERT INTO mData values('55','Badi')

json

hasilnya

datajson

kelima, encode json tadi ke base64


*/
* Convert ke base64
*/

lcDataJson = STRCONV(lcDataJson,13)

keenam, masukkan kedalam post, dan gunakan token tadi dan method yang digunakan ada PUT

dataawal

dan hasilnya

dataakhir

gimana OK kan hehe 🙂 initinya dengan mengunakan RestApi ,platform apapun bisa dengan mudah mendapatkan informasi yang terupdate 🙂

btw untuk json di foxpro saya pake disini

https://vfpx.codeplex.com/wikipage?title=nfJson&referringTitle=Home

Ok sekian dan terima kasih, selamat berkarya master (y)


Ribbon Foxpro dengan codejock

November 1, 2016

langsung aja yaa

capture

naa cara pengunaanya kita pake ocx dari codejock, bisa cari digoogle deh,

pertama, registrasi dulu ocxnya via run administrator, pastikan juga file .lic dalam 1 folder

kedua, pada form drag drop objectnya

capture

ketiga, bikin method dalam form kasih nama misalkan createribbon, sintaknya


Public TabWrite As RibbonTab, GroupFont As RibbonGroup, Control As CommandBarControl
Public GroupClipborad As RibbonGroup, ControlPopup As CommandBarPopup

Public RibbonBar As RibbonBar
RibbonBar = Thisform.CommandBars.AddRibbonBar("Ribbon Bar")

RibbonBar.EnableDocking(1)

Public ControlFile As CommandBarPopup
ControlFile = RibbonBar.Controls.Add(2, -1, "&File", 1)
With ControlFile.CommandBar.Controls
.Add(1, 11, "&New")
.Add(1, 12, "&Open...")
Control = .Add(1, 13, "E&xit")
Control.BeginGroup = .T.
Endwith
*/Menu 1
TabWrite = RibbonBar.InsertTab(0, "Menu Master")
*/SubMenu 1.1
GroupClipborad = TabWrite.Groups.AddGroup("Tabel Referensi",1)
ControlPaste = GroupClipborad.Add(4, 111, "Ref Buku")
ControlPaste.CommandBar.Controls.Add(1, 112, "Ref Guru")
ControlPaste.CommandBar.Controls.Add(1, 113, "Ref Kelas")
GroupClipborad.Add(1,114, "Ref Buku")
GroupClipborad.Add(1, 115, "Ref Buku Lagi")
Control = GroupClipborad.Add(1, 116, "Ref Kelas Lagi")
Control.Enabled =.F.

*/SubMenu 1.2
GroupFont = TabWrite.Groups.AddGroup("&Font",1)
GroupFont.Add(1, 211, "Color")
Control = GroupFont.Add(1, 212, "&Bold")
Control.BeginGroup = .T.
GroupFont.Add(1, 213, "&Italic")
GroupFont.Add(1, 214, "&Underline")
Control = GroupFont.Add(1, 215, "Strikethrough")
Control.Enabled = .F.
Control = GroupFont.Add(1, 216, "Subscript")
Control.Enabled = .F.
Control = GroupFont.Add(1, 217, "Superscript")
Control.Enabled = .F.

*/ Menu 2
TabInsert = RibbonBar.InsertTab(1, "&Insert")
*/SubMenu 2.1
GroupPages = TabInsert.Groups.AddGroup("&Pages",1)
ControlNew = GroupPages.Add(4, 100, "&New Page")
ControlNew.CommandBar.Controls.Add( 1, 101, "&Blank Page")
ControlNew.CommandBar.Controls.Add (1, 108, "&Save Selection as New Page")
ControlCover = GroupPages.Add(4, 108, "Cover Page")
ControlCover.DescriptionText = "Insert a fully-formatted cover page. You fill in the title, author, date, and other information."
ControlCover.CommandBar.Controls.Add (1, 108, "&Remove Current Cover Page")
ControlCover.CommandBar.Controls.Add (1, 108, "&Save Selectio as New Cover Page")
GroupPages.Add(1, 111, "Page Break")

*/SubMenu 2.2
GroupTable = TabInsert.Groups.AddGroup("&Table",2)
ControlTable = GroupTable.Add(3, 108, "&Table")
ControlTable.CommandBar.Controls.Add( 1, 108, "&Inset Table..")
ControlTable.CommandBar.Controls.Add (1, 108, "Dra&w Table")
ControlTable.CommandBar.Controls.Add (1, 108, "Con&vert Text to Table...")
Tabwrite.Selected = .T.

Thisform.Loadicon

naa disana ada sintax .Add( 1, 101, “&Blank Page”), yang mana 1 adalah xtpButtonDropDown, bisa dlihat di object browser

capture

sedangkan 101 adalah id, parameter selanjutnya adalah nama/caption menunya,ok

keempat, cara menambahkan icon di menu, tambahakn method dengan nama loadicon, sintaknya


thisform.CommandBars.Options.UseSharedImageList = .F.
thisform.CommandBars.Icons.LoadIcon("E:\cobacoba\MenuBar\GroupPopup.ico",11,0)
thisform.CommandBars.Icons.LoadIcon("E:\cobacoba\MenuBar\menu.ico",211,0)

penjelasanya singkatnya Icons.LoadIcon(“E:\cobacoba\MenuBar\GroupPopup.ico”,11,0) parameter pertama itu pathnya icon, parameter kedua, id menu yang tadi, sedangkan 0 adalah  xtpImageNormal silahkan cek di object browser

kelimat, untuk execute jika kita klik menu, terletak di method execute yang ada di object commandbarcapture

naa control.id, id disana adalah id yang ada di button menu nya jadi sesuaikan saja kawan 😀

klo mau sampelnya silahkan https://www.mediafire.com/?p5mwi58wr8sujp6 , HANYA UNTUK PEMBELAJARAN SAJA , SILAHKAN BELI PRODUKNYA http://www.codejock.com/

 


Membuat Sisa Waktu di Progressbar Foxpro

Oktober 24, 2016

OK langsung aja yaa, hemat kouta syukur syukur ada yang isikan :D, jadi begini penampakannya

1

2

OK caranya begini,

pertama,  tambahkan label dengan nama lblTimeRem kemudian bikin properti dalam form, kasih nama nreportinternal,nstart,ntoprosess, semuanya value kosong(none)

kedua, bikin method , kasih nama prosestime, naa sintaxnya


lParameters tnProcessed

local lnUnitsRemaining,lnTimePerUnit,;
lnSecondsRemaining,lnFractHours,;
lnHrs,lnMin,lnSec

lnElapsed = seconds() - this.nStart

if mod(tnProcessed,this.nReportInterval) = 0
lnUnitsRemaining = this.nToProcess - tnProcessed
lnTimePerUnit = lnElapsed/tnProcessed
lnSecondsRemaining = lnTimePerUnit * lnUnitsRemaining
lnHrs = int(lnSecondsRemaining/3600)
lnFractHours = mod(lnSecondsRemaining,3600)
lnMin = int(lnFractHours/60)
lnSec = mod(lnFractHours,60)


pcTimeRemaining = iif(lnHrs>0,padl(alltrim(str(lnHrs)),3);
+ iif(lnHrs>1,' Jam ',' Jam'),'');
+ iif(lnMin>0,padl(alltrim(str(lnMin)),2);
+ iif(lnMin>1,' Menit ',' Menit'),'');
+ iif(lnSec>0,padl(alltrim(str(lnSec)),2);
+ iif(lnSec>1,' Detik ',' Detik'),'')




this.lblTimeRem.Caption = 'Sisa Waktu :' + IIF(EMPTY(alltrim(pcTimeRemaining)),'Selesai',alltrim(pcTimeRemaining))

endif

cara pakainya, misalkan dalam commandbotton


CREATE CURSOR mData(cNama C(100))
i=0
FOR i=1 TO 100000
lcNama ="ABCDEF"+PADL(ALLTRIM(STR(i)),2,'0')

INSERT INTO mData value(lcNama)
ENDFOR

thisform.nstart=SECONDS()
thisform.nreportinterval=1
nJumlah=RECCOUNT("mData")
thisform.ntoprocess=nJumlah
i=0
SELECT mData
SCAN
i=i+1
lnvalue = INT((i/nJumlah)*100)
thisform.Progressbar1.value=lnValue
thisform.prosestime(i)
ends

Naa OK jalankan deh 🙂 selamat mencoba kawan, moga sukses, long live foxpro :*


Fix error error:14090086 Swiftmailer di Yii 2

Oktober 22, 2016

berikut error lengkapnya

capture

naa fixnya, tambahkan sintax ini


'mail' => [
'class' => 'yii\swiftmailer\Mailer',

...

...
'streamOptions'=>['ssl'=>
               ['allow_self_signed'=>true,
                    'verify_peer'=>false,
                    'verify_peer_name'=>false,
                ]
            ]
],

OK Moga sukses kawan 😀