# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > C#‎‎ > سوال: نحوه تهیه دیسکت سازمان تامین اجتماعی (بیمه)؟

## Mashayekhi

با سلام،
من یک نرم افزار حقوق و دستمزد دارم، می خوام بدونم چطوری می تونم فایلی که توسط نرم افزار اداره بیمه تولید می شه رو با همون فرمت و با همون Encoding تهیه کنم؟

با تشکر.

----------


## ramin_ramin

برادر من سلام
اون فایل یک فایل دی بی اف یا همان dbf  است که فرمت فایلای دیتا بیس فاکس پرو می باشد
شما میتونید اون فایل رو با نرم افزار excel 2003 تاکید میکنم اکسل 2003 فقط 2003 اون فایل رو بازش کن و تغیراتی رو که میدی رو هم همانجا ذخیره کن 
مشکلت اگه خدا بخواهد حله

----------


## Mashayekhi

خیلی از راهنمائیتون ممنونم،
می دونید من این کار رو کردم، فقط مشکلی که هست اینه که ما این فایل رو باید از طریقه نرم افزارمون تولید کنیم و مشکل اینجاست که وقتی این فایل رو تولید می کنیم، CodePage حروف فارسی با اون چیزی که برنامه خودشون تولید می کنه و نمی دونم که اونا با چه CodePageای فایل رو تولید می کنن که منم با همون تولید کنم.

با تشکر فراوان.

----------


## azizlar

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

----------


## azizlar

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

----------


## namvar

سلام فکر میکنم

1.اولا ورودی تامین اجتماعی علارغم ویندوزی بودن ، تحت فاکسپرو dos است آنهم با فونت ایران سیستم
2.برنامه تحت ویندوز جداول را با کدپیجهای 1256 یا یونیکد  تولید میکند که برای تبدیل آن به دیسکت بیمه تامین اجتماعی باید ابتدا یا DBF مربطه را در ویندوز بسازی و در آن اطلاعات بریزی یادر صورت موجودبودن  با ارتباط هایی مثل oleDBیا ODBC آنرا پرکنید .
3 . درهرصورت میبایست در جدول مربوطه فیلدهایی مثل نام و نام خانوادگی را با فونت تحت داس (ایران سیستم) درج نمایید که مستلزم داشتن برنامه تبدیل رشته فارسی  ویندوز به داس است 
4.توجه داشته باشید استاندارد ساختار دی بی اف ANSI  است  و متد نوشتن متن از ویندیوز به داس کمی مشکل است
4. در اینترنت فایل کتابخانه موجود است به نامALXBASE  به زبان ++C که میتوانی   آنرا بصورت DLL  در پروژه ات استفاده کنی آنرا به صورت ضمیمه میگذارم
5 . لطفاٌ درصورتی که موفق شدی که این کار را انجام بدهی  نتیجه را برای من نیز ارسال نمایید

----------


## azizlar

سلام دوست عزیز
ضمن تشکر متاسفانه فعلا موفق به انجام این کار نشده ام (ساختن دیسکت بیمه تامین اجتماعی در بانک اس کیو ال و زبان وی بی ) ضمنا" فایلهای پیوست ارسال شده را نتوانستم ام استفاده کنم 
مشکل من فقط کد پیج میباشد یعنی بردن اطلاعات از ویندوز به تحت داس و کد پیج ایران سیستم میباشد
 با تشکر عزیزلر تلفن 09122773370

----------


## azizlar

> خیلی از راهنمائیتون ممنونم،
> می دونید من این کار رو کردم، فقط مشکلی که هست اینه که ما این فایل رو باید از طریقه نرم افزارمون تولید کنیم و مشکل اینجاست که وقتی این فایل رو تولید می کنیم، CodePage حروف فارسی با اون چیزی که برنامه خودشون تولید می کنه و نمی دونم که اونا با چه CodePageای فایل رو تولید می کنن که منم با همون تولید کنم.
> 
> با تشکر فراوان.


دوست عزیز بنده با فرمایشات شما نتوانسته ام این کار را انجام دهم درصورت امکان بیشتر ما را راهنمایی بفرمایید

----------


## azizlar

