protected override void GetDataSource(out string DataSource,
                                              out string DataSourceOrder, List <FieldParam> Parameters)
        {
            string strTemp  = string.Empty;
            string strEmpty = FormatSqlValue(string.Empty,
                                             DataType.VarChar);

            UpdateSaldo();

            if (BaseGL.SetingPerusahaan.MultiDepartemen)
            {
                strTemp = string.Concat(Dp.GetSqlIifNoFormat("IdDepartemen=" +
                                                             strEmpty, strEmpty,
                                                             "(SELECT KodeDepartemen FROM Departemen X WHERE X.IdDepartemen=IdDepartemen)"),
                                        " AS KodeDepartemen,");
            }
            if (BaseGL.SetingPerusahaan.MultiProyek)
            {
                strTemp = string.Concat(strTemp, Dp.GetSqlIifNoFormat("IdProyek=" +
                                                                      strEmpty, strEmpty,
                                                                      "(SELECT KodeProyek FROM Proyek X WHERE X.IdProyek=IdProyek)"),
                                        " AS KodeProyek,");
            }

            Parameters.Add(new FieldParam("0", _TglAwal));
            Parameters.Add(new FieldParam("1", _TglAkhir.AddDays(1)));
            Parameters.Add(new FieldParam("2", _Akun));

            DataSource = string.Concat(@"SELECT J.NoJurnal,
                TglJurnal,JenisDokSumber,NoDokSumber,BuatJurnalPembalik,",
                                       strTemp, @"Debit,Kredit,J.Keterangan AS Uraian FROM Jurnal J INNER JOIN JurnalDetil D ON 
                J.NoJurnal=D.NoJurnal WHERE TglJurnal>=@0 AND TglJurnal<@1 
                AND IdAkun=@2");
            DataSourceOrder = "TglJurnal,NoJurnal";
        }
        protected override void GetDataSource(out string DataSource,
                                              out string DataSourceOrder, List <FieldParam> Parameters)
        {
            BaseGL.RingkasanAkun.Update(_TglNeraca2 > _TglNeraca1 ?
                                        _TglNeraca2 : _TglNeraca1);

            string NilaiNeraca1 = Dp.GetSqlCoalesce("Neraca1", 0);
            string NilaiNeraca2 = Dp.GetSqlCoalesce("Neraca2", 0);

            DataSource = string.Concat(
                "SELECT NoAkun,NamaAkun,JenisAkun,UrutanKelompok,KelompokAkun,",
                NilaiNeraca1, " as Neraca1,", NilaiNeraca2, " as Neraca2,",
                NilaiNeraca2, "-", NilaiNeraca1, " as Selisih,",
                Dp.GetSqlIifNoFormat(NilaiNeraca1 + "=0",
                                     Dp.GetSqlIifNoFormat(NilaiNeraca2 + "<0", "-100",
                                                          Dp.GetSqlIifNoFormat(NilaiNeraca2 + ">0", "100", "null")),
                                     string.Concat("(", NilaiNeraca2, "-", NilaiNeraca1, ")*100/",
                                                   Dp.GetSqlAbs(NilaiNeraca1))),
                @" as [% Selisih] FROM 
                (SELECT JenisAkun,UrutanKelompok,KelompokAkun,NoAkun,NamaAkun,Aktif,
                  (SELECT SUM(Debit-Kredit) FROM 
                    (", BaseGL.RingkasanAkun.SqlPosisiAkun(_TglNeraca1, false,
                                                           "1", Parameters),
                @") p WHERE p.IdAkun=q.IdAkun
                  ) as Neraca1,
                  (SELECT SUM(Debit-Kredit) FROM 
                    (", BaseGL.RingkasanAkun.SqlPosisiAkun(_TglNeraca2, false,
                                                           "2", Parameters),
                @") r WHERE r.IdAkun=q.IdAkun
                  ) as Neraca2 FROM Akun q WHERE Posting<>0 AND JenisAkun<>",
                FormatSqlValue(enJenisAkun.Laba__Rugi),
                ") XX WHERE Aktif<>0");
            DataSourceOrder = "UrutanKelompok,NoAkun";
        }