BMS-HOSxP Community

HOSxP => Delphi / Pascal => ข้อความที่เริ่มโดย: ittipol ที่ พฤศจิกายน 14, 2011, 10:57:20 AM

หัวข้อ: Delphi : Record
เริ่มหัวข้อโดย: ittipol ที่ พฤศจิกายน 14, 2011, 10:57:20 AM
อาจารย์ทุกท่านนะครับ
อาจารย์ครับคือผมไปเขียนโปรแกรม
แต่เวลาบันทึกข้อมูล ข้อมูลกับไม่ไปเพิ่มจากลำดับหล้าสุดที่ทำไว้ครับ
ไปแสดงผลที่ลำดับ 0 ครับไม่ทราบว่าต้องแก้ไขยังงับครับ

procedure TCarAddForm.cxButtonRecordClick(Sender: TObject);
begin//record
  if MyQueryCarLog.State in ([dsInsert,dsEdit]) then
      MyQueryCarLog.edit;
      MyQueryCarLog.fieldByName('car_log_id').AsInteger;
      MyQueryCarLog.Post;
    ShowMessage('เพิ่มข้อมูลสำเร็จ');
    Close;
end;
หัวข้อ: Re: Delphi : Record
เริ่มหัวข้อโดย: manoi ที่ พฤศจิกายน 14, 2011, 11:08:36 AM
ไม่ต้อง edit ซ้ำครับ ลองแก้เป็นแบบนี้นะครับ

procedure TCarAddForm.cxButtonRecordClick(Sender: TObject);
begin//record
  if MyQueryCarLog.State in ([dsInsert,dsEdit]) then
    begin
      MyQueryCarLog.fieldByName('car_log_id').AsInteger;
   end;
      MyQueryCarLog.Post;
    ShowMessage('เพิ่มข้อมูลสำเร็จ');
    Close;
end;
หัวข้อ: Re: Delphi : Record
เริ่มหัวข้อโดย: dusit ที่ พฤศจิกายน 14, 2011, 12:50:03 PM
procedure TCarAddForm.cxButtonRecordClick(Sender: TObject);
begin//record
  if MyQueryCarLog.State in ([dsInsert,dsEdit]) then
    begin

      MyQueryCarLog.fieldByName('car_log_id').AsInteger:=getserialnumber('car_log_id');
   end;
      MyQueryCarLog.Post;
    ShowMessage('เพิ่มข้อมูลสำเร็จ');
    Close;
end;

เหมือน อ.ชัยพร ครับ เพิ่มเติม รับค่า car_log_id +1 จากฟังชั่นของ อ.ครับ
getserialnumber('car_log_id'); // จะเพิ่มค่า +1 ให้กับตัวแปรชื่อใน 'xxx' อ. สร้าง function ไว้แล้ว นำไปใช้ได้เลยครับ
หัวข้อ: Re: Delphi : Record
เริ่มหัวข้อโดย: ittipol ที่ พฤศจิกายน 14, 2011, 15:23:32 PM
ไม่ต้อง edit ซ้ำครับ ลองแก้เป็นแบบนี้นะครับ

procedure TCarAddForm.cxButtonRecordClick(Sender: TObject);
begin//record
  if MyQueryCarLog.State in ([dsInsert,dsEdit]) then
    begin
      MyQueryCarLog.fieldByName('car_log_id').AsInteger;
   end;
      MyQueryCarLog.Post;
    ShowMessage('เพิ่มข้อมูลสำเร็จ');
    Close;
end;

ไม่สำเร็จครับอาจารย์ ต้องแก้ไขยังงัยต่อครับ
หัวข้อ: Re: Delphi : Record
เริ่มหัวข้อโดย: ittipol ที่ พฤศจิกายน 14, 2011, 15:26:15 PM
procedure TCarAddForm.cxButtonRecordClick(Sender: TObject);
begin//record
  if MyQueryCarLog.State in ([dsInsert,dsEdit]) then
    begin

      MyQueryCarLog.fieldByName('car_log_id').AsInteger:=getserialnumber('car_log_id');
   end;
      MyQueryCarLog.Post;
    ShowMessage('เพิ่มข้อมูลสำเร็จ');
    Close;
