BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: woranop ที่ ธันวาคม 06, 2011, 20:17:25 PM

หัวข้อ: เรียงลำดับในรายงาน
เริ่มหัวข้อโดย: woranop ที่ ธันวาคม 06, 2011, 20:17:25 PM
เรียนสอบถามเพื่อนสมาชิก HOSxP ครับ ผมสร้างรายงานผู้พิการ โดยให้เรียงลำดับจำนวนผู้ป่วยในรายงานโดยใช้ Dbcal แบบ Count   ครับ แต่ติดปัญหาคือ ลำดับ มันจะกระโดดข้ามไป ถ้าหากข้อมูลผู้ป่วยท่านนั้นมีรายละเอียดมากกว่า 1 รายการครับ (ผมใช้ Group ใน Report เป็นตัวแยก CID  ส่วน Detail เป็นรายละเอียดผู้พิการ) เรามีวิธีแก้ปัญหาอย่างไรหรือไม่ครับ เรียนสอบถามครับผม
หัวข้อ: Re: เรียงลำดับในรายงาน
เริ่มหัวข้อโดย: เกื้อกูล ครับ.. ที่ ธันวาคม 06, 2011, 20:39:48 PM
รายการคนที่ 7 อาจไม่มีรายละเอียด ลองส่ง cds รายงานขึ้นบอร์ดน่าจะง่ายกว่าครับ..
หัวข้อ: Re: เรียงลำดับในรายงาน
เริ่มหัวข้อโดย: woranop ที่ ธันวาคม 06, 2011, 21:08:43 PM
เรียนคุณ เกื้อกูล ครับ ผมส่งรายงานให้ช่วยพิจารณาครับ
หัวข้อ: Re: เรียงลำดับในรายงาน
เริ่มหัวข้อโดย: realaerm ที่ ธันวาคม 06, 2011, 21:29:11 PM
เป็นเพราะว่าข้อมูล person ที่ select มามันว่างรึปล่าวครับ

ปล.เดานะครับ  ;D
หัวข้อ: Re: เรียงลำดับในรายงาน
เริ่มหัวข้อโดย: woranop ที่ ธันวาคม 06, 2011, 21:31:44 PM
ข้อมูลที่ Select ก็ไม่มีค่าว่างครับ มันจะกระโดดตอนที่มี detail มากกว่า 1 รายการครับ
หัวข้อ: Re: เรียงลำดับในรายงาน
เริ่มหัวข้อโดย: realaerm ที่ ธันวาคม 06, 2011, 22:11:25 PM
ข้อมูลที่ Select ก็ไม่มีค่าว่างครับ มันจะกระโดดตอนที่มี detail มากกว่า 1 รายการครับ

อ้อ ตรงนั้นมันอยู่ใน group header รึปล่าวครับ

พอมันมีมากกว่า 1 รายการมันเลยไม่แสดงข้อมูล

ถ้าใช่ให้ลองย้ายมาอยู่ใน Detail ให้หมดครับ

ปล.เดาอีกครั้งครับ ;D
หัวข้อ: Re: เรียงลำดับในรายงาน
เริ่มหัวข้อโดย: udomchok ที่ ธันวาคม 06, 2011, 22:13:27 PM
รายการที่ 6 มีความพิการ 2 แบบ มันเลยข้ามไป
ต้องไปนับใหม่ นับที่คน มิใช่นับตามความพิการ

รายงานสวยดีนะ  :) :)
หัวข้อ: Re: เรียงลำดับในรายงาน
เริ่มหัวข้อโดย: เกื้อกูล ครับ.. ที่ ธันวาคม 06, 2011, 23:22:08 PM
รายการที่ 6 มีความพิการ 2 แบบ มันเลยข้ามไป
ต้องไปนับใหม่ นับที่คน มิใช่นับตามความพิการ

รายงานสวยดีนะ  :) :)