:لبخند: 


> خیلی از راهنمائیتون ممنونم،
> می دونید من این کار رو کردم، فقط مشکلی که هست اینه که ما این فایل رو باید از طریقه نرم افزارمون تولید کنیم و مشکل اینجاست که وقتی این فایل رو تولید می کنیم، CodePage حروف فارسی با اون چیزی که برنامه خودشون تولید می کنه و نمی دونم که اونا با چه CodePageای فایل رو تولید می کنن که منم با همون تولید کنم.
> 
> با تشکر فراوان.


 با فرمایشات شما بنده نتوانستم ام این کار را انجام دهم درصورت امکان بیشتر راهنمایی بفرمایید
با تشکر عزیزلر

----------


## azizlar

دوست عزیز با توضیحات شما بنده نتوانسته ام این کاررا انجام دهم در صورت امکان بیشتر توضیح بفرمایید
کاربردی تر ممنون عزیزلر

----------


## saeid69

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

----------


## saeid69

یعنی تا حالا هیچکس نتونسته تو برنامه تحت ویندوز دیسکت بیمه درست کنه

----------


## Soroush.Sarabi

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

----------


## saeid69

با سلام اینم فایلی که باید ارسال شود.
در فولدر Win فایلی است که در برنامه تحت ویندوز تهیه شده است و در فولدر Dos فایلی است که باید به بیمه داده شود و توسط برنامه تحت ویندوز تهیه شود.

----------


## g_ilar

من تابع هایی که وجود داشت را از دلفی به توابعی در SQLSERVER تبدیل کردم و با استفاده از آنها در SQLSERVER می توانید هر رشته ای را از ویندوز (یونیکد) به DOS (ایران سیستم) و یا برعکس تبدیل کنید. اصل برنامه از آقای حجت است و من فقط آنها را به T-SQL تبدیل کردم. درصورتی که به درد شما خورد، علاوه بر پدر بیامرزی که برای آقای حجت می فرستید یه صلوات هم برای سلامتی خودتون بفرستید.
تابع تبدیل از ویندوز به ایران سیستم = fnUnicodeToIranSystem
تابع تبدیل از ایران سیستم به ویندوز = fnIranSystemToUnicodeW
طریقه استفاده:

Select dbo.fnUnicodeToIranSystem ('رشته مورد نظر در ویندوز')
Select dbo.fnIranSystemToUnicodeW ('رشته مورد نظر در ایران سیستم')


http://www.iran-eng.com/showthread.php?t=73572

----------


## ostovarit

با سلام خدمت دوستان عزیز

من به دنبال برنامه ای برای ساخت فرم بیمه بودم که با این تاپیک آشنا شدم ...

- جهت انجام چنین کاری به چه فیلدهایی نیاز هست؟
- آیا کسی سورس نوشته شده داره به زبان VB یا C#‎ که تمامی فیلدها و استاندارد ها درش رعایت شده باشه؟

از هرگونه رهنمایی ... لینک ... نمونه کد ... حتی عکس از فرم و هر چی که بتونه کمک کنه دریغ نفرمایید.

با تشکر

----------


## ostovarit

> با سلام،
> من یک نرم افزار حقوق و دستمزد دارم، می خوام بدونم چطوری می تونم فایلی که توسط نرم افزار اداره بیمه تولید می شه رو با همون فرمت و با همون Encoding تهیه کنم؟
> 
> با تشکر.


اگر موفق به نوشتن فرم بیمه شدید در صورتی که امکانش رو دارید برنامه رو بزارید تا بتونیم از سناریو اون استفاده کنیم ... با تشکر

----------


## happy65_sh

يه تبديل ساده از كدپيج ويندوز به ايران سيستم

https://barnamenevis.org/showth...=149075&page=3

با يه سرچ ساده توي گوگل هم كلي مطلب مفيد پيدا مي كني

----------


## babak_izadi

