BMS-HOSxP Community

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

หัวข้อ: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: niyomstd ที่ มีนาคม 09, 2011, 12:38:25 PM
สอบถามเรื่องการใช้คำสั่ง IF ครับ
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: Bordin ที่ มีนาคม 09, 2011, 13:11:27 PM
สอบถามเรื่องการใช้คำสั่ง IF ครับ

if variable2.value<=250 then
begin
variable2.Value:='ปปป';
end
else
begin
variable2.Value:='ผผผผ';
end;

ดูจาก code แล้วน่าจะเป็นแบบนี้ครับ จริง ๆ ดึงจาก DBpipeLine เลยก็ได้นะครับ

 ;D ;D ;D
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: udomchok ที่ มีนาคม 09, 2011, 13:21:48 PM
สอบถามเรื่องการใช้คำสั่ง IF ครับ

if variable2.value<=250 then
begin
variable2.Value:='ปปป';
end
else
begin
variable2.Value:='ผผผผ';
end;

ดูจาก code แล้วน่าจะเป็นแบบนี้ครับ จริง ๆ ดึงจาก DBpipeLine เลยก็ได้นะครับ

 ;D ;D ;D
รีบแก้เลยนะบ่อดิน


Variable ต้องกำหนดให้เป็น Integer หรือ Single เพื่อให้สามารถนำมาเปรียบเทียบได้
และไม่จำเป็นต้องใส่ begin...end ก็ได้ครับ เพราะมี statement เดียว หลัง then และ หลัง else
ลองทำนะครับ
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: Bordin ที่ มีนาคม 09, 2011, 13:31:56 PM
สอบถามเรื่องการใช้คำสั่ง IF ครับ

if variable2.value<=250 then
begin
variable2.Value:='ปปป';
end
else
begin
variable2.Value:='ผผผผ';
end;

ดูจาก code แล้วน่าจะเป็นแบบนี้ครับ จริง ๆ ดึงจาก DBpipeLine เลยก็ได้นะครับ

 ;D ;D ;D
รีบแก้เลยนะบ่อดิน


Variable ต้องกำหนดให้เป็น Integer หรือ Single เพื่อให้สามารถนำมาเปรียบเทียบได้
และไม่จำเป็นต้องใส่ begin...end ก็ได้ครับ เพราะมี statement เดียว หลัง then และ หลัง else
ลองทำนะครับ

 ;D ;D ;D คิดว่าจะเหมือน C# อิอิ

งั้น แบบนี้ก็ได้

if variable2.value<=250 then
   variable2.Value:='ปปป'
else
   variable2.Value:='ผผผผ';
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: Multithreading ที่ มีนาคม 09, 2011, 13:42:57 PM
น่าจะเป็นแบบนี้นะ  เพราะ  variable2 เป็น number เปล่า
แล้ว อยู่ๆ จะใส่ string ลงไปไม่น่าจะได้นะ
ควรสร้างตัวแปร string มารับผลจาก condition อีกทีดีกว่า
แต่ก็ไม่ชัวร์นะ  ห่าง pascal มานานแสนนาน

if variable2.value<=250 then
begin
variable3.Value:='มาม่าไม่มี';
end
else
begin
variable3.Value:='มาม่าหมด';
end;
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: udomchok ที่ มีนาคม 09, 2011, 13:45:41 PM
;D ;D ;D คิดว่าจะเหมือน C# อิอิ

งั้น แบบนี้ก็ได้

if variable2.value<=250 then
   variable2.Value:='ปปป'
else
   variable2.Value:='ผผผผ';

ถ้ามีหลาย statement ค่อยใส่ begin...end แต่ต้องระวังเรื่อง semi-colon ปิดท้ายให้ถูกด้วยนะ
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: Bordin ที่ มีนาคม 09, 2011, 13:49:33 PM
น่าจะเป็นแบบนี้นะ  เพราะ  variable2 เป็น number เปล่า
แล้ว อยู่ๆ จะใส่ string ลงไปไม่น่าจะได้นะ
ควรสร้างตัวแปร string มารับผลจาก condition อีกทีดีกว่า
แต่ก็ไม่ชัวร์นะ  ห่าง pascal มานานแสนนาน

if variable2.value<=250 then
begin
variable3.Value:='มาม่าไม่มี';
end
else
begin
variable3.Value:='มาม่าหมด';
end;

จริง ๆ ถ้าไม่กำหนด Datatype ของ Variable ไปเป็นอย่างอื่น ที่ไม่ใช่ string ก็ไม่มีปัญหาครับ

