- สร้าง new presentation โดยเลือก Empty Presentation แล้วกด Create
- ไปที่ menu view > Master > กดเลือก Slide Master แล้วจะได้ตามภาพข้างล่าง
- ภึงขั้นตอนนี้ก็ตกแต่ง Master Page ให้เต็มที่ตามภาพ
- หลังจากนั้นก็ Save โดยไปที่ File > Template > Save
- ตั้งชื่อในช่อง New Template และก็เลือก Categories เป็น MyTemplate กด OK
- เป็นการเสร็จสิ้นการสร้าง Master Page ลองทดสอบโดยดูไปสร้าง New Presentation แล้วเลือก From Template โดยไปที่ My Template ก็จะเห็น Master Page ที่เราได้สร้างไว้ (ตามภาพข้างล่าง)
วันพฤหัสบดีที่ 4 กันยายน พ.ศ. 2551
OpenOffice : Creating Master Page in Impress
วันจันทร์ที่ 25 สิงหาคม พ.ศ. 2551
SAP: Dynamic selection screen (Checkbox and Radio Buttons)
Question:
ที่หน้าจอ Selection Screen จะ invisible Checkbox เมื่อเลือก Radio Button ?
Solution:
ที่หน้าจอ Selection Screen จะ invisible Checkbox เมื่อเลือก Radio Button ?
Solution:
SELECTION-SCREEN BEGIN OF BLOCK first WITH FRAME TITLE text-001.
PARAMETERS : radio1 RADIOBUTTON GROUP grp1 USER-COMMAND radio,
radio2 RADIOBUTTON GROUP grp1,
radio3 RADIOBUTTON GROUP grp1.
SELECTION-SCREEN END OF BLOCK first.
SELECTION-SCREEN BEGIN OF BLOCK second WITH FRAME TITLE text-002.
PARAMETERS : chkbox AS CHECKBOX DEFAULT 'X' MODIF ID DIS.
SELECTION-SCREEN END OF BLOCK second.
AT SELECTION-SCREEN OUTPUT.
" invisible checkbox case selected radio2...
LOOP AT SCREEN.
IF screen-group1 = 'DIS'.
IF radio2 = 'X'.
screen-active = 0.
MODIFY SCREEN.
ENDIF.
ENDIF.
ENDLOOP.
วันพฤหัสบดีที่ 29 พฤษภาคม พ.ศ. 2551
SAP: LOOP AT SCREEN
Question:
พอดีใช้ Logical Database แต่ต้องการให้ Parameters ใน Selection Screen ของ Logical Database นั้นๆ ทำเป็น Required Field
Solution:
ใช้คำสั่ง Loop At Screen ในการวนลูปที่หน้าจอของ Dynpro โดยใช้ Structure ที่ชื่อว่าSCREEN และใช้ Component ที่ชื่อว่า NAME ส่วนการกำหนด Required Field ให้ใช้ Component ที่ชื่อว่า REQUIRED
ชื่อของ Parameter (EM_MATNR-LOW) ดูได้จาก technical infomation ในส่วนของ Screen Field
พอดีใช้ Logical Database แต่ต้องการให้ Parameters ใน Selection Screen ของ Logical Database นั้นๆ ทำเป็น Required Field
Solution:
ใช้คำสั่ง Loop At Screen ในการวนลูปที่หน้าจอของ Dynpro โดยใช้ Structure ที่ชื่อว่าSCREEN และใช้ Component ที่ชื่อว่า NAME ส่วนการกำหนด Required Field ให้ใช้ Component ที่ชื่อว่า REQUIRED
ชื่อของ Parameter (EM_MATNR-LOW) ดูได้จาก technical infomation ในส่วนของ Screen Field
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.IF SCREEN-NAME = 'EM_MATNR-LOW'.ENDLOOP.SCREEN-REQUIRED = '1'.ENDIF.
MODIFY SCREEN.
วันพุธที่ 28 พฤษภาคม พ.ศ. 2551
SAP: Transaction Code (Development)
- SE38 ABAP Edittor.
- SE80 Object Navigator.
- SE11 ABAP Dictionary.
- SE16 Data Browser
- SE37 Function Builder
- SE30 Runtime Analysis
- ST05 SQL Trace
- BAPI BAPI Explorer
- SE24 Class Builder
- SU01 User Management (Change Password)
- SM04 User List (End Session)
Purchase Order:
- ME23N Display purchase order
- ME80FN Reports
- ME2N Reports
วันจันทร์ที่ 28 เมษายน พ.ศ. 2551
VS 2005: Strongly Typed Datasets in DAL using ConnectionString from web.config
- เปิด project DAL
- คลิกขวาที่ Project เลือก Properties เลือกที่หัวข้อ Settings หลังจากนั้นกด View Code ตามภาพ
- หลังจากนั้น VS 2005 ก็จะสร้าง class Settings.cs
- บรรทัดแรกให้ using System.Configuration;
- ต่อมาใน Constructor Settings เพิ่ม Code ตามนี้ (พิมพ์ this.SettingsLoaded += แล้วกด Tab 2 ครั้ง)
this.SettingsLoaded += new System.Configuration.SettingsLoadedEventHandler(Settings_SettingsLoaded);
- ใน Events ของ Settings_SettingsLoaded() ใส่ code สำหรับใช้ ค่า ConnectionString ใน web.config ( webConnectionString = name ของ ConnectionString ที่อยู่บน Web.Config, appConnectionString = name ทีอยู่ใน Setting ตามข้อ 2) .ให้เปลี่ยน ConnectionString ตามชื่อที่มีอยู่ใน Project
foreach (ConnectionStringSettings ConnectionString in ConfigurationManager.ConnectionStrings )
{if (ConnectionString.Name == "webConnectionString")
}
Settings.Default["appConnectionString"] =
ConfigurationManager.ConnectionStrings[ConnectionString.Name].ConnectionString; - Save แล้ว Build.
วันจันทร์ที่ 28 มกราคม พ.ศ. 2551
Firebird: Date function
มี Fileld TimeStamp ต้องการเฉพาะปี เช่น 29/1/2008 ต้องการผลเป็น 08 ใช้คำสั่งใน SQL
SUBSTRING(EXTRACT(YEAR FROM datedlv) FROM 3 FOR 4)
วันพุธที่ 16 มกราคม พ.ศ. 2551
NUnit: Assembly Not Loaded
ข้อผิดพลาด :
System.ApplicationException : Invalid cache path:
....\.\.\..\;nunit20\ShadowCopyCache\xxxxxx
---> System.NotSupportedException : The given path's format is not supported.
แก้ไข :
....\.\.\..\;nunit20\ShadowCopyCache\xxxxxx
---> System.NotSupportedException : The given path's format is not supported.
แก้ไข :
- เปิด nunit.exe.config เข้าไปแก้ไขในส่วนของ tag
โดยเปลี่ยน %temp% เป็น C:\Documents and Settings\..User..\Local Settings\Temp - เปิด nunit-console.exe.config แ้ล้วทำการแก้ไขเหมือนข้อแรก
วันจันทร์ที่ 7 มกราคม พ.ศ. 2551
Page เดียว ทำเป็น Create, Change, Delete, Display
เลือกใช้ State Pattern
Context
State
ConcreteState
method Handle() ใช้เป็น Save()
method Request() ของ Page ก็ใช้ป็น OnSaveClick()
* Start State ของ Page ได้รับจาก Main Menu *
Context
Page หรือ Form
State
ทำเป็น abstract class ของ Action
ConcreteState
ConcreteStateA = Add
ConcreteStateB = Change
ConcreteState........
method Handle() ใช้เป็น Save()
method Request() ของ Page ก็ใช้ป็น OnSaveClick()
* Start State ของ Page ได้รับจาก Main Menu *
// Context
public partial class MaterialMaster : System.Web.UI.Page{
// State
public abstract class MaterialMasterActionState {
// Handle()
public abstract void Save(MaterialMaster Context);
}
// ConcreteStateA
public class MaterialAdd : MaterialMasterActionState{
public override void Save(MaterialMaster Context) {
// Save Material into Database
}
}
// ConcreteStateB
public class MaterialChange : MaterialMasterActionState{
public override void Save(MaterialMaster Context) {
// Change Material into Database
}
}
#region ActionState Properties
private MaterialMasterActionState _ActionState;
public MaterialMasterActionState ActionState {
get { return (Session["state"] as MaterialMasterActionState); }
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
switch (Request.QueryString["action"])
{
case "add":
_ActionState = new MaterialAdd(this);
break;
case "change":
_ActionState = new MaterialChange(this);
break;
case "delete":
break;
case "display":
break;
default:
break;
}
if (_ActionState != null) { Session["state"] = _ActionState; }
}
// Request()
void ToolsBar1_SaveButtonClicked(object sender, EventArgs e)
{
// State.Handle()
if (Session["state"] != null)
{
ActionState.Save(this);
}
}
}
สมัครสมาชิก:
บทความ (Atom)