BMS-HOSxP Community

HOSxP => Report Exchange => ข้อความที่เริ่มโดย: yokyai ที่ พฤศจิกายน 17, 2011, 16:03:59 PM

หัวข้อ: เราเขียนให้รายงานรับ parameter จากไฟล์ text หรือ excel ได้หรือไม่ครับ
เริ่มหัวข้อโดย: yokyai ที่ พฤศจิกายน 17, 2011, 16:03:59 PM
กรณีที่เราอาจจะต้องใช้ inputquery รับค่า แต่เราอยากให้รายงานรับค่าหลายๆค่าเลยที่เดียวเพื่อเรียกข้อมูลมา จะเขียนคำสั่งอย่างไรครับ ตอนนี้ผมเขียนแบบนี้

procedure GlobalOnCreate;
begin
n1:=inputquery('ÃÐºØ HN','ÃÐºØ HN');
n2:=getsqlstringdata('select hn from patient where hn="'+n1+'" ');
n3:=inputquery('ÃÐºØ HN','ÃÐºØ HN');
n4:=getsqlstringdata('select hn from patient where hn="'+n3+'" ');
n5:=inputquery('ÃÐºØ HN','ÃÐºØ HN');
n6:=getsqlstringdata('select hn from patient where hn="'+n5+'" ');
n7:=inputquery('ÃÐºØ HN','ÃÐºØ HN');
n8:=getsqlstringdata('select hn from patient where hn="'+n7+'" ');
n9:=inputquery('ÃÐºØ HN','ÃÐºØ HN');
n10:=getsqlstringdata('select hn from patient where hn="'+n9+'" ');
n11:=inputquery('ÃÐºØ HN','ÃÐºØ HN');
n12:=getsqlstringdata('select hn from patient where hn="'+n11+'" ');
n13:=inputquery('ÃÐºØ HN','ÃÐºØ HN');
n14:=getsqlstringdata('select hn from patient where hn="'+n13+'" ');
n15:=inputquery('ÃÐºØ HN','ÃÐºØ HN');
n16:=getsqlstringdata('select hn from patient where hn="'+n15+'" ');


ChangeReportSQL('select * from patient where hn in ("'+n2+'","'+n4+'","'+n6+'","'+n8+'","'+n10+'","'+n12+'","'+n14+'","'+n16+'") ');

รบกวนพี่ๆแนะนำด้วยครับขอบคุณครับ
หัวข้อ: Re: เราเขียนให้รายงานรับ parameter จากไฟล์ text หรือ excel ได้หรือไม่ครับ
เริ่มหัวข้อโดย: dusit ที่ พฤศจิกายน 17, 2011, 20:37:44 PM
ถ้าใช้ Script มาช่วยจะได้ไหมครับ

ในฟอร์ม จะมีการรับค่า text file หรือ .CSV file
"00000001","00000002","00000003","00000004","00000005","00000006","00000007","00000008"

แล้ว มีปุ่ม Import text File นำข้อมูลมาใส่ใน ตาราง tempreport  โดยกำหนดไอดีว่า xxxx
แล้วตัดข้อมูลใส่ข้อมูลไว้ใน column ชื่อ name1

จากนั้น ปุ่ม ส่ง Parameter ไปพิมพ์ อีกครั้ง


ส่วนใน Report Designer ก็แก้ไขชุดคำสั่งให้เลือกค่าที่ได้บันทึกไว้ใน tempreport โดยการ in

ChangeReportSQL('select * from patient where hn in (select name1 from tempreport where report_id='xxxx');

แค่คิดนะครับ ยังไม่ได้ลองทำ