if Value=0 then Value:='ศูนย์'; <=== ทำได้ครับ

แต่ถ้ากำหนดเป็นอย่างอื่นไป ก็ไม่ได้ครับ
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: Bordin ที่ มีนาคม 09, 2011, 13:55:13 PM
;D ;D ;D คิดว่าจะเหมือน C# อิอิ

งั้น แบบนี้ก็ได้

if variable2.value<=250 then
   variable2.Value:='ปปป'
else
   variable2.Value:='ผผผผ';

ถ้ามีหลาย statement ค่อยใส่ begin...end แต่ต้องระวังเรื่อง semi-colon ปิดท้ายให้ถูกด้วยนะ

ถ้าภาษา C ในกรณี statement เดียว

if(condition)
   statement 1;
else
  statement 2;

แต่ Pascal

if condition then
   statement 1 <--- ไม่ใส่ Semi-Colon
else
   statement 2;

เอาแบบชัด ๆ และ งง ๆ จะได้ งง ๆ เหมือนผม 555555


หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: udomchok ที่ มีนาคม 09, 2011, 13:59:03 PM
เจอแบบนี้...งง  ??? ??? ??? ...มาแล้ว

procedure DBText11OnGetText(var Text: String);
begin
  If DBPipeline['range_check'] = 'Y' then
    If DBPipeline['result_type'] = 1 then
      Text := ''
    else
    If DBPipeline['result_type'] = 0 then
    begin
      case DBPipeline['sex'] of
      1: If DBPipeline['lab_order_result'] < DBPipeline['range_check_min'] then
          Text := 'L'
        else
          If DBPipeline['lab_order_result'] > DBPipeline['range_check_max'] then
            Text := 'H'
          else
            Text := '';
      2: If DBPipeline['lab_order_result'] < DBPipeline['range_check_min_female'] then
          Text := 'L'
        else
          If DBPipeline['lab_order_result'] > DBPipeline['range_check_max_female'] then
            Text := 'H'
          else
            Text := '';
      end; {end of case}
    end {end of begin}
  else
    Text := '';
end;
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: udomchok ที่ มีนาคม 09, 2011, 14:08:35 PM
แบบนี้ล่ะ...จะงงหรือเปล่า

procedure TitleBeforePrint;
begin

  r_Xray := GetSQLStringData('select normal from xray_report where vn="'+DBPipeline['vn']+'"');
  If r_Xray = '' then
    begin
    lblXrayN.visible := false;
    lblXrayP.visible := false;
    lblXrayT.visible := false;
    end
  else
  If r_Xray = 'Y' then
    begin
    lblXrayN.visible := true;
    lblXrayP.visible := false;
    lblXrayT.visible := false;
    end
  else
  If r_Xray = 'N' then
    begin
    lblXrayN.visible := false;
    lblXrayP.visible := true;
    lblXrayT.visible := false;
    end;

  r_Microfilaria := GetSQLStringData('select lab_order_result from lab_order lo join lab_head lh on lh.lab_order_number = lo.lab_order_number where lo.lab_items_code="652" and lh.vn="'+DBPipeline['vn']+'" and lh.lab_receive_number > 0');
  If r_Microfilaria = '' then
    begin
    lblMicrofilariaN.visible := false;
    lblMicrofilariaP.visible := false;
    lblMicrofilariaT.visible := false;
    end
  else
  If r_Microfilaria = 'Not found' then
    begin
    lblMicrofilariaN.visible := true;
    lblMicrofilariaP.visible := false;
    lblMicrofilariaT.visible := false;
    end
  else
    begin
    lblMicrofilariaN.visible := false;
    lblMicrofilariaP.visible := true;
    lblMicrofilariaT.visible := false;
    end;
 
  r_VDRL := GetSQLStringData('select lab_order_result from lab_order lo join lab_head lh on lh.lab_order_number = lo.lab_order_number where lo.lab_items_code="325" and lh.vn="'+DBPipeline['vn']+'" and lh.lab_receive_number > 0');
  If r_VDRL = '' then
    begin
    lblVDRL_N.visible := false;
    lblVDRL_P.visible := false;
    lblVDRL_T.visible := false;
    end
  else
  If r_VDRL = 'Non reactive' then
    begin
    lblVDRL_N.visible := true;
    lblVDRL_P.visible := false;
    lblVDRL_T.visible := false;
    end
  else
    begin
    lblVDRL_N.visible := false;
    lblVDRL_P.visible := true;
    lblVDRL_T.visible := false;
    end;

  r_Methamp := GetSQLStringData('select lab_order_result from lab_order lo join lab_head lh on lh.lab_order_number = lo.lab_order_number where lo.lab_items_code="692" and lh.vn="'+DBPipeline['vn']+'" and lh.lab_receive_number > 0');
  If r_Methamp = '' then
    begin
    lblMethampN.visible := false;
    lblMethampP.visible := false;
    lblMethampT.visible := false;
    end
  else
  If r_Methamp = 'µÃǨäÁ辺ÊÒÃàʾµÔ´ àÁ·áÍÁ࿵ÒÁÕ¹ ã¹»ÑÊÊÒÇÐ' then
    begin
    lblMethampN.visible := true;
    lblMethampP.visible := false;
    lblMethampT.visible := false;
    end
  else
    begin
    lblMethampN.visible := false;
    lblMethampP.visible := true;
    lblMethampT.visible := false;
    end;
   
  r_UPT := GetSQLStringData('select lab_order_result from lab_order lo join lab_head lh on lh.lab_order_number = lo.lab_order_number where lo.lab_items_code="40" and lh.vn="'+DBPipeline['vn']+'" and lh.lab_receive_number > 0');
  If r_UPT = '' then
    begin
    lblUPT_N.visible := false;
    lblUPT_P.visible := false;
    end
  else
  If UpperCase(r_UPT) = 'NEGATIVE' then
    begin
    lblUPT_N.visible := true;
    lblUPT_P.visible := false;
    end
  else
  If UpperCase(r_UPT) = 'POSITIVE' then
    begin
    lblUPT_N.visible := false;
    lblUPT_P.visible := true;
    end;

