Menghitung Parsing ISO 8583 dengan foxpro

Agustus 22, 2016

Ini cuma cara sederhana (maksudnya cara yg saya bisa 😀 akalin )

langsung aja yaa, cara ngitungnya ada disini bacanya

https://lmanxp.wordpress.com/2011/04/09/parsing-iso8583/

dan dengan sintak foxpro

 


Clear
Create Cursor siso ( nbit C(3),cTipe C(10),nPanjang N(3),nfix N(3))
Insert Into siso Values("1","b",32,0)
Insert Into siso Values("7","n",10,0)
Insert Into siso Values("11","n",6,0)
Insert Into siso Values("33","n",11,1)
Insert Into siso Values("70","n",3,0)
iso8583("080082200000800000000400000000000000000000590100000103123001")
Function iso8583(cIso)
Local lnbaris[30],lnbits[30],dataMit[15]

*MTI
cMti=Substr(cIso,1,4)
*MTI Sisa
cSisa=Substr(cIso,Len(cMti)+1)

huruf1=Left(cSisa,1)
*Panjang Bit map hex2bin
nPBitmap=hex2bin(huruf1)
nPBitmap=Iif(Left(nPBitmap,1)="0",16,32)

*Bit 1 Lokasi BitMap
nDataSisa=Substr(cSisa,1,nPBitmap)

*sisa BitMap
nSisa=Substr(cSisa,nPBitmap+1)
*Bit 1
datasisa=nSisa

j=0
lnUrut=""
lnurutxx=""
i=0
For i=1 To Len(nDataSisa)
lnurutxx=hex2bin(Substr(nDataSisa,i,1))
lnUrutx=lnUrut+lnurutxx
lnUrut=lnUrutx
Endfor
i=0

*hitung Bitmap Aktif=1
For i=1 To Len(lnUrut)
lnaktif=Substr(lnUrut,i,1)
If Alltrim(lnaktif)="1"
j=j+1
lnbaris[j]=i
Endif
Endfor
j=0
x=0

Select siso
Scan
x=x+1
lnBit=nbit
lcTipe=cTipe
lnPanjang=nPanjang
lnfix=nfix
If ALLTRIM(lcTipe)="b"
Loop
ENDIF
*panjang statis
If lnfix=0
ctmp=Substr(datasisa,1,lnPanjang)
If Len(ctmp)=lnPanjang
If lcTipe="n"
dataMit[x] = Substr(datasisa,1,lnPanjang)
Else
dataMit[x]= Alltrim(Substr(datasisa,1,lnPanjang))
Endif
datasisa=Substr(datasisa,lnPanjang+1,Len(datasisa)-lnPanjang)
Endif

ELSE
*panjang Dinamis
nLen = Len(Alltrim(Str(lnPanjang)))
ctmp=Substr(datasisa,1,nLen)
If Len(ctmp)=nLen
cNum=INT(val(ctmp))
datasisa=Substr(datasisa,nLen,Len(datasisa)+nLen)

cTmp2= Substr(datasisa,1+1,cNum)
If Len(cTmp2)=cNum
If lcTipe="n"
dataMit[x] =INT(Val(cTmp2))
Else
dataMit[x] =cTmp2
Endif
datasisa=Substr(datasisa,(cNum+1)+1,Len(datasisa)-cNum)
Endif
Endif
Endif

Endscan
i=0
For i=1 To 15
If Vartype(dataMit[i])="L"
Loop
Endif
?IIF(VARTYPE(dataMit[i])="N",ALLTRIM(STR(dataMit[i])),dataMit[i])
Endf
Endfunc

Function hex2bin
Parameters cHexString

Store '' To cBinString, cBinString1
Store Len(cHexString) To nStrLen
For zzz = 1 To nStrLen
cBinString = cBinString + ;
Padl(dec2basx(Int(Val('0x' + Substr(cHexString, zzz, 1))), 2), 4, '0')
Next
Return cBinString

Function dec2basx
Parameters nTempNum, nNewBase

