Posts

Showing posts from October, 2009

Axapta : Get next number sequence

Image
การเรียกใช้ Number sequence สำหรับ running no. ต่าง ๆ ทำได้โดยใช้คำสั่ง NumberSeq::newGetNum( ProdParameters :: numRefProdJournalId ()).num(); ตรง Parameter ก็เปลี่ยนไปขึ้นอยู่ว่าเป็น Number sequence ของ Module ไหน และจะใช้งานได้ Number sequence ต้องไม่ตั้งค่าให้เป็น Continuous JournalId myJournalId; ; myJournalId = NumberSeq::newGetNum(ProdParameters::numRefProdJournalId()).num(); myJournalId = NumberSeq::newGetNum(PurchParameters::numRefPurchaseOrderId()).num(); myJournalId = NumberSeq::newGetNum(InventParameters::numRefInventJournalId()).num(); myJournalId = NumberSeq::newGetNum(SalesParameters::numRefConfirmId()).num(); การตั้งค่า Number sequence ของแต่ละ module เข้าไปที่ Setup -> Parameters แล้วไปที่ tab Number sequences ตรง Reference แต่ละตัวสามารถ คลิกขวา Go to the main table เพื่อตั้งค่ารูปแบบ Running number ที่ต้องการได้

Axapta : Formatting style in Excel