end;
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: Bordin ที่ มีนาคม 09, 2011, 14:14:53 PM
เจอแบบนี้...งง  ??? ??? ??? ...มาแล้ว

procedure DBText11OnGetText(var Text: String);
begin
  If DBPipeline['range_check'] = 'Y' then
    If DBPipeline['result_type'] = 1 then
      Text := ''
    else
    If DBPipeline['result_type'] = 0 then
    begin
      case DBPipeline['sex'] of
      1: If DBPipeline['lab_order_result'] < DBPipeline['range_check_min'] then
          Text := 'L'
        else
          If DBPipeline['lab_order_result'] > DBPipeline['range_check_max'] then
            Text := 'H'
          else
            Text := '';
      2: If DBPipeline['lab_order_result'] < DBPipeline['range_check_min_female'] then
          Text := 'L'
        else
          If DBPipeline['lab_order_result'] > DBPipeline['range_check_max_female'] then
            Text := 'H'
          else
            Text := '';
      end; {end of case}
    end {end of begin}
  else
    Text := '';
end;

อิอิ IF แล้วมา CASE

ผมไม่ไหวละคร๊าบบบบ 55555

in C++

if(....) {
  switch(xx) {
     case 1: ...
     case 2:...
  }
}

 ;D ;D ;D
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: udomchok ที่ มีนาคม 09, 2011, 14:16:59 PM
อิอิ IF แล้วมา CASE

ผมไม่ไหวละคร๊าบบบบ 55555

in C++

if(....) {
  switch(xx) {
     case 1: ...
     case 2:...
  }
}

 ;D ;D ;D

มันต้องใช้อ่ะดิ เลยต้องเขียนแบบนี้
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: Bordin ที่ มีนาคม 09, 2011, 14:27:35 PM
อิอิ IF แล้วมา CASE

ผมไม่ไหวละคร๊าบบบบ 55555

in C++

if(....) {
  switch(xx) {
     case 1: ...
     case 2:...
  }
}

 ;D ;D ;D

มันต้องใช้อ่ะดิ เลยต้องเขียนแบบนี้

อิอิ เป็นคนที่มีเงื่อนไข ในการทำ รายงาน มาก
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: udomchok ที่ มีนาคม 09, 2011, 14:32:43 PM
อิอิ เป็นคนที่มีเงื่อนไข ในการทำ รายงาน มาก
เงื่อนไขมันมากับข้อมูล ต้องทำให้ถูกด้วย
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: niyomstd ที่ มีนาคม 09, 2011, 15:09:47 PM
ขอบคุณครับจะทดลองครับได้ผลยังไงจะแจ้งให้ทราบอีกทีครับ  ;D ;D
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: niyomstd ที่ มีนาคม 09, 2011, 15:35:52 PM
มีตัวอย่างการใช้งานมั้ยครับ  ;D :D ;)
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: Bordin ที่ มีนาคม 09, 2011, 16:12:16 PM
มีตัวอย่างการใช้งานมั้ยครับ  ;D :D ;)

