سیستم ارتباط با مشتری (CRM) ، بخش چهارم – شمای ظاهری

نوشته شده بوسیله تبسم 22. دی 1388 23:12

سلام.

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

من تصویرش رو می ذاریم. کنترل هاش رو از ToolBox بذارین روی فرم ها تا برسیم به کد نویسیش. البته همونطور که می بینین از روی تصویر فرم اطلاعات مشتری کد نویسیش مشابه همون دفترچه تلفنه. در واقع ما همون پروظزه رو یه کمی گسترش دادیم.

در حالت کلی و منطقی یه برنامه ی CRM خیلی بزرگتر و دقیقتر و گاهی حتی پیچیده تر از ایناست که بسته به چیزی که کاربر متقاضی بخواد فرق داره.این پروژه صرفا برای آشنایی کلی با این مفهوم و یاد گرفتن یه سری کدنویسی هاست.

اولین فرم که فرم اصلیه، روش یه منو استریپ (MenuStrip) رو مثل یه دکمه که چه جوری می آوردیم از توی ToolBox همونجوری روی فرم بذارین:

crmmain

بعد فرم های بعد رو اضافه کنین.(می دونین دیگه باید روی نام پروژه راست کلیک کنین بعدش New Item و افزودن فرمForm که همون جا هم می تونین اسم فرم رو تغییر بدین یا ندین.)

customer goods

buy

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

1. می ریم سراغ فرم اول که فرم اصلی ماست.

2. روی هر کدوم از زیر منو ها تک تک کلیک می کنیم و در قسمتی که برای کدنویسی باز شده ،کد مورد نظر رو می نویسیم

3. برای مثال زیر منوی اول که به فرم اطلاعات مشتری می ره و ما اسم فرم رو گذاشتیم:

Custom_Form حالا یه فرم از این کلاس می سازیم  که با کلیک روی این منو باز بشه:

code 

برای بقیه هم همینطوره.

از پست بعدی می ریم سراغ کدنویسی اگر چیز جدیدی یادم نیومد که اولویت داشته باشه.البته یه نکته هست راجع به فرم ها که این پست طولانی می شه. فقط اینکه ما الان از روش SDI)Single Document Interface) استفاده کردیم یعنی هر فرم واسه خودش جدا باز می شه. مقابل SDI داریم: Multiple-Document Interface (MDI)

سیستم ارتباط با مشتری (CRM) ، بخش سوم، فایل پایگاه داده

نوشته شده بوسیله تبسم 27. آذر 1388 14:41

سلام بچه ها.

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

و اما:

پست های قبلی راجع به خود ِ مفهوم CRM و پایگاه داده ش صحبت کردیم. حالا من فایل پروسیجرها و کلا فایل Script دیتابیس رو براتون می ذارم تا برای قسمت های بعدی دسترسی به پایگاه داده ای که توی مثال استفاده شده داشته باشید. البته پیشنهادم اینه که از اونجایی هم که خیلی وقت گیر نیست خودتون هم یه دیتا بیس بسازین و شخصا جداول و استورد پروسیجرها رو بنویسین. (دیتا بیس رو توی SQL Server 2005 نوشتم اما توی SQL Serevr 2008 اجرا گرفتم.)

1. اول از همه توی برنامه Sql Server تون یه دیتا بیس بسازین، من اسمش رو گذاشتم CRM . (اینم پست های قبلی با تصویر توضیح دادم، مخصوصا پست مربوط به پروژه دفترچه تلفن و یا تری ویو، که چه جوری دیتا بیس نیو کنین.)

2. روی فایل اسکریپتی که در ادامه براتون می ذارم و دانلود کردین کلیک کنین تا توی برنامه ی SQL Server تون باز شه.

3. اون بالا، قسمت Execute، اسم دیتابیس تون که اینجا همون CRM می شه رو انتخاب کنین و بعد دکمه ی اجرا رو (همون علامت !) بزنین و به این ترتیب شما تمام جداول و استورد پروسیجرها رو توی دیتابیس سیستمتون خواهید داشت.

// فعلا دیتابیس رو بررسی کنین ببینین مشکلی اگر هست تبسم خوشحال می شه کمک کنه.پست بعدی یه شمایی از برنامه رو براتون می ذارم. فقط قبلش شما ایده ای ندارین براش؟! اینکه چند تا فرم باشه؟ چیدمان کنترلها چه جوری باشه؟ برای این کار فعلا نیاز به کد نویسی ندارینا پس فایل ایده هاتون رو بفرستین برام.منتظرم. موفق باشید

اینم فایل پایگاه داده:  CRM_Script.rar (1.68 kb)

Tabasom.world@gmail.com

 

