PDA

View Full Version : لیست بدهکاران



ramsess
دوشنبه 12 مرداد 1388, 07:47 صبح
اهل فن سلام ضمن تشکر از همه راهنماییهاتون و عرض خسته نباشید
من برنامه مدیریت اتحادیه صنف رو نوشتم توی این قسمت مشکل دارم که هر فردی رو که ثبت نام می کنم به عنوان فرد جدید سال بعد باید مبل تمدید رو پرداخت کنه مثلا اگه کسی در تاریخ 12/10/1388 ثبت نام کرد اگر سال بعد تاریخ سیستم بشود 12/10/1389 وقتی گزارش بدهکاران رو بگیریم باید اسم این فرد داخل گزارش بیاد . یا حداقل توی جستجو داخل dngrid نشون بده بقیش با خودم .
یه مورد دیگه اینکه من از MaskEdBox استفاده می کنم برای دریافت تاریخ استفاده می کنم و می خوام وقتی کسی رو توی تاریخ صدور وارد کردم سیستم به طور اتوماتیک در تاریخ انقضا که یک فیلد دیگه هست بیاد ده سال به عدد سال اضافه کنه مثلا اگه تاریخ صدور 12/10/1388 باشه وقتی که کلید tab رو زدم داخل text بعدی که تاریخ انقضاء هست بنویسه 12/10/1398
پیشا پیش از راهنماییتون ممنون

HjSoft
دوشنبه 12 مرداد 1388, 09:03 صبح
خودتون هم سوال كردين ، هم جواب دادين . درسته با استفاده از dll شمسي آقاي Mbt شما ميتونيد به تاريخ مثلا يك سال اضافه كنيد . بعد براي نمايش ليست بدهكاران ، اين كد رو بزن :

rst.filter = "undate < '" & TODAY &"'"
اگر برعكس جواب داد ، > رو به < تبديل كن .

ramsess
دوشنبه 12 مرداد 1388, 11:35 صبح
آقای wolfsk من صمیمانه از شما تشکر و قدردانی می کنم که همیشه با حوصله و سریع به درخواست ها جواب می دین . ممنونم این کار رو انجام می دم ببینم چی می شه . مرسی

ramsess
جمعه 16 مرداد 1388, 11:23 صبح
سلام دوست من متاسفانه درست جواب نداد همه ركوردها رو مي آره
سوال دومم رو اگه م يتونيد جواب بدين چطور مي شه ده سال به MASKEDBOX اضافه كرد فقط به قسمت سال اون

HjSoft
شنبه 17 مرداد 1388, 08:50 صبح
اين مشكل از دو چيز پيش مياد : تاريخ رو به صورت 1388/01/01 وارد نكرده باشيد .
اتصال گريد از بانك قطع شده باشه .

ramsess
شنبه 17 مرداد 1388, 12:30 عصر
نه دوست من همه چی درسته
چون توی گزارش گیری بین دو تاریخ درست کار می کنه
همه عددها درست وارد شدن
وقتی هم اجرا می کنم dbgrid تییر می کنه یعنی معلومه دستورات رو می گیره
حال اگه اونجوری هم نبود که بتونه لیست بدهکاران رو بگیره طور دیگه هم بشه مشکلی نیست
حتی می شه یک text باشه که توی اون تاریخ رو دریافت کنه و با تاریخ واریزی چک کنه به همراه تاریخ همین روز ببینه تو این تاریخ یکسال گذشته یا نه اگه یک سال گذشته و مبلغی وارد نکرده بدهکار بشه و اگه وارد کرده توی این یکسال توی گزارش نیاره مرسی

ramsess
چهارشنبه 21 مرداد 1388, 17:45 عصر
از راهنمایی هایی که می کنی ممنون من یه راه حل پیدا کردن برای مشخص کرده بدهکاران
ببینید اگه ما بیام فیلد سال ثبت شده رو به صورت 13870521 و فیلد تاریخ جاری سیستم رو به صورت 13880521 ذخیره کنیم و این دو تارو از هم کم کنیم عدد 10000 به دست می آد
و بعد عدد 10000 رو داخل یک text دیگه می ریزیم اگر از 10000 بیشتر بود و فیلد مبل خالی بود می شه بدهکار در یک سال و اگه 20000 بود می شه دو سال در صورتی که فیلد مبلغ اون عدد صفر باشه حالا توی دستور sql این الگوریتم موندم لطف کنین و دستور sql رو به من بدین

HjSoft
پنج شنبه 22 مرداد 1388, 10:29 صبح
اين دقيقا كد منه :

ado.Recordset.filter = "date < '" & To_Hejri(Now) & "'"
و خيلي تا حالا تست كردم و مشكلي نداشته !

براي اضافه كردن يك سال يا كلا يك تاريخ به تاريخ ديگر بايد از Activex كه آقاي Mbt925 گذاشتن استفاده كنيد . خيلي كامله و مشكلي هم نداره . ( خدا خيرشون بده )

Mbt925
جمعه 23 مرداد 1388, 09:49 صبح
من متوجه نشدم، مشکل شما در جستجوی تاریخه ؟
یا روشی برای نگهداری بدهکاران در پایگاه داده ای تون؟

