9/05/2022

ubuntu 22.04 Set IP

 

ubuntu 22.04 Set IP
1. check name card
  1. sudo ip a

2. แก้ไฟล์
/etc/netplan/00-network-manager-all.yaml

3. แก้ไฟล์ดังนี้  enp0s3 คือได้จากข้อ 1.
  1. network:
  2.     ethernets:
  3.         enp0s3:
  4.             dhcp4: false
  5.             addresses: [192.168.2.1/24]
  6.             gateway4: 192.168.2.2
  7.             nameservers:
  8.               addresses: [8.8.8.8,8.8.4.4,192.168.2.2]
  9.     version: 2

4. ใช้คำสั่ง
  1. sudo netplan apply

7/05/2022

Axapta : Error Post Post Invoice Error Under delivery

 Axapta : Error Post Post Invoice Error Under delivery

Under-delivery of line is 11.96 percent, but the allowe under-delivery is only percent.

PO22-06889 : Item 901291407228-S
เกิดจากจำนวนที่จะทำรับ ไม่สอดคล้องกับ จำนวน Deliver remainder เนื่องจากมีการใช้ Function Deliver remainder จำนวนออก ต้องไล่ดูข้อมูล
ใน Table PurchParmLine


จากรูปจะพบว่ายอดก่อนที่รับล่าสุด 200 ควรจะเหลือ 161 แต่เหลือ 100 ดู Database log พบว่ามีการปรับออก 61

วิธีแก้
ใช้ปุ่ม Function Deliver remainder ปรับยอดให้เป็นจำนวนที่ถูกคือ 161
แล้ว Post PO จะผ่าน แล้วแจ้ง User ว่ายอดที่รับเข้ามาจะใช้ทำรับเพิ่มหรือไม่ ถ้าไม่ให้ Cancel ออก Status จะได้เป็น Invoice ถ้าต้องการใช้อยู่ก็ให้คงไว้

6/30/2022

How to disable firefox browser cache

 How to disable firefox browser cache
เวลาเขียนโปรแกรม ตัวโปรแกรมถูกแต่ผลใน browser ไม่เปลี่ยนตาม จึงต้องปิดไม่ให้เก็บ cache

https://support.mozilla.org/en-US/questions/905902

1. type in the address bar about:config
2. then press the button i'l be careful i promise
3. then type in the bar browser.cache.disk.enable
4. then double click on it, to make it false
5. do the same with browser.cache.memory.enable
6. exit firefox and restart-it.

6/25/2022

Linux mint : Shutter hotkey

Linux mint : Shutter hotkey
https://shutter-project.org/faq-help/set-shutter-as-the-default-screenshot-tool/

1. Keyboard --> Shortcuts  --> Add custom shortcut


2. แก้ด้านล่าง กด Key ที่เราต้องการ



6/10/2022

Axapta : หาค่าสูงสูดในตัวแปร Max

 

Axapta : หาค่าสูงสูดในตัวแปร Max

  1. static void MyMaxJob(Args _args)
  2. {
  3.     int test;
  4. ;
  5.  
  6.     test = max (100,120,300,400,500);
  7.  
  8.     info(int2str(test));
  9. }

5/17/2022

Axapta : Job LibreOffice Copy Sheet

 Axapta : Job LibreOffice Copy Sheet
