صفحه 1 از 2 12 آخرآخر
نمایش نتایج 1 تا 40 از 53

نام تاپیک: ehlib

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    مشهد
    پست
    41

    ehlib

    با سلام
    من از گريد ehlib استفاده كردم.سه تا فيلد دارم كه مي خوام يكي از اونها از يك جدول خونده بشه . ولي وقتي برنامه اجرا مي شه دوتا ستون ديگه فعال نيست. بايد چكار كنم؟ لازمه بگم اطلاعات سه ستون در يك جدول ديگه ثبت مي شوند.

  2. #2

    نقل قول: ehlib

    سلام
    خوب اگه میخوای فقط نمایش اطلاعات داشته باشی، اول یه Query بنویس که فیلدهای مورد نظرت یک جا ایجاد بشن. بعدا اون رو به گرید مرتبط کن.

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    مشهد
    پست
    41

    نقل قول: ehlib

    نقل قول نوشته شده توسط MHajiSoft مشاهده تاپیک
    سلام
    خوب اگه میخوای فقط نمایش اطلاعات داشته باشی، اول یه Query بنویس که فیلدهای مورد نظرت یک جا ایجاد بشن. بعدا اون رو به گرید مرتبط کن.
    ببينيد فقط يك فيلد در جدول اول وجود داره. يعني اطلاعات درون ستون اول از جدول اول خونده ميشه. ستون دوم چك باكسه و ستون سوم توضيحاته. من مي خوام ستون دوم و سوم نيز فعال باشه و بعد از وارد كردن اطلاعات درون اونها هر سه ستون در يك جدول ديگه در ديتابيس ذخيره بشن.

  4. #4
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    مشهد
    پست
    41

    نقل قول: ehlib

    دوست عزيز كاري كه گفتيد انجام دادم ولي بازم همون مشكل هست.فوريه.

  5. #5

    نقل قول: ehlib

    اون کامپوننت از اسمش هم پیدا ست که برای نمایش داده های بانک هست. شما باید فیلدی در دیتاست داشته باشید که گرید بتونه نمایش بده. اگر کوئری شما فقط یک فیلد بر میگردونه، و مابقی اطلاعات را باید از جای دیگه ایی بخونید، باید برای دیتاستی که گرید بهش وصل هست، فیلدهای محاسباتی (Calculated Fields) ایجاد کنید، و خودتان در زمان اجرا به اون فیلدها مقدار بدید.

    درباره ساخت اینگونه فیلدها قبلا توضیح داده شده.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  6. #6
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    مشهد
    پست
    41

    نقل قول: ehlib

    نقل قول نوشته شده توسط علی کشاورز مشاهده تاپیک
    اون کامپوننت از اسمش هم پیدا ست که برای نمایش داده های بانک هست. شما باید فیلدی در دیتاست داشته باشید که گرید بتونه نمایش بده. اگر کوئری شما فقط یک فیلد بر میگردونه، و مابقی اطلاعات را باید از جای دیگه ایی بخونید، باید برای دیتاستی که گرید بهش وصل هست، فیلدهای محاسباتی (Calculated Fields) ایجاد کنید، و خودتان در زمان اجرا به اون فیلدها مقدار بدید.

    درباره ساخت اینگونه فیلدها قبلا توضیح داده شده.
    با سلام و تشكر از اقاي كشاورز
    من دو تا فيلدي كه توي جدولم نيست رو از محاسباتي ايجاد كردم اما بازم اجازه نمي ده چيزي توي اونها بنويسم و غير فعالن. كار ديگه اي بايد انجام بدم؟ كمكم كنيد. ممنون

  7. #7

    نقل قول: ehlib

    فیلد محاسباتی قابل تغییر توسط کاربر نیست.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  8. #8
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    مشهد
    پست
    41

    نقل قول: ehlib

    نقل قول نوشته شده توسط علی کشاورز مشاهده تاپیک
    فیلد محاسباتی قابل تغییر توسط کاربر نیست.
    پس من بايد چيكار كنم؟
    كامل توضيح ميدم. يه فرم دارم كه كاربر در فرم قبلي يك سري مشخصات مثل نام دستگاه رو تعيين مي كنه. با توجه به هر دستگاه، موارد كنترلي اون دستگاه از جدول پايه موارد چك كردن خونده مي شه كه در ستون اول نمايش داده مي شه. ستون دوم كه چك باكسه و ستون سوم براي توضيحات در نظر گرفته شده. دو تا ستون آخر در جدولمون نيست. كاربر موارد كنترلي دستگاه رو چك ميكنه و موارد درست رو تيك مي زنه و در يه جدول ديگه كه هر سه ستون جزو فيلدهاي اون هست ذخيره ميكنه.
    حالا من بايد چكار كنم كه دو ستون آخر نيز فعال باشند؟

  9. #9
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    مشهد
    پست
    41

    نقل قول: ehlib

    كسي نيست جواب منو بده. فكر مي كردم مي تونم مشكلمو اينجا حل كنم.

  10. #10
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    قم
    پست
    531

    نقل قول: ehlib

    سلام.
    دو تا ستون آخر در جدولمون نيست.
    چه جوری این دو تا ستون رو به دی بی گرید اضافه کردی؟

  11. #11
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    مشهد
    پست
    41

    نقل قول: ehlib

    نقل قول نوشته شده توسط جواد ملاولی مشاهده تاپیک
    سلام.

    چه جوری این دو تا ستون رو به دی بی گرید اضافه کردی؟
    خوب من توي خاصيت sql كوئريم اون دوتا ستون رو از جدول مربوطه select كردم. شما راه ديگه اي مي دونيد؟

  12. #12
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    قم
    پست
    531

    نقل قول: ehlib

    خاصیت dataSource مربوط به DBGrid رو چی تنظیم کردی؟

  13. #13
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    مشهد
    پست
    41

    نقل قول: ehlib

    نقل قول نوشته شده توسط جواد ملاولی مشاهده تاپیک
    سلام.

    چه جوری این دو تا ستون رو به دی بی گرید اضافه کردی؟
    خوب من توي خاصيت sql ، كوئريم اون دوتا فيلد رو از جدولي كه قراره اطلاعات توش دخيره بشن select كردم. كاره ديگه اي ميشه كرد. ستون اولم اما از جدول پايه مياد. لطفا كمك كنيد.

  14. #14
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    قم
    پست
    531

    نقل قول: ehlib

    شما کوئری رو اینجوری بنویس که یک فیلد از جدول اول (به قول خودتون جدول پایه) و دو فیلد از جدول دوم برگردونه؛ نه اینکه فقط دو فیلد از جدول دوم select کنه. بعد از این کار DBGrid رو وصل کن به همین کوئری.
    اینجوری مشکلت حل میشه.
    بعد میتونی اطلاعات این کوئری رو در جدول دوم ذخیره کنی.

  15. #15
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    مشهد
    پست
    41

    نقل قول: ehlib

    نقل قول نوشته شده توسط جواد ملاولی مشاهده تاپیک
    شما کوئری رو اینجوری بنویس که یک فیلد از جدول اول (به قول خودتون جدول پایه) و دو فیلد از جدول دوم برگردونه؛ نه اینکه فقط دو فیلد از جدول دوم select کنه. بعد از این کار DBGrid رو وصل کن به همین کوئری.
    اینجوری مشکلت حل میشه.
    بعد میتونی اطلاعات این کوئری رو در جدول دوم ذخیره کنی.
    ممنونم.من اين كارو انجام دادم. تونستم سه تا فيلد رو به سه ستون وصل كنم. اما بازم دوتا ستون اخرم غير فعالن . چرا؟

  16. #16
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    قم
    پست
    531

    نقل قول: ehlib

    نقل قول نوشته شده توسط paeezeh مشاهده تاپیک
    ممنونم.من اين كارو انجام دادم. تونستم سه تا فيلد رو به سه ستون وصل كنم. اما بازم دوتا ستون اخرم غير فعالن . چرا؟
    اگه میتونی سورس این تکه برنامه رو بزار اینجا تا بررسی کنیم.

  17. #17
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    مشهد
    پست
    41

    نقل قول: ehlib

    من از طريق join كردن دوتا جدول به فيلدهايي كه مي خواستم دسترسي پيدا كردم. همونطور كه مي دونيد join داراي قسمت on است كه من اونو روي يه فيلد مشترك گذاشتم. ولي چون جدول دوم خاليه. در نتيجه هيچ ركوردي برگردونده نميشه و گريد من خالي مي مونه در صورتي كه من ميخوام ستون اولم با جدول اولم پر بشه. كار ه ديگه اي نميشه كرد؟

  18. #18
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    قم
    پست
    531

    نقل قول: ehlib

    از Union استفاده کنید.

  19. #19
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    مشهد
    پست
    41

    نقل قول: ehlib

    واقعا ممنونم. تونستم با دستور union مشكلمو حل كنم. اما وقتي توي يه سطر يه چيزي مينويسم و يا چك باكسو تيك مي زنم و ميخوام برم يه سطر ديگه پيغام زير رو ميده.چرا؟
    Row can not be located for updating . some values may have been changed since it was last read.

  20. #20
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    قم
    پست
    531

    نقل قول: ehlib

    اگه از ADO استفاده می کنید، این کد مشکلتون رو حل می کنه:
    ADOQuery1.Properties['Update Criteria'].Value := 0; 

  21. #21
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    مشهد
    پست
    41

    نقل قول: ehlib

    اره. از adoqouery استفاده مي كنم. دستور select رو تو onshow نوشتم. اين كد رو بايد كجا بذارم.
    يه سوال ديگه :ركورد هاي dbgrideh رو چطوري بايد توي جدولم ذخيره كنم. لازمه بگم 3تا فيلد ديگه هم دارم كه بيرون gride و واسه همه ركوردها ثابته. ممنون.

  22. #22
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    قم
    پست
    531

    نقل قول: ehlib

    دستور select رو تو onshow نوشتم
    منظورتون OnShow فرمه؟
    اين كد رو بايد كجا بذارم.
    میتونی در رویداد AfterOpen بذاری.
    ركورد هاي dbgrideh رو چطوري بايد توي جدولم ذخيره كنم.
    از طریق خاصیت Fields میتونی بهشون دسترسی داشته باشی. مثلا میتونی اینطور بنویسی:
    Table2.FieldByName('نام فیلد').Value := DBGridEH1.Fields[شماره فیلد].AsVariant;

    ضمناً شماره فیلد دی بی گرید از صفر شروع میشه.

  23. #23
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    مشهد
    پست
    41

    نقل قول: ehlib

    نقل قول نوشته شده توسط جواد ملاولی مشاهده تاپیک
    منظورتون OnShow فرمه؟
    میتونی در رویداد AfterOpen بذاری.
    از طریق خاصیت Fields میتونی بهشون دسترسی داشته باشی. مثلا میتونی اینطور بنویسی:
    Table2.FieldByName('نام فیلد').Value := DBGridEH1.Fields[شماره فیلد].AsVariant;

    ضمناً شماره فیلد دی بی گرید از صفر شروع میشه.
    سلام.من اون قطعه كد رو توي afteropen كوئري نوشتم اما بازم همون ارور رو ميده.
    كوئري رو توي onshow فرم باز كردم.
    براي ذخيره يكباره تمام ركوردهاي گريد از for استفاده كردم اما خطاي out of index ميده. كار ديگه اي ميشه انجام داد؟

  24. #24
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    قم
    پست
    531

    نقل قول: ehlib

    من اون قطعه كد رو توي afteropen كوئري نوشتم اما بازم همون ارور رو ميده.
    من تستش کردم. مشکلی نداره. احتمالا یه جایی از تنظیمات یا کد شما مشکل داره؛ بیشتر بررسی کنید.

    براي ذخيره يكباره تمام ركوردهاي گريد از for استفاده كردم اما خطاي out of index ميده. كار ديگه اي ميشه انجام داد؟
    مقدار اولیه شمارنده حلقه رو چند دادید؟ مقدار نهایی اون رو هم چک کنید.

  25. #25
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    مشهد
    پست
    41

    نقل قول: ehlib

    نقل قول نوشته شده توسط جواد ملاولی مشاهده تاپیک
    من تستش کردم. مشکلی نداره. احتمالا یه جایی از تنظیمات یا کد شما مشکل داره؛ بیشتر بررسی کنید.


    مقدار اولیه شمارنده حلقه رو چند دادید؟ مقدار نهایی اون رو هم چک کنید.
    ممنون.چك ميكنم.اون كد رو بايد براي كوئري بنويسم كه گريد بهش وصله ديگه؟
    مقدار اوليه رو 1 و مقدار نهايي dbgirudeh1.recordcount -1 دادم. اما فقط ركورد اولمو به اندازه تعداد ركوردهاي گريد ذخيره ميكنه.

  26. #26
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    مشهد
    پست
    41

    نقل قول: ehlib

    دقيق ميگم چيكار كردم. كد زير رو توي خاصيت sql كوئريم نوشتم تا بتونم فيلدهايي رو كه ميخوام به گريدم وصل كنم.

    SELECT fc_check,fc_comment,TB_fanibaseCHK.control_item ,
    TB_fanibaseCHK.check_period,oc_check,oc_comment,
    TB_opratorbaseCHK.control_item ,TB_opratorbaseCHK.check_period
    from TB_faniCHK,TB_fanibaseCHK,TB_opratorCHK,TB_oprator baseCHK

    توي afteropen گريد كد ي كه شما گفتيد رو نوشتم.
    ديتاسورس گريدمو به ديتاسورسي كه كوئريم به اون وصله وصل كردم.
    براي اينكه ستون اول گريد رو پر كنم كد زير رو توي onshow فرمم گذاشتم.

    with DataModule1.ADOQuery1 do
    begin
    SQL.Text:='select * from TB_set where set_name like'+QuotedStr(Edit3.Text);
    Open;
    end;
    with DataModule1.ADOQuery3 do
    begin
    SQL.Text:='SELECT s_id,control_item,check_period,fc_date,fc_check,fc _comment from TB_faniCHK'+
    ' union '+
    ' select s_id,control_item as c1,check_period,null,null,null from TB_fanibaseCHK'+
    ' where s_id like '+QuotedStr(DataModule1.ADOQuery1.FieldValues['s_id'])+'and check_period like '+QuotedStr(Edit1.Text);
    open;
    end;

  27. #27
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    قم
    پست
    531

    نقل قول: ehlib

    اون كد رو بايد براي كوئري بنويسم كه گريد بهش وصله ديگه؟
    بله.

    مقدار اوليه رو 1 و مقدار نهايي dbgirudeh1.recordcount -1 دادم.
    مگه DBGridEH خاصیت RecordCount داره؟
    فکر کنم مقدار اولیه رو باید صفر بدی.
    راستی من حواسم نبود، شما به جای اینکه رکوردهای DBGrid رو در جدول دوم ذخیره کنی، رکوردهای همون کوئری رو ذخیره کن؛ اینطوری بهتره.

  28. #28
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    مشهد
    پست
    41

    نقل قول: ehlib

    من فكر مي كنم شما متوجه مشكل نشديد.بايد ركورد گريد رو ذخيره كنم.چون كوئريم فقط شامل ستون اول گريد ميشه.ستون دوم و سوم رو كاربر بايد پر كنه و سپس توي جدول دوم ذخيره كنه.
    dbgrideh خاصيت recordcount داره . for من چه ايرادي داره؟

  29. #29
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    قم
    پست
    531

    نقل قول: ehlib

    من فكر مي كنم شما متوجه مشكل نشديد.بايد ركورد گريد رو ذخيره كنم.چون كوئريم فقط شامل ستون اول گريد ميشه.ستون دوم و سوم رو كاربر بايد پر كنه و سپس توي جدول دوم ذخيره كنه.
    لطفا بگید وظیفه ADOQuery1 و ADOQuery3 چیه؟ هر کدوم چکار می کنه؟
    شما DBGrid رو به کدوم یک از اینا وصل کردید؟

    كد زير رو توي خاصيت sql كوئريم نوشتم تا بتونم فيلدهايي رو كه ميخوام به گريدم وصل كنم.

    SELECT fc_check,fc_comment,TB_fanibaseCHK.control_item ,
    TB_fanibaseCHK.check_period,oc_check,oc_comment,
    TB_opratorbaseCHK.control_item ,TB_opratorbaseCHK.check_period
    from TB_faniCHK,TB_fanibaseCHK,TB_opratorCHK,TB_oprator baseCHK
    این دستور Select مال کدوم کوئریه؟

    dbgrideh خاصيت recordcount داره .
    من تست کردم نداشت!

    for من چه ايرادي داره؟
    دستور کاملش رو اینجا بنویس تا ببینیم می تونیم مشکلش رو حل کنیم یا نه؟

    راستی یه بار هم گفتم، اگه سورس این قسمت از پروژه ات رو اینجا بزاری فکر کنم خیلی راحت تر بشه جواب داد.

  30. #30
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    مشهد
    پست
    41

    نقل قول: ehlib

    براي جك كردن موارد كنترلي دستگاه هاي مختلف، كاربر توي يك فرم نام دستگاه، دوره زماني چك كردن و اسم خودشو انتخاب ميكنه و وارد فرم جديدي كه موارد كنترلي اون دستگاه رو با توجه به دوره از جدول پايه خونده ميشه و توي گريد نمايش داده ميشه.
    Adoquery1 براي پيدا كردن نام دستگاه از جدول دستگاههاست. Adoquery3 براي خوندن موارد كنترلي دستگاه از جدول پايه است. كه ديتاسورس گريد به adoquery3 وصله.
    procedure TFanicheckFM.FormShow(Sender: TObject);
    begin
    Edit1.Text:=Check1FM.ComboBox1.Text;
    Edit3.Text:=Check1FM.ComboBox3.Text;
    Edit2.Text:=Check1FM.ComboBox2.Text;

    with DataModule1.ADOQuery1 do
    begin
    SQL.Text:='select * from TB_set where set_name like'+QuotedStr(Edit3.Text);
    Open;
    end;
    with DataModule1.ADOQuery3 do
    begin

    SQL.Text:='SELECT s_id,control_item,check_period,fc_date,fc_check,fc _comment from TB_faniCHK'+
    ' union '+
    ' select s_id,control_item,check_period,null,null,null from TB_fanibaseCHK'+
    ' where s_id like '+QuotedStr(DataModule1.ADOQuery1.FieldValues['s_id'])+'and check_period like '+QuotedStr(Edit1.Text);
    open;
    end;
    end;

    دستور زير رو براي دسترسي به فيلدهاي دوم و سوم گريد كه از جدولي خونده شدند كه قراره بعد از پر كردن فرم توي اون دخيره بشن،توي خاصيت sql كوئري 3 نوشتم.
    SELECT fc_check,fc_comment,TB_fanibaseCHK.control_item ,
    TB_fanibaseCHK.check_period,oc_check,oc_comment,
    TB_opratorbaseCHK.control_item ,TB_opratorbaseCHK.check_period
    from TB_faniCHK,TB_fanibaseCHK,TB_opratorCHK,TB_oprator baseCHK



    دستور for :
    procedure TFanicheckFM.Button1Click(Sender: TObject);
    var i:integer;
    begin

    for I := 1 to DBGridEh1.RowCount - 1 do
    begin
    with DataModule1.ADOQuery2 do
    begin
    SQL.Text:='insert into TB_faniCHK (s_id,control_item,check_period,fc_date,fc_check,f c_comment,fani_name)'+
    ' values (' +IntToStr(DataModule1.ADOQuery1.FieldValues['s_id'])+','+
    QuotedStr(Trim(DBGridEh1.Fields[0].AsVariant))+','+QuotedStr(Edit1.Text)+','+
    QuotedStr(DBGridEh1.Columns[1].Title.Caption)+','+BoolToStr(DBGridEh1.Fields[1].AsBoolean)+','+
    QuotedStr(Trim(DBGridEh1.Fields[2].AsVariant))+','+QuotedStr(Edit2.Text)+')';
    ExecSQL;

    end;
    end;
    end;
    عکس های ضمیمه عکس های ضمیمه

  31. #31
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    مشهد
    پست
    41

    نقل قول: ehlib

    سلام.خواهش ميكنم يكي بگه من چيكار بايد بكنم؟ من فردا دفاعيه دارم و اين مشكلم هنوز برطرف نشده.خواهش مي كنم.

  32. #32
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    قم
    پست
    531

    نقل قول: ehlib

    خواهش ميكنم يكي بگه من چيكار بايد بكنم؟ من فردا دفاعيه دارم و اين مشكلم هنوز برطرف نشده.خواهش مي كنم
    دوست عزیز. چون اطلاعات کافی از پروژه ات ندارم نمی تونم مشکلت رو پیدا کنم. من نمی دونم شما چند جدول داری، چه فیلدهایی دارن و ... . توضیحاتی هم که دادی کافی نیست و یه کم هم گنگه.
    قبلا هم گفتم؛ برنامه ات رو اینجا آپلود کن تا ببینیم مشکلش چیه. انشالله تا شب درست میشه.

  33. #33
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    مشهد
    پست
    41

    نقل قول: ehlib

    نقل قول نوشته شده توسط جواد ملاولی مشاهده تاپیک
    دوست عزیز. چون اطلاعات کافی از پروژه ات ندارم نمی تونم مشکلت رو پیدا کنم. من نمی دونم شما چند جدول داری، چه فیلدهایی دارن و ... . توضیحاتی هم که دادی کافی نیست و یه کم هم گنگه.
    قبلا هم گفتم؛ برنامه ات رو اینجا آپلود کن تا ببینیم مشکلش چیه. انشالله تا شب درست میشه.
    تمام برنامه رو بذارم يا فقط همون فرمي كه ايراد داره؟

  34. #34
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    قم
    پست
    531

    نقل قول: ehlib

    تمام برنامه رو بذارم يا فقط همون فرمي كه ايراد داره؟
    اگه میتونی همه رو بزار. دیتابیس رو هم بذار.

  35. #35
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    مشهد
    پست
    41

    نقل قول: ehlib

    اگه میتونی همه رو بزار. دیتابیس رو هم بذار.
    خيلي سعي كردم همه رو بذارم.attach نشد.
    check1UN فرميه كه كاربر نوع چك ليست رو انتخاب ميكنه.و وارد fanicheckUN ميشه. اسكريپت جدولام رو هم گذاشتم. ديتابيس رو هم نتونستم attach كنم. اميدوارم بدرد بخوره.
    به خاطر كمكتون يك دنيا ممنون.
    فایل های ضمیمه فایل های ضمیمه

  36. #36
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    قم
    پست
    531

    نقل قول: ehlib

    دو تا سوال دارم:
    1- مگه DBGridEH شما به ADOQuery3 وصل نیست؟
    2- مگه این سه تا ستونی که در DBGridEH شما هست، توسط همین ADOQuery3 از دو تا جدول بدست نمیاد؟

  37. #37
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    مشهد
    پست
    41

    نقل قول: ehlib

    نقل قول نوشته شده توسط جواد ملاولی مشاهده تاپیک
    دو تا سوال دارم:
    1- مگه DBGridEH شما به ADOQuery3 وصل نیست؟
    2- مگه این سه تا ستونی که در DBGridEH شما هست، توسط همین ADOQuery3 از دو تا جدول بدست نمیاد؟
    آره.جواب دوتا سوالتون مثبته.

  38. #38
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    قم
    پست
    531

    نقل قول: ehlib

    آره.جواب دوتا سوالتون مثبته.
    خیلی خوب. بنابراین شما به جای اینکه رکوردهای دی بی گرید رو در جدول دوم ذخیره کنی، رکوردهای همین ADOQuery3 رو ذخیره کن. این خیلی راحت تره. کدش رو فکر کنم خودت بتونی بنویسی.
    اگه مشکلی بود بگو. من امشب باز هم به این تاپیک سر میزنم.

    راستی مشکل دستور for هم اینه که هیچ دستوری در حلقه ننوشتی که به رکورد بعدی بره و در هر بار اجرای حلقه رکورد اول رو ذخیره می کنه.

  39. #39
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    مشهد
    پست
    41

    نقل قول: ehlib

    خیلی خوب. بنابراین شما به جای اینکه رکوردهای دی بی گرید رو در جدول دوم ذخیره کنی، رکوردهای همین ADOQuery3 رو ذخیره کن. این خیلی راحت تره. کدش رو فکر کنم خودت بتونی بنویسی.
    من اين كارو كردم ذخيره مي كنه.البته با كد قبلي هم ذخيره مي كرد.اما وقتي ميخوام از يه ركورد وارد يكي ديگه بشم همون خطاي row can not be located رو ميده.
    راستی مشکل دستور for هم اینه که هیچ دستوری در حلقه ننوشتی که به رکورد بعدی بره و در هر بار اجرای حلقه رکورد اول رو ذخیره می کنه.
    ميشه بگيد دستورش چيه؟
    كد من اينه:
    for I := 1 to DataModule1.ADOQuery3.RecordCount - 1 do
    begin
    with DataModule1.ADOQuery2 do
    begin
    SQL.Text:='insert into TB_faniCHK (s_id,control_item,check_period,fc_date,fc_check,f c_comment,fani_name)'+
    ' values (' +IntToStr(DataModule1.ADOQuery1.FieldValues['s_id'])+','+
    QuotedStr(DataModule1.ADOQuery3.FieldValues['control_item'])+','+QuotedStr(DataModule1.ADOQuery3.FieldValues['check_period'])+','+
    QuotedStr(DBGridEh1.Columns[1].Title.Caption)+','+BoolToStr(DataModule1.ADOQuery 3.FieldByName('fc_check').AsBoolean)+','+
    QuotedStr(DataModule1.ADOQuery3.FieldValues['fc_comment'])+','+QuotedStr(Edit2.Text)+')';
    ExecSQL;
    end;

  40. #40
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    قم
    پست
    531

    نقل قول: ehlib

    یک نکته خارج از بحث: وقتی می خواید در پستتون کد بنویسید، اون رو داخل تگ کد بنویسید تا درست نمایش داده بشه.
    و اما کد شما:
    DataModule1.ADOQuery3.First;
    while not DataModule1.ADOQuery3.Eof do
    begin
    with DataModule1.ADOQuery2 do
    begin
    SQL.Text:='insert into TB_faniCHK (s_id,control_item,check_period,fc_date,fc_check,f c_comment,fani_name)'+
    ' values (' +IntToStr(DataModule1.ADOQuery1.FieldValues['s_id'])+','+
    QuotedStr(DataModule1.ADOQuery3.FieldValues['control_item'])+','+QuotedStr(DataModule1.ADOQuery3.FieldValues['check_period'])+','+
    QuotedStr(DBGridEh1.Columns[1].Title.Caption)+','+BoolToStr(DataModule1.ADOQuery 3.FieldByName('fc_check').AsBoolean)+','+
    QuotedStr(DataModule1.ADOQuery3.FieldValues['fc_comment'])+','+QuotedStr(Edit2.Text)+')';
    ExecSQL;
    end;
    Next;
    end;
    امیدوارم این کد مشکلتون رو حل کنه. البته من دستور اس کیو ال تون رو بررسی نکردم.

صفحه 1 از 2 12 آخرآخر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •