ورود

View Full Version : حرفه ای: ساخت فاکتور فروش شبیه برنامه های حسابداری



m.4.r.m
یک شنبه 05 شهریور 1391, 12:57 عصر
دوستان می خواستم بدونم مثل برنامه هلو و .... چه طوری میشه یه فاکتور فروش چند سطری در یک دیتاگرید ساخت و همه اون اطلاعات رو داخل دیتابیس ذخیره کرد یا اصلا روش کار اونا چیه ؟ ممنون میشم کمی توضیح بدین تا بفهمم روش کارو .

m.4.r.m
یک شنبه 05 شهریور 1391, 16:15 عصر
تصویر ضمیمه شد ، دوستان می خوام وقتی رو صدور فاکتور جدید کلیک می کنم اطلاعات Grid با یک شماره فاکتور در داخل دیتابیس ذخیره بشه .

m.4.r.m
یک شنبه 05 شهریور 1391, 17:16 عصر
کسی نبود ؟

m.4.r.m
یک شنبه 05 شهریور 1391, 21:29 عصر
یکی جواب بده خیلی لازمه .

اگه حال ندارین توضیح بدین لاقل بگین چه طوری می تونم تو VSflexgrid اطلاعات چند سطر رو مثلا 5 ستون داره از این 5 ستون 4 سطرو پر کردم اینو چه طوری ارسال کنم به Adodc تا همشون ذخیره بشن واجبه تو رو خدا یکی جواب بده

محسن واژدی
یک شنبه 05 شهریور 1391, 23:16 عصر
سلام علیکم
تاپیک زیر بررسی کنید:
http://barnamenevis.org/showthread.php?245670-سورس-نرم-افزار-فاکتور-فروش/page1

موفق باشید

m.4.r.m
یک شنبه 05 شهریور 1391, 23:54 عصر
آقا محسن مرسی لطف کردی اینو که لینک دادی رو بلدم خودم اینی که من میگم کارو راحت می کنه اگه بتونید اینو بهم بگید کارم راه میوفته یه کارایی کردم ها اما خطوط برنامه زیاد میشه اگه شما به من فقط بگین چه طوری می تونم VSflexgrid رو که مثلا 10 سطر پرش کردم رو بفرستم توی دیتابیس ممنون میشم . منتظرم
تو این نمونه برنامه که پیدا کردم اینطوریه اما راستش نفهمیدم چی شد از دیتا استفاده کرده منم از adodc به همین خاطر هنگ کردم فعلا یه راهنمایی کوچولو باعث خواهد شد من کارم راه بیوفته مرسی

hrj1981
دوشنبه 06 شهریور 1391, 07:33 صبح
سلام
میتونی تعدادی سطرهای جدول رو تو یک FOR قرار بدی و تو هر گردش اون سطر مورد نظر رو با توجه به اطلاعاتی هر ستونش تویه بانک ذخیره کنی

Dim l As Long
l = 0
For l = l + 1 To (VSFlexGrid1.Rows - 1)
Adodc1.Field("نام فیلد")=VSFlexGrid1.Cell(flexcpText ,l,شماره ستون)
.
.
Adodc1.Update
Next

m.4.r.m
دوشنبه 06 شهریور 1391, 10:16 صبح
نشد با این هم جواب نداد خطا میده میگه نمی تونی چند سطر اضافه کنی میشه همین مثال به صورت ضمیمه برام بفرستی رفیق ؟ حیاطیه ممنون

hrj1981
دوشنبه 06 شهریور 1391, 12:35 عصر
یه نکته ، اول اون نمونه کدی که گذاشتم اونجایی که ADODC را گذاشتم برای درج یک رکورد جدید یدونه ADODC .addnew بذار

hrj1981
دوشنبه 06 شهریور 1391, 12:49 عصر
این یه تیکه کد از داخل یکی از پروژه هامه کد اولی وقتی کلید ذخیره رو اشاره میکنم سطرهای گرید رو به ترتیب چک میکنه و در صورت صحت اطلاعات عملیات ذخیره(بخش قرمز رنگ) رو فراخوانی میکنه ( کد دوم)، شما از قسمتی که حلقه شروع میشه میتونی برای خودت تحلیلش کنی و مخصوصا بخش قرمز رنگو رو ازش استفاده کنی

With Grid
R = 0
For R = R + 1 To (.Rows - 1)
If Trim$(.Cell(flexcpText, R, 1)) <> Empty Then
If Val(.Cell(flexcpText, R, 3)) <= -1 Or _
Val(.Cell(flexcpText, R, 4)) <= -1 Or _
StrComp(.Cell(flexcpText, R, 3), .Cell(flexcpText, R, 4), vbBinaryCompare) = 0 Then
.Select R, 3
.CommandBars.StatusBar(1).Text = "ÎØÇí ãÈáÛ ÓäÏ"
Exit Sub
End If
Save_Rec .Cell(flexcpText, R, 1), _
.Cell(flexcpText, R, 2), _
.Cell(flexcpText, R, 3), _
.Cell(flexcpText, R, 4), _
.Cell(flexcpText, R, 5)
End If
DoEvents
Next
End With


Private Sub Save_Rec(Cnt_ID As Long, _
Cnt_des As String, Cash_Fee_Amount As Currency, _
Cash_Fee_Debit As Currency, Cash_Des As String)

On Error GoTo Save_Rec_Err

Dim cnn As New Connection, Rs As New Recordset
cnn.Open DBF
Rs.Open "SELECT * FROM Tbl_Cash", cnn, adOpenKeyset, adLockOptimistic
With Rs
.AddNew
.Fields("Cash_Date") = Trim$(FlatEdit1.Text)
.Fields("Cash_Time") = Time$
.Fields("Sal") = SAL

