11/25/2011

Ubuntu : ติดตั้ง Webmin

1. Download โปรแกรม
wget http://prdownloads.sourceforge.net/webadmin/webmin-1.570_all.deb
หรือ
wget http://192.168.0.252/webmin-1.560_all.deb

2.ติดตั้งด้วยคำสั่ง
dpkg -i webmin-1.570_all.deb

3.ถ้าขาด package บางอย่าง ต้องลงเพิ่มด้วยคำสั่ง
apt-get install -f

4.เรียกใช้งานได้จาก https://hostname:10000 (login ด้วย user ที่ sudo ได้)

Ubuntu : ตั้งเวลาปิดเครื่อง

อ้างอิงจาก : http://www.cyberciti.biz/tips/howto-shu ... cally.html
สั่ง manual
เช่น
shutdown -h 17:40 #ปิดเครื่อง เมื่อเวลา 17.40 น.

หรือ
shutdown -r 12:00 #Restart เครื่องตอนเที่ยง


ตั้งเวลาให้ปิด
ตั้งไว้ใน crontab ด้วยคำสั่ง crontab -e แล้วสั่งตามรูปแบบนี้
m h dom mon dow command

เช่น
40 17 * * * /sbin/shutdown -h now

X++: ตัดแบ่งข้อความกับตัวเลข

ตัวอย่าง code สำหรับแบ่งข้อความกับตัวเลข เช่น ชื่อ journal กับ เลขเดือน >> RTT09, VRTT10


    str     JournalName = "VRCP09";
    str     strName;
    str     strMonth;
    ;
    strName = strrem(JournalName, "0123456789"); //ตัดตัวเลขออกให้หมด
    strMonth = strrem(JournalName, "ABCDEFGHIJKLMNOPQRSSTUVWXYZ"); //ตัดตัวอักษรออกให้หมด
    //strMonth = substr(JournalName, strlen(JournalName)-1, 2); //ตัดเอา 2 ตัวท้าย
 
    print strfmt("%1 : %2",strName, str2int(strMonth));
    pause;

ทำ Web แบบ CMS ด้วย Joomla

ทำเว็ป แบบ CMS ง่ายนิดเดียว
สำหรับใคร ที่อยากทำ Web

ด้วย Download ๋Joomla full 1.5.22 พร้อมคู่มือติดตั้งและใช้งาน ภาษาไทย

http://www.mediafire.com/?wlz2zb69ozp2r9l


คู่มือภาษาไทย
http://www.mediafire.com/?9f333l73nk4n256

Axpta X++ : Set dafault ให้ Froms ที่สร้างขึ้นเองไม่มี Data Source

เขียนโปรแกรมใน Method Run หรือ int.
void init()
{
    InventMaterial      TableInventMaterial;
    InventTableModule   TableInventTableModule;
    VendInvoiceTrans    TableVendInvoiceTrans;
    PurchTable          TablePurchTable;
    InventDim           TableInventDim;

    MaterialCode        strMidItemId;
//ประกาศตัวแปร
    FormStringControl   strunitId, strmaterial, strAccountNum, strBatchnumber;
    FormDateControl     dateDeliveryDate;
    ;
    super();
//เก็บค่าใส่ตัวแปร
    strunitId           = element.design().control(control::Unit);
    strmaterial         = element.design().control(control::Material);
    dateDeliveryDate    = element.design().control(control::DateEdit);
    strAccountNum       = element.design().control(control::AccountNum);
    strBatchnumber      = element.design().control(control::InventBacth);

///// Set default in form. ///////////

    myItem = element.args().record();
    strMidItemId = substr(myItem.ItemId,4,2);

    SELECT * FROM TableInventTableModule
    WHERE TableInventTableModule.ItemId == myItem.ItemId;

    strunitId.text(TableInventTableModule.UnitId);

    SELECT * FROM TableInventMaterial
    WHERE TableInventMaterial.MaterialCode == strMidItemId ;

    strmaterial.text(TableInventMaterial.MaterialSymbol);


    SELECT * FROM TableVendInvoiceTrans
    WHERE TableVendInvoiceTrans.ItemId ==  myItem.ItemId;

    straccountNum.text(PurchTable::find(TableVendInvoiceTrans.PurchID).OrderAccount);
    strBatchnumber.text(InventDim::find(TableVendInvoiceTrans.InventDimId).inventBatchId);

    dateDeliveryDate.dateValue(Today());



}

Axapta X++ : รับค่าจาก Forms ที่สร้างขึ้นเองไม่มี DataSource.

