ASP.NET Web API (.NET Framework 4.7.2) untuk membuat dan menampilkan daftar Crystal Reports. API ini terhubung ke SAP HANA (atau database lain melalui DSN) dan mengembalikan laporan dalam format string Base64.
- Pembuatan Laporan: Konversi file
.rptlangsung menjadi string PDF Base64. - Daftar Template: Menampilkan daftar file laporan yang tersedia secara dinamis dari folder tertentu.
- Konfigurasi Aman: Kredensial sensitif (DSN, User, Password) disimpan di file eksternal yang dipisahkan dan diabaikan oleh Git.
- Visual Studio 2022 atau versi terbaru.
- .NET Framework 4.7.2.
- Crystal Reports Runtime (Versi 13.0.4000.0 atau yang kompatibel).
- SAP HANA Client / ODBC Driver (jika menggunakan SAP HANA).
- Clone repositori ini:
git clone https://github.com/username-anda/CrystalReportAPI.git cd CrystalReportAPI - Buka file
CrystalReportAPI.slnx(atau.csproj) menggunakan Visual Studio. - Restore paket NuGet:
nuget restore
Demi keamanan, kredensial database tidak disimpan di Web.config. Anda harus membuat file bernama web.secrets.config di dalam folder proyek CrystalReportAPI.
Buat file di CrystalReportAPI/web.secrets.config dengan format berikut:
<appSettings>
<add key="DSN_NAME" value="NAMA_DSN_ANDA" />
<add key="DB_USER" value="USER_DB_ANDA" />
<add key="DB_PASSWORD" value="PASSWORD_DB_ANDA" />
</appSettings>Important
File ini sudah terdaftar di .gitignore agar tidak sengaja ter-push ke repositori publik.
Mengambil string Base64 dari laporan yang digenerate.
- URL:
GET /api/report/{schema}/{folder}/{rptFile}/{docEntry} - Contoh:
GET /api/report/SBO_LIVE/INVOICE/INV_A1/12345
Menampilkan semua file .rpt dalam sub-folder tertentu berdasarkan schema di dalam direktori Layouts.
- URL:
GET /api/template/{schemadb}/{folderName} - Contoh:
GET /api/template/SBO_LIVE/SO(Akan list file diLayouts/SBO_LIVE/SO)
Proyek ini dilengkapi dengan halaman dokumentasi API otomatis:
- URL:
GET /Help
Controllers/: Logika endpoint API.Services/: Logika bisnis untuk pemrosesan Crystal Reports.Helpers/: Utilitas untuk koneksi database dan konfigurasi.Layouts/: Folder tempat menyimpan file laporan Crystal Report (.rpt) Anda.- Struktur:
Layouts/{NamaSchema}/{Kategori}/(Contoh:Layouts/SBO_LIVE/SO/)
- Struktur:
Anda dapat menambah atau mengganti file .rpt di server production tanpa harus build ulang aplikasi. Aplikasi akan memindai folder secara dinamis setiap kali ada request.
- Struktur Folder: Simpan file
.rptAnda di dalam sub-folder yang sesuai berdasarkan schema (misal:Layouts/SBO_LIVE/SO/). - Izin Akses: Pastikan user yang menjalankan IIS (AppPool) memiliki izin Read ke file baru tersebut.
- Pengaturan Visual Studio: Agar file
.rptotomatis ikut saat dideploy di masa depan:- Masukkan file ke dalam project.
- Klik kanan file > Properties.
- Set Build Action ke
Content. - Set Copy to Output Directory ke
Copy if newer.
Proyek ini memisahkan rahasia (secrets) menggunakan file appSettings eksternal. JANGAN PERNAH memasukkan file web.secrets.config ke dalam version control.