.Fields("SNDmod_ID") = Trim$(FlatEdit3.Text)
.Fields("SNDmod_Des") = Trim$(ComboBox2.Text)
.Fields("SNDmod_mahiat_ID") = Trim$(Text2.Text)

.Fields("Acc_Num") = Trim$(ComboBox1.Text)
.Fields("Acc_ID") = Trim$(Text1.Text)

.Fields("Cnt_ID") = Trim$(Cnt_ID)
.Fields("Cnt_Des") = Trim$(Cnt_des)
.Fields("Cash_Fee_Amount") = Cash_Fee_Amount
.Fields("Cash_Fee_Debit") = Cash_Fee_Debit
.Fields("Cash_Des") = Trim$(Cash_Des)

'Is save Public Information
.Fields("SYS_Name") = Environ("USERNAME")
.Fields("User_Name") = UserOn
.Fields("SYS_Date") = Roz
.Fields("SYS_Time") = Time
.Fields("Rec_Mod") = "æÑæÏ ÇØáÇÚÇÊ ÌÏíÏ"
'>
.UpdateBatch adAffectCurrent
End With
Rs.Close
cnn.Close

End Sub

m.4.r.m
دوشنبه 06 شهریور 1391, 14:34 عصر
ببینید من می خوام تو دیتابیس مثل عکس زیر 4 مورد رو با ID تکراری ثبت نم چیکار کنم ؟ حالا به هر روشی که است Adodc و SQL کار می کنم تو این پروژه . ممنون کدی که دادید تو برنامه من ست نشد جواب نگرفتم اینو یکی به من بگه حله نوکرشم هستم دیگه دیوونه شدم از دست این کد چه طوری میشه مثله این عکس 4 و5 یا هر چند تعداد رکورد تکراری ثبت کرد ( Id تکراری ) اشتباه نگیرید ها توی دیتاگرید یا Flexgrid بعد از اینکه 4 سطر با همین اطلاعات عکس پر شد اونا رو ذخیره کنه والاسلام

hrj1981
دوشنبه 06 شهریور 1391, 15:03 عصر
یک سوال دارم ، شما برایه این برنامت تو بانک اطلاعاتی برای فاکتورها و اقلامی که توش میخواد ثبت بشه چندتا تیبل درست کردی؟

m.4.r.m
دوشنبه 06 شهریور 1391, 15:54 عصر
یک جدول برای آیتم ها ( ماست و .... ) ، یک جدول برای مشتری ، یک جدول برای ( فاکتور ) جدول فاکتور کلیدشو از Factor_Id برداشتم تا بتونم فیلد تکراری توش ذخیره کنم یا اینکه باید گزینه Dublicate رو فعال کنم حالا بگذریم من وقتی می خوام چند تا رکورد رو باهم وارد کنم بعد سیو کنم تو این مشکل دارم به هر دری زدم نشد اگه میشه اینو برام توضیح بدین چی کار کنم مرسی

hrj1981
دوشنبه 06 شهریور 1391, 16:03 عصر
نمیدونم درست میگم یا نه ، چون شما شماره فاکتور رو به عنوان کلید اصلی انتخاب کردی پس نمیتونی تویه جدول اصلی فاکتورها دو تا فاکتور با یک شماره واحد ثبت کنی ، شما یک جدول برای شماره فاکتورها درست کن یک جدولم برای اقلامی که میخواهی تویه فاکتور ثبت کنی ،تو جدول اول کلید اصلی رو شماره فاکتور قرار بده و تو جدول دوم یک فیلد مثلا اتونامبر بذار و اونو کلید اصلی قرار بده که به ازای هر کالایی که وارد میکنی کلید اصلی جلوی کارتو نگیره

m.4.r.m
دوشنبه 06 شهریور 1391, 16:07 عصر
خوب داداش همین کارم کردم همه کارو تست کردم من با هیچی مشکل ندارم مشکل من فقط ثبت 4چند سطر داخل دیتابیس هستش اینو اگه بگی چه جوری حله من یک جدول دارم فقط کد فاکتور توش ذخیره میشه مثل 1 حالا یه جدول دیگه دارم که کد فاکتور تو اون جدول کلید خارجیه پس ارتباط یک به چند برقرار شده حالا چه طوری اطلاعات رو با کد فاکتور مثلا 1 وارد جدول دوم بکنم . اینجاش گیر کردم

hrj1981
دوشنبه 06 شهریور 1391, 16:12 عصر
فکر کنم مشکل شما رو فهمیدم ، تویه طراحی بانک اطلاعاتی فکر کنم باید تغییر بدی، کلید اصلی تویه جدول دوم چیه ؟

m.4.r.m
دوشنبه 06 شهریور 1391, 16:16 عصر
P_ID همون Product_ID

hrj1981
دوشنبه 06 شهریور 1391, 16:28 عصر
این کلید خاصیتش چیه؟

hrj1981
دوشنبه 06 شهریور 1391, 16:30 عصر
منظورم اینه که شما بهش عدد اضافه میکنی یا به صورت اتونامبره عدد اضافه میشه

m.4.r.m
دوشنبه 06 شهریور 1391, 16:34 عصر
اصلا تو این جدول کلید هم نگیریم میشه کلید اصلی نمی خواد ای جدول چون از تمامی جدول ها توش یک کلید خارجی تعریف میشه پس لزومی نیست کلید اصلی داشته باشه شما با این احتمال که کلید نداره قضیه رو نگاه کن داداش