BMS-HOSxP Community
HOSxP => การเขียน SQL Script => ข้อความที่เริ่มโดย: Knott ที่ พฤศจิกายน 11, 2008, 13:09:31 PM
-
เราสามารถนำค่าของ variable ที่ได้มา + - * / หรือหาผลรวมได้มั้ยครับ ต้องเขียนลักษณะไหนครับ
-
ตย. variable1.Value+variable2.Value+variable3.Value
ครับ
-
ได้ค่ะ
เช่นถ้าจะบวก
varia1.value+varia2.value+varia3.value
ค่ะ
-
ค่าที่ได้มันเป็นการเอาค่าที่ 1 กับ ค่าที่ 2 มาเรียงกันนะครับ เช่น
valriable1=1 , variable2=2 ==> variable1.value+variable2.value=12
คำตอบไม่ใช่ 3 ครับ แก้ไขอย่างไรครับ
-
ค่าที่ได้มันเป็นการเอาค่าที่ 1 กับ ค่าที่ 2 มาเรียงกันนะครับ เช่น
valriable1=1 , variable2=2 ==> variable1.value+variable2.value=12
คำตอบไม่ใช่ 3 ครับ แก้ไขอย่างไรครับ
...ลองแบบนี้ครับ...
value := variable1.value + variable2.value
... :D...
-
ก็ไม่ได้เหมือนกันคับ เรียงเหมือนเดิมคับ อ.ขวด
-
....ค่าของ variable1 กับ variable2 ต้องเป็น Integer นะครับ ต้องไม่ใช่ String...
....ถ้าเราใช้ GetSQLStringData อยู่ ก็ลองเปลี่ยนเป็น GetSQLIntegerData ดูนะครับ .... :D....
-
ถ้าเรียงแบบนี้แสดงว่าค่าข้างนอกยังเป็น string อยู่แน่ๆเลยค่ะ
ให้ไปเปลี่ยน varaible ที่จะเอามารวมเป็น Integer ด้วยค่ะ
เลือก varaible นั้น แล้วเปลี่ยตรงหัวมุมซ้ายมือที่เป็น string ให้เป็น Integer ค่ะ
แล้วลองดูอีกที
-
ลองเปลี่ยนแล้วก็ไม่หายอ่ะครับ ??? ??? ???
-
ขอ file ตัวรายงานหน่อยครับ
-
ลองดูแบบนี้ ;D
ในส่วนของ การตั้งค่าตัวแปร
a,f:Integer;
---------------------------------
a :=GetSQLIntegerData('select count(a.hn) as chn '+
' from an_stat a, ipt i '+
' where a.an=i.an and '+
' a.dchdate between "'+d1+'" and "'+d2+'" ');
Value := a;
-----------------------
f :=GetSQLIntegerData('select sum(a.admdate)as sadm '+
' from an_stat a, ipt i '+
' where a.an=i.an and '+
' a.dchdate between "'+d1+'" and "'+d2+'" ');
Value :=f;
------------------
Value := f /a ;
หรือลองศึกษาจาก ไฟล์แนบ... ;D
-
พอดีเป็นหัวข้อคล้ายกันเลยขอแจม ของผมเป็นแบบนีครับ
procedure Label13OnPrint;
begin
if (GetSQLStringData('select count(l3.lab_items_code) as PKU '+
'from lab_head h1'+
'left outer join lab_order lo on h1.lab_order_number=lo.lab_order_number'+
'left outer join lab_items li on li.lab_items_code=lo.lab_items_code '+
'left outer join vn_stat v on v.vn=h1.vn'+
'left outer join an_stat a on a.an=h1.vn'+
'left outer join lab_order l3 on l3.lab_order_number=h1.lab_order_number and'+
'l3.lab_items_code in (select lab_items_code from lab_items where ecode = "PKU")'+
'left outer join patient p on p.hn=h1.hn'+
'where h1.order_date between "2007-11-11" and "2007-11-31" and (li.sub_group_list="refer_kk" )'+
'group by h1.lab_receive_number')>0) THEN
Label13.Visible:=true else
Label13.Visible:=false
end;
แล้วขึ้น error ว่า
line3 :incompatible type ครับ
อ้ออีกอย่างครับตรง order_date อยากให้ดึงจาก dialog วันที่โดยตรงได้หรือเปล่าครับ
ขอบคุณครับ ;D
-
พอดีเป็นหัวข้อคล้ายกันเลยขอแจม ของผมเป็นแบบนีครับ
procedure Label13OnPrint;
begin
if (GetSQLStringData('select count(l3.lab_items_code) as PKU '+
'from lab_head h1'+
'left outer join lab_order lo on h1.lab_order_number=lo.lab_order_number'+
'left outer join lab_items li on li.lab_items_code=lo.lab_items_code '+
'left outer join vn_stat v on v.vn=h1.vn'+
'left outer join an_stat a on a.an=h1.vn'+
'left outer join lab_order l3 on l3.lab_order_number=h1.lab_order_number and'+
'l3.lab_items_code in (select lab_items_code from lab_items where ecode = "PKU")'+
'left outer join patient p on p.hn=h1.hn'+
'where h1.order_date between "2007-11-11" and "2007-11-31" and (li.sub_group_list="refer_kk" )'+
'group by h1.lab_receive_number')>0) THEN
Label13.Visible:=true else
Label13.Visible:=false
end;
แล้วขึ้น error ว่า
line3 :incompatible type ครับ
อ้ออีกอย่างครับตรง order_date อยากให้ดึงจาก dialog วันที่โดยตรงได้หรือเปล่าครับ
ขอบคุณครับ ;D
ถ้าใช้ GetSQLStringData
ตรงนี้ >0
น่าจะเป็น >'0' แบบนี้นะครับ
ยังไม่ได้ทดสอบนะครับ
;D ;D ;D
ส่วนเรื่องการรวมค่า variable
ลองใช้ Function GetSQLIntegerData
ร่วมกับการตั้งค่าดังในภาพดูนะครับ
;D ;D ;D
-
ได้แล้วครับ ขอบคุณ คุณ SrwooD มากครับ