سلام
برنامه ای دارم که یه بازه زمانی رو قراره بفرسته به استیمول
مثلا 8 ساعت کاری رو
این بازه رو SQL حساب میکنه
میخام اگر بازه بیشتر از 8 ساعت شد
توی استیمل فیلد توضیحات مثلا بزنه "از دوربین چک شود"
ممنون میشم راهنمایی کنید
Printable View
سلام
برنامه ای دارم که یه بازه زمانی رو قراره بفرسته به استیمول
مثلا 8 ساعت کاری رو
این بازه رو SQL حساب میکنه
میخام اگر بازه بیشتر از 8 ساعت شد
توی استیمل فیلد توضیحات مثلا بزنه "از دوربین چک شود"
ممنون میشم راهنمایی کنید
این فیلد توضیحات یکی برای کل گزارش هست یا یکی به ازای هر سطر جدول گزارش؟
نمونه کوئری sql بزارید.
برای هر ردیف یک فیلد توضیحات
کویری
public StiReport reporrt = new StiReport();
public void regdata(StiReport report)
{
try
{
var db = new DataClasses1DataContext();
using (DataClasses1DataContext nn = new DataClasses1DataContext())
{
var Qselect = from s in nn.Tbl_Times
where
s.Name == comboBox1.Text
&&
string.Compare(s.Date, dateTimeSelector1.Text) >= 0
&&
string.Compare(s.Date, dateTimeSelector2.Text) <= 0
select new { s.Name, s.User_TimeEnter, s.User_TimeOut, s.Baze_Date ,s.Date};
report.RegData("Qselect", Qselect);
}
}
catch (SqlException)
{
MessageBox.Show("عملیات گزارش گیری با مشکل روبه رو شده است ", "پیغام", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
نوع ستونها چیه.
Baze_Date اختلاف زمان ورود و خروج هست؟
با فرض اینکه زمان ورود و خروج از نوع DateTime هستند به راحتی میتونید محاسبه کنید و نیازی به ذخیره بازه در دیتابیس نیست.
جدولی شامل نام(بهتره آیدی شخص ذخیره شود)، زمان ورود و خروج. به ضورت زیر میتونید عمل کنید
// Convert 8Hours to seconds
int durationSeconds = 8 * 60 * 60;
var q =
from t in db.TblTimes
let baze =
System.Data.Linq
.SqlClient.SqlMethods.
DateDiffSecond(t.DateTimeEnter, t.DateTimeOut) // in entityframework use System.Data.Entity.DbFunctions.DiffSeconds()
select new
{
t.Name,
t.DateTimeEnter,
t.DateTimeOut,
Baze = baze,
Tozihat = baze > durationSeconds ? "از دوربین چک شود." : "---------------"
};
مانوع ستون ها رو nvarchar(30) در نظر گرفتیم
در اینجا
int durationSeconds = 8*60*60;
8 ساعت در نظر گرفتید..امکان داره کارمندی بیشتر بمونه مثلا 10 ساعت .باید کد رو چظور تغیر داد !
این خطا دارم
دوستان؟؟؟؟؟؟؟؟؟؟؟؟
اسم متد DateDiffSecond هست. این متد برای زمانی هست که زمانها میلادی باشند.