hossein033
جمعه 23 مرداد 1388, 15:22 عصر
با سلام خدمت آقای Mbt925

ایشون گفتن که میخوان هر وقت که مخاطبی رو ذخیره کردن همراه اون تاریخ هم ذخیره بشه و بعد گذشت 1 سال این مخاطب در لیست بدهکاران قرار بگیره اگه جواب رو بدید ممنون میشم.:بوس:

HjSoft
جمعه 23 مرداد 1388, 20:28 عصر
دوست من ، اگر كد هاي بالا كار نميكنه ، مشكل شما در جستجو نيست ، مشكل شما بر ميگرده به اطلاعات ثبتي و ورودي .

Mbt925
شنبه 24 مرداد 1388, 00:32 صبح
با سلام خدمت آقای Mbt925

ایشون گفتن که میخوان هر وقت که مخاطبی رو ذخیره کردن همراه اون تاریخ هم ذخیره بشه و بعد گذشت 1 سال این مخاطب در لیست بدهکاران قرار بگیره اگه جواب رو بدید ممنون میشم.:بوس:

من دقیقا به این صورت مسئله ای که شما گفتید پاسخ میدم.

1. مطمئنا یه فیلد برای ذخیره تاریخ اضافه شدن مخاطب قرار داده شده که تاریخ شمسی رو مثلا با فرمت yy/mm/dd ذخیره می کنه.

2. برای قرار گرفتن مخاطبینی که بیش از یک سال قبل به پایگاه اضافه شدن، در لیست بدهکاران به صورت زیر عمل می کنیم:

2.1 ابتدا تاریخ جاری رو بدست میاریم (شمسی). سپس 1 سال از این تاریخ کم می کنیم (روشی ساده برای این منظور استفاده از DLL ای هست که در تاپیک اکتیوایکس ها قرار دادم : MEShamsiDLL) --> تاریخ جدید بدست آمده رو مثلا در متغیر رشته ای pdate قرار میدیم.

2.2 حالا فقط یک کوئری ساده، لیست مخاطبینی که باید در لیست بدهکاران قرار بگیرن رو میده:


SELECT [اسم ستون مخاطبین] FROM [اسم جدول مربوطه] WHERE d<=pdate که d اسم فیلدیه که تاریخ ذخیره مخاطب درش قرار گرفته.

ramsess
چهارشنبه 28 مرداد 1388, 14:06 عصر
بسیار ممنون و سپاسگزارم الگوریتم و راه حل شما کاملا درست بود
یه نکته فقط می مونه یک نفر ممکنه چند سال پول واریزکرده باشه مثلا سالهای قبل (دوسال سه سال چهار سال) قبل در واقع آخرین رکورد رو بیاد کنترل کنه یعنی آخرین واریزی رو چک کنه
ویه نکته اینکه چطورمی شه چنددستور and از دستورات sql رو پشت سر هم نوشت
برای این می خوام که این شرط رو هم چک کنه که فرد اصلا مبلغ وارد کرده یا نه ؟

Mbt925
چهارشنبه 28 مرداد 1388, 14:40 عصر
WHERE condition AND condition AND ...

ramsess
پنج شنبه 29 مرداد 1388, 07:46 صبح
Adodc1.RecordSource = "SELECT * FROM neww WHERE tarikh>='" & Trim(txtDate.Text) & "' " & " and tarikh<='" & Trim(txtDate1.Text) & " ' "
Adodc1.Refresh
ممنونم . سوالم بیشتر رو اون سمبلهاییه که توی دستورات می نویسه
منظورم اون سمبل هایی که بارنگ مشخصکردم اگه لطف کنین و به صورت علمی توضیح بدین چه موقع از "" استفاده می شه چه موقع از " ' " و چه موقع از & و چرا استفاده می شن من استفاده می کنم ولی خودم هم نمی دونم چرا باید اینها رو توی دستور sql بنویسم

HjSoft
پنج شنبه 29 مرداد 1388, 08:50 صبح
من زياد با كد هاي sql كارنكردم اما از فيلتر به اين صورت ميشود استفاده كرد .

rst.filter = "name = '"& name.text & "' and family = '" & family.text "'"

Mbt925
پنج شنبه 29 مرداد 1388, 13:56 عصر
Adodc1.RecordSource = "SELECT * FROM neww WHERE tarikh>='" & Trim(txtDate.Text) & "' " & " and tarikh<='" & Trim(txtDate1.Text) & " ' "
Adodc1.Refresh
ممنونم . سوالم بیشتر رو اون سمبلهاییه که توی دستورات می نویسه
منظورم اون سمبل هایی که بارنگ مشخصکردم اگه لطف کنین و به صورت علمی توضیح بدین چه موقع از "" استفاده می شه چه موقع از " ' " و چه موقع از & و چرا استفاده می شن من استفاده می کنم ولی خودم هم نمی دونم چرا باید اینها رو توی دستور sql بنویسم

مقدارهای رشته ای در SQL بین علامت ' قرار می گیرن. مقدارهای عددی بین چیزی قرار نمی گیرن.

& برای چسباندن رشته ها در وی بی به کار میره.