end;

เหมือน อ.ชัยพร ครับ เพิ่มเติม รับค่า car_log_id +1 จากฟังชั่นของ อ.ครับ
getserialnumber('car_log_id'); // จะเพิ่มค่า +1 ให้กับตัวแปรชื่อใน 'xxx' อ. สร้าง function ไว้แล้ว นำไปใช้ได้เลยครับ

ไม่ผ่านครับมันฟ้อง
[Pascal Error] CarAddUnit.pas(155): E2003 Undeclared identifier: 'getserialnumber'
[Pascal Fatal Error] TchmProject.dpr(15): F2063 Could not compile used unit 'CarAddUnit.pas'
หัวข้อ: Re: Delphi : Record
เริ่มหัวข้อโดย: manoi ที่ พฤศจิกายน 14, 2011, 15:28:51 PM
เขียนแบบนี้ครับ

MyQueryCarLog.fieldByName('car_log_id').AsInteger:=
  GetSQLData('select get_serialnumber("car_log_id") as cc');
หัวข้อ: Re: Delphi : Record
เริ่มหัวข้อโดย: ittipol ที่ พฤศจิกายน 14, 2011, 15:43:46 PM
ไม่ต้อง edit ซ้ำครับ ลองแก้เป็นแบบนี้นะครับ

procedure TCarAddForm.cxButtonRecordClick(Sender: TObject);
begin//record
  if MyQueryCarLog.State in ([dsInsert,dsEdit]) then
    begin
      MyQueryCarLog.fieldByName('car_log_id').AsInteger;
   end;
      MyQueryCarLog.Post;
    ShowMessage('เพิ่มข้อมูลสำเร็จ');
    Close;
end;

ไม่สำเร็จครับอาจารย์ ต้องแก้ไขยังงัยต่อครับ
อาจารย์ครับ
ผมไปตั้งค่า Auto Increment ก็ใช้งานได้ครับ
และจะมีผมอะไรไหมครับ
หัวข้อ: Re: Delphi : Record
เริ่มหัวข้อโดย: Man Of Romance ที่ พฤศจิกายน 14, 2011, 15:55:30 PM
Delphi อ.ชัยพร เป็น Delphi พิเศษรึเปล่าครับ ผมไม่เคยไปอบรม เลยสงสัยครับ
หัวข้อ: Re: Delphi : Record
เริ่มหัวข้อโดย: manoi ที่ พฤศจิกายน 14, 2011, 15:58:02 PM
Delphi อ.ชัยพร เป็น Delphi พิเศษรึเปล่าครับ ผมไม่เคยไปอบรม เลยสงสัยครับ

พิเศษตรงไหนครับ
หัวข้อ: Re: Delphi : Record
เริ่มหัวข้อโดย: Man Of Romance ที่ พฤศจิกายน 14, 2011, 16:00:56 PM
มันมี Function ที่สามารถใช้ได้ทันทีไงครับ
หัวข้อ: Re: Delphi : Record
เริ่มหัวข้อโดย: manoi ที่ พฤศจิกายน 14, 2011, 16:02:03 PM
มันเป็น function ใน library ของ Turbo HOSxP Application template ครับ
หัวข้อ: Re: Delphi : Record
เริ่มหัวข้อโดย: Man Of Romance ที่ พฤศจิกายน 14, 2011, 16:12:31 PM
ถึงว่า... ผมมันยุคโบราณครับ เคยใช้แต่ delphi 5 เพราะไม่มีตังซื้อ ขอบคุณ อ.ชัยพรครับที่บอก ไว้ถ้ามีแรง จะไปอบรม delphi ด้วยครับ