ตัวอย่างอะไรครับ...  ??? ???
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: Bond_007 ที่ มีนาคม 09, 2011, 16:15:28 PM
ไม่รู้จะถูกหรือเปล่าครับ ผมทำแบบนี้
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: niyomstd ที่ มีนาคม 10, 2011, 11:42:20 AM
ืทดสอบการเขียน IF ในโปรแกรม check up ใน HoSxp แ้ล้า ค่าที่ได้ออกมา ไม่ถูกต้อง
จะต้องกำหนดอย่างไรครับ
  If  DBPipeline['rpt1'] >'12.8'  then
   begin
   variable1.text := '»¡µÔ';
end
else
begin
 variable1.text := '¼Ô´»¡µÔ';
end;
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: udomchok ที่ มีนาคม 10, 2011, 11:50:15 AM
ืทดสอบการเขียน IF ในโปรแกรม check up ใน HoSxp แ้ล้า ค่าที่ได้ออกมา ไม่ถูกต้อง
จะต้องกำหนดอย่างไรครับ
  If  DBPipeline['rpt1'] >'12.8'  then
   begin
   variable1.text := '»¡µÔ';
end
else
begin
 variable1.text := '¼Ô´»¡µÔ';
end;
ส่งรายงานเป็น .cds มาดูครับ
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: niyomstd ที่ มีนาคม 10, 2011, 11:54:37 AM
จัดไปครับ
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: Bordin ที่ มีนาคม 10, 2011, 14:28:25 PM
ลองใช้ If StrToFloat( DBPipeline['rpt1'] ) >'12.8'  then..

ดูนะครับ เพราะ field rpt1 เป็น string

 :)
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: niyomstd ที่ มีนาคม 10, 2011, 14:32:51 PM
ใช้คำสั่งนี้แล้ว Error ครับท่านบอดิน
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: Bordin ที่ มีนาคม 10, 2011, 14:39:09 PM
ใช้คำสั่งนี้แล้ว Error ครับท่านบอดิน



 ;D ;D ;D


If  StrToCurr(DBPipeline['rpt1']) >12.8  then

ลองแบบนี้ดูครับ  ;D ;D ;D น่าจะได้ เมื่อกี้ไม่ได้ทดสอบ
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: niyomstd ที่ มีนาคม 10, 2011, 14:46:08 PM
สมมุติว่าค่า ปกติ อยู่ระหว่าง 12.9-17.5 เราจะใช้ IF อย่างไรครับ
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: Bordin ที่ มีนาคม 10, 2011, 14:55:07 PM
สมมุติว่าค่า ปกติ อยู่ระหว่าง 12.9-17.5 เราจะใช้ IF อย่างไรครับ


If  StrToCurr(DBPipeline['rpt1']) >12.8  then

ลองแบบนี้ดูครับ     น่าจะได้ เมื่อกี้ไม่ได้ทดสอบ

if (StrToCurr(DBPipeLine['rpt1']) >= 12.9) and (StrToCurr(DBPipeLine['rpt1']) <= 17.5) then

 ;D ;D
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: niyomstd ที่ มีนาคม 10, 2011, 15:04:40 PM
ขอบคุณมากครับท่าน บ่อดิน
ดูผลงานครับ
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: Bordin ที่ มีนาคม 10, 2011, 15:13:17 PM
ขอบคุณมากครับท่าน บ่อดิน
ดูผลงานครับ


 ;D ;D ;D

จริง ๆ เขียนแค่นี้ก็ได้ครับ

if (StrToCurr(DBPipeLine['rpt1']) >= 12.9) and (StrToCurr(DBPipeLine['rpt1']) <= 17.5) then
    variable1.text := 'ปกติ'
else
    variable1.text := 'ผิดปกติ';

ไม่ต้องมี begin...end กับ statement เดียวครับ  ;D ;D

code จะได้สั้นลง

หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: udomchok ที่ มีนาคม 10, 2011, 16:17:57 PM
ขอบคุณท่านบ่อ ผมขึ้นประชุมช่วงบ่ายเลยไม่ได้มาตอบให้
หัวข้อ: Re: สอบถามเรื่องการใช้คำสั่ง IF ครับ
เริ่มหัวข้อโดย: Bordin ที่ มีนาคม 10, 2011, 16:32:59 PM
ขอบคุณท่านบ่อ ผมขึ้นประชุมช่วงบ่ายเลยไม่ได้มาตอบให้

ยินดีครับ  ;D ;D