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

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

قبليقبلي Go to previous topic
بعديبعدي Go to next topic
آخرين ارسال 10 اسفند 1389 10:59 ق.ظ توسط r_hatami
فراخوانی مستقیم از فایل excel جهت تهیه صورت مغایرت؟
�14 پاسخ
مرتب:
شما مجاز به پاسخ به اين پست نمي باشيد.
مولف پيغام ها
r_hatami
کاربر با تجربه
کاربر با تجربه

--
07 اسفند 1389 01:13 ب.ظ
    با سلام
    نظر به این که اخیرا صورت حساب های بانکی در قالب فایل excel  می باشد. برای تبدیل فایل به فرمت متنی ، کاربر باید یه سری سطر و ستونها را حذف کنه تا فرمت فایل های ماههای مختلف یکسان بشه یا مجبوره هر ماه یه شیوه فراخوانی رو اصلاح کنه. که اگه حجم عملیات بالا باشد، حذف سطرها و اصلاح فایل برای که همه سطرها فراخوانی شوند، وقت گیر به نظر میرسه. امکانش هست که صورت حساب مستقیما از excel  فراخوانی بشه یا راه ساده تری باشد؟
    آیکن excel  که برای ارسال مستقیم گزارشات در برنامه تعبیه شده، واقعا ایده خوبی بوده. دست همه برنامه نویسان برنامه درد نکنه.

    با تشکر
    momeni
    کاربر ارشد
    کاربر ارشد

    --
    07 اسفند 1389 01:47 ب.ظ
    سلام قربان، خیلی خوش آمدید

    فایل متنی جدا شده با کاما یا Tab یکی از فرمت‌های استاندارد Excel هست و از ابتدا هم در سیستم ما پیاده شده است. حسن مهم این فرمت، عدم وابستگی آن به نسخه Office موجود در رایانه و فایل Excel ارائه شده هم هست که در جای خودش جالب است.
    هر نوع فراخوانی حتما نیاز به روشی برای توصیف داده‌ها ورودی برای نرم‌افزار دارد. تفاوتی نخواهد داشت که مستقیما از Excel فراخوانی شود یا از فایل ایجاد شده توسط Excel. یکی از ساده‌ترین فرمت‌ها برای تعریف و فراخوانی هم همین فرمت‌های متنی است. قاعدتا یک بانک در طول ماه‌های مختلف، فرمت فایل ارسالی خود را تغییر نمی‌دهد و به همین دلیل یکبار تعریف روش فراخوانی برای خواندن داده‌های Excel هر بانک کفایت می‌کند و نیازی به تغییر نیست. اگر شیوه فراخوانی درست تعریف شود، تصور نمی‌کنم نیازی به حذف ستون داشته باشید. یک Save as در محیط Excel کفایت می‌کند. محدوده سطرها هم توسط خود سیستم و در زمان فراخوانی با تعیین محدوده تاریخ قابل تعیین است و نیازی به حذف سطر هم نخواهید داشت. توجه بفرمایید که فراخوانی فایل متنی ایجاد شده از Excel هیچ تفاوتی با خواندن داده‌های مستقیم ندارد - به جز اینکه روش فراخوانی یکبار تعریف می‌شود و در سیستم باقی می‌ماند - در مقابل اگر می‌خواستیم مستقیما از Excel بخوانیم، قاعدتا باید در هر بار فراخوانی داده‌ها را برای سیستم مشخص می‌کردیم که به تصور بنده دشوارتر بود.

    اگر دست متوجه منظور شما نشده‌ام یا توضیحات کفایت نمی‌کردند مورد را دقیق‌تر بفرمایید تا در خدمت باشیم. از لطف شما هم بسیار سپاس‌گذارم

    ارادت
    hashemiye
    کاربر
    کاربر

    --
    08 اسفند 1389 12:47 ب.ظ
    با تشکر از جناب آقای مومنی و سرکار خانم حاتمی ؛
        این سؤالی بود که خیلی وقته ذهن منو مشغول کرده بود .
    momeni
    کاربر ارشد
    کاربر ارشد

    --
    08 اسفند 1389 01:08 ب.ظ
    سرکار خانم حاتمی

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

    ارادت
    r_hatami
    کاربر با تجربه
    کاربر با تجربه

    --
    08 اسفند 1389 03:13 ب.ظ
    خواهش می کنم آقای مومنی. من یکی از همکارانتان در دفتر یزدم.
    توضیحات شما در مورد این که فرمت فایل بانک تغییر  نمی کنه ،صحیح و بجاست .وقتی یکی از مشتریان جهت تهیه صورت مغایرت تماس گرفت، با تبدیل هر کدام از فایل ماههای مختلف به فایل متنی ، سطرهای اضافی بین داده ها در هر فایل -و حتی بین هر سطر داده- متفاوت بود. برای یکسان شدن فرمت مجبور بودیم یه سری سطرهای اضافی را برای همه فایل ها حذف کنیم تا قالب آنها یکسان بشه و بتونیم یه شیوه فراخوانی داشته باشیم. این مورد به احتمال زیاد به خاطر ستون شرح عملیات آن فایل و شرح های طولانی بود.
    با تشکر
    momeni
    کاربر ارشد
    کاربر ارشد

    --
    08 اسفند 1389 03:35 ب.ظ
    سلام

    اگر فایل متن را با عرض ستون‌های ثابت تعریف نمایید این وضعیت ممکن است رخ دهد - اما اگر از Comma Separated استفاده کنید (یا Tab Separated) احتمالا این مشکل رفع خواهد شد.
    sajjadi
    کاربر با تجربه
    کاربر با تجربه

    --
    08 اسفند 1389 04:57 ب.ظ

    سلام

    در برخي از فايلهاي دريافتي از بانک فيلد شماره بيش از 9 رقم دارد که به هر حال براي خواندن در برنامه بايد ابتدا با فرمول طول اضافه اين شماره ها را حذف کنيم . آيا راه مناسبتري وجود دارد؟

    با تشکر

    momeni
    کاربر ارشد
    کاربر ارشد

    --
    08 اسفند 1389 06:01 ب.ظ
    سلام

    شرمنده در سیستم ما شماره به 9 رقم محدود است
    molaei
    کاربر پیشرفته
    کاربر پیشرفته

    --
    09 اسفند 1389 08:43 ق.ظ
    معمولا در مواردی که تعداد ارقام فیلد شماره، بیش از کاراکترهای معمول است، چهار یا پنج رقم ثابت در ابتدای همه شماره ها اضافه شده است. مثلا شماره اصلی 123456 است ولی در صورتحساب بانک 987123456 درج شده است که سه رقم 987 در تمام شماره ها تکراری است. در این شرایط، حتی اگر سیستم کل ارقام را بخواند، چون شما در نرم افزار شماره 123456 را به عنوان شماره موکد ثبت کرده اید، برای انجام عمل مغایرت گیری، با مشکل مواجه خواهید شد.
    به همین دلیل، همانطور که خودتان هم اشاره فرمودید، بهتر است ابتدا فایل را اصلاح و سپس در نرم افزار فراخوانی نمایید.
    hashemiye
    کاربر
    کاربر

    --
    09 اسفند 1389 02:08 ب.ظ
    با سلام
    در فایل بانکی که خانم حاتمی می فرمایند شرح عملیات مربوط به بانک خیلی طولانی است و باعث می شود که چند سطر را اشغال کند . حتی اگر این ستون را حذف کنیم سطرهای بین داده ها باقی می ماند . و مسئله اینجاست که بین بعضی از داده 1 سطر بعضی 2 ، بعضی 3 و بعضی 4 سطر خالی می افتد . از تمام حالتهای ذخیره سازی اکسل هم برای ذخیره استفاده کرده ایم اما جواب نداده . آیا در اکسل راهی است که بتوان براحتی سطرهای خالی را حذف کرد ؟
    momeni
    کاربر ارشد
    کاربر ارشد

    --
    09 اسفند 1389 02:20 ب.ظ
    سلام

    اگر ممکن است نمونه فایل را برای ما ای‌میل کنید تا بررسی کنیم. اطاعت
    hashemiye
    کاربر
    کاربر

    --
    09 اسفند 1389 02:26 ب.ظ
    به دیده منت .
    molaei
    کاربر پیشرفته
    کاربر پیشرفته

    --
    09 اسفند 1389 02:57 ب.ظ
    برای حذف سطر های خالی، ساده ترین راه اینه که اطلاعات رو بر اساس اون ستون مرتب (Sort) کنید. طبیعتا خط های خالی پشت سر هم می آیند. حال می توانید همه را یکجا حذف کنید. البته راه های دیگری هم دارد. اگه به این طریق مشکل حل نشد، در خدمتم.
    momeni
    کاربر ارشد
    کاربر ارشد

    --
    09 اسفند 1389 07:23 ب.ظ
    سلام

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

    نمونه فايلي كه فرستاديد واقعا يكي از نمونه‌هاي بديل و غيرقابل تصور بي‌سليقگي شرم‌آور توليدكنندگان نرم‌افزار بود كه من تا به حال ديده‌ام و از هر بانكي بعيد است كه اين داده‌هاي ناجور را به عنوان فايل اطلاعات در اختيار كاربران قرار دهد.

    اشكال‌هاي اصلي اين است كه اولا از Merge براي زيبا كردن متن استفاده شده است، به جاي اينكه مثلا عرض ستون‌ها را درست كنند و ثانيا براي اينكه Wordwrap در متن‌هاي مختلف درست عمل كند سطرهاي خالي درج كرده‌اند و گاها آنها را نيز Merge كرده‌اند. خلاصه اگر يك فايل Word مي‌دادند Dataي با ارزش‌تري داشت تا اين چيزي كه داده‌اند. جدا من وقتي خواهش كردم كه نمونه بفرستيد اصلا انتظار چنين چيزي را نداشتم. اما به هر حال بايد سعي كنيم داده‌هاي ارزشمند را از اين فايل استخراج كنيم...

    قبل از هر اقدامي، لازم است تا از شر Merge و Word wrap خلاص شويم. در ضمن فكر مي‌كنم كه فقط به داده‌هاي موجود در جدول اصلي توجه داشته باشيم. به اين منظور تمام سلول‌هاي جدول اصلي را Select نماييد (در نمونه شما B17 تا V52). سپس Right click كنيد و Format Cells را انتخاب كنيد و در صفحه Alignment ترتيبي دهيد كه هر دو گزينه Wrap text و Merge Cells پاك شوند (بدون علامت) و محاوره را تصويب نماييد.

    در ادامه، روشي كه آقاي مولايي فرمودند بسيار كارآمد خواهد بود و هيچ مشكلي هم ندارد (به علت وجود ستون رديف به عنوان مبناي مرتب‌سازي). كافي است قسمت جدول اصلي را Select و برحسب رديف Sort كنيد و سپس قسمت ابتدايي آنچه حاصل شده است را Copy كنيد و در يك صفحه ديگر Paste نماييد.

    اما در حالت كلي، فرض كنيد كه پس از برداشتن Word wrap و Merge مي‌خواهيم بدون Sort، سطرهاي خالي را حذف كنيم. يك روش با چند حركت ساده به نظرم رسيد كه آزمايش آن مفرح است. مي‌خواهيم اطلاعات را از يك صفحه با Select و Copy استخراج كنيم و در يك صفحه ديگر قرار دهيم و سپس آن صفحه را به صورت فايل Text يا Unicode ذخيره نماييم.

    خوب است كه روي يك كپي از فايل اوليه كار كنيد تا اشتباه قابل جبران باشد.

    در اين روش:

    - براي تشخيص سطر خالي از ستون رديف استفاده مي‌كنيم - فرض مي‌كنيم كه هر سطر كه در آن رديف درج نشده است سطر خالي است. به جاي رديف در حالت كلي
    مي‌توانيم از هر ستوني كه حتما بايد داراي محتوي باشد نيز استفاده كنيم.

    - تمام سطرهايي كه در آن رديف خالي است را Hide مي‌كنيم.

    - تمام محتويات Hide نشده را Select مي‌كنيم.

    - آنچه تا اينجا Select شده است همان است كه مي‌خواهيم - آنرا با Copy و Paste به يك صفحه ديگر منتقل مي‌كنيم.


    با ستون‌هاي خالي كاري نداريم (فكر كنم مشكلي ايجاد نكنند)
    اگرچه مراحل ممكن است مفصل به نظر برسند اما براي كاربر آشنا با Excel فقط چند ثانيه طول مي‌كشد - عمده كارها خودكار هستند.

    ابتدا ستون رديف را Select كنيد (قاعدتا فقط بخشي كه در جدول اصلي داده‌ها قرار دارد مورد نظر است - مثلا V17 تا V52)

    به ترتيب Edit->Go to->Special حال Blanks را انتخاب و تصويب كنيد. با اين كار سلول‌هاي خالي در ستون رديف Select خواهند شد.

    حال از دستوري استفاده مي‌كنيم كه منجر به Hide شدن سطرهايي خواهد شد كه يكي از سلول‌هاي آن Select است. اين با Ctrl+9 انجام مي‌شود. پس از اين مرحله صفحه ما حداقل از نظر ظاهري درست شده است اما سطرهاي خالي هنوز وجود دارند و فقط Visible نمي‌باشند.

    اينجا نياز به دستوري داريم كه معمولا در Excel در منو و Tool barها قرار ندارد. نام اين دستور بسيار مفيد، Select Visible Cells است و با يك حركت ساده مي‌توانيد آنرا روي Toolbar قرار دهيد (اصولا دستور مفيدي است). به اين منظور روي Tool Bar با ماوس Right click كنيد و آخرين گزينه يعني Customize را انتخاب كنيد. در محاوره‌اي كه باز شده است به صفحه Commands برويد و Edit را انتخاب كنيد. در فهرست دستورات Edit در سمت راست محاوره، تقريبا در انتهاي فهرست، دستور Select Visible Cells ديده مي‌شود. آنرا با ماوس Drag كنيد و در محل دلخواه در Toolbar بياندازيد. اين دستور به صورت يك تكمه در اختيار خواهد بود.

    برگرديم به كارهاي خودمان، تا اينجا ترتيبي داده‌ايم كه فقط سطرهاي حاوي داده‌ها Visible باشند. حال همان سطرها را به صورت معمولي Select نماييد و پس از آن همان تكمه مذكور در بند قبل يعني Select Visible Cells را فشار دهيد.

    كارمان تقريبا تمام است. آنچه مي‌خواسته‌ايم انتخاب شده و حاضر است. كافي است آنرا Copy كنيم و در يك صفحه خالي Paste نماييم و در نهايت در فايل Text يا Unicode ذخيره كنيم.

    همانطور كه پيش از اين اشاره كردم - اولا امان از دست برنامه‌نويسان هدفمند؛ ثانيا روش جناب مولايي در اين مورد به خصوص بهتر است و روش من فقط به عنوان كلنجار با Excel به نظرم جالب آمد؛ ثالثا كل اين عمليات براي فرد آشنا با Excel زماني در حد چند ثانيه صرف خواهد كرد - نكته در برداشتن Word wrap و Merge است

    زنده باشيد
    r_hatami
    کاربر با تجربه
    کاربر با تجربه

    --
    10 اسفند 1389 10:59 ق.ظ
    آقای مومنی بسیار ممنون از توضیحات مفید و آموزنده تان. واقعا لذت بردم.
    شما مجاز به پاسخ به اين پست نمي باشيد.