BMS-HOSxP Community

HOSxP => Delphi / Pascal => ข้อความที่เริ่มโดย: dusit ที่ กรกฎาคม 08, 2010, 09:04:17 AM

หัวข้อ: Script Function /ทิปต่าง ๆ ใน HOSxP ครับ
เริ่มหัวข้อโดย: dusit ที่ กรกฎาคม 08, 2010, 09:04:17 AM
อบรมแล้วถ้าไม่ได้ใช้ก็อาจจะลืมครับ
เลยเอา Source code หรือ How to เกี่ยวกับฟังชั่นและการทำงานต่าง ๆ ที่ อ.ชัยพร ได้พัฒนาไว้บน web
มาศึกษาและรู้ถึงการนำไปใช้ และสามารถเอาไปใช้ประโยชน์กับงานได้ครับ ซึ่งมีหลายหลายและมากมายบางตัวอย่าง นำไปทำอย่างอื่นได้หลายชิ้นงานเลยทีเดียว

และขออนุญาติ อ.  ชัยพร ในการนำเสนอด้วย ครับ โดยใช้ Source ต้นแบบของ อ. ชัยพร ครับ
ถ้า อ. ไม่ว่าอะไร ครับ

จุดประสงค์เพื่อให้ขยายและสร้างความรู้ใน Pascal Script รวมถึงการนำไปประยุกต์ใช้งาน

โดยเนื้อหาจะประกอบด้วย
1. ชื่อ Function หรือ เรื่อง
2. ประโยชน์ในการนำไปใช้
3. รูปแบบการนำไปใช้
4. ตัวอย่างการนำไปใช้
5. Source Code เพื่อศึกษา
 
(ข้อความทดลองนะครับ ประมาณนี้)

เริ่มด้วย...ฟังชั่น GetHOSVariable  
หลายครั้งเวลาที่เราจะดูว่า ตัวแปรในระบบในเมนู System Setting เราอาจจะต้องมาพิมพ์
select sys_value from sys_var where sys_name='XXXX'
เราก็จะทราบค่านั้น ๆ

แต่ฟังชั่นนี้ สามารถใช้งานง่ายกว่า แค่เพียง ใช้
var v:string;
v:=GetHOSVariable('XXXX');

รูปแบบ
GetHOSVariable(sn: string): string;
ระบค่าตัวแปร sn=ชื่อตัวแปรในระบบ เช่น surveil_hserv คือรหัสสถานบริการ506
ค่าที่ส่งกลับ = string


ตัวอย่างการนำไปใช้

showmessage := strtoint(gethosvariable('surveil_hserv'));

ตัวอย่างนี้จะส่งค่ารหัสสถานบริการ506 มาแสดงครับ

Source Code ต้นฉบับ
function GetHOSVariable(sn: string): string;
var
  tc: tclientdataset;
begin
  tc := tclientdataset.create(nil);
  try
    with tc do
    begin
      application.processmessages;
      result := '';
      close;

      data :=
        HOSxP_GetDataSet('select count(*) as cc from sys_var where sys_name="' +
        sn
        +
        '"');

      if fieldbyname('cc').asinteger > 0 then
      begin
        close;

        data := HOSxP_GetDataSet('select sys_value from sys_var where sys_name="'
          + sn +
          '"');

        // application.processmessages;
        result := fieldbyname('sys_value').asstring;

        close;
      end
      else
      begin
        close;

        data := HOSxP_GetDataset('select * from sys_var where sys_name="' + sn +
          '"');

        application.processmessages;
        insert;
        fieldbyname('sys_name').asstring := sn;
        post;

        if changecount > 0 then
          HOSxP_UpdateDelta(delta, 'select * from sys_var where sys_name="' + sn
            + '"');

      end;
      close;
    end;

  finally

    tc.free;
  end;

end;

หัวข้อ: Re: Script Function /ทิปต่าง ๆ ใน HOSxP ครับ
เริ่มหัวข้อโดย: LDHP ที่ สิงหาคม 11, 2010, 23:04:31 PM
ขอบคุณมากค่ะ   กำลังคิดหาวิธีที่เอาค่าเซ็ตติ้งเามาใช้พอดีเลย