BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: krathokman ที่ ตุลาคม 25, 2011, 12:05:31 PM

หัวข้อ: แหล่งข้อมูลของ report
เริ่มหัวข้อโดย: krathokman ที่ ตุลาคม 25, 2011, 12:05:31 PM
Report ผมยังทำไม่ค่อยเป็นครับ เปิดมาเจอหน้านี้ ตามรูป ผมสงสัยว่าแหล่ง SQL ของ Report ต้องไปดูที่ไหนครับ
หมายเหตุ Report นี้ผู้ใช้ต้องการเพิ่ม Parameter 1 ตัว คือ HN  เพราะตอนนี้มันออกรวมกันครับ
หัวข้อ: Re: แหล่งข้อมูลของ report
เริ่มหัวข้อโดย: เกื้อกูล ครับ.. ที่ ตุลาคม 25, 2011, 13:01:02 PM
ตารางชื่อ tempreport ครับ..ลองดูตาม id ของชื่ีอรายงาน
หัวข้อ: Re: แหล่งข้อมูลของ report
เริ่มหัวข้อโดย: krathokman ที่ ตุลาคม 25, 2011, 13:56:45 PM
เจอแล้วครับ ขอถามเพิ่มนะครับ  ผู้ใช้ต้องการเพิ่ม Parameter 1 ตัว คือ HN ผมต้องเขียน Script เพิ่มใน
รูปที่แนบมาใช่ไหมครับ ผมยังไม่รู้คำสั่งภาษา Pascal รบกวนแนะเป็นแนวทางได้ไหมครับ ว่าจะเพิ่ม Parameter
นี้ได้อย่างไร
หัวข้อ: Re: แหล่งข้อมูลของ report
เริ่มหัวข้อโดย: เกื้อกูล ครับ.. ที่ ตุลาคม 25, 2011, 14:06:22 PM
วาง variable ในเมนูขั้นตอนออกแบบ ก็ได้ครับ..
ประมาณว่า..

  Value :=      GetSQLStringData('select hn from vn_stat where vn="'+DBPipeline['vn]+');
หัวข้อ: Re: แหล่งข้อมูลของ report
เริ่มหัวข้อโดย: krathokman ที่ ตุลาคม 26, 2011, 09:47:09 AM
วาง variable ในเมนูขั้นตอนออกแบบ ก็ได้ครับ..
ประมาณว่า..

  Value :=      GetSQLStringData('select hn from vn_stat where vn="'+DBPipeline['vn]+');

ถ้าวางไว้ตอนออกแบบ จะได้ HN ออกมาใช่ไหมครับ พอดีผมค้นเจอ HN แล้วอยู่ใน Field Name3
สามารถดึงมาเข้า Report ได้เลยแต่ประเด็นอยู่ที่ว่า ผมอยากให้ ผู้ใช้เลือก HN หรือใส่ HN ไว้ใน Textbox
ที่มารับค่าเหมือนวันที่นะครับ ว่าจะให้ออก HN ที่เท่าไร
หัวข้อ: Re: แหล่งข้อมูลของ report
เริ่มหัวข้อโดย: เกื้อกูล ครับ.. ที่ ตุลาคม 26, 2011, 09:49:30 AM
อันนั้นต้องใช้ Pascalเก็บค่ามาก่อนน่ะครับ.
หัวข้อ: Re: แหล่งข้อมูลของ report
เริ่มหัวข้อโดย: udomchok ที่ ตุลาคม 26, 2011, 11:30:22 AM
ตัวอย่างการส่งค่า HN โดยผู้ใช้ป้อนเอง มี 2 แบบ
1. ใช้ InputQuery เพื่อสร้าง Textbox สำหรับการป้อนค่าโดยผู้ใช้
  repeat
    strHN := InputQuery('ป้อน HN ที่ต้องการ', 'ใส่ HN 7 หลัก');
  until GetSQLIntegerData('select count(hn) as count_hn from patient where hn="'+strHN+'"')= 1;

2. ใช้ function SearchOPDPatient
strHN := SearchOPDPatient;


-การนำค่าที่ได้รับมาใช้
  ChangeReportSQL('select hn, concat(pname,fname," ",lname) as pt_name, birthday '+
        'from patient '+
        'where hn = "'+strHN+'"');

ลอง apply นะครับ
หัวข้อ: Re: แหล่งข้อมูลของ report
เริ่มหัวข้อโดย: เกื้อกูล ครับ.. ที่ ตุลาคม 26, 2011, 11:35:02 AM
ท่าน จขกท...ส่ง Report ที่ต้องการขึ้นมาให้พี่โก้ "สอนหาปลา" กับ Report จริงเลยครับ.. ;D ;D
หัวข้อ: Re: แหล่งข้อมูลของ report
เริ่มหัวข้อโดย: krathokman ที่ ตุลาคม 27, 2011, 09:38:40 AM
สรุปขั้นตอนที่ทำไปแล้วนะครับ
ใน  Declaration  สร้างตัวแปร
        mon11:double;   หมายเหตุ ของเดิมที่มีอยู่แล้ว
         hn1r:string;       ตัวแปรที่ผมสร้างใหม่

ใน EventOnCreate  ผมเขียนแบบนี้
procedure GlobalOnCreate;
begin
   hn1r := SearchOPDPatient;
end;

ใน EventHandle ผมเขียนอย่างนี้
procedure Variable3OnCalc(var Value: Variant);
begin

  Value :=ChangeReportSQL('select name3  '+
        'from tempreport  '+
        'where name3 = "'+hn1r+'"');

end;

เวลา Previews Report มันขึ้นตามรูป ต้อง  Register อะไร หรือผมทำไม่ถูกตรงไหนครับ
หมายเหตุ:ขั้นตอนทั้งหมดเดาครับ ไม่มีพื้นฐานครับเพาะไม่ได้เรียนมาด้านนี้ ผมรู้ว่ามันยาก แต่ถ้ามีโอกาศก็จะไปเรียนกับบริษัทอยู่  แต่ตอนนี้ขอถามซอกแซกไปก่อนนะครับ  อย่าเพิ่งลำคาญนะครับ
หัวข้อ: Re: แหล่งข้อมูลของ report
เริ่มหัวข้อโดย: pop_hosxp ที่ ตุลาคม 27, 2011, 10:00:17 AM
ตอนออกแบบรายงานต้องเปิดโปรแกรม HOSxP ด้วยครับ
หัวข้อ: Re: แหล่งข้อมูลของ report
เริ่มหัวข้อโดย: krathokman ที่ ตุลาคม 31, 2011, 16:20:14 PM
ได้แล้วครับประมาณนี้
procedure GlobalOnCreate;
    var hnr:string;
begin
      hnr := InputQuery('ใส่ HN 9 หลัก');
       ChangeReportSQL('select * from tempreport where name3 = "'+  hnr +'"')   ;

end;

เอาแบบลูกทุ่งไปก่อน  แต่มีข้อสงสัยครับว่า
Code ในส่วนนี้เราเขียนภาษ Pascal เข้าไปได้ใช่ไหมครับ  แล้วทำไม เวลาผมลงใช้
Read เพื่อเก็บค่าตัวแปรทำไมมัน Error ครับ