PDA

View Full Version : کد نویسی در استیمول سافت



vB.N3T
پنج شنبه 24 فروردین 1396, 12:17 عصر
سلام
برنامه ای دارم که یه بازه زمانی رو قراره بفرسته به استیمول
مثلا 8 ساعت کاری رو
این بازه رو SQL حساب میکنه
میخام اگر بازه بیشتر از 8 ساعت شد
توی استیمل فیلد توضیحات مثلا بزنه "از دوربین چک شود"
ممنون میشم راهنمایی کنید

Mahmoud.Afrad
پنج شنبه 24 فروردین 1396, 17:03 عصر
این فیلد توضیحات یکی برای کل گزارش هست یا یکی به ازای هر سطر جدول گزارش؟
نمونه کوئری sql بزارید.

danialafshari
پنج شنبه 24 فروردین 1396, 19:29 عصر
سلام
برنامه ای دارم که یه بازه زمانی رو قراره بفرسته به استیمول
مثلا 8 ساعت کاری رو
این بازه رو SQL حساب میکنه
میخام اگر بازه بیشتر از 8 ساعت شد
توی استیمل فیلد توضیحات مثلا بزنه "از دوربین چک شود"
ممنون میشم راهنمایی کنید

اطلاعات رو از کجا به استیمول میفرسته؟
یکی از راهاش اینه که می تونید هنگام ارسال تعداد رو بدست بیارید و با استفاده از Variable به استیمول ارسال کنید و متن دلخواه رو براش نمایش بدید

vB.N3T
شنبه 26 فروردین 1396, 08:26 صبح
برای هر ردیف یک فیلد توضیحات
کویری

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);
}

Mahmoud.Afrad
شنبه 26 فروردین 1396, 11:37 صبح
نوع ستونها چیه.
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 ? "از دوربین چک شود." : "---------------"
};

vB.N3T
یک شنبه 27 فروردین 1396, 07:49 صبح
مانوع ستون ها رو nvarchar(30) در نظر گرفتیم
در اینجا
int durationSeconds = 8*60*60;
8 ساعت در نظر گرفتید..امکان داره کارمندی بیشتر بمونه مثلا 10 ساعت .باید کد رو چظور تغیر داد !
این خطا دارم

vB.N3T
یک شنبه 03 اردیبهشت 1396, 10:34 صبح
دوستان؟؟؟؟؟؟؟؟؟؟؟؟

Mahmoud.Afrad
یک شنبه 03 اردیبهشت 1396, 14:24 عصر
اسم متد DateDiffSecond هست. این متد برای زمانی هست که زمانها میلادی باشند.