> من تابع هایی که وجود داشت را از دلفی به توابعی در SQLSERVER تبدیل کردم و با استفاده از آنها در SQLSERVER می توانید هر رشته ای را از ویندوز (یونیکد) به DOS (ایران سیستم) و یا برعکس تبدیل کنید. اصل برنامه از آقای حجت است و من فقط آنها را به T-SQL تبدیل کردم. درصورتی که به درد شما خورد، علاوه بر پدر بیامرزی که برای آقای حجت می فرستید یه صلوات هم برای سلامتی خودتون بفرستید.
> تابع تبدیل از ویندوز به ایران سیستم = fnUnicodeToIranSystem
> تابع تبدیل از ایران سیستم به ویندوز = fnIranSystemToUnicodeW
> طریقه استفاده:
> 
> Select dbo.fnUnicodeToIranSystem ('رشته مورد نظر در ویندوز')
> Select dbo.fnIranSystemToUnicodeW ('رشته مورد نظر در ایران سیستم')
> 
> 
> http://www.iran-eng.com/showthread.php?t=73572


 
سلام،
من یک پروژه جدید را شروع کردم و با همین ایران سیستم به مشکل برخوردم که با کد شما برخورد کردم! این چیزی که نوشتین و توضیح دادین برای من بهترین حالت میتونه باشه اگر بتونم ازش استفاده کنم. فقط یک سئوال پایه ای !
من قراره از یکسری dbf که توی DOS با ایران سیستم هست داده ها را بخونم، حالا میخوام این وسط اول data را بیارم توی SQL کارهای خودم را باهاش انجام بدم و آخر سر اگه لازم شد دوباره برگردونم توی همون DBF.

حالا با همون IMPORT معمولی جواب میده !؟ یعنی میتونم همون DBF های DOS را توی SQL وارد کنم ؟! البته منظورم کدپیج و ایناش هست، چون تست کردم که خب متن ها چرت و پرت وارد SQL میشه! که خب اینش طبیعیه، اما مشکلم با اینش بود که تابع های شما هم روی این رشته ها فقط ؟ تولید میکنه!
ممنون میشم اگه کمک کنید.

----------


## g_ilar

> يه تبديل ساده از كدپيج ويندوز به ايران سيستم
> 
> https://barnamenevis.org/showth...=149075&page=3
> 
> با يه سرچ ساده توي گوگل هم كلي مطلب مفيد پيدا مي كني





> سلام،
> من یک پروژه جدید را شروع کردم و با همین ایران سیستم به مشکل برخوردم که با کد شما برخورد کردم! این چیزی که نوشتین و توضیح دادین برای من بهترین حالت میتونه باشه اگر بتونم ازش استفاده کنم. فقط یک سئوال پایه ای !
> من قراره از یکسری dbf که توی DOS با ایران سیستم هست داده ها را بخونم، حالا میخوام این وسط اول data را بیارم توی SQL کارهای خودم را باهاش انجام بدم و آخر سر اگه لازم شد دوباره برگردونم توی همون DBF.
> 
> حالا با همون IMPORT معمولی جواب میده !؟ یعنی میتونم همون DBF های DOS را توی SQL وارد کنم ؟! البته منظورم کدپیج و ایناش هست، چون تست کردم که خب متن ها چرت و پرت وارد SQL میشه! که خب اینش طبیعیه، اما مشکلم با اینش بود که تابع های شما هم روی این رشته ها فقط ؟ تولید میکنه!
> ممنون میشم اگه کمک کنید.


با سلام خدمت شما دوست عزیز،
برای اینکار، بهتر است که از LinkedServer استفاده کنید، با استفاده از این امکان در SQLServer شما میتوانید دسترسی مستقیم به فایلهای DBF ایجاد کنید (بدون آنکه نیاز به IMPORT باشد) و سپس از طریق آن با توابع ذکر شده تبدیل را انجام دهید. برای اطلاعات بیشتر به راهنمای LinkedServer در SQLServer مراجعه نمایید.

ضمناً، IMPORT  کردن دادهها از DOS به SQLServer باعث میشود که کاراکترهای DOS تغییر کرده و در نتیجه داده ها خراب شوند.

----------


## sanaz_yek

سلام 
این تابع های sql هرچی بهش میدم رو به صورت ؟ نشون میده
لطفاً راهنماییم کنین چی کار کنم

----------


## g_ilar