static void ExcelFormating(Args _args) { #Excel SysExcelApplication excel; SysExcelWorkbooks books; SysExcelWorkbook book; SysExcelWorksheet sheet; SysExcelRange range; SysExcelStyles styles; SysExcelStyle style; SysExcelInterior interior; SysExcelFont font; COM _char, _r; ; excel = SysExcelApplication::construct(); excel.visible(true); books = excel.workbooks(); book = books.add(); sheet = excel.activeSheet(); range = sheet.range('A1'); styles = book.styles(); style = styles.add('MyStyle'); interior = style.interior(); interior.color(WinApi::RGB2int(246, 233, 206)); font = style.font(); font.bold(true); font.color(winapi::RGB2int(153, 204, 255)); range.style('MyStyle'); range

Axapta : Enable/Disable Dialog Control at runtime

Image
วิธี Enable/Disable หรือ Dialog Control ในขณะ runtime ทำได้โดย ดังนี้ 1.classDeclaration class SCI_Costing extends RunBase { FormStringControl SalesIdCtrl, ItemIdCtrl; FormCheckBoxControl bAllCtrl; SalesId salesId; ItemId itemId; NoYes bAll; #define.CurrentVersion(1) #localmacro.CurrentList salesId, itemId, bAll #endmacro } 2.สร้าง dialog แบบอนุญาตให้ update control ได้ โดยใช้ dialog.allowUpdateOnSelectCtrl(true) protected Object dialog(Dialog dialog, boolean forceOnClient) { DialogRunBase ret; ; ret = super(dialog, forceOnClient); ret.caption('Costing report by order'); ret.allowUpdateOnSelectCtrl(true); //อนุญาตให้ update control ได้ SalesIdCtrl = ret.formBuildDesign().addControl(FormControlType::String,'SalesId'); SalesIdCtrl.extendedDataType(extendedTypeNum('SalesId')); bAllCtrl = ret.formBuildDesign().addControl(FormControlType::CheckBox,'bAll');

Visual Basic : Sending newline to Crystal Report

วิธีส่งข้อมูลที่มีการ enter (vbNewLine) ไปให้ Formulas ของ Crystal Report ทำได้โดย ใส่เครื่องหมาย chr(34) (qoute) คร่อม chr(10) (Line Feed) ไปอีกที ดังนี้ CrysRpt.Formulas(0) = "FormulaName=" & Chr(34) & Replace$(txtName.Text, vbNewLine, Chr(34) & " & Chr(10) & " & Chr(34)) & Chr(34) ถ้าข้อมูล คือ บรรทัดที่ 1 บรรทัดที่ 2 พอใช้คำสั่งแล้ว ข้อมูลที่จะส่งไปก็จะเป็น FormulaName="บรรทัดที่ 1" & Chr(10) & "บรรทัดที่ 2"

Axapta : Get or Set Checkbox value

public void clicked() { Qty tmpQty1; Qty tmpQty2; FormCheckboxControl formCheckboxControl; ; super(); // ต้องรัน super ก่อน ไม่งั้นค่าไม่เปลี่ยน // รับค่าจาก design formCheckboxControl = element.design().control(control::ProdParmHistoricalCost_EndJob); // box::info(strfmt("%1",formCheckboxControl.value())); if(formCheckboxControl.value() == 1){ //ถ้า checked จะเป็น 1 tmpQty1 = ProdTable::find(ProdParmHistoricalCost.ProdId).QtySched; tmpQty2 = ProdTableJour::reportedFinishedGood(ProdParmHistoricalCost.prodId); if(tmpQty1 != tmpQty2){ if(box::yesNo("Sure?", DialogButton::Yes, "Confirm") == DialogButton::Yes) { if(box::yesNo("Sure?",DialogButton::Yes,"Confirm")== DialogButton::Yes){ formCheckboxControl.value(true); //สั่งให้ checked }else{ formCheckboxControl.value(false); //สั่งให้ ไม่ checked } }else{ formCh

Axapta : Dialog with lookup control

Image
วิธีสร้าง dialog แบบที่มี control ซึ่ง lookup ได้ เช่น เลือก SalesId แล้วให้อีก control นึง คือ ItemId lookup มาเฉพาะของ SalesId นั้น ทำได้ดังนี้ 1.declare control ไว้ ตาม extended data type ที่จะใช้ class LookupDialog extends RunBase { FormStringControl SalesIdCtrl, ItemIdCtrl; } 2.สร้าง dialog protected Object dialog(Dialog dialog, boolean forceOnClient) { DialogRunBase ret; ; ret = super(dialog, forceOnClient); ret.caption('Costing report by order'); SalesIdCtrl = ret.formBuildDesign().addControl(FormControlType::String,'SalesId'); SalesIdCtrl.extendedDataType(extendedTypeNum('SalesId')); ItemIdCtrl = ret.formBuildDesign().addControl(FormControlType::String,'ItemId'); ItemIdCtrl.extendedDataType(extendedTypeNum('ItemId')); return ret; } 3.Set ให้ control สามารถ override method ตอน runtime ได้ public void dialogPostRun(DialogRunbase dialog) { ; super(dialog); dialog.dialogForm().formRun().co

OpenOffice : Double line style

Image
วิธีขีดเส้นใน OpenOffice ให้มี 2 เส้น ทำได้ดังนี้ 1.ใช้เครื่องมือลากเส้น (Line ใน Drawing toolbar) ขีดไว้ แล้วคลิกขวาที่ เส้น เลือก Line... 2.คลิกที่ tab Shadow แล้วติ๊กที่ Use shadow 3.เลือกตำแหน่ง ,ระยะห่างระหว่างเส้นและสีของเส้นที่ 2

Solve Host to IP without DNS

แปลง Host เป็น IP โดยไม่ต้องพึ่ง DNS Server ทำได้โดย ระบุในไฟล์ ชื่อ hosts ของ Windows อยู่ที่ C:\WINDOWS\system32\drivers\etc\hosts ของ linux อยู่ที่ /etc/hosts รูปแบบคือ IP ช่องว่างตามด้วย host ตัวอย่างของ Windows # This is a sample HOSTS file used by Microsoft TCP/IP for Windows. # # This file contains the mappings of IP addresses to host names. Each # entry should be kept on an individual line. The IP address should # be placed in the first column followed by the corresponding host name. # The IP address and the host name should be separated by at least one # space. # # Additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # # For example: # # 102.54.94.97 rhino.acme.com # source server # 38.25.63.10 x.acme.com # x client host 127.0.0.1 localhost อันนี้ของ linux 192.168.0.250 IF-Nikom.sci.com IF-Nikom 192.168.0.1 axaptaserver.sci.com axaptaserver 192.

GeSHi Language Aliases

ทั้ง phpBB ของที่ทำงานและ wordpress ของที่นี่ ต่างก็ใช้ Syntax Hilight ของ GeSHi โดย phpBB เป็น phpBB3.0.5 ติดตั้ง mod bbGeSHi 0.7.5 และ wordpress ใช้ plugin wp-syntax .0.9.8 เวลาใช้มักจะลืมตัวย่อของภาษาอยู่เรื่อย ก็เลยต้อง list ไว้กันลืมซะหน่อย ABAP - abap Actionscript - actionscript ADA - ada Apache Log - apache AppleScript - applescript APT sources.list - ASM (m68k) - asm ASM (pic16) - asm ASM (x86) - asm ASM (z80) - asm ASP - asp AutoIT - autoit Backus-Naur form - Bash - bash Basic4GL - BlitzBasic - blitzbasic Brainfuck - bnf C - c C for Macs - c_mac C# - cpp C++ - csharp C++ (with QT) - cpp-qt CAD DCL - caddcl CadLisp - cadlisp CFDG - cfdg CIL / MSIL - COBOL - ColdFusion - cfm CSS - css D - d Delphi - delphi Diff File Format - diff DIV - div DOS - dos DOT language - dot Eiffel - eiffel Fortran - fortran FourJ's Genero - genero FreeBasic - freebasic GetText - glSlang - GML - gml gnuplot - Groovy - groovy Haskell - haskell HQ9+ -