หัวข้อ: Re: Delphi : Record
เริ่มหัวข้อโดย: ittipol ที่ พฤศจิกายน 15, 2011, 08:35:29 AM
อาจารย์ครับผมทดสอบใช้งานแบบอาจารย์

procedure TCarAddForm.cxButtonRecordClick(Sender: TObject);
begin//record
  if MyQueryCarLog.State in ([dsInsert,dsEdit]) then
     //MyQueryCarLog.fieldByName('car_log_id').AsInteger;
   begin
      //MyQueryCarLog.fieldByName('car_log_id').AsInteger;
      MyQueryCarLog.fieldByName('car_log_id').AsInteger:=
  GetSQLData('select get_serialnumber("car_log_id") as cc');
   end;
      MyQueryCarLog.Post;
    ShowMessage('เพิ่มข้อมูลสำเร็จ');
    Close;
end;

แต่ใช้งานไม่ได้ครับ โปรแกรมฟ้องว่า

[Pascal Error] CarAddUnit.pas(159): E2003 Undeclared identifier: 'GetSQLData'
[Pascal Fatal Error] TchmProject.dpr(15): F2063 Could not compile used unit 'CarAddUnit.pas'

แบบนี้ครับ
ต้องแก้ไขหรือเพิ่มเติมอะไรหรือเปล่าครับสร้างขึ้นมาเองไม่ได้ต่อยอดกับ Turbo HOSxP Application template ของอาจารย์นะครับ
หัวข้อ: Re: Delphi : Record
เริ่มหัวข้อโดย: dusit ที่ พฤศจิกายน 15, 2011, 09:22:45 AM
อาจารย์ครับผมทดสอบใช้งานแบบอาจารย์

procedure TCarAddForm.cxButtonRecordClick(Sender: TObject);
begin//record
  if MyQueryCarLog.State in ([dsInsert,dsEdit]) then
     //MyQueryCarLog.fieldByName('car_log_id').AsInteger;
   begin
      //MyQueryCarLog.fieldByName('car_log_id').AsInteger;
      MyQueryCarLog.fieldByName('car_log_id').AsInteger:=
  GetSQLData('select get_serialnumber("car_log_id") as cc');
   end;
      MyQueryCarLog.Post;
    ShowMessage('เพิ่มข้อมูลสำเร็จ');
    Close;
end;

แต่ใช้งานไม่ได้ครับ โปรแกรมฟ้องว่า

[Pascal Error] CarAddUnit.pas(159): E2003 Undeclared identifier: 'GetSQLData'
[Pascal Fatal Error] TchmProject.dpr(15): F2063 Could not compile used unit 'CarAddUnit.pas'

แบบนี้ครับ
ต้องแก้ไขหรือเพิ่มเติมอะไรหรือเปล่าครับสร้างขึ้นมาเองไม่ได้ต่อยอดกับ Turbo HOSxP Application template ของอาจารย์นะครับ

GetSQLData เป็น function ที่ อ.ชัยพร สร้างขึ้นมาเช่นกัน ครับ เหมือน getserialnumber ครับ

ต้องขอโทษด้วยครับ ผมอ้างอิงจาก Turbo Hosxp Template ที่ได้อบรมจาก BMS
แต่ยังไงน่าจะมาอบรมสัก 1 Delphi ครับ เพราะ function ต่าง ๆ อีกมากที่ช่วยลดเวลาการทำงานลงไปครับ

*การอบรม Delphi ทำให้เราใช้ function เหล่านี้ ได้ และเสมือนว่าคุยภาษาโปรแกรมเดียวกันกับ อ.ชัยพร และ HOsxP ครับ อีกอย่างทำผลงานออกมาได้รวดเร็วครับ  :)

