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

نام تاپیک: mask

  1. #1

    mask

    سلام یه سوال
    من تو بانکم چندتا فیلد دارم که از نوع کاراکتر یا نامبره
    میخوام اونا رو ماسک کنم به این صورت که مثلا فیلد a مقدارش 00000 باشه و وقتی کاربر عدد 1 رو وارد میکنه مقدار فیلد 00001 بشه(یعنی عدد از سمت راست اضافه بشه)؟

  2. #2
    کاربر دائمی
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    ایران تهران
    پست
    608

    نقل قول: mask

    می تونی تو بیفر پست دیتا بیس کدتو بنوبیسی before post

    یا از کنترل های مسک استفاده کنی
    سوالت کمی کنگ

  3. #3

    نقل قول: mask

    منظورم اینه که وقتی رکورد جدید ایجاد میکنم dbedit1 که به فیلد name لینک شده مقدارش 5 تا صفر باشه و وقتی کاربر عدد رو وارد میکنه بجای اون صفرها قرار بگیره
    مثلا وقتی عدد 123 رو وارد میکنه مقدار dbedit بشه 00123 یا وقتی عدد 1599 رو وارد میکنه عدد بشه 01599
    همین طور اینکار در dbgrid امکان پذیر باشه

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

    نقل قول: mask

    سلام
    ساده ست اگر فيلد شما از نوع char باشه كافي هست با عددي كه مي خواي جمع كني و اگر از نوع int هم باشه فرقي نداره اما توي ديتابيس صفر قبل از عدد همونطور كه همه ميدونيم لحاظ نميشه ولي واسه نمايشش ميتوني تعداد صفري رو كه مي خواي توي مثلا edit قبل از عدد اضافه كني

  5. #5

    نقل قول: mask

    من دارم برای یه شرکتی برنامه مینویسم که هر فیلدی اندازه مشخص داره مثلا "حساب سی"با طول 13 و "شماره ردیف" با طول 5 و .... که مثلا در فیلد "شماره ردیف" کاربر از 1 شروع میکنه و عدد 1 رو وارد میکنه ولی در بانک باید 00001 ثبت بشه و .... اینکار بخاطر اینه که وقتی در آخر میخوام بانک رو به یک فایل txt تبدیل کنم این عدد ها به اون صورتی که گفتم ذخیره بشه 0001 و 00002 و 00012354 و ......
    چه راهنمایی می فرمائید

  6. #6
    کاربر دائمی آواتار hossein_h62
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    اصفهـــــان
    پست
    720

    نقل قول: mask

    نقل قول نوشته شده توسط seyed_27 مشاهده تاپیک
    من دارم برای یه شرکتی برنامه مینویسم که هر فیلدی اندازه مشخص داره مثلا "حساب سی"با طول 13 و "شماره ردیف" با طول 5 و .... که مثلا در فیلد "شماره ردیف" کاربر از 1 شروع میکنه و عدد 1 رو وارد میکنه ولی در بانک باید 00001 ثبت بشه و .... اینکار بخاطر اینه که وقتی در آخر میخوام بانک رو به یک فایل txt تبدیل کنم این عدد ها به اون صورتی که گفتم ذخیره بشه 0001 و 00002 و 00012354 و ......
    چه راهنمایی می فرمائید
    دوست عزیز شما میخواین دیسکت پرداخت بانک درست کنید ؟؟!

  7. #7

    نقل قول: mask

    شما برای این کار باید ابتدا تعداد کارکترهای اون مقدار رو بدست بیارید و سپس به تعداد باقی مانده صفر به رشته مورد نظر اضافه کنید.
    یا حق

  8. #8

    نقل قول: mask

    دوست عزیز شما میخواین دیسکت پرداخت بانک درست کنید ؟؟!
    بله
    لطفا راهنمایی کامل کنید

  9. #9
    کاربر دائمی آواتار merced
    تاریخ عضویت
    اردیبهشت 1383
    محل زندگی
    خراسان جنوبي
    پست
    562

    نقل قول: mask

    توي رويداد BeforPost بنويس :

    := Format('%4.4d',[strtoint(Edit1.text)])

  10. #10
    کاربر دائمی آواتار merced
    تاریخ عضویت
    اردیبهشت 1383
    محل زندگی
    خراسان جنوبي
    پست
    562

    نقل قول: mask

    اگه اعداد الان تو بانك اطلاعاتي هستند تو رويداد OnGetText مي توني دستور بالا رو بنويسي
    ويا از كد SQL زير استفاده كنيد

    Select Right('00000000000' + LTRIM (STR(NumricField)) , 10) as XX from Table

  11. #11
    کاربر دائمی آواتار hossein_h62
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    اصفهـــــان
    پست
    720

    نقل قول: mask

    اگر درست حدس زده باشم شما میخواین فایل دیسکت بانک صادرات رو درست کنید.من همچین برنامه ای رو نوشتم.
    اولا شما در مورد ردیف هر رکورد کاری که باید بکنید اینه که ردیف رو در ریپورتتون تعریف کنید تا هر چندتا رکورد داشتین خودش براتون بزنه.یعنی مثلا در فست ریپورت باید LINE# رو اول هررکورد بزارین با فرمت #0000
    برای سایر فیلداتون مثل مبلغ پرداختی هم باید موقع ورود مبلغ به سیستم صفرها اضافه بشن.در رویداد OnExit ادیت طول مبلغ چک میشه و به مقدار تفاضلش با 13 عدد صفر رو جایگزین کنید.

  12. #12

    نقل قول: mask

    اگر درست حدس زده باشم شما میخواین فایل دیسکت بانک صادرات رو درست کنید.من همچین برنامه ای رو نوشتم.
    میتونم خواهش کنم این برنامه ای که نوشتید رو برام بگذارید یا یک دمویی از کدهای اونو بگذارید چون فرصتی که به من برای طراحی این برنامه دادن خیلی کمه حسابی به این برنامه شما احتیاج دارم

  13. #13

    نقل قول: mask

    من از کد زیر برای تفاضل صفرها در رویداد onexit برای dbedit استفاده میکنم به نظر شما راه حل خوبیه یا راه کوتاه تر و بهتری دارید البته یه مشکلی هست اونم اینه که وقتی از این dbedit به dbedit دیگه میرم و بعد تغییرات رو در دیتابیس ذخیره میکنم صفرها ذخیره نمیشن!!!!!!
    var
    a: integer;
    begin
    a:=length(adotable1.FieldValues['shomare siba'] );
    a:=13-a;
    while a<>0 do begin

    dbedit6.Text:='0'+dbedit6.Text;
    a:=a-1;
    end;



    یه مشکل دیگه اینه که در تبدیل بانک به فایل متنی از کد ذیر استفاده میکنم ولی درست کار نمیکنه و صفرها رو درست نمیزنه :
    procedure TfrmMain.Button1Click(Sender: TObject);
    var
    radif,siba,mablagh:string;
    a,b,c,d,e,f: integer;
    st:string;
    outfile:textfile;
    filename:string;
    temp:string;
    begin
    savedialog1.FileName:=filename;
    if savedialog1.Execute then
    begin
    filename:=savedialog1.FileName;
    assignfile(outfile,filename);
    rewrite(outfile);
    adotable1.First;
    while (adotable1.Eof=false) do
    begin
    if adotable1.FieldValues['code']<>null then
    begin
    //////radif/////////////
    a:=length(adotable1.FieldValues['shomare redif'] );
    a:=5-a;
    while a>0 do begin
    radif:=adotable1.FieldValues['shomare redif'];
    radif:='0'+radif;
    a:=a-1;
    end;
    /////////////////siba
    b:=length(adotable1.FieldValues['shomare siba'] );
    b:=13-b;
    while b<>0 do begin
    siba:=adotable1.FieldValues['shomare siba'];
    siba:='0'+siba;
    b:=b-1;
    end;
    /////////////////// mablagh
    c:=length(adotable1.FieldValues['mablagh'] );
    c:=15-c;
    while c<>0 do begin
    mablagh:=adotable1.FieldValues['mablagh'];
    mablagh:='0'+mablagh;
    c:=c-1;
    end;
    //temp:=adotable1.FieldValues['code']+adotable1.FieldValues['name']+adotable1.FieldValues['family'];
    writeln(outfile,radif{+siba+mablagh+'0000000000000 00'});
    adotable1.Next
    end
    else
    adotable1.Next;
    end;
    closefile(outfile);
    end;
    end;

  14. #14
    کاربر دائمی آواتار حسین شهریاری
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    ایران
    پست
    794

    نقل قول: mask

    سلام

    من این تابع را در بخش Sql براتون پیدا کردم.درست هم جواب میده.کافیه اونا ایجاد و به شکل زیر استفاده کنین.

    CREATE Function SetZero(@N Bigint,@L Tinyint) Returns VarChar(255) As
    Begin
    Return Right(Replicate('0',20)+Convert(Varchar(20),IsNull (@N,0)),@L)
    End

    برای استفاده:
    select setzero(5,100)

  15. #15

    نقل قول: mask

    من این تابع را در بخش Sql براتون پیدا کردم.درست هم جواب میده.کافیه اونا ایجاد و به شکل زیر استفاده کنین.
    ممنونم ولی من در دلفی اصلا در مورد بانک اطلاعاتی کار نکردم و فقط در بخش مالتی مدیا ،فلش و گرافیک کار کردم این اولین کارمه. لذا نمیدونم چطور باید این کد sql رو وارد کرد
    لطفا راهنمایی کنیید
    بسیار ممنونم

  16. #16
    کاربر دائمی آواتار حسین شهریاری
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    ایران
    پست
    794

    نقل قول: mask

    شما کافیه تابع فوق را در کوئری آنالایزر بنویسید و اجرا بگیرید.
    سپس توی دلفی رشته مربوط به دستور Sql را در یه Adoquery بنویسید.
    مثال:
    adoquery1.sql.text:='select *,setzero(10,4) from table1'
    adoquery1.close
    adoquery1.open
    این تابع یه عدد و تعدای دامنه را از شما میپرسه و اون چیزی که شما میخاین را به شما میده

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

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