سیستم ارتباط با مشتری (CRM) ، بخش دوم، دیتا بیس- معرفی نوع داده ی Uniqueidentifier در SQL SERVER

نوشته شده بوسیله تبسم 25. آذر 1388 21:40

سلام دوستان.

قرار بود دیتابیس مربوط به یه شرکت تولیدی رو برای نگهداری اطلاعات مشتریاش طراحی کنیم. (تصویر دیتابیس در پایان همین پست پیوست شده)

به طور کلی و برای اینکه خیلی پیچیده نشه و وارد خیلی جزئیات نشیم و چون صرفا می خواییم اطلاعات کلی در مورد مشتریامون و اینکه چه کالاهایی رو با چه قیمتهایی از ما خریده، چه تعداد و در چه تاریخی و از این قبیل چیزها رو نگه داریم، 3 تا Table  در نظر می گیریم.

اول  Table ی برای ثبت اطلاعات مربوط به مشتری. خوب، به نظر شما چه فیلدهایی رو مهمه که نگه داریم؟! درسته همونطور که دارین توی ذهنتون می گین، ما اسم، آدرس، شماره تلفن برامون مهمه. پس یک Table  داریم با نام مثلا : Table_customerINFO .

و دوم Table ی که یک سری اطلاعات کلی کالامون رو برامون نگه داره تا بفهمیم مشتری دقیقا چی خریده از ما. Table ی که مثلا نام و شماره ی سریال تولید کالا رو برامون نگه داره. پس Table بعدیمون می شه مثلا: Table_goodsINFO .

و در نهایت به یک Table ی نیاز داریم که مثل برگه ی قراردادمون می مونه و در حقیقت می شه ارتباط بین کالا و مشتری و برای ما اطلاعات خرید رو نگه می داره مثل تاریخ خرید،قیمتی که به مشتری داده شده، میزان پولی که مشتری پرداخته، تعداد کالایی که خریده. و البته باید دقت کنید که توی این جدول ما باید کلیدهای خارجی از جداول دیگه داشته باشیم تا بتونیم ارتباط بین جداول ایجاد کنیم و اطلاعات دو جدول دیگه رو از طریق این برگه ی به اصطلاح قرارداد استخراج کنیم. پس Table سوم می شه مثلا: Table_buyINFO

دقت کنین که اگر می خوایید یک پروژه با جزئیات بیشتری بنویسین در محدوده ی CRM شما می تونین جدول های دیگه ای هم داشته باشین، می تونین جزئیات بیشتری برای مشتری در نظر بگیرین مثل تاریخ تولدش و ... و برای نوع پرداخت ها، که نقدی هست،یا قسطی و چک... و حتی جزئیات بیشتری برای کالا.می تونین اطلاعات بازاریابها رو حتی در نظر بگیرید و الی آخر...

دینگ دینگ توجه:

  1. برای نوع داده ی مربوط به ستون قیمتها از Money استفاده نکردم چون با مقادیر ایرانی مشکل داره بنابراین می تونین از float یا  decimal استفاده کنید.
  2. برای تاریخ ها از datetime استفاده می کنیم اما چون این نوع داده تاریخ رو به صورت میلادی بر می گردونه بعدا توی برنامه مون،برای لایه ی نمایش باید متدی بنویسیم که تبدیل به شمسی ش رو انجام بده.
  3. برای id ها از نوع داده ی uniqueidentifier استفاده می کنیم. حالا می رسیم به اینکه چرا و این چه جور نوع داده ایه:

Unique identifier   اگه اینجوری جدا بنویسم از رو معنیش به طور کلی می فهمین چه نوع داده ای هست. یونیک، یک  شناسه ی یونیک، یکتا، تک. در واقع uniqueidentifier یک نوع داده ایه که مقادیر 16 بایتی باینری(0و 1) ی رو ذخیره می کنه که بعنوان یک globally unique identifiers (GUIDs)  یا در واقع مثل اون ازش در محیط برنامه نویسی استفاده می شه.

حالا این GUID  چیه؟ یک عدد 16 بایتی یونیک هست. در واقع هیچ دو کامپیوتری در دنیا وجود ندارن که GUID های مثل هم تولید کنند دقیقا مثل  uniqueidentifier ها . بنابراین وقتایی که می خواییم یکی بودن مثلا یک نام رو توی پروژه ها یا سایت هامون چک کنیم، این GUID برای پیگیری کمکمون می کنه،چون برای هر نامی یک شماره یکتا تخصیص داده می شه که از طریق اون قابل پیگیریه و این در صورتی که نامهای مشابه داشته باشیم خیلی مفید خواهد بود. در حقیقت یه جور کلید(Key) هستند و در واقع توی دیتابیس کلید اصلی هستند.