Store 0 To nWorkVal,;
remainder,;
dividend,;
nextnum,;
digit

nWorkVal = nTempNum
ret_str = ''

Do While .T.
digit = Mod(nWorkVal, nNewBase)
dividend = nWorkVal / nNewBase
nWorkVal = Int(dividend)

Do Case
Case digit = 10
ret_str = 'a' + ret_str
Case digit = 11
ret_str = 'b' + ret_str
Case digit = 12
ret_str = 'c' + ret_str
Case digit = 13
ret_str = 'd' + ret_str
Case digit = 14
ret_str = 'e' + ret_str
Case digit = 15
ret_str = 'f' + ret_str
Otherwise
ret_str = Ltrim(Str(digit)) + ret_str
Endcase

If nWorkVal = 0
Exit
Endif ( nWorkVal = 0 )
Enddo ( .T. )
Return ret_str

dan hasilnya

1

OK ini cuma contoh 😀

 


Remote Database Hosting dengan Visual Foxpro

Agustus 12, 2016

langsung aja nih hemat kouta 🙂 lg ga ada duit 😀 (mohon donasinya) 😀

kali ini saya memberikan pencerahan cara remote database di hosting , ingat hosting berbayar

pertama, pastinya masuk ke cpanel hosting,bikin database, terus bikin username dan password

1

pastikan juga user privilages pada database yang dibuat tadi conteng semua

1

terus Remote database access hostnya kasih %

1

kecuali kalian punya IP client yg statis bisa didaftarkan siapa aja yg bisa akses, not rekomen pake %

selesai

kedua, di foxpronya, sintaxnya sama kaya connect di lan,


lcconn="Driver={MySQL ODBC 5.1 Driver};Server=NamaDomain;Database=namadatabase;User=usernamenya;Password=passwordnya;Option=3;"
nch=SQLSTRINGCONNECT(lcconn)

btw saya gunakan jagoanhosting


Yii2+Pusher, Push Notifications

Juli 27, 2016

Langsung aja nih, kali ini saya coba bikin Notification di Web menggunakan Yii dan pusher, apa itu pusher, baca aja sendiri 😀 https://pusher.com/ , untuk menggunakan pusher ini anda harus mendaftar terlebih dahulu kemudian anda akan mendapatkan id,key, secret, yang nantinya digunakan sebagai token ke pusher,(lihat contoh di situsnya)  naa untuk menambahkan ke yii kita menggunakan composer installnya ambil di github di sini https://github.com/pusher/pusher-http-php , naa baru lanjut ke yii, saya gunakan yii advanced,

 

  • backend – PushController.php

use Pusher;

...

...

...

public function actionPush()
{

$model = new DynamicModel(['msg']);
$model->addRule(['msg'], 'string', ['max' => 128]);

if ($model->load(Yii::$app->request->post())){
$msg=$model->msg;
$app_id = 'YOUR_APP_ID';
$app_key = 'YOUR_APP_KEY';
$app_secret = 'YOUR_APP_SECRET';

$pusher = new Pusher( $app_key, $app_secret, $app_id );
$pusher->trigger('test_channel', 'my_event', ['message' => $msg] );
return $this->redirect(['push','model'=>$model]);

}else{

return $this->render('push',[
'model'=>$model,
]);
}
}

  • View/Push.php

use yii\helpers\Html;
use yii\bootstrap\ActiveForm;

$this->title = 'Notifikasi';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="site-login">
<h1><?= Html::encode($this->title) ?></h1>
<div class="row">
<div class="col-lg-5">
<?php $form = ActiveForm::begin(['id' => 'push-form']); ?>

<?= $form->field($model, 'msg')->label('Pesan')->textInput(['autofocus' => true]) ?>