ถึงว่า... ผมมันยุคโบราณครับ เคยใช้แต่ delphi 5 เพราะไม่มีตังซื้อ ขอบคุณ อ.ชัยพรครับที่บอก ไว้ถ้ามีแรง จะไปอบรม delphi ด้วยครับ
คิดว่าโครงสร้างชุดคำสั่งคงไม่ต่างกันผมเองไม่มีตังซื้อเช่นกัน  :D แต่มีสำหรับชุดทดลองให้ท่านโหลดมาทบทวน
หัวข้อ: Re: Delphi : Record
เริ่มหัวข้อโดย: ittipol ที่ พฤศจิกายน 15, 2011, 09:43:06 AM
ผมไปอบรม Delphi1มาแล้วนะครับ
แต่ไม่มีการทำงานแบบ
GetSQLData เป็น function ที่ อ.ชัยพร สร้างขึ้นมาเช่นกัน ครับ เหมือน getserialnumber ครับ
ที่อาจารย์ทำไว้นะครับ
ได้เรียนกับอาจารย์ผู้หญิงนะครับ

มีข้อมูลอะไรแนะนำอีกก็ขอคำแนะนำด้วยนะครับ
ขอบคุณครับ
หัวข้อ: Re: Delphi : Record
เริ่มหัวข้อโดย: Man Of Romance ที่ พฤศจิกายน 15, 2011, 09:54:12 AM
ผมว่าท่าน Dusit ก็สุดยอดฝีมือทางด้าน delphi คนหนึ่งนะครับ ดูจาก การวาง algorithum
ส่วนตัวผมก็ งู ๆ ปลา ๆ แต่ก็ชอบ Delphi กลัวว่ามันจะหายไปนะครับ
ท่าน ittipol กำลังพัฒนาโปรแกรมการใช้รถอยู่หรือครับ เสร็จแล้วก็นำมาเผยแพร่บ้างนะครับ
ดูจาก code ที่วางใน Event Click  แสดงว่า ไม่ว่าจะมีการแก้ไข / หรือเพิ่มข้อมูล เลขที่ car_log_id
จะเพิ่มขึ้น 1 เสมอรึเปล่า ผมไม่เคยเขียน เกี่ยวกับพวก log เคยเขียนแต่พวกใบ invoice
หัวข้อ: Re: Delphi : Record
เริ่มหัวข้อโดย: dusit ที่ พฤศจิกายน 15, 2011, 10:22:15 AM
ผมไปอบรม Delphi1มาแล้วนะครับ
แต่ไม่มีการทำงานแบบ
GetSQLData เป็น function ที่ อ.ชัยพร สร้างขึ้นมาเช่นกัน ครับ เหมือน getserialnumber ครับ
ที่อาจารย์ทำไว้นะครับ
ได้เรียนกับอาจารย์ผู้หญิงนะครับ

มีข้อมูลอะไรแนะนำอีกก็ขอคำแนะนำด้วยนะครับ
ขอบคุณครับ
ตรง Code หัว From

ได้ใส่ uses HOSxpDMU;   ==> function จะอยู่ในนี้ จึงจะเรียกใช้ได้ครับ
เทียบกับ php น่าจะ include('hosxpdmu.pas'); ครับ

ผมว่าท่าน Dusit ก็สุดยอดฝีมือทางด้าน delphi คนหนึ่งนะครับ ดูจาก การวาง algorithum
ส่วนตัวผมก็ งู ๆ ปลา ๆ แต่ก็ชอบ Delphi กลัวว่ามันจะหายไปนะครับ
ท่าน ittipol กำลังพัฒนาโปรแกรมการใช้รถอยู่หรือครับ เสร็จแล้วก็นำมาเผยแพร่บ้างนะครับ
ดูจาก code ที่วางใน Event Click  แสดงว่า ไม่ว่าจะมีการแก้ไข / หรือเพิ่มข้อมูล เลขที่ car_log_id
จะเพิ่มขึ้น 1 เสมอรึเปล่า ผมไม่เคยเขียน เกี่ยวกับพวก log เคยเขียนแต่พวกใบ invoice

ผมใช้วิธี copy and develop ครับ  55
ผมทำให้กลมกลืนกับต้นฉบับของ อ.ชัยพร ครับ อ.ทำแบบไว้ดีครับ เลยเดินตตามง่ายครับ  :D