برگردیم به Uniqueidentifier ها و نکات مربوط بهش:

1.       توی Table در نظر بگیرید وقتی یک ستون از این نوع داده Uniqueidentifier  استفاده می کنه حتی اگه بعضی داده های اضافه شده در Table مشابه باشن با هم قاطی نمی شن چون هر سطر شناسه ی مخصوص به خودش رو داره.

2.       Uniqueidentifier ها رو می شه دو جور نمایش داد: رشته هایی از کاراکتر و یا باینری

Character string format: '6F9619FF-8B86-D011-B42D-00C04FC964FF'

Binary format: 0xff19966f868b11d0b42d00c04fc964f

3.       برای تولید این عدد یونیک از شماره های یونیک کارت شبکه (مثل شماره ی Mac  یا Ip) و همچنین ساعت CPU ی کامپیوتر استفاده می شه.

4.       از دو راه متغیرهای Uniqueidentifier مقدار دهی می شن:

-          اول از طریق تابع (Function) پیش فرضی که خود SQL Server داره به نام  NEWID .

DECLARE @myid uniqueidentifier

()SET @myid = NEWID

(PRINT 'Value of @myid is: '+ CONVERT(varchar(255), @myid

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

xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

هر x نماد یک رقم هگزیمال (شانزده شانزدهی) بین 0 تا 9 و کاراکترهای از a تا f هستند.

5.       مقایسه هایی مثل (=, <>, <, >, <=, >=) و Null و غیرNull بودن رو می شه رو متغییرهای Uniqueidentifier انجام داد اما عملیات دیگه ی ریاضی رو نمی شه روشون اعمال کرد.

6.        یه سری پراپرتی های IDENTITY داریم که این متغیرهای Uniqueidentifier باهاش فرق دارن. اون پراپرتی ها با اضافه شدن هر سطر مقدارش اتوماتیک عوض می شه مثلا زیاد می شه اما در مورد متغیرهای Uniqueidentifier اینطوری نیست و با اضافه شدن هر سطر به جدولمون باید یه دونه جدیدش ایجاد بشه. به همین دلیله که ما برای کلیدهای اصلی مون توی این Table ها از این نوع داده استفاده کردیم.

تصویر دیتا بیس CRM

درست مثل دفترچه تلفن(اون سیستم لایه ای اش) شروع کنین استورد پروسیجرها رو بنویسین. پست بعدی فایل دیتا بیس رو می ذارم.الان نه!! :دی

پ.ن: اگه راجع چیزهایی که گفتم و یا بقیه Data Type ها(انواع داده) سوالی دارین، خوشحال می شم بپرسین.

سیستم ارتباط با مشتری (CRM)

نوشته شده بوسیله تبسم 22. آذر 1388 18:36

سلام دوستان.                                                                                      بخش اول

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

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

به این جور سیستم ها می گن مدیریت ارتباط با مشتری (CRM: Customers Relations Management) می گن.

حالا اینجور سیستم ها چی هستن و چه مزایایی دارن؟

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

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

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

مثلا ما یه مشتری داریم ، یه کالا داریم. و ... البته. مشتری یه سری مشخصات داره مثل اسم و آدرس و چیزی که خریده و ... کالا هم همینطور اسمش، نوعش، تاریخ تولیدش و ... ارتباط هم مثلا مشتری یه شامپو خریده،خریدن.

منتظرم.ممنون.

Tabasom.world@gmail.com

// رونوشت از وبلاگ قبلیم : پویش

استفاده از مطالب این وبلاگ با ذکر منبع مجاز است، لطفا!!

ایده هات مثل یه پَر که آرووم فرود می آد...

می تونی مفهوم و زیبایی تمام زندگی رو ، دنیا رو جمع کنی توی فقط یه نقطه که در بی نهایت غرقه... محیطِ مجتمع ِ "ویژوال استادیو دات نت" ، یه دنیاست مثل همین دنیا، لایه لایه، صفحه صفحه، دنیا دنیا...می شه توش سفر کرد و زندگی ساخت...دنیایی که قدرتت اونو ساخته، می سازه...مثل ِ یک محیط بازی، جایی برای یادگرفتن و تمرین زندگیه... مثل تمام موقعیت ها ولحظه های زندگی...

---------------------------

tabasom.world@gmail.com 

توجه:

بخش نظرات پس از 3 روز از ارسال پست بسته خواهد شد. برای ارسال سوال یا نظرات از بخش تماس سایت اقدام نمایید. در صورت نیاز از طریق ایمیل پاسخ داده خواهد شد.

پست های قبلی