ตัวอย่าง

  1. static void CopySheetOffice(Args _args)
  2. {
  3.  
  4. // ----------- OpenOffice -----------
  5.     COM         OpenOffice;
  6.     COM         oDeskTop;
  7.     COM         oDocument;
  8.     COM         oSheets;
  9.     COM         oSheet;
  10.     COM         oRange;
  11.     COM         BorderStruct;
  12.     COMVariant  arg;
  13.     COMVariant  byte;
  14.     Array       Arr = new Array(Types::Class);
  15.     Array       oArr = new Array(Types::Class);
  16.     str         url;
  17.     str         outFile;
  18.     COM         FileProperties;
  19.  
  20. // ----------- TABLE -----------
  21.     CustTable   custTable;
  22.  
  23. // ----------- VARIABLE -----------
  24.     int         rows = 1;
  25.     int         sheet = 2;
  26.  
  27. ///##### Function Print Trans #####//
  28.     void printTrans(){
  29.         rows++;
  30.         oRange = oSheet.getCellByPosition(0, rows);
  31.         oRange.SetString("123456");
  32.     }
  33.  
  34.     ;
  35.  
  36. // #####  Open template file ######
  37.     url = strfmt("%1%2", templatePath(), "/IV/ItemNotTransferByDate.ods");
  38.     OpenOffice  = new Com("com.sun.star.ServiceManager");
  39.     oDeskTop    = OpenOffice.CreateInstance("com.sun.star.frame.Desktop");
  40.     arg         = COMVariant::createFromArray(arr);
  41.     oDocument   = oDeskTop.LoadComponentFromURL(url, "_blank", 0, arg);
  42.     oSheets     = oDocument.getSheets();
  43.     oSheet      = oSheets.getByIndex(0);
  44.  
  45.     BorderStruct = OpenOffice.Bridge_GetStruct('com.sun.star.table.BorderLine');
  46.     BorderStruct.Color(24567057);
  47.     BorderStruct.LineDistance(0);
  48.     BorderStruct.InnerLineWidth(0);
  49.     BorderStruct.OuterLineWidth(1);
  50.  
  51. // #####  Save as temp file ######
  52.     DeleteFilesInFolder("C:/AxaptaSP4/Temp/IV/");
  53.     outFile = strfmt("file:///C:/AxaptaSP4/Temp/IV/ItemNotTransferByDate-%1.ods", timenow());
  54.     oDocument.storeAsURL(outFile, arg);
  55. // #######################################################################################
  56.  
  57.     WHILE
  58.     SELECT AccountNum FROM custTable
  59.     ORDER BY Name
  60.     WHERE custTable.CustGroup == "AUD"
  61.     {
  62.         oSheets.CopyByName("Template", custTable.AccountNum, sheet);
  63.         oSheet = oSheets.getByIndex(sheet);
  64.  
  65.         printTrans();
  66.  
  67.         rows = 1;
  68.         sheet++;
  69.     }//Close While.
  70.  
  71. }

4/27/2022

Raspberry Pi Desktop install vmware tools

 Raspberry Pi Desktop install vmware tools
1. ติดตั้ง

  1. sudo apt-get update
  2. sudo apt-get install open-vm-tools


2. mount vmware tools ที่ VMware Actions --> Guest OS --> Install Vmware Tools


3. Copy ไฟล์ .tar.gz ไปไว้ที่ /tem
  1. cp VMwareTools-10.2.0-XXXXX.tar.gz /tmp/
  2. cd /tmp
  3. tar -zxvf VMwareTools-10.2.0-XXXXXX.tar.gz
  4. cd vmware-tools-distrib
  5. sudo ./vmware-install.pl

4. ขั้นตอน Install กด Enter ตอบตาม Default ที่โปรแกรมกำหนดมา
5. Reboot เครื่อง

2/15/2022

TRP03 รายการและเล่มถูกลบหาย แต่ Transaction ยังค้างอยู่ ยอดที่จองไปไม่คืน ทำให้ไม่มียอดจองเมื่อสร้างเล่มใหม่ขึ้นมา

 TRP03 รายการและเล่มถูกลบหาย แต่ Transaction ยังค้างอยู่ ยอดที่จองไปไม่คืน ทำให้ไม่มียอดจองเมื่อสร้างเล่มใหม่ขึ้นมา

เช่น เล่ม 22-0002772 ถูกลบ และสร้าง 22-002916 มีรายการ Valve เหมือนกัน แต่ไม่มีของให้จอง

วิธีแก้ (ทำใน Local ก่อนแก้ไนของจริง)
1. ต้องหา Item ให้ได้ก่อนว่าในเล่มนั้นมี Item อะไรจะได้ตามหาเลขที่ ของเอกสารได้ ต้องถาม User
2. ได้ Item หาใน Transaction ว่าเอกสารที่ลบไปเลขที่เท่าไหร่ เช่น 2259022021010, 25902341425, 383022219018, 291020929019 เป็นต้น ดู Transaction จะพบเล่ม แต่ Go to main ไปหาเล่มไม่ได้แล้ว
ตรวจสอบ Transaction ว่าเลขที่ 22-0002772 มีการจองของไว้

3. ค้นหาใน Database log ใส่ *เลขที่เอกสาร* และเลือกรายการที่ถูกลบไปเฉพาะที่ต้องการ เพื่อให้รายการใน InventJournalTrans กลับคืนมา
เลือกรายการทีละ รายการแล้วกด Reinsert

4. สร้าง เล่มเอกสารเล่มใหม่ขึ้นมา สร้างเฉพาะ เล่ม เช่น 22-0002935
ใช่ SQL Server Enterprise Run Code
  1. SELECT     *
  2. FROM         INVENTJOURNALTABLE
  3. WHERE     (JOURNALID = '22-0002935')

แล้วแก้ JOURNALID จาก 22-0002935 เป็นเลขที่หายไป 22-0002772

5. เข้า Tab History กด Recalculation เพื่อให้เลข Run ใน Line Update
6. ตรวจดูข้อมูลใน Line เข้าดูการ Reservation และ Validate ข้อมูลดู ว่ามี Error หรือไม่
ดู Transaction กด Go to main จากเลขที่เอกสารมาหาเล่มได้
7. ลบรายการเล่มที่ไม่ได้ใช้ออกเช่น 22-002916
8. แจ้ง User ตรวจสอบความถูกต้องแล้วค่อย Post

