Tolong pilih kategori sesuai, jenis posting (pertanyaan atau bukan) dan sertakan tag/topik yang sesuai misal komputer, php, mysql, dll.
Promosi atau posting tidak pada tempatnya akan kami hapus.
Mencantumkan kode program di posting Anda, tolong ikuti aturan yang sesuai, baca http://diskusiweb.com/discussion/39204/aturan-cara-menyisipkan-kode-program-di-diskusiweb

Baca cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

coding VFP yg benar itu seperti apa?

Sample Case :
database feetagihan KSP "Lumbung Rejeki" Kepanjen - Malang
no_reg	no_kwt	bayar	tgl_jt		tgl_byr		juml_hari	denda	reff
001 ea001 200.000 12/10/2017 15/10/2017 3 0 000101
002 ea010 150.000 10/08/2017 15/10/2017 66 66000 000102
002 ea011 150.000 10/09/2017 15/10/2017 35 35000 000103
002 ea012 150.000 10/10/2017 15/10/2017 5 5000 000104
003 ea002 250.000 02/07/2017 15/10/2017 105 105000 000105
004 ea005 100.000 16/10/2017 15/10/2017 0 000106

script untuk cursor tempfee :
select distinct feetagihan.no_reg, feetagihan.no_kwt, feetagihan.juml_hari, feetagihan.denda,val(str(0000000)) ;							
as fee from feetagihan order by feetagihan.no_reg into cursor tempfee
no_reg	no_kwt	juml_hari	denda	fee			
001 ea001 3 0 00.00
002 ea010 66 66000 00.00
002 ea011 35 35000 00.00
002 ea012 5 5000 00.00
003 ea002 105 105000 00.00
004 ea005 - 0 00.00

syarat pemberian fee ditentukan sebesar 10% dari denda yang tertagih dan nasabah harus membayar tunggakannya,
sampai lancar / tunggakan 0 / tanpa ada tagihan lagi. Dan denda otomatis terisi sebesar 0,5% dari besar angsuran atau
1.000 perharinya dengan maksimal keterlambatan bayar tepat waktu tiap bulannya selama 3 hari dari,
tanggal jatuh tempo bulanan (berdasarkan feetagihan database memakai tgl_jt + 3 hari)

script pengisian fee di cursor tempfee, saya memakai koding seperti ini :
select tempfee							
do while not eof()
if juml_hari >= 4
replace fee with denda * 0.1
endif
select tempfee
skip
enddo
no_reg	no_kwt	juml_hari	denda	fee			
001 ea001 3 0 00.00
002 ea010 66 66000 6.600
002 ea011 35 35000 3.500
002 ea012 5 5000 500
003 ea002 105 105000 10.500 ditiadakan / tidak tampil di cursor tempfee
004 ea005 - 0 00.00

koding diatas sudah bener saya rasa, cuman di no_reg 003 kenapa masih muncul?
"syarat utama pemberian fee nasabah harus tidak memiliki tunggakan lagi"
di no_reg 003 nasabah dinyatakan terlambat 3 bulan dan masih terbayar 1 bulan

koding atau script yg seperti apa kira2 bisa memenuhi persyaratan pengisian fee di cursor tempfee
kalo pake query / sql statement seperti apa kira - kira?

Tanggapan

  • edited December 8
    ya jelas pasti bakal muncul, lha wong syarat elo cuma ini :
    if juml_hari >= 4

    yg 003 kan "juml_hari" nya 105

    if 105 >= 4 ... ya bener

    ----------------------------------------------------

    informasi yg elo ambil kurang mas ...

    mau ndak mau kalo masalah elo dan bentuk data elo kaya gitu ...
    di tiap baris data harus ada
    SELISIH
    ANTARA tahun & bulan "tgl_jt" terakhir yg sudah dibayar
    DENGAN tahun & bulan "tgl_bayar".

    ----------------------------------------------------

    masalahnya logika elo sudah salah duluan.
    elo pake logika manusia, yg bisa langsung liat baris setelahnya.

    saat elo liat baris 2 yg "tgl_jt" 10/08/2017 ...
    elo juga bisa liat baris 4 yg "tgl_jt" 10/10/2017 ...
    dan elo langsung mutusin bahwa baris 2 fee nya sudah bisa dihitung.

    mesin kagak bisa gitu.
    baris 2 yg dibaca ya baris itu yg dia tau.
    dia ndak akan bisa ambil data baris 4 saat baca baris 2.
    tapi kalo data sebelumnya yg pernah dibaca, masih bisa disimpan di memori.

    dgn kondisi data kaya yg elo susun ...
    harusnya, saat baca baris 2, fee itu juga tidak boleh dihitung.
    lha wong dia ndak tau di data setelahnya beneran sudah ndak ada tunggakan atau enggak.

    jadinya ya elo mesti menyertakan
    SELISIH
    ANTARA tahun & bulan "tgl_jt" terakhir yg sudah dibayar
    DENGAN tahun & bulan "tgl_bayar"
    di tiap barisnya.

    data elo harusnya kira2 kaya begini :
    no_reg	no_kwt	bayar	tgl_jt		tgl_jt_akhir    tgl_byr		juml_hari	selisih_thn_bln denda	reff
    001 ea001 200.000 12/10/2017 12/10/2017 15/10/2017 3 0 0 000101
    002 ea010 150.000 10/08/2017 10/10/2017 15/10/2017 66 0 66000 000102
    002 ea011 150.000 10/09/2017 10/10/2017 15/10/2017 35 0 35000 000103
    002 ea012 150.000 10/10/2017 10/10/2017 15/10/2017 5 0 5000 000104
    003 ea002 250.000 02/07/2017 02/07/2017 15/10/2017 105 3 105000 000105
    004 ea005 100.000 16/10/2017 16/10/2017 15/10/2017 0 0 000106
    selain melihat "juml_hari" ... hanya yg "selisih_thn_bln" = 0 yg boleh elo hitung fee nya
  • maklum Brother??? baru belajar?? ya mohon Arahannya?? btw... Thankz..berat..mo kasih saran.. coba aku terapin..
  • trus..klo bikin seleih thn dan bulan gimana logikanya mas Brooo?? maksudnya sich...mau bikin seperti yg mas Bro bikin..cuman...bingung??? he..he...minta saran dong scriptnya???
  • edited December 10
    gw kagak ada foxpro, elo cari aja sendiri padanan query nya.

    gw pake mysql.
    SQL itu standard, bahasa query satu dengan lainnya itu hampir sama.
    beda biasanya hanya di fungsi.

    gw berangkat cuma dari table kaya begini :



    cuma pake 1 query, sudah dapat hasil kaya begini :



    sengaja gw tulis dgn bentuk yg paling mirip dgn query yg bisa dipake foxpro.
    foxpro bisa subquery.
    foxpro bisa JOIN.
    foxpro bisa GROUP BY.
    foxpro punya fungsi YEAR(), MONTH(), MAX(), ABS().

    paling yg ndak ada di foxpro itu ...
    DATEDIFF() ... tapi toh di data yg elo tunjukin elo sudah bisa ngitung "juml_hari" dan "denda".
    IF() ... di foxpro itu kalo ndak salah IIF().
  • hem...great...ni dia query nya...coba bulu mas..laba-laba..ntar klo masih binun..tanya lagi bole khan?? ...kata mas tolo berbagi ilmu tu ibadah yg tak akan putus pahalanya..
  • maz. Laba-Laba.. Klo boleh terus terang saya ini TA di KSP Lumbung Rejeki Kepanjen malang. Masih terdaftar di STIKOM malang, bukan kerja di KSPnya...maklum kegiatan KBM di Kuliahan sering absen jg ga' nyantol ilmunya..minta tolong untuk script VFP nya dong yg sesuai dengan script sqlnya mas LAba-laba..data yg diberikan oleh ksp tempatku TA itu sudah olahan...
  • edited December 11
    kan gw sudah bilang, gw ndak ada foxpro.

    kalo ada masalah itu mbok ya di posting salahnya apa.
    paling ndak gw bisa liat, salahnya dimana.

    tapi ya tetep elo sendiri yg koding.
  • ku pake koding seperti ini Maz Laba-Laba :
    thisform.grid1.RecordSource = ''
    SELECT distinct ;
    feetagih.no_reg, ;
    feetagih.no_kwt, ;
    feetagih.bayar, ;
    feetagih.tgl_jt, ;
    feetagih.tgl_bayar, ;
    ABS((YEAR(feetagih.tgl_jt) - ;
    YEAR(tgl_bayar))* 12 + ;
    (MONTH(feetagih.tgl_jt) - ;
    MONTH(feetagih.tgl_bayar))) ;
    as selisih ;
    FROM feetagih ;
    ORDER BY ;
    feetagih.no_reg ;
    INTO CURSOR test2 READWRITE
    thisform.grid1.RecordSource = 'test2'
    koq ga sama dengan selisih_thn_bln dengan koding mas Laba-laba
  • edited December 11
    sama di mana nya mas ?

    itu kan ada subquery nya.
    di koding elo subquery nya mana ?

    justru subquery itu yg dipake buat dapetin "tgl_jt_akhir"
    tanpa "tgl_jt_akhir", elo ndak bakal bisa menghitung "selisih_thn_bln"
  • yg mna ya blush: ..binun.. subquery..bingung Maz Laba-laba?
  • ngerti subquery atau kagak ?
  • enggak tau pastinya sich :smiley: ??
    biasanya kalo data kosong ku bikin looping Maz Laba-laba??
  • edited December 11
    https://dev.mysql.com/doc/refman/5.7/en/subqueries.html

    pake dokumentasi nya mysql saja.
    ndak nemu dokumentasi nya foxpro.

    A subquery is a SELECT statement within another statement.

    Here is an example of a subquery:
    SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2);
    ...

    elo kagak liat ini kah ?
    FROM 
    test1,
    (SELECT no_reg,MAX(tgl_jt) AS tgl_jt FROM test1 GROUP BY no_reg ORDER BY no_reg) sub1
    sengaja gw tulis dgn bentuk yg paling mirip dgn query yg bisa dipake foxpro.
    foxpro bisa subquery.
    foxpro bisa JOIN.
    ...
    karena emang harus pake subquery.
  • yup..aku liat kak..Laba-laba..sy coba duyu ya :smile:
  • cihuiiiiiiiiiii...ketemu juga kak....pake sub query.....mantap thankz..
    scriptnya kucopas langsung ke comand click seperti ini ,
    thisform.grid1.RecordSource = ''
    SELECT distinct ;
    feetagih.no_reg, ;
    feetagih.no_kwt, ;
    feetagih.bayar, ;
    feetagih.tgl_jt, ;
    feetagih1.tgl_jt ;
    as tgl_jt1, ;
    IIF(feetagih.tgl_bayar > ;
    feetagih.tgl_jt, ;
    feetagih.tgl_bayar - ;
    feetagih.tgl_jt, 0) ;
    as jum_hari, ;
    ABS(((YEAR(feetagih1.tgl_jt) - ;
    YEAR(feetagih.tgl_bayar)) * 12) + ;
    (MONTH(feetagih1.tgl_jt) - ;
    MONTH(feetagih.tgl_bayar))) as ;
    selisih_thn_bln ;
    FROM feetagih, (SELECT no_reg, MAX(tgl_jt) ;
    as tgl_jt FROM feetagih GROUP BY ;
    no_reg ORDER BY no_reg) feetagih1 ;
    WHERE feetagih1.no_reg = ;
    feetagih.no_reg ;
    INTO CURSOR test2 READWRITE
    thisform.grid1.RecordSource = 'test2'
  • ini akibat sering bolos kuliah kali yaaaa :blush:
  • yak, sudah betul.

    tinggal ngitung "denda" dan "fee" nya.
    dasar perhitungannya elo sudah pegang.
  • oky thankz kak? nanti tanya lagi kak?
Sign In or Register to comment.