<div class="form-group">
<?= Html::submitButton('Push', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>
</div>

<?php ActiveForm::end(); ?>
</div>
</div>
</div>

selanjutnya untuk di frontend

  • view – main.php

<script src="https://js.pusher.com/3.1/pusher.min.js"></script>
<script>

// Enable pusher logging - don't include this in production
Pusher.logToConsole = true;

var pusher = new Pusher('ce901ef053e354fcd965', {
encrypted: true
});

var channel = pusher.subscribe('test_channel');
channel.bind('my_event', function(data) {
// alert(data.message);
var message = data.message;
toastr.info(message);
});
</script>

  • appasset.php

public $css = [
'css/site.css',
"//cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/css/toastr.min.css"
];
public $js = [
'//cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/js/toastr.min.js'
];

naa udah gitu aja master, kemudian jalankan bagian backend (atas) jalankan frontend (bawah) di window tab baru,

1

kemudian isi dan tekan push

2

hasilnya begitu lah master 😀 , moga mengerti dan paham, sama sama belajar kita 😀


Mengirim Email via Foxpro

Juni 20, 2016

biar keren judulnya hehe, ok langung aja yaa kita akan kirim email dapat referen dari sini http://www.w3schools.com/asp/asp_send_email.asp

 

koding foxpronya


LOCAL myMail as "CDO.Message"
myMail = CreateObject("CDO.Message")
myMail.Subject = "Link 'tausyiah' "
myMail.From = "atmanegara1989@gmail.com"
myMail.To = "atma_1989@yahoo.com"
myMail.TextBody = "Bro ini file kumpulan video 'tausyiah' "
myMail.AddAttachment("D:\fileku.txt")

myMail.Configuration.Fields.Item;
("http://schemas.microsoft.com/cdo/configuration/sendusername") = 'atmanegara1989@gmail.com'
myMail.Configuration.Fields.Item;
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = '***********'
myMail.Configuration.Fields.Item ;
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

myMail.Configuration.Fields.Item ;
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"

myMail.Configuration.Fields.Item;
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465

myMail.Configuration.Fields.Item;
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
myMail.Configuration.Fields.Item;
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = .t.
myMail.Configuration.Fields.Update
lcError=0
TRY
myMail.Send
CATCH TO err
lcError=err.ErrorNo
IF lcError=1429
MESSAGEBOX("Username & Password tidak sesuai atau Koneksi Internet Bermasalah..!!",0+16,"Kesalahan")
ELSE
MESSAGEBOX("Telah terjadi kesalahan..!!",0+16,"Kesalahan")
ENDIF
FINALLY
IF lcError=0
MESSAGEBOX("Email Success...!!",64,"Informasi",30)
ELSE
MESSAGEBOX("Email Unsuccess...!!",64,"Informasi",30)
ENDIF
ENDTRY

terus jalankan kan, jika terkirim

dan hasilnya

emailpng

sukses juga yaa

[edit]

btw ketinggalan, krn pake gmail, maka diperlukan akses ke gmail dari aplikasi yang teknologinya kurang aman kata google ,settingnya dari gmail,
sini linknya, pastikan login dulu biar email kita tersetting

https://support.google.com/accounts/answer/6010255

emailpng

untuk cari ip/server smtp dan portnya bisa cek disini

https://www.arclab.com/en/kb/email/list-of-smtp-and-pop3-servers-mailserver-list.html


Menggunakan Frx2any di Report Foxpro

Juni 1, 2016

Lagi iseng aja sih sebenarnya cuma penasaran, initnya ni frx2any sama kaya xfrx atau foxypreviewer , sama sama ada fasilitas export baik ke pdf,word,html, or excel, naa perbedaan antara xfrx,foxypreviewer dengan frx2any adalah di fasilitas export frx ke excel, xfrx or foxypreview hasilnya berantakan apalagi border border/garis garis nya mencar kemana mana ada yang ke mergen cell, juga tp klo dengan frx2any aku anggap rapi tampilannya, contoh

Capture

naa klo mau coba bisa langsung http://www.frx2any.com/ yang pasti ini beli lah, mau gratisan yaa pake foxyprewievew aja atau pake template excel (rekomen banget klo ini ) atau PM ane aja 🙂