> سلام 
> این تابع های sql هرچی بهش میدم رو به صورت ؟ نشون میده
> لطفاً راهنماییم کنین چی کار کنم



علت اینکه بصورت ؟ میبینید این است که با کدپیج به جز «ایران سیستم» نگاه می کنید. 
نتیجه این تابع باید با کدپیج «ایران سیستم» مشاهده کنید. برای این کار نتیجه حاصل از تابع را درون فایلی ذخیره کنید (البته دقت کنید مستقیم داخل فایل بریزید نه اینکه خودتان کپی پیست کنید، زیر در حین کپی پیست کردن ممکن است ؟ منتقل کنید). سپس به برنامه تحت داس برید که با کدپیج «ایران سیستم» کار می کند و نتیجه را آنجا ببینید.

----------


## masoud_z_65

میتونید از notpad++ هم استقاده کنید

----------


## sajjad_kochekian

> من تابع هایی که وجود داشت را از دلفی به توابعی در SQLSERVER تبدیل کردم و با استفاده از آنها در SQLSERVER می توانید هر رشته ای را از ویندوز (یونیکد) به DOS (ایران سیستم) و یا برعکس تبدیل کنید. اصل برنامه از آقای حجت است و من فقط آنها را به T-SQL تبدیل کردم. درصورتی که به درد شما خورد، علاوه بر پدر بیامرزی که برای آقای حجت می فرستید یه صلوات هم برای سلامتی خودتون بفرستید.
> تابع تبدیل از ویندوز به ایران سیستم = fnUnicodeToIranSystem
> تابع تبدیل از ایران سیستم به ویندوز = fnIranSystemToUnicodeW
> طریقه استفاده:
> 
> Select dbo.fnUnicodeToIranSystem ('رشته مورد نظر در ویندوز')
> Select dbo.fnIranSystemToUnicodeW ('رشته مورد نظر در ایران سیستم')
> 
> 
> http://www.iran-eng.com/showthread.php?t=73572


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

----------


## SEPIDEYESHAB

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

راستش من استفاده از اون رو بلد نیستم ولی اون رو با sqlserver باز کردم ولی به شکل زیر در اومده !!!!

دوستان اگه ممکنه راهنمایی کنید چجوری از این کد ها در برنامه ام که به زبان C#‎‎‎  هستش استفاده کنم!

راستی وقتی اجراش کردم اخطار زیر رو داد ××

Msg 2812, Level 16, State 62, Line 1
Could not find stored procedure 'fnHex2Decimal'.

Untitled.jpg

----------


## SEPIDEYESHAB

ینی کسی نیست این مشکل رو داشته باشه  :ناراحت:

----------


## davood-ahmadi

این کلاس هم برای درست کردن دیسکت بیمه سازمان تأمین اجتماعی ( تبدیل ایران سیستم به ویندوز و بلعکس ) است.
البته این کلاس را در اوایل سال 86 نوشتم . میگذارم برای دوستان باحال که اونها اگه خواستند ازش استفاده کنند. ببخشید فقط کمی شلوغه.

https://barnamenevis.org/showthread.p...=1#post2103670

----------


## manelian00021

خانمها آقایون من با تابعی که در sql server هست کار کردم fnUnicodeToIranSystem
 حالا مشکل با حروفی است که آخرش به لیا یا لا ختم میشود  که  اشتباه می خواتد چه باید کرد؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

----------


## MOJTABAATEFEH

با سلام
از دوستان اگر کسی عملی این کار را انجام داده لطفا یک شرح نسبتا کامل بده تا بقیه بتوانند استفاده کنند توضیحات بالا دست و پا شکسته هست و صرفا زوم روی تغییر کد پیج و این قبیل مسائل هست
بطور مثال بر روی اینکه
چه اطلاعاتی باید واکشی بشه و به چه شکل (منظور از به چه شکل نام فیلدهای خروجی و نوعشان است)

با تشکر

----------


## khokhan

