Arsip: Membatasi Record

 
user image
more 9 years ago

daeng

salam hangat para senior dephi sy masi pemula di delphi sy dapat sedikit masalah nih tentang membatasi record msalahnya gini : sy memiliki field "Keterangan" yg isinya Lulus Or Tidak Lulus permasalahannya ketika Keterangan Lulus Telah Melebihi Kuota yg telah Di tentukan Keterangannya Tidak Berubah Menjadi Tidak Lulus dan justru hasli yg saya dapatkan setiap sy mengimput record baru dan kuota belum memenuhi hasilnya tetap Keterangan = Tidak Lulus berikut coding saya gunakan : pengurutan record berdasarkan Nilai : modul.Query1.Active := true; modul.Query1.SQL.Clear; modul.Query1.SQL.Add('select * from Qhasil order by nilai_r desc'); modul.Query1.ExecSQL; modul.Query1.Active := true; Proses Penyimpanan : if modul.Tbsiswa.Recordset.RecordCount > modul.TbStdr_nilai['kuota'] then begin modul.Tbsiswa.Edit; modul.Tbsiswa['ket'] := 'Tidak Lulus'; modul.Tbsiswa.Post; end else begin modul.Tbsiswa.Edit; modul.Tbsiswa['Ket']:= edit13.Text; modul.Tbsiswa.Post; end; Mohon Petunjuknya
user image
more 9 years ago

madi

memangnya untuk menghitung syarat kelulusan berdasarkan jumlah nilai hasil query atau jumlah recordnya?
user image
more 9 years ago

daeng

Berdasarkan Nilai dan Memiliki kuota Penerimaan semisalkan kuota penerimaan 100 orang sedangkan pendaftar 150 orang? Mohon bantuannya
user image
more 9 years ago

madi

spertinya harus ditentukan nilai atau jumlah nilai untuk pembanding dg jumlah recordnya.. bila ingin mendapatkan hasil query nilai tertinggi gunakan tbl.first, setelah query..baru dibandingkan dg jumlah recordnya
user image
more 9 years ago

daeng

@madi: spertinya harus ditentukan nilai atau jumlah nilai untuk pembanding dg jumlah recordnya.. bila ingin mendapatkan hasil query nilai tertinggi gunakan tbl.first, setelah query..baru dibandingkan dg jumlah recordnya
@daeng: nilai dan kuota penerimaan sudah sy tentukan semisalkan seperti ini : Kuota yang di terima := 100 orang Nilai kelulusan := 7.0 pendaftar := 150 orang apa bila semua pendaftar atau anggaplan sekitr 120 orang yang memenuhi kriteria nilai kelulusan, bagaimana dengan kuota yang di terima? sedangkan diketahui kuota yg di terima 100 orang, berarti secara otomatis 20 orang itu tidak lulus berdasarkan nilai terendah langkah yg pertama sy lakukan adalah mengurutkan nilai dari tertinggi ke terendah : modul.Query1.Active := true; modul.Query1.SQL.Clear; modul.Query1.SQL.Add('select * from Qhasil order by nilai_r desc'); modul.Query1.ExecSQL; modul.Query1.Active := true; selajutnya sy masih bingung bang???? Mohon bantuannya thank's before
user image
more 9 years ago

henry_sys

Mgkin Mksd agan spt ini: Ada pendaftar 120 org tetapi Quota hanya 100; 1. Andi dg nilai 10 ...... ...... 99. Joni 70 100. Exi 70 101. xxx nilai 70 (Tidak Lulus krn quota udh penuh) Setps: 1. Semua Data dan Nilai Pendaftar di entry Ke Komputer. 2. Buat 1 procedure utk menentukan Lulus Atau Tdk

procedure BtProses.Click(Sender:TObject);
var
  vData : integer;
  vKet : String;
begin
  with <NamaQuery> do
  begin
     Colse;
     sql.text :='Select * from <NamaTable> where Nilai >= 70 Order By Nilai DESC';
     Open; 
  end;
  
  NamaQuery.First;
  vData := 0;
  while not(NamaQuery.eof) do
  begin
    vData:= vData +1;
    if  vData <= 100 then
    begin
      vKet := 'LULUS';
       <Update data Keterangan dg mengambil Nilai vKet >
    end else
    begin
       vKet := 'TIDAK LULUS';
       <Update data Keterangan dg mengambil Nilai vKet >
    end;
    namaQuery.Next;  
  end;
end; 
Kalau ada kesalahan mohon dimaklumi krn code Belum dicompile (Berdasarkan Logika aja gan...) Semoga dapat membantu...........
user image
more 9 years ago

henry_sys

@henry_sys: Mgkin Mksd agan spt ini: Ada pendaftar 120 org tetapi Quota hanya 100; 1. Andi dg nilai 10 ...... ...... 99. Joni 70 100. Exi 70 101. xxx nilai 70 (Tidak Lulus krn quota udh penuh)
Mksdnya 1. Andi dg nilai 100 bukan 10
user image
more 9 years ago

madi

codingnya henry_sys sudah cukup benar, kemungkinan yg dimaksud daeng ada yg lebih..
var
  jditerima : integer;
begin
  jditerima := 0;
with query do
  begin
    first;
    disablecontrols;
    for i := 0 to recordcount -1 do
     begin
       if (i <= 100) and (query.fieldByName('Nilai').Value >= 7) then
        begin
          //edit data, keterangan lulus
         jditerima := jditerima '+' 1;
        end
       else
         begin
          //mencari jumlah yg diterima apabila quota belum mencapai 100
            if (jditerima < 100) and (i > 100) then
              begin
                 if (query.fieldByName('Nilai').Value >= 7) then
                   begin
                      //edit keterangan lulus, setelah record 100 yg belum terisi syarat nilai min 7
                      jditerima := Jditerima '+' 1; 
                   end
                 else
                   begin
                      //edit keterangan tidak lulus, record setelah 100 dan nilai dibawah 7
                   end;                  
              end;
             //edit keterangan tidak lulus, record yg belum mencapai 100, dg nilai dibawah 7
         end; 
     end;
    enablecontrols;
 end;
end;
nb : jditerima := jditerima + 1; tanda plus gak keliatan di dlm bracket coding..
user image
more 9 years ago

madi

ada yg ketinggalan dikit...
end; 
       next;
     end;
    enablecontrols;
 end;
end;
user image
more 9 years ago

daeng

@henry_sys:
@henry_sys: Mgkin Mksd agan spt ini: Ada pendaftar 120 org tetapi Quota hanya 100; 1. Andi dg nilai 70 ...... ...... 99. Joni 70 100. Exi 70 101. xxx nilai 70 (Tidak Lulus krn quota udh penuh)
Mksdnya 1. Andi dg nilai 100 bukan 10
ya seperti tu maksd sy,,,,
more ...
  • Pages:
  • 1
  • 2
Share to
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com