سلام
برنامه ای دارم که یه بازه زمانی رو قراره بفرسته به استیمول
مثلا 8 ساعت کاری رو
این بازه رو SQL حساب میکنه
میخام اگر بازه بیشتر از 8 ساعت شد
توی استیمل فیلد توضیحات مثلا بزنه "از دوربین چک شود"
ممنون میشم راهنمایی کنید
سلام
برنامه ای دارم که یه بازه زمانی رو قراره بفرسته به استیمول
مثلا 8 ساعت کاری رو
این بازه رو SQL حساب میکنه
میخام اگر بازه بیشتر از 8 ساعت شد
توی استیمل فیلد توضیحات مثلا بزنه "از دوربین چک شود"
ممنون میشم راهنمایی کنید
این فیلد توضیحات یکی برای کل گزارش هست یا یکی به ازای هر سطر جدول گزارش؟
نمونه کوئری sql بزارید.
لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
قوانین پرسش های دانشجویی
برای درست وارد شدن کد در قالب C# سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C# منتفل کنید
نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها
برای هر ردیف یک فیلد توضیحات
کویری
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 ? "از دوربین چک شود." : "---------------"
};
آخرین ویرایش به وسیله Mahmoud.Afrad : یک شنبه 03 اردیبهشت 1396 در 14:21 عصر
مانوع ستون ها رو nvarchar(30) در نظر گرفتیم
در اینجا
int durationSeconds = 8*60*60;
8 ساعت در نظر گرفتید..امکان داره کارمندی بیشتر بمونه مثلا 10 ساعت .باید کد رو چظور تغیر داد !
این خطا دارم
آخرین ویرایش به وسیله vB.N3T : یک شنبه 27 فروردین 1396 در 14:00 عصر
دوستان؟؟؟؟؟؟؟؟؟؟؟؟
اسم متد DateDiffSecond هست. این متد برای زمانی هست که زمانها میلادی باشند.