PDA

View Full Version : انتقال سند موقت به دایم



maryamb
سه شنبه 25 تیر 1387, 13:56 عصر
به نام خدا
من تو برنامم دو نوع صدور سند دارم . دایمی و موقت
حالا می خوام بدونم وقتی کاربر سند موقت رو ثبت کرد بعد اونو چطوری می تونه به سند دایم تبدیل کنه؟
من خودم دو راه به فکرم رسید ببینید خوبه ؟
اول اینکه دو تا جدول در نظر بگیرم با ساختار یکسان و یکی برای موقت و دیگری برای دایم .بعد هر سند موقتی که می خواد دایم بشه اطلاعاتش به اونیکی جدول کپی بشه.
دوم اینکه یه فیلد در نظر بگیرم و دایم یا موقت بودنشون رو اونجا چک کنم و در واقع همه ی سند ها تو یه جدول وارد بشن.
حالا شما دوستان اگه فکر خاصی به نظرتون میرسه منو در جریان بزارین .
ضمنا در مورد روش اول ، انتقال قسمتی از داده از یه جدول به یه جدول دیگه رو نمی دونم چجوریه . اگه راهنمایی کنین ممنون می شم.(چطوری می شه داده هایی که مثلا فیلد شماره سند تو اونا یک هست به جدول دیگه انتقال پیدا کنه؟)

hamedMohammad
سه شنبه 25 تیر 1387, 14:30 عصر
با سلام
دوست عزیز بنظر من یک فیلد از نوع Yes/No در یک جدول داشته باشید و سند های موقت و دایم در یک جدول باشند و با همین فیلد Yes/No متمایز شوند خیلی راحت تر مدیریت می شوند.
موفق باشید.:چشمک:

soheil_programmer
سه شنبه 25 تیر 1387, 15:27 عصر
با سلام
دوست عزیز بنظر من یک فیلد از نوع Yes/No در یک جدول داشته باشید و سند های موقت و دایم در یک جدول باشند و با همین فیلد Yes/No متمایز شوند خیلی راحت تر مدیریت می شوند.
موفق باشید.:چشمک:

با سلام

نظر منم دقیقاً نظر دوستمون یعنی فیلد ازنوع Yes/No است. که شما راحت با یک Query میتونی این دو نوع سند را ازهم تمیز بدی.

مثلاً سند دائمی را میگیری Yes و سند موقت را No بعد برای گرفتن لیست سند دائمی کد sql زیر را به کار می بری:


select * from YourTableName where [YesNoFieldName]=True

برای سند موقت هم کد sql زیر را:

select * from YourTableName where [YesNoFieldName]=False

maryamb
سه شنبه 25 تیر 1387, 15:33 عصر
پس در واقع می گید که راه دوم پیشنهادی خودم خوبه ؟
حالا یه سئوال : شماره سند رو چیکار کنم؟
مسئله اینه که نباید ترتیب سند ها به هم بخوره و باید شماره سند و تاریخ هر دو به ترتیب باشن.
حالا اگه شماره سند موقت من 2 باشه ولی سند دایم من به 13 رسیده باشه ، نمی خوام این سند موقت شماره اش بشه 14 ، می خوام طبق تاریخ بره سر جای خودش و بقیه شماره ها یکی یدونه زیاد شن . مثلا شماره اش بشه 5 و بقیه ها یدونه زیاد شن تا آخری بشه 14
می شه این کارو کرد ؟؟ اگه آره چجوری ؟
اگه نه پس چه راه دیگه ای به فکرتون می رسه؟
منظورم اینه که چطور می شه وقتی با تاریخ ردیفشون می کنم شماره ها از ترتیب نیفتن ؟
من فکر کنم نشه این کارو کرد ...

ali_md110
چهارشنبه 26 تیر 1387, 13:54 عصر
دوست عزیز برنامه شما نمایش رکوردها ی ثابت و موقت رو چگونه نشون میده توی دیتاگراید یا کدام کنترل هستش هر دو رو جدا گانه یا همه رکوردها چه ثابت یا موقت توی یک کنترل نشون میده ؟ اگر مشخص بکنی راه حلی شاید داشته باشه
برنامه شما رکورد رو بر حسب تاریخ و زمان زخیره میکنه شما میتونید یک فیلد به غیر از شماره سند مثلا شماره رکورد داشته باشی و یک شماره متوالی بر حسب داده ورودی به رکوردها اختصاص بدی مثلا اگز امروز 20 رکورد ثبت کرده باشی چه ثابت چه موقت برا این فیلد(شماره رکورد) فرقی نداشته باشه و به ترتیب از 1 الی 20 رو ثبت کنه و همپچنین زمان زخیره شدن رو و هر زمان یک رکورد موقت رو دایم کردید رکوردهای فیلد شماره سند رو بوسیله رکوردهای شماره رکورد آپدیت کنید میتونید رکوردهای فیلد شماره رکورد رو توی ارایه زخیره کرده یا بریزید توی یک لیست باکس یا کومبو باکس و رکوردهای فیلد شماره سند رو بوسیله این کنترلها آپدیت کنید

maryamb
شنبه 29 تیر 1387, 10:27 صبح
ببخشید اگه هر دو نوع رو تو یه جدول بزارم و فقط یه فیلد برای شناسایی شون استفاده کنم ، شماره هاشو چیکار کنم؟
آخه سند موقت باید از 1 شروع بشه و یکی یکی زیاد شه ، سند دایم هم همینطور
ولی اینجوری که با هم تو یه جدول مشترک هستن ، فیلد شماره سندشون هم یکی هست ؟؟؟

ali_md110
یک شنبه 30 تیر 1387, 01:39 صبح
شما یه برنامه دارید که در روز n سند ثبت میشه و ممکنه دایم یا موقت باشه و همچنین ممکنه سندهای شما اگر تعدادشون مثلا 20 سند در روز شد 17 تا دایم و 3 تاشون موقت باشه
و هر وقت که سند موقت رو دایم کردید بنا بر شماره ثبت اون سر جای خودش قرار بگیره
دوست عزیز شما طبق گفته خودتون قرار شد یک فیلد bol توی بانکتوت قرار بدید اگر true شد معلومه دایم هستش و اگر false باشه که رکورد موقت هستش
اگر ممکنه بانک برنامتون یا کد برنامتون رو بزارید تا براتون اصلاحش کنم

maryamb
یک شنبه 30 تیر 1387, 09:49 صبح
من فعلا در حال طراحی برنامه هستم . هنوز ÷یادش نکردم . سر این قسمت بد جوری گیر افتادم . از دوستان با تجربه خواهش می کنم کمکم کنن.
حالا گیریم هر دو نوع سند رو تو یه جدول گذاشتم ، و با یه فیلد اونا رو مشخص کردم. تا اینجا حله .الان مشکل اینه که شمارشو چیکار کنم.فرض کنیین جدول من مثل زیر هست :
جدول 1 : تاریخ - شماره سند - شرح سند - نوع(دایم یا موقت )
حالا سند اول رو که دایم بود وارد کردم :
جدول 1 : 87/04/29 - 1 - هزینه فلان - دایم
که در اینجا شماره سند بطور اتوماتیک با زدن هر سند یکی زیاد می شه.
حالا سند دوم موقت هستش ، و اولین سند موقت هست.
باز هم اطلاعاتش تو همون جدول باید وارد بشه . ولی شمارش 1 باشه. چون اولین سند موقته .
ولی برنامم براش شماره 2 رو می زنه دیگه.مشکل همینجاست.
نمی دونم چیکار کنم .
مثلا اگه 5 تا سند در روز داشته باشم برنامه براش شماره از 1 تا 5 می زنه . در حالی که ممکنه 2تاش موقت باشه و 3 تاش دایم .
امید وارم مفهوم بوده باشه . از دوستان با تجربه خواهش می کنم هر فکری به ذهنشون رسید بهم بگن . بد جوری کارم لنگه

ali_md110
یک شنبه 30 تیر 1387, 23:16 عصر
یک نمونه بانک براتون گزاشتم شاید راهنمایی بکنه
شما باید از طریق کد نویسی ابتدا نوغ ثبت رو مشخص کنید و بعد فیلدهای دایم و موقت رو با تاریخ امروز چک کنید چنانچه رکوردی وارد نشده رکورد اول در نظر بگیره اگر نه یکی به آخر اضافه کنه چه برای فیلد موقت چه ثابت و درضمن ثبت فیلد موقت نباید دنباله فیلد ثابت باشه اون هم مانند فیلد ثابت باید با تاریخ روز چک بکنی و بعد ثبت کنی چنانچه امروز سند موقتی ثبت نشده مثلا یک رو در نظر بگیرید و ثبت کنید
اگر فیلد موقت رو خواستید ثابت کنید باید فیلد ثابت معادل اون رو با آخرین رکورد ثبت شده در فیلد ثابت +یک آپدیت گنی و اون فیلد موقت رو صفر اپدیت کنی و همچمین فیلد نوع رو هم true کنی و بر حسب زمان سورت کنی تا ترتیب شماره سند حفظ بشه

دقت کنید هر زمان اگر رگوردی دایم ثبت کردید باید معادل اون در فیلد موقت رو عدد صفر ثبت کنی و همچنین بر عکس
مشکلاتی که هست اگر یک رکورد حذف شد باز شماره ها بهم میخوره
شما باید بیشتر تو این برنامه با کد نویسی سر و کله بزنید
:شیطان:مشکلتون حل میشه
اگر از اسکیول سرور استفاده کنید تریگرها راهگشای این گونه موارد هستند ولی فکر کنم شما با اکسس سر وکار دارید