> با سلام
> از دوستان اگر کسی عملی این کار را انجام داده لطفا یک شرح نسبتا کامل بده تا بقیه بتوانند استفاده کنند توضیحات بالا دست و پا شکسته هست و صرفا زوم روی تغییر کد پیج و این قبیل مسائل هست
> بطور مثال بر روی اینکه
> چه اطلاعاتی باید واکشی بشه و به چه شکل (منظور از به چه شکل نام فیلدهای خروجی و نوعشان است)
> 
> با تشکر


بی خودی بزرگش کردن هیچی نداره :لبخند گشاده!: 
یه متدی هست که چند تا فیلد از بانک (حالا هربانکی که باشه ) رو می گیره و به اول و آخرشون یه تگ به این شکل  "</b>" اضافه می کنه و توی یه فایل متنی ذخیره می کنه 
بقیه گزارشات هم که کلیشه ای هستن و خود بیمه اونها رو ارائه می ده و طراحی شون با گزارش سازها کاری نداره
این اواخر هم برخی شرکتهای بیمه گر تغییراتی روی فایل خرو جی شون داده بودن و یه چیزایی بایستی به آخر فیلدها اضافه می شد 

متد داخل برنامه تون بایستی یه چیزی شبیه این باشه :

----------


## M_Man_M

يا سلام

براي تبديل داده هاي تحت ويندوزتون به داس ، پيشنهاد ميکنم به اينجا يه سري بزنيد.
« البته سعي کنيد يه بار کل تاپيک را مطالعه بفرمائيد »

موفق باشيد

----------


## amir001

یه ضرب المثل داریم که میگه یه دیوونه یه سنگ انداخته ته چاه، هزارتا عاقل نمیتونن درش بیارن..

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

----------


## shahrzad87

> من تابع هایی که وجود داشت را از دلفی به توابعی در SQLSERVER تبدیل کردم و با استفاده از آنها در SQLSERVER می توانید هر رشته ای را از ویندوز (یونیکد) به DOS (ایران سیستم) و یا برعکس تبدیل کنید. اصل برنامه از آقای حجت است و من فقط آنها را به T-SQL تبدیل کردم. درصورتی که به درد شما خورد، علاوه بر پدر بیامرزی که برای آقای حجت می فرستید یه صلوات هم برای سلامتی خودتون بفرستید.
> تابع تبدیل از ویندوز به ایران سیستم = fnUnicodeToIranSystem
> تابع تبدیل از ایران سیستم به ویندوز = fnIranSystemToUnicodeW
> طریقه استفاده:
> 
> Select dbo.fnUnicodeToIranSystem ('رشته مورد نظر در ویندوز')
> Select dbo.fnIranSystemToUnicodeW ('رشته مورد نظر در ایران سیستم')
> 
> 
> http://www.iran-eng.com/showthread.php?t=73572


سلام
من از این function استفاده کردم و برای بعضی کلمه ها مشکل داشت که تغییراتی در fnUnicodeToIranSystem انجام دادم و تا حدودی درست شد اما هنوز برای کلمه ای مثل "مالی" و "زهرا" مشکل داره که به "ملی" و "زشرا" تبدیل میشه. کسی میتونه راهنمایی کنه؟ 
تغییری که انجام دادم این بود که به جای 

Set @Result = replace(@Result, char(145)+char(243), char(242))

نوشتم 

Set @Result = replace(@Result, char(243)+char(145), char(242))
   Set @Result = replace(@Result, char(242)+char(243), char(242)+char(145)+char(243))

و برای رشته های عددی هم گفتم به جای 0 تا @Limit ، از @Limit تا 0 اجرا بشه چون عددهای از نوع رشته بعد از تبدیل برعکس میشد.

----------


## fakhravari

سلام
من از برنامه C#‎ درون فایل bdf میخواهم insert کنم اما روی فونت فارسی خراب است 
دوستان چه راحی پیشنهاد می کنند

----------


## fakhravari

https://github.com/mohsen-d/IranSystemConvertor/

----------


## omid.behrooz

نرم افزار کامل تهیه فایل دیسکت لیست بیمه از فایل اکسل (هم تبدیل به یونیکد ایران سیستم و هم تولید فایل DBF خودکار):
omidbehrooz1000/IranInsuranceDisketCreator: A simple software to create iran isurance disket files according to old fox pro usage in SSO. (github.com)

----------

