PDA

View Full Version : یک راه حل برای برنامه نویسی حساب داری



behzad2002iran
سه شنبه 24 مهر 1386, 11:13 صبح
من یک برنامه حسابداری دارم مینویسم و یک راه حل میخوام.
میخوام کاربر هنگام وارد تغییرات یک سند حسابداری در پایان اطلاعات را بر روی بانک اطلاعاتی ذخیره کند ولی هر وقت next Record میشود اتوماتیک ذخیره میکند. و نوع بانک اطلاعاتی من طوری است که Table من Primery Key ندارد پس نمیتوانم یک Table دیگر ایجاد و با پیدا کردن رکورد به رکورد زخیره کنم.
و سئوال دوم که خیلی ابتدائی است ولی پیدا نکردم: چگونه میتوان خاصیت dgRowSelect را در dbgrid.options در برنامه نویسی تغییر داد.

بازهم شرمنده !!!!

و بانک اطلاعاتی من Sql Server و با AdoTable کار میکنم.

پرواز
سه شنبه 24 مهر 1386, 11:24 صبح
سوال اول رو من متوجه نشدم.

جواب سوال دوم اینه:

DBGrid1.Options := [dgTitles,dgIndicator,dgColumnResize,dgColLines,dgR owLines,
dgTabs,dgRowSelect,dgConfirmDelete,dgCancelOnExit];

Mohammad_Mnt
سه شنبه 24 مهر 1386, 12:02 عصر
این فکر کنم بهتر باشه


DBGrid1.Options := DBGrid1.Options + [dgRowSelect];

یا


DBGrid1.Options := DBGrid1.Options - [dgRowSelect];

behzad2002iran
سه شنبه 24 مهر 1386, 12:59 عصر
در مورد سئوال اول : در برنامه حساب داری کاربر میبایست قابلیت داشته باشد که در پایان تغییرات در یک سند (یعنی چندین سطر) آنها را ذخیره کند یا لغو کند. در حالی که در nex record شدن به صورت خودکار در بانک اطلاعاتی ذخیره میشود.

ودر مورد سئوال دوم: متشکرم

behzad2002iran
سه شنبه 24 مهر 1386, 13:29 عصر
در مورد سئوال دوم:
این جواب برای DBgrid خود دلفی کار میکنه ولی برای ابزار Woll2Woll یا wwDbGrid کار نمیکنه.
wwDBGrid1.Options := wwDBGrid1.Options + [dgRowSelect];

و Error زیر را در کامپایل کردن صادر میکنه.

Incompatible types: 'TwwDBGridOption' and 'TdbGridOption'

Mohammad_Mnt
سه شنبه 24 مهر 1386, 19:02 عصر
پس احتمالا" باید یه چیزی به نام wwdgRowSelect باشه. باید توی Help اش یا توی Unit های این کامپوننت بگردی ببینی چیه

mzjahromi
سه شنبه 24 مهر 1386, 19:40 عصر
در مورد سئوال اول : در برنامه حساب داری کاربر میبایست قابلیت داشته باشد که در پایان تغییرات در یک سند (یعنی چندین سطر) آنها را ذخیره کند یا لغو کند. در حالی که در nex record شدن به صورت خودکار در بانک اطلاعاتی ذخیره میشود.

ودر مورد سئوال دوم: متشکرم

1-اگر از BDE استفاده میکنی جداول و کوئری ها یک خاصیت به نام CatchedUpdate دارن که تا زمانیکه شما ApplyUpdate رو نزنی تغییرات روی بانک اصلی اعمال نمیشه ولی من به شخصه این روش رو توصیه نمیکنم چون حجم اطلاعات که بالا می ره سزعت افت قابل توجهی میکنه
2-clientDataSet هم حالت CatchedUpdate رو داره
3-توصیه میکنم با یه طراحی مناسب مشکلت رو حل کنی چون اونطور که بر میاد مشکل طراحی داری

vcldeveloper
سه شنبه 24 مهر 1386, 20:23 عصر
میخوام کاربر هنگام وارد تغییرات یک سند حسابداری در پایان اطلاعات را بر روی بانک اطلاعاتی ذخیره کند ولی هر وقت next Record میشود اتوماتیک ذخیره میکند.
ltBatchOptimistic را هم برای ADO جستجو کنید.



و Error زیر را در کامپایل کردن صادر میکنه.

Incompatible types: 'TwwDBGridOption' and 'TdbGridOption'در یونیت مربوطه، تعریف TwwDBGridOption را پیدا کنید و ببینید بجای dgRowSelect از چه مقداری استفاده کرده.

behzad2002iran
چهارشنبه 25 مهر 1386, 17:35 عصر
علی آقای کشاورز مشکل این جا است که از خود dgRowSelect هم در برنامه و هم در Help استفاده کرده است.

behzad2002iran
چهارشنبه 25 مهر 1386, 17:38 عصر
احتمالا خود کامپوننت مشکل دارد. متشکرم.

Mohammad_Mnt
چهارشنبه 25 مهر 1386, 18:26 عصر
پس این کد را امتحان بکن ( به جای MyUnit اسم یونیت کامپوننت را بذار )

BGrid1.Options := DBGrid1.Options - [MYUNIT.dgRowSelect]

پ.ن. : اصلا" مطمئن هستی که این گرید شما از همین پراپرتی Options برای انتخاب ردیف استفاده می‌کنه؟

SYNDROME
چهارشنبه 25 مهر 1386, 20:21 عصر
من از کد زیر استفاده می کنم و جواب می دهد.


IF Then
DBGrid_ListDetail.Options := [dgEditing,dgTitles,dgIndicator,dgColumnResize,dgCo lLines,dgRowLines,dgTabs,dgConfirmDelete,dgCancelO nExit]
Else
DBGrid_ListDetail.Options := [dgTitles,dgIndicator,dgColumnResize,dgColLines,dgR owLines,dgTabs,dgConfirmDelete,dgCancelOnExit];

البته من پیشنهاد می کنم از dgEditing استفاده کنید.
موفق باشید

behzad2002iran
چهارشنبه 02 آبان 1386, 11:48 صبح
عرض کردم برای DBGrid خود Delphi کار میکنه ولی برای کامپوننت Wool2Wool کار نمی کنه و جالب اینجاست که با دستور زیر کار میکنه
wwDBGrid1.Options:= wwDBGrid1.Options - [dgHideBottomDataLine];
ولی برای
wwDBGrid1.Options:= wwDBGrid1.Options - [dgRowSelect];
مشکل داره.
و پافشاریم برای اینه که میخوام زمانیکه کار بر کلید ویرایش را زد از حالت dgRowSelect خارج و پس از انجام تغییرات dgRowSelect اعمال شود.

و با تشکر از آقای کشاورز که خیلی به من کمک کردند.