void clicked()
{
    InventTable         myInventTable;

    InventTrans         tmpInventTrans;
    InventTableModule   tmpInventTableModule;
    VendTable           tmpVendTable;
    InventBatch         tmpInventBatch;
    SCI_Print_Label     tmpSCI_Print_Label;

    DictEnum            dictEnum;
    int                 enumValue;
    int                 i = 1;

    SCI_TmpPrintLabel       TableTmpPrintLabel;
//ประกาศตัวแปร
    FormStringControl   strUnitId, strAccountNum, strBatchnumber, strMaterial, strSalesOder;
    FormRealControl     realQty;
    FormDateControl     dateDeliveryDate;
    FormComboBoxControl intLabelSheet;
    //FormStringControl      intLabelSheet;
    str                 urlfile;

    ;
//เก็บค่าใส่ตัวแปรที่ประกาศ

    realQty             = element.design().control(control::Qty);
    strunitId           = element.design().control(control::Unit);
    straccountNum       = element.design().control(control::AccountNum);
    strbatchnumber      = element.design().control(control::InventBacth);
    strmaterial         = element.design().control(control::Material);
    dateDeliveryDate    = element.design().control(control::DateEdit);
    strSalesOder        = element.design().control(control::SalesOrder);
    intLabelSheet       = element.design().control(control::LabelSheet);
    dictEnum            = new DictEnum(enumnum(LabelPerSheet));
    EnumValue           = dictEnum.name2Value(LabelPerSheet.valueStr());

    TableTmpPrintLabel.clear();

    TableTmpPrintLabel.ItemId              = InventTable.ItemId;
    TableTmpPrintLabel.ItemName            = InventTable::find(TableTmpPrintLabel.ItemId).ItemName;
//เก็บข้อมูล ลง Table
    TableTmpPrintLabel.Qty                 = realQty.realValue();
    TableTmpPrintLabel.Unit                = strUnitId.valueStr();
    TableTmpPrintLabel.AccountNum          = strAccountNum.valueStr();
    TableTmpPrintLabel.BatchNum            = strBatchnumber.valueStr();
    TableTmpPrintLabel.Material            = strMaterial.valueStr();
    TableTmpPrintLabel.DeliveryDate        = dateDeliveryDate.dateValue();
    TableTmpPrintLabel.SaleOrder           = strSalesOder.valueStr();
    //TableTmpPrintLabel.LabelSheet          = intLabelSheet.;
    TableTmpPrintLabel.LabelSheet          = EnumValue;

    TableTmpPrintLabel.insert();
    Button_Save.enabled(false);

}

Axpta X++ : Loop call forms in Axapta.

- Code in button form Item.
- You create form name SCI_Print_Lable.

Example in Project SCI_PrintLabe.

void clicked()
{
/////// Use Call Form //////////
    void PrintLabel(InventTable runInventTable){
        Args      args  =  new Args();
        FormRun   formRun;
        ;
        args.name(formstr(SCI_Print_Label));
        args.record(runInventTable);
        //args.caller(this);

        formRun = classfactory.formRunClass(args);
        formRun.init();
        formRun.run();
        formRun.detach();
        formRun.wait();
    }

    ;
/////// Delet Data In Table. Befor insert new data. //////////
    ttsbegin;
        WHILE
        SELECT FORUPDATE * FROM TableTmpPrintLabel
        {
            TableTmpPrintLabel.delete();
        }
    ttscommit;

/////// Loop check count seleted in line. //////////
    for (myInventTable = InventTable_ds.getFirst(true) ? InventTable_ds.getFirst(true) :InventTable_ds.cursor();
        myInventTable;    myInventTable = InventTable_ds.getnext()){
         x++;
        }

    if (x > 1){
        i = x;
    /////// Loop check count for open form. //////////
        for (myInventTable = InventTable_ds.getFirst(true) ? InventTable_ds.getFirst(true) :InventTable_ds.cursor();
            myInventTable;    myInventTable = InventTable_ds.getnext()){

            PrintLabel(myInventTable);
        }

// super();
}

VB 2008 :: Code รับค่า Barcode + Enter

TextBoxBarCode ชื่อ Text ที่รับค่า จาก Barcode
Barcode มีการกำหนดค่า ให้มีการ Enter

    Private Sub txtbarcode_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBoxBarCode.KeyDown
 
        If e.KeyData = Keys.Enter Then
            If Len(TextBoxBarCode.Text) = 15 Then 'เช็คครบ 15 ตัวหรือป่าวถ้าครับส่งค่าไปอีก Form
                Form_Asset_Detail.connectionString = myConnectionString
 
                Form_Asset_Detail.TextBox_Code.Text = TextBoxBarCode.Text
                Form_Asset_Detail.Show()
            Else ' ถ้าไม่ครับให้แจ้งเตือนว่า Code ไม่ถูฏ
                MsgBox(" รหัสทรัพย์สินไม่ถูก กรุณาตรวจสอบ")
            End If
 
        End If
 
    End Sub

VB 2008 :: ลดขนาด size ของรูป ก่อนเก็บ

เป็นการลดขนาด size ไม่ได้ลดขนาดความกว้างความสูงของภาพ ครับ

            Dim percentResize As Double
Dim bm As New Bitmap(TextBox_URL.Text) 'ที่อยู่ Part และชื่อไฟล์ที่จะ ลดขนาด
Dim width As Integer = bm.Width - (bm.Width * percentResize) 'image width.                Dim height As Integer = bm.Height - (bm.Height * percentResize)  'image height
Dim thumb As New Bitmap(width, height)
Dim g As Graphics = Graphics.FromImage(thumb)
g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
g.DrawImage(bm, New Rectangle(0, 0, width, height), New Rectangle(0, 0, bm.Width, _
bm.Height), GraphicsUnit.Pixel)
g.Dispose()
bm.Dispose()

'image path New.
thumb.Save(TextBox_URL.Text, _
System.Drawing.Imaging.ImageFormat.Jpeg) 'can use any image format
thumb.Dispose()


**** เวลานำมาแสดงในตัวโปรแกรม VB โดยใช้ PictureBox
ให้กำหนด SizeMode เป็น StretchImage เพื่อให้รูปพอดี กับกรอบที่กำหนดไว้

ที่มา http://www.thedesilva.com/2010/01/resize-image-using-vb-net/

11/14/2011

AxaptaX++ : how to get the value of autodeclared combo box

DictEnum dictEnum;
int enumValue;
;

dictEnum = new DictEnum(enumnum(YourEnum));
EnumValue = dictEnum.name2Value(YourEnum.valueStr());

return EnumValue;

 

ที่มา

http://www.eggheadcafe.com/microsoft/Axapta/29969290/how-to-get-the-value-of-autodeclared-combo-box.aspx