نمایش نتایج 1 تا 10 از 10

نام تاپیک: نحوه مقایسه شماره سریال چک و مبلغ آن در دو جدول برای ورود اطلاعات

  1. #1

    Question نحوه مقایسه شماره سریال چک و مبلغ آن در دو جدول برای ورود اطلاعات

    سلام
    من دو تا فرم دارم که در یکی از اونها که ثبت چک به عنوان واریزی است شماره سریال چک و اطلاعات مربوط به آن رو وارد میکنم و توسط کد اجازه وارد کردن شماره سریال تکراری برای چک رو از کاربر گرفته ام و در فرم دوم که برداشت چک است میخواهم در هنگامی که کاربر شماره سریال چک را به عنوان برداشت وارد کرد وقتی که به مبلغ چک رسید برنامه من مبلغ چک وارد شده در این قسمت را با مبلغ چک وارد شده در قسمت ثبت چک مقایسه کند و اگر مبلغ یکی بود اجازه برداشت را به کاربر بدهد این کار برای جلوگیری از اختلاس صورت می گیرد به اینصورت که اگر فردی شماره سریال 1 را با مبلغ فرضی صد هزار تومان وارد کرد نتواند در قسمت برداشت همان شماره سریال را با مبلغ سی هزار تومان ثبت نماید از برنامه نویسان محترم خواهشمندم که مرا راهنمایی کنند . متشکرم

  2. #2
    شما برای اینکار نیاز به یه کوئری ساده دارید .شما در فرم برداشت زمانی که کاربر میخواد مبلغ برداشت شده رو ذخیره کنه قبل از اینکه عملیات ذخیره انجام بشه میبایست شماره سریال چک رو با یک پارامتر به کوئری بفرستید . Select مربوط به کوئری رو به این صورت بنویسید :
    ADOQuery1.SQL.Text := 'SELECT MABLAGH FROM VARIZ_CHECK WHERE CHECK_SERIAL = '+@CHECK_SERIAL;

    بعد کوئری رو اجرا کنید :
    with ADOQuery1 do
    begin
    Close;
    Parameters.ParamByName('@CHECK_SERIAL').Value := Edit_CHECK_SERIAL.Text;
    SQL;
    Open;
    end;

    و در مرحله آخر هم میتونید کنید که اگر خروجی کوئری با مبلغ برداشت ناهماهنگ بود به کاربر پیغامی نمایش داده بشه و درخواست ذخیره اطلاعات لغو بشه :
    if ADOQuery1.FieldByName('MABLAGH').AsFloat <> StrToFloat(Edit_CHECK_SERIAL.Text) then
    begin
    ShowMessage('Informations are incorrect');
    Exit;
    end;

    ---------------
    موفق باشید .

  3. #3
    سلام دوست عزیز ( امیر جان )
    آیا امکان داره کدی رو که گفتین توی on exit dbedit مربوط به وارد کردن مبلغ بنویسم یا خیر ؟

  4. #4
    آیا امکان داره کدی رو که گفتین توی on exit dbedit مربوط به وارد کردن مبلغ بنویسم یا خیر ؟
    چرا که نه . شما میتونید کد رو در هر جا که صلاح بدونید و همچنین قوانین زبان برنامه نویسی اجازه بده اجرا کنید . در این رابطه مانعی وجود نداره . فقط شما باید ببینید که منطقی ترین مکان(با توجه به شرایط و خواسته خودتون و کاربرتون)برای قرار دادن کد کجاست .
    ------------------
    موفق باشید .

  5. #5
    سلام کدی رو که گفتین نوشتم اما جواب نمی ده
    فرم برداشت من دارای جدولی با فیلدهای برای مبلغ (mablagh ) و برای شماره سریال (serial ) و ... هست و اسم جدول هم chek2 .
    فرم واریزی من هم دارای یک جدول دیگست که فیلدهای اون مثل جدول بالاییه و اسم جدول اون هم chek .
    1.من برای اینکه کاربر اجازه وارد کردن شماره سریال تکراری رو نداشته باشه در onexit dbedit مربوط به شماره سریال فرم واریزی و فرم برداشتی کد زیر رو نوشتم با یک پیغام که می گه شما مجاز به استفاده از شماره سریال تکراری نمی باشید .

  6. #6
    DataModule9.ADOQuery27.Close;
    DataModule9.ADOQuery27.SQL.Clear;
    DataModule9.ADOQuery27.SQL.Add('select * from chek2 ' +
    'where serial ='+#39+DBEdit4.Text+#39);
    DataModule9.ADOQuery27.Open;
    if (DataModule9.ADOQuery27.RecordCount>0) then
    begin
    MessageDlg('ÇÓÊÝÇÏå ÇÒ ÔãÇÑå ÓÑíÇá ʘÑÇÑí ãÌÇÒ äíÓÊ ',mtInformation,[mbOK],0);
    DBEdit4.SetFocus;
    end;

  7. #7
    DataModule9.ADOQuery27.Close;
    DataModule9.ADOQuery27.SQL.Clear;
    DataModule9.ADOQuery27.SQL.Add('select * from chek2 ' +
    'where serial ='+#39+DBEdit4.Text+#39);
    DataModule9.ADOQuery27.Open;
    if (DataModule9.ADOQuery27.RecordCount>0) then
    begin
    MessageDlg('ÇÓÊÝÇÏå ÇÒ ÔãÇÑå ÓÑíÇá ʘÑÇÑí ãÌÇÒ äíÓÊ ',mtInformation,[mbOK],0);
    DBEdit4.SetFocus;
    end;


    2. لطفا کد مربوطه رو با توجه به اطلاعات و نام فیلدها که بهتون دادم برام بنویسین اول اینکه مبلغ چکی رو که در فرم برداشت کاربر وارد میکنه با مبلغ چک واریزی و شماره سریال اون رو با شماره سریال چکی که در جدول واریزی ثبت شده مطابقت بده و اگر اطلاعات درست بود امکان ادامه کار برای کاربر وجود داشته باشه به خاطر همین
    من کدها رو در ( on exit dbedit )نوشتم تا اگر اشتباه بود کاربر همان جا آن را تصحیح و سپس ادامه دهد . با تشکر

  8. #8
    سلام کدی رو که گفتین نوشتم اما جواب نمی ده
    شما اسم فیلدها و جداول رو مطابق اسامی خودتون تغییر دادید و نشد یا همون کدها رو بدون تغییر استفاده کردید ؟
    with DataModule9.ADOQuery27 do
    begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT mablagh FROM [check] WHERE serial = '+DBEdit_Mablagh);
    SQL;
    Open;
    if FieldByName('mablagh').AsFloat <> StrToFloat(DBEdit_Mablagh.Text) then
    begin
    ShowMessage('Informations are incorrect');
    DBEdit_Mablagh.SetFocus;
    end;
    end;

    فقط به DBEdit_Mablagh شما باید نام DBEdit ی رو که مبلغ رو توش وارد میکنید بزارید و تمام .
    -------------
    موفق باشید .

  9. #9
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814

    با سلام

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

  10. #10

    نقل قول: نحوه مقایسه شماره سریال چک و مبلغ آن در دو جدول برای ورود اطلاعات

    سلام به همه دوستان
    اين مطلبي رو كه دوستمون عنوان كرد با اين كوثري مشكلش حل ميشه.
    ببين شما يه بايند ساده نيازه داري!
    و اما نحوه كار!
    يه پروسيجر بنويس به اين شكل:
    Create Procedure Bind_Serial Check
    Serial_Check int@
    as
    select mablagh_check from Tb_Name where serial_check=@serial check

    حالا همين پاس بده سمت سي شارپ

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

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