นับ  1  นับ  2  นับ 3 ...บ่าวสาวยกน้ำชา... ;D ;D ;D ;D
หัวข้อ: Re: เรียงลำดับในรายงาน
เริ่มหัวข้อโดย: เกื้อกูล ครับ.. ที่ ธันวาคม 06, 2011, 23:32:19 PM
ลองเพิ่ม select pd.person_deformed_id ใน main sql หรือยังครับ
หัวข้อ: Re: เรียงลำดับในรายงาน
เริ่มหัวข้อโดย: woranop ที่ ธันวาคม 07, 2011, 08:45:53 AM
เรียนคุณ เกื่อกูล ครับ ผมลองเพิ่ม select pd.person_deformed_id ใน main sql เรียบร้อยแล้วครับ แล้วทดลอง เปลี่ยน group  เป็นpd.person_deformed_id  ก็ยังไม่ได้ครับ  เท่าที่สังเกตรายชื่อใดที่มีรายละเอียดมากกว่า 1 มันจะกระโดดครับ (รายชื่อเป็น Group รายละเอียดเป็น Detail)
หัวข้อ: Re: เรียงลำดับในรายงาน
เริ่มหัวข้อโดย: jackkawave ที่ ธันวาคม 07, 2011, 09:15:46 AM
รายงานเทพ จากพี่หนึ่ง  ขอด้วยนะครับ อิๆๆ ;D ;D
หัวข้อ: Re: เรียงลำดับในรายงาน
เริ่มหัวข้อโดย: Admin banrai ที่ ธันวาคม 07, 2011, 10:09:19 AM
เป็นเช่นกันครับ เคยเขียนรายงาน รบ.1ก01 ก็พบว่ามีปัญหาดังกล่าว
ทั้งนี้อันเนื่องมาจากกการเขียนรานยงานแบบใช้ group จะทำให้พบกับปัญหาดังกล่าวครับ
หัวข้อ: Re: เรียงลำดับในรายงาน
เริ่มหัวข้อโดย: Khuad ที่ ธันวาคม 07, 2011, 11:26:40 AM

... การ count ของตัว DBCalc มันจะนับเรียงตามจำนวนแถวของข้อมูลใน Detail ครับ

   ดังนั้นถ้าเรา group ไว้ แล้วใน group มีข้อมูลใน detail อยู่หลายแถว การ count ของตัว DBCalc ที่วางไว่ในส่วนของ Group Header ก็จะข้ามไปเท่าจำนวนแถวใน detail นั่นแหละครับ ...  :D ....

หัวข้อ: Re: เรียงลำดับในรายงาน
เริ่มหัวข้อโดย: Khuad ที่ ธันวาคม 07, 2011, 11:28:41 AM

... กรณีนี้ หากต้องการให้เลขลำดับเรียงตามบุคคล อาจใช้วิธีการ เปลี่ยนรูปแบบการสร้างรายงานใหม่ครับ

   โดยทำคำสั่งรายงานใหม่ ให้ข้อมูลของผู้พิการที่ได้ไม่ซ้ำซ้อนกันครับ  ก็จะทำให้ข้อมูลของตัวบุคคลที่จะไปแสดงที่ตัวรายงาน ในส่วนของ detail ไม่ซ้ำกัน
   ซึ่งก็ทำได้โดย  ในคำสั่งหลักของรายงาน ยังไม่ต้องไป join ข้อมูลจาก ตาราง person_deformed_detail ซึ่งเป็นรายละเอียดความพิการมาครับ

   ในส่วนของยรายละเอียดของความพิการนั้น ให้เราใช้การนำข้อมูลมาแสดงด้วย SubReport ครับ 
   ทำได้โดยการวาง SubReport ไว้ในส่วนของ detail ส่วนคำสั่งใน SubReport ก็ใช้ข้อมูลของ person_deformed_id เป็นตัวเชื่อม ระหว่าง MainReport กับ SubReport ครับ

   ถ้าใช้วิธีนี้ ก็จะสามารถใช้การ count ของตัว DBCalc ให้แสดงผลได้อย่างที่ต้องการครับ ...  :D ...

หัวข้อ: Re: เรียงลำดับในรายงาน
เริ่มหัวข้อโดย: woranop ที่ ธันวาคม 07, 2011, 21:46:46 PM
เรียน คุณ Khuad ผมลองปรับรายงานเป็นแบบ SubReport ตามที่แนะนำแล้วครับ พบว่าในส่วน Main Report สามารถเรียงลำดับได้ครับตามภาพ แต่ในส่วน Detail ที่เป็น Subreport มันแสดงออกมาเหมือนกันทั้งหมดเลยครับ เหมือนมันไม่เปลี่ยนตาม person_deformed_id ใน Main Report เลยครับ ก็เลยส่งสัยว่าใน Subreport มัน เป็นแบบ 1:1 หรือ 1:many กับ MainReport หรือมีวิธีอื่นแนะนำครับ

ChangeReportSQL('select pd.person_deformed_id as AA ,p.person_id,concat(p.pname," ",p.fname," ",p.lname) as Fullname,p.cid,p.birthdate,p.age_y,p.age_m,p.age_d,h.address,h.road,v.village_moo,v.village_name,p2.person_discharge_name ,pd.register_date,pd.certificate_date,pd.deformed_no,pdrt.person_deformed_refer_type_name  '+
                              'from person_deformed  pd   '+
                              'join person p on p.person_id = pd.person_id  '+
                              'join person_discharge p2 on p2.person_discharge_id = p.person_discharge_id   '+
                              'join house h on h.house_id = p.house_id    '+
                              'join village v on v.village_id = h.village_id   '+
                              'left join person_deformed_refer_type  pdrt on pdrt.person_deformed_refer_type_id = pd.person_deformed_refer_type_id  '+
                              ''+TypeVillage+' order by v.village_id ');



ChangeDBPipeLineLink1SQL('select pdd.person_deformed_id,d.deformed_name,pdd.deformed_date,pdt.person_deformed_type_name,pdd.organ  '+
                              'from person_deformed_detail pdd   '+
                              'left join person_deformed_type pdt  on pdt.person_deformed_type_id = pdd.person_deformed_type_id                         '+
                              'left join deformed d on d.deformed_id = pdd.deformed_id where  pdd.person_deformed_id = '+DBPipeline['AA']+' ');


 
หัวข้อ: Re: เรียงลำดับในรายงาน
เริ่มหัวข้อโดย: Khuad ที่ ธันวาคม 07, 2011, 22:22:42 PM

เรียน คุณ Khuad ผมลองปรับรายงานเป็นแบบ SubReport ตามที่แนะนำแล้วครับ พบว่าในส่วน Main Report สามารถเรียงลำดับได้ครับตามภาพ ..........................................
 

... เดี๋ยวต้องรอสักพัก นะครับ .....  :D ....
หัวข้อ: Re: เรียงลำดับในรายงาน
เริ่มหัวข้อโดย: pop_hosxp ที่ ธันวาคม 07, 2011, 22:23:36 PM
น่าจะยังไม่ได้เพิ่มชุดคำสั่งใน band detail ตรง beforeprint

ให้เลือกเมนู View – Event
แล้วเลือก Band Detail คลิกขวาตรง BeforePrint แล้ว เขียนชุดคำสั่ง

โค๊ด: Pascal
  1. procedure DetailBeforePrint;
  2. begin
  3. ChangeDBPipeLineLink1SQL('select pdd.person_deformed_id,d.deformed_name,pdd.deformed_date,pdt.person_deformed_type_name,pdd.organ  '+
  4. ' from person_deformed_detail pdd   '+
  5. ' left join person_deformed_type pdt  on pdt.person_deformed_type_id = pdd.person_deformed_type_id                         '+
  6. ' left join deformed d on d.deformed_id = pdd.deformed_id where  pdd.person_deformed_id = '+DBPipeline['AA']+' ');
  7. end;
หัวข้อ: Re: เรียงลำดับในรายงาน
เริ่มหัวข้อโดย: Khuad ที่ ธันวาคม 07, 2011, 22:43:14 PM

... ได้ อ.ป๊อบ มาช่วยตอบให้แล้วครับ ...  :D ....


... พอดีไปทำตัวอย่างรายงานมาให้ลองดูน่ะครับ 

    อย่างที่ อ.ป๊อบบอกครับ เนื่องจากเราต้องวาง SubReport ไว้ในส่วนของ Detail ซึ่งข้อมูลที่จะถูกนำมาแสดงใน SubReport นี้ก็ต้องเปลี่ยนไปตามตัวแปร ที่อยู่ในแต่ละแถวของรายงานใน Detail ด้วยครับ
    ซึ่งก็ต้องไปวางคำสั่งไว้ที่ส่วนของ Detail นั่นแหละครับ จะตรง BeforeGenerate หรือ BeforePrint ก็ได้ครับ ตามที่ อ.ป๊อบ ให้ตัวอย่างไว้


    ผมแนบรายงานที่ผมทำเป็นตัวอย่างไว้ด้านล่างครับ ...  :D ....
หัวข้อ: Re: เรียงลำดับในรายงาน
เริ่มหัวข้อโดย: woranop ที่ ธันวาคม 07, 2011, 23:59:55 PM
ก่อนอื่นขอขอบคุณ อ.ป๊อบ อ. Khuad อ.เกื้อกูล  และเพื่อนสมาชิก HosXp ทุกท่าน ที่ให้คำแนะนำในการทำรายงานครับ ซึ่งตอนนี้สามารถทำได้แล้วครับโดยใช้ Subreport ตาม อ. Khuad และ อ.ป๊อบ แนะนำครับ ซึ่งเป็นความรู้ใหม่ของผมจริง ๆ ในเรื่องการทำ Subreport และต้องมี Event ใน Subreport  ส่งสัยโอกาสหน้าต้องสมัครไปเรียนการทำรายงาน Report ที่ HOSxP และละครับ (หลังจาก อ.โก้ ได้ให้ความกรุณามาสอนการทำ Report เบื้องต้น ที่ รพ. ครับ) จะได้เก่งเหมือนรุ่นพี่ทั้งหลาย    ส่วนรายงานผมได้ Uplode ไว้น่ะครับ เพื่อท่านได้จะได้นำไปใช้เป็นวิทยาทานครับ
หัวข้อ: Re: เรียงลำดับในรายงาน
เริ่มหัวข้อโดย: woranop ที่ ธันวาคม 08, 2011, 00:27:53 AM
Upload รายงานใหม่น่ะครับ สักครู่นี้มีปัญหานิดหน่อยครับ