نیازی نیست که برای هر فیلد ds رو پر کرد!!!
با این کار فقط آخرین مقدار توی ds قرار می گیره.
شما به یه دستور کل ds رو fill کنین و بعد این ds رو به گزارشتون رد کنین. البته توی این کد شما اصلا پارامتر ندارین.
بهتون پیشنهاد میدم این لینک رو مطالعه کنین:
https://barnamenevis.org/showthread.php?t=64328

موفق باشید