1/31/2022

VB : VB Read Data To Array And Extract To Use Data. To Read Data Again

 

VB : VB Read Data To Array And Extract To Use Data. To Read Data Again
Example :
  1.  
  2.             Dim ArrayBarCode As ArrayList
  3.             ArrayBarCode = New ArrayList
  4.             .
  5.             .
  6.             .
  7.             While myReader.Read()
  8.                 FirstCode = myReader.Item("FirstCode").ToString()
  9.                 AccountCode = myReader.Item("AccountCode").ToString()
  10.                 TypeCode = myReader.Item("TypeCode").ToString()
  11.                 SubTypeCode = myReader.Item("SubTypeCode").ToString()
  12.                 RunNo = myReader.Item("RunNo").ToString()
  13.  
  14.                 If CheckBox_LastTransaction.Checked = True Then
  15.                     ArrayBarCode.Add(BarCode) '###### Add BarCode เข้า Array เพื่อไป Loop ออกรายงานอีกรอบ เพราะ Reader ซ่อน Loop ไม่ได้
  16.                 End If
  17.             End While
  18.             myReader.Close()
  19.             Dim m As Long
  20.             line = 5
  21.             If CheckBox_LastTransaction.Checked = True Then
  22.                 firstSheet.getCellByPosition(8, 4).String = "ประวัติการโอนย้ายครั้งล่าสุด"
  23.                 For m = 0 To ArrayBarCode.Count - 1
  24.                     '########## Select Data From Other Table Again #############'
  25.                     SQLTmp = "SELECT OldUser,Reason,EmpName FROM sci_ams.asset_move " _
  26.                     & " LEFT JOIN sci._employees ON _employees.EmpID= asset_move.OldUser " _
  27.                     & " WHERE BarCode = '" & ArrayBarCode(m) & "' AND End = 'Y' " _
  28.                     & " ORDER BY Id DESC"
  29.  
  30.                     myCommand.CommandText = SQLTmp
  31.                     myAdapter.SelectCommand = myCommand
  32.                     myReader = myCommand.ExecuteReader
  33.                     If (myReader.Read()) Then
  34.                         LastTransaction = myReader.Item("OldUser").ToString() & ":" & myReader.Item("EmpName").ToString() & " : " & myReader.Item("Reason").ToString()
  35.                     End If
  36.  
  37.                     line = line + 1
  38.                     myReader.Close() '###### ต้อง Close ไม่อย่างนั้น ERROR เพราะอยู่ใน Loop อ่านจาก DB หลายรอบ
  39.                 Next

End If

1/22/2022

Windows10 21H2 Add Printer ที่ Shared จากเครื่องอื่น ไม่ได้

Windows10 21H2 Add Printer ที่ Shared จากเครื่องอื่น ไม่ได้

How to Fix Windows Cannot Connect to Printer - Error 0x0000011b


วิธีแก้ไข เข้าไปที่
C:\Windows\regedit > HKEY LOCAL MACHINE > SYSTEM > CURRENTCONTROLSET > CONTROL > PRINT
คลิ้กที่ Print ใน Regedit แล้วคลิ้กขวา > New > DWORD (32-BIT)VALUE เปลี่ยนชื่อเป็น RpcAuthnLevelPrivacyEnabled แล้วก็กด Enter
เสร็จแล้วให้เราไป Restart Services Print Spooler จากนั้นก็เข้าไป Add Print แบบปกติจะรอนานหน่อยต้องรอจนกว่าจะเสร็จแล้วก็ Add Dirver เข้าไปตามชื่อ Printer ครับ

ตัวอย่าง
https://www.youtube.com/watch?v=XouW14RUJxs

1/17/2022

PHP : php ส่งค่าออก Libreoffice Calc ด้วย TBS

PHP : php ส่งค่าออก Libreoffice Calc ด้วย TBS
ตัวอย่าง
https://www.tinybutstrong.com/opentbs.php?demo

ต้องการส่งค่า ตั้งค่า ใน Template
1. Sting ใช้เป็น [Block.ArrayName]
2. Date ต้องใส่ ;ope=tbs:date ต่อท้าย เช่น [Block.ArrayDate;ope=tbs:date]
3. Number ต้องใส่ ;ope=tbs:num ต่อท้าย เช่น [Block.ArrayDate;ope=tbs:num]
ข้อ 2, 3 ก็จะไม่มี ' และจัด Format ได้
4. ต้องการใส่เลข Run Line ใช้ #;ope=tbs:num ต่อท้าย เช่น [Block.#;ope=tbs:num]