|
|
|
พี่ๆครับช่วยดัดแปลงโค้ดโปรแกรมให้ผมหน่อยครับผมจนปัญญาแล้วครับบ.......... |
|
|
|
|
|
|
|
คือว่าต้องการให้มันรันเลขที่เอกสารใหม่เวลาที่ขึ้นเดือนใหม่ครับให้มันเริ่มนับใหม่ครับตอนนี้มันรัน พศ.+เดือน+ID ครับ เช่น 5405001,5405002,........ครับ พอมันขึ้นเดือน 6 มันก็ยังเป็น 5406003,5406004,.....ครับ อยากให้มันเป็น 5406001,5406002,...แบบนี้ครับ ผมทำไม่เป้นจริงๆครับช่วยต่อเติมซอสโค้ดให้ผมหน่อยครับขอบพระคุณมากครับผม...
Code (C#)
private void GetNum()
{
sb = new StringBuilder();
sb.Append("SELECT IFNULL(MAX(SUBSTR(PRNumber,-3,3)),0) AS MySubStr FROM purchase");
int i;
int t = DateTime.Today.Year + 543;
string sqlNum;
string y = t.ToString().Substring(2, 2);
sqlNum = sb.ToString();
com = new OdbcCommand();
com.CommandText = sqlNum;
com.CommandType = CommandType.Text;
com.Connection = Conn;
dr = com.ExecuteReader();
if (dr.HasRows )
{
dr.Read();
i = dr.GetInt32(0) + 1;
txtPr.Text = (y) + DateTime.Today.Month.ToString("00") + i.ToString("000");
}
else
{
txtPr.Text = (y) + DateTime.Today.Month.ToString("00") + "001";
}
dr.Close();
}
Tag : .NET, MySQL, Crystal Report, C#, VS 2008 (.NET 3.x)
|
|
|
|
|
|
Date :
2011-05-26 13:29:20 |
By :
มือใหม่ครับ |
View :
998 |
Reply :
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จัดไป
Code (VB.NET)
private void GetNum()
{
string sqlNum;
sqlNum = "SELECT IFNULL(MAX(SUBSTR(PRNumber,-3,3)),0) AS MySubStr FROM purchase";
string prefixStr = DateTime.Today.Format("mmdd");
//int t = DateTime.Today.Year + 543;
//string y = t.ToString().Substring(2, 2);
com = new OdbcCommand();
com.CommandText = sqlNum;
com.CommandType = CommandType.Text;
com.Connection = Conn;
dr = com.ExecuteReader();
if (dr.HasRows )
{
dr.Read();
i = dr.GetInt32(0) + 1;
txtPr.Text = prefixStr + i.ToString("000");
}
else
{
txtPr.Text = prefixStr + "001";
}
dr.Close();
}
ไม่ได้ใช้ประโยชน์จาก string builder เลยผมเลยเอาออกนะ จะได้สั้นลง เข้าใจง่ายๆ
ลองดุครับ
|
|
|
|
|
Date :
2011-05-26 13:43:05 |
By :
salapao_codeman |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับผมจะลองดูนะครับ
|
|
|
|
|
Date :
2011-05-26 14:41:59 |
By :
woraponc |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ได้เลยครับผม ลองแล้วยังเป้นเหมือนเดิมครับ พอเปลี่ยนจากเดือน 5เป็นเดือน 6 มันก็รันต่อกันไปเลยครับ
ที่ต้องการคือ เดือน 5 เช่น 5405001 จบที่ 5405008 แบบนี้ แล้วพอขึ้นเดือนใหม่คือ เดือนถัดไป ก็ให้รันเป็น 5406001,5406002,ไปจนจบแล้วเดือนถัดไปเดือน7 ก็เป้น 5407001,5407002,ไปแบบนี้นะครับ เพราะแต่ละเดือนไม่ได้จำกัดว่าจะจบที่เลขไหนครับ แต่ว่าหากเริ่มเดือนใหม่ก็ให้เริ่ม 3 ตัวหลังเป็น 001 น่ะครับ ขอบคุณครับ
|
ประวัติการแก้ไข 2011-05-26 15:09:46
|
|
|
|
Date :
2011-05-26 15:00:32 |
By :
woraponc |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|