BMS-HOSxP Community
HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: krathokman ที่ ตุลาคม 25, 2011, 12:05:31 PM
-
Report ผมยังทำไม่ค่อยเป็นครับ เปิดมาเจอหน้านี้ ตามรูป ผมสงสัยว่าแหล่ง SQL ของ Report ต้องไปดูที่ไหนครับ
หมายเหตุ Report นี้ผู้ใช้ต้องการเพิ่ม Parameter 1 ตัว คือ HN เพราะตอนนี้มันออกรวมกันครับ
-
ตารางชื่อ tempreport ครับ..ลองดูตาม id ของชื่ีอรายงาน
-
เจอแล้วครับ ขอถามเพิ่มนะครับ ผู้ใช้ต้องการเพิ่ม Parameter 1 ตัว คือ HN ผมต้องเขียน Script เพิ่มใน
รูปที่แนบมาใช่ไหมครับ ผมยังไม่รู้คำสั่งภาษา Pascal รบกวนแนะเป็นแนวทางได้ไหมครับ ว่าจะเพิ่ม Parameter
นี้ได้อย่างไร
-
วาง variable ในเมนูขั้นตอนออกแบบ ก็ได้ครับ..
ประมาณว่า..
Value := GetSQLStringData('select hn from vn_stat where vn="'+DBPipeline['vn]+');
-
วาง variable ในเมนูขั้นตอนออกแบบ ก็ได้ครับ..
ประมาณว่า..
Value := GetSQLStringData('select hn from vn_stat where vn="'+DBPipeline['vn]+');
ถ้าวางไว้ตอนออกแบบ จะได้ HN ออกมาใช่ไหมครับ พอดีผมค้นเจอ HN แล้วอยู่ใน Field Name3
สามารถดึงมาเข้า Report ได้เลยแต่ประเด็นอยู่ที่ว่า ผมอยากให้ ผู้ใช้เลือก HN หรือใส่ HN ไว้ใน Textbox
ที่มารับค่าเหมือนวันที่นะครับ ว่าจะให้ออก HN ที่เท่าไร
-
อันนั้นต้องใช้ Pascalเก็บค่ามาก่อนน่ะครับ.
-
ตัวอย่างการส่งค่า 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 นะครับ
-
ท่าน จขกท...ส่ง Report ที่ต้องการขึ้นมาให้พี่โก้ "สอนหาปลา" กับ Report จริงเลยครับ.. ;D ;D
-
สรุปขั้นตอนที่ทำไปแล้วนะครับ
ใน 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 อะไร หรือผมทำไม่ถูกตรงไหนครับ
หมายเหตุ:ขั้นตอนทั้งหมดเดาครับ ไม่มีพื้นฐานครับเพาะไม่ได้เรียนมาด้านนี้ ผมรู้ว่ามันยาก แต่ถ้ามีโอกาศก็จะไปเรียนกับบริษัทอยู่ แต่ตอนนี้ขอถามซอกแซกไปก่อนนะครับ อย่าเพิ่งลำคาญนะครับ
-
ตอนออกแบบรายงานต้องเปิดโปรแกรม HOSxP ด้วยครับ
-
ได้แล้วครับประมาณนี้
procedure GlobalOnCreate;
var hnr:string;
begin
hnr := InputQuery('ใส่ HN 9 หลัก');
ChangeReportSQL('select * from tempreport where name3 = "'+ hnr +'"') ;
end;
เอาแบบลูกทุ่งไปก่อน แต่มีข้อสงสัยครับว่า
Code ในส่วนนี้เราเขียนภาษ Pascal เข้าไปได้ใช่ไหมครับ แล้วทำไม เวลาผมลงใช้
Read เพื่อเก็บค่าตัวแปรทำไมมัน Error ครับ