إدراج صورة في تقارير الوصول. كيفية إنشاء زر في مايكروسوفت أكسس

إدراج صورة في تقارير الوصول.  كيفية إنشاء زر في مايكروسوفت أكسس
إدراج صورة في تقارير الوصول. كيفية إنشاء زر في مايكروسوفت أكسس

02. هذه الطريقةيسمح لك برسم بعض الكائنات في شكل ما، على الرغم من أن برنامج السياحة الدولية يستخدم خوارزمية مختلفة لرسم الخريطة. قد تكون هذه الطريقة مفيدة لك في بعض الحالات. يتم رسم الخطوط والنقاط والأشكال الناقص والمضلعات، أي. تلك الكائنات الأساسية المستخدمة في واجهة API.

"يتم استخدام الوظيفة للبحث عن نافذة
الإعلان الخاص عن وظيفة FindWindowEx Lib "user32" الاسم المستعار "FindWindowExA" _
(ByVal hWndParent As Long، _
ByVal hWndChildAfter As Long _
ByVal lpClassname كسلسلة _
ByVal lpWindowName As String ) طالما

"ترجع الدالة سياق جهاز الرسم
الإعلان الخاص عن وظيفة apiGetDC Lib "user32" الاسم المستعار "GetDC" _
(بيفال هوند طالما)_
طالما

"تقوم الوظيفة بتحرير سياق الجهاز للتطبيقات الأخرى
الإعلان الخاص عن وظيفة apiReleaseDC Lib "user32" الاسم المستعار "ReleaseDC" _
(بيفال هوند طالما _
ByVal hDc طالما ) _
طالما


"تأتي بعد ذلك الوظائف التي تتحكم في الرسم

"ترسم الوظيفة نقطة على الشاشة
الإعلان الخاص عن وظيفة apiSetPixel Lib "gdi32" الاسم المستعار "SetPixel" _
(ByVal hDc طالما _
ByVal x طالما , _
بواسطةVal Y As Long , _
ByVal crColor طالما) طالما

"ترسم الوظيفة خطًا من الموضع الحالي لـ "القلم" إلى النقطة ذات الإحداثيات
" x,y، ولكن لا يشمل نفسه. يتم رسم الخط باستخدام "القلم" المحدد. إذا
"لا يوجد خطأ، ثم يتم ضبط الموضع الحالي للقلم على النقطة ذات الإحداثيات
"(س، ص)
الإعلان الخاص عن وظيفة apiLineTo Lib "gdi32" الاسم المستعار "LineTo" _
(ByVal hDc طالما _
ByVal x كعدد صحيح، _
ByVal Y كعدد صحيح ) _
طالما

"ترسم الوظيفة قوسًا من القطع الناقص باستخدام "القلم" المحدد.
"يتم رسم القوس عكس اتجاه عقارب الساعة.
"(x1,y1 - x2,y2) المربع المحيط بالقوس.


الإعلان الخاص عن وظيفة apiArc Lib "gdi32" الاسم المستعار "Arc" _
(ByVal hDc طالما _
ByVal X1 كعدد صحيح، _
ByVal Y1 كعدد صحيح، _
ByVal X2 كعدد صحيح، _
ByVal Y2 كعدد صحيح، _
ByVal X3 كعدد صحيح، _
ByVal Y3 كعدد صحيح، _
ByVal X4 كعدد صحيح، _
ByVal Y4 كعدد صحيح ) _
طالما
"ترسم الوظيفة مستطيلاً باستخدام "القلم" المحدد.
"(x1,y1) - الزاوية الأولى

إعلان خاص عن وظيفة apiRectangle Lib "gdi32" الاسم المستعار "مستطيل" _
(ByVal hDc طالما _
ByVal X1 طويل , _
ByVal Y1 طويل , _
ByVal X2 طويل , _
ByVal Y2 طالما) طالما

"تقوم الوظيفة بتحريك موضع الرسم
" (س، ص) - نقطة جديدة
"(lpPoint) - النقطة السابقة
الإعلان الخاص عن وظيفة apiMoveTo Lib "gdi32" الاسم المستعار "MoveToEx" _
(ByVal hDc طالما _
ByVal x طالما , _
بواسطةVal Y As Long , _
lpPoint كـ POINTAPI) طالما
"بنية إحداثيات النقطة
نوع خاص POINTAPI
× طالما
Y طالما
نوع النهاية

"ترسم الوظيفة شكلًا بيضاويًا باستخدام "القلم" المحدد.
"(x1,y1) - الزاوية الأولى
"(x2,y2) - زاوية مقابلة
إعلان خاص عن وظيفة apiEllipse Lib "gdi32" الاسم المستعار "Ellipse" _
(ByVal hDc طالما _

ByVal X2 طويل، ByVal Y2 طويل) طويل


" lpPoint - مجموعة من النقاط
"nCount - عدد النقاط
الإعلان الخاص عن وظيفة apiPolyline Lib "gdi32" الاسم المستعار "Polyline" _
(ByVal hDc طالما _
lpPoint كـ POINTAPI، _

"ترسم الوظيفة خطًا متعدد الخطوط باستخدام "القلم" المحدد
" lpPoint - مجموعة من النقاط
"nCount - عدد النقاط
الإعلان الخاص عن وظيفة apiPolygon Lib "gdi32" الاسم المستعار "Polygon" _
(ByVal hDc طالما _
lpPoint كـ POINTAPI، _
ByVal nCount As Long ) طالما



" (x3,y3) - نقطة البداية للرسم بالقلم"
" (x4,y4) - نقطة نهاية رسم القوس
الإعلان الخاص عن وظيفة apiChord Lib "gdi32" الاسم المستعار "Chord" _
(ByVal hDc طالما _
ByVal X1 طويل , ByVal Y1 طويل , _


"تملأ الوظيفة دائرة باستخدام "القلم" المحدد
"(x1,y1 - x2,y2) المربع المحيط بالقوس
" (x3,y3) - نقطة البداية للرسم بالقلم"
" (x4,y4) - نقطة نهاية رسم القوس
الإعلان الخاص عن وظيفة apiPie Lib "gdi32" الاسم المستعار "Pie" _
(ByVal hDc طالما _
ByVal X1 طويل , ByVal Y1 طويل , _
ByVal X2 طويل , ByVal Y2 طويل , _
ByVal X3 طويل , ByVal Y3 طويل , _
ByVal X4 طويل، ByVal Y4 طويل) طويل

"==============================================================
" غاية
"ارسم الأشياء
"
فرعي خاص ولكنExecute_Click()
Dim hwnd As Long، hDc As Long "النافذة وسياق الرسم
خافت X1 طويل، Y1 طويل، X2 طويل، Y2 طويل
Dim xy(3) كـ POINTAPI "نقاط الرسم
في خطأ انتقل إلى 999

"مسح منطقة الرسم
أنا.تحديث
DoEvents

"البحث عن نافذة رسم. هذا الحل مقترح
"نيكولاي ماليوتين، ياكوتسك: [البريد الإلكتروني محمي]
hwnd = FindWindowEx(Me.hwnd, FindWindowEx(Me.hwnd, 0, "OFormSub" , "" ), "OFormSub" , "") )

"حدد سياق الجهاز
هدك = أبيجيتدك (هوند)

"رسم إحداثيات المنطقة
×1 = 15
ص1 = 90
×2 = 180
Y2 = 250

"رسم الكائنات
حدد حالة Me.Objects
الحالة 1: "النقطة حمراء
استدعاء apiSetPixel(hDc, X2 / 2, Y2 / 2, RGB(255, 0, 0))
الحالة الثانية: "الخط
استدعاء apiMoveTo(hDc, X1, Y1, xy(0)) "حرك المؤشر
اتصل بـ apiLineTo(hDc, X2, Y2) "ارسم خطًا
الحالة 3: "القطع الناقص"
استدعاء apiEllipse(hDc, X1, Y1, X2, Y2 / 2)
الحالة 4: "المستطيل - مظلل
استدعاء apiRectangle(hDc, X1, Y1, X2, Y2)
الحالة 5: "قوس
اتصل بـ apiArc(hDc, X1, Y1, X2, Y2, 50, 100, 150, 150)
الحالة 6، 7: "متعدد الخطوط، املأ
"جاري تحميل الإحداثيات
ص ص (0).س = X1
ص ص (0).ص = ص1
س ص(1).س = X1 + 20
ص ص (1).ص = ص2
ص ص (2).س = X2
س ص (2).ص = ص2 - 20
إذا كان Me.Objects = 6 ثم "متعدد الخطوط
استدعاء apiPolyline(hDc, xy(0), UBound(xy))
وإلا "ملء"
استدعاء apiPolygon(hDc, xy(0), UBound(xy))
إنهاء إذا
الحالة 8: "ملء دائرة على وتر حساس
استدعاء apiChord(hDc, X1, Y1, X2, Y2, 50, 100, 150, 150)
الحالة 9: "ملء الدائرة من المركز
اتصل بـ apiPie(hDc, X1, Y1, X2, Y2, 50, 100, 150, 150)
إنهاء التحديد

"حرر سياق الجهاز
استدعاء apiReleaseDC(hwnd, hDc)
الخروج من الباطن
999:
MsgBox Err.وصف "خطأ
خطأ.واضح
نهاية الفرعية

جميع أمثلة Microsoft Access

يتم تخزين محتويات قواعد البيانات (DBs) في جداول، ولكن يتم تقديم المعلومات تقليديًا للمستخدم في شكل أكثر راحة - حيث يتم إنشاء النماذج والتقارير. من أجل الوضوح، فهي تشمل صورا مختلفة: الصور الفوتوغرافية والصور والشعارات. يعد حفظ البيانات الرسومية في حقول الجداول الخاصة أكثر ملاءمة. مايكروسوفت نظم إدارة قواعد البياناتيدعم Access العديد من الخيارات لتحميل الصور في قاعدة البيانات.

سوف تحتاج

تعليمات

1. أضف حقلاً كائن أولهإلى جدول قاعدة البيانات. إنه في هذا المجال تطبيق مايكروسوفتيمكن الوصول إلى حماية الصور. افتح قاعدة البيانات المطلوبة وفي علامة التبويب "الجداول"، حدد العنصر الذي تريد وضع الصورة فيه. استدعاء المنشئ للجدول. أثناء تعديل تصميمه، قم بإضافة حقل آخر بنوع البيانات "حقل كائن OLE". أعطها اسمًا واحفظ تحولات القاعدة ("ملف" - "حفظ").

2. ضع كائن OLE في خلية الحقل التي تم إنشاؤها، أي. الصورة نفسها. للقيام بذلك، افتح الجدول في وضع العرض. سترى العمود المضاف. ضع المؤشر في الخلية المطلوبة وانقر بزر الماوس الأيمن للاتصال قائمة السياق. حدد الأمر "إضافة كائن".

3. في مربع الحوار الذي يفتح، قم بتنشيط أحد خيارات الإضافة المقترحة. يمكنك إدراج ملف رسومي موجود أو إنشائه أولاً في المحرر المناسب ثم ربطه بقاعدة البيانات الحالية. في الحالة الأولى، حدد في حقل "نوع الكائن" التطبيق الذي تريد إنشاء صورة جديدة فيه، على سبيل المثال، رسم فرشاة الرسم. انقر فوق الزر "موافق" وسيتم تشغيل برنامج المحرر مرة واحدة. سينتهي إدخال الكائن في قاعدة البيانات بعد التقاط الصورة وإغلاق التطبيق الرسومي.

4. لإدراج صورة موجودة في حقل الجدول، حدد الخيار الثاني - قم بتنشيط مفتاح "إنشاء من ملف" في مربع الحوار. انقر فوق الزر "تصفح..." وحدد المسار والاسم ملف رسوميمع الصورة. من المستحسن أن يكون لديك صورة على القرص بتنسيق .bmp أو .dib. إذا لزم الأمر، قم بتمكين مربع الاختيار "الاتصال" في النافذة - وهذا سيسمح لنظام إدارة قواعد البيانات (DBMS) بتتبع تحولات ملف الرسوم وإعادة تحميل الصورة في الجدول.

5. تأكد من تنزيل الملف بالنقر فوق "موافق"، وبعد ذلك ستحفظ قاعدة البيانات نفسها. عند فتح جدول في وضع العرض، لن يعرض حقل كائن OLE الصورة نفسها، ولكن النقش "Bitmap". سيتم تحميل الصورة الرسومية من الجدول عندما يقوم المستخدم بإنشاء النماذج والتقارير والعمل معها.

لغة HTML ليست مثالية ولها عدد من أوجه القصور الهامة. لإرفاق صورة بمكان معين في الصفحة، من الأفضل إدراجها باستخدام جدول. في هذه الحالة، سيتم اعتبار الصورة خلفية ويمكن وضع النص فوقها.

تعليمات

1. في البداية، تحتاج إلى إنشاء جدول، إذا لم يكن لديك جدول بالفعل. يتم تنفيذ هذا الإجراء في العلامة. للقيام بذلك، يتم استخدام العلامات (علامة الإغلاق ضرورية):

- طاولة؛ - خط؛
- العمود الميزات الإضافية الرئيسية: الحدود - الحدود؛ محاذاة - محاذاة أفقية؛ فالين – المحاذاة العمودية. Bordercolor - لون الحدود؛ عرض - عرض؛ الارتفاع - الارتفاع لجدول 2X2 بدون حدود ومحتوى محاذٍ إلى اليسار/اليمين:
محتويات الخلية الأولى محتويات الخلية الثانية
محتويات الخلية الثالثة محتويات الخلية الرابعة

2. يجب إضافة الصورة بعد العلامة

. إذا قمت بإدراج صورة في الخلية الأولى من الجدول الموضح أعلاه، فسوف تحصل على:
محتويات الخلية الثانية
محتويات الخلية الثالثة محتويات الخلية الرابعة
ميزات إضافية: العرض - العرض؛ ارتفاع ارتفاع؛ Alt - النص البديل، الذي سيتم عرضه للمستخدم إذا تم تعطيل وظيفة عرض الصور؛ محاذاة - محاذاة أفقية؛ فالين - المحاذاة العمودية. العنوان - تعليق على الصورة.

3. يمكنك استخدام الصورة كرابط. للقيام بذلك، فقط ضعه في العلامة المناسبة: في سياق الجدول سيبدو كما يلي:

محتويات الخلية الثانية
محتويات الخلية الثالثة محتويات الخلية الرابعة

4. احتمالات إضافية للصور. 1. تغيير الصورة إلى لون عند المرور فوقها بالماوس ثم تغيير موقع المؤشر: onMouseOver=”this.style.background='#color number”” onMouseOut=”this.style.background='#color رقم 2. تغيير الصورة إلى صورة أخرى عند المرور بالماوس: onmouseover=”this.src=’images/1.gif”” onmouseout=”this.src=’images/2.gif””3. إدراج دائرة دوارة من الصور في خلية جدول (يمكن تغيير القيم):

// 7 متغيرات للتحكم في السلوك var Car_Image_Width=100; فار Car_Image_Height=100; var Car_Border=true; // صحيح أم خطأ var Car_Border_Color=”000000″; الحدود=”0″ فار Car_Speed=5; var Car_Direction=true; // صحيح أم خطأ var Car_NoOfSides=6; // يجب أن يكون مصفوفة 4 أو 6 أو 8 أو 12/* لتحديد الصور والروابط الاختيارية. بالنسبة للعرض الدائري ذو 4 جوانب، حدد صورتين على الأقل للعرض الدائري ذو 6 جوانب، حدد 3 على الأقل للعرض الدائري ذو 8 جوانب، حدد 4 على الأقل للعرض الدائري ذو 12 جانبًا، حدد 6 على الأقل إذا لم تكن هناك حاجة إلى الارتباط، فاحتفظ به “”*/ Car_Image_Sources=new Array(“ الصور/1.gif"،"، "الصور/2.gif"،"، "الصور/3.gif"،"، "الصور/4.gif"،"، "الصور/5.gif" "،" "images/6.gif"،" // ملاحظة لا توجد فاصلة بعد السطر الأخير)؛/****************** لا تقم بالتحرير أدناه **** ********************************/ CW_I=new Array(Car_NoOfSides/2+1);C_ClcW=new Array(Car_NoOfSides/ 2)؛ C_Coef=new Array(3*Math.PI/2,0,3*Math.PI/2,11*Math.PI/6,Math.PI/6,3*Math.PI/2,7*Math.PI /4, 0, Math.PI/4,3*Math.PI/2,5*Math.PI/3,11*Math.PI/6,0,Math.PI/6,Math.PI/3); var C_CoefOf=Car_NoOfSides==4?0:Car_NoOfSides==6?2:Car_NoOfSides==8?5:9; C_Pre_Img=new Array(Car_Image_Sources.length); var C_Angle=Car_Direction?Math.PI/(Car_NoOfSides/2):0,C_CrImg=Car_NoOfSides,C_MaxW,C_TotalW, C_Stppd=false,i,C_LeftOffset,C_HalfNo=Car_NoOfSides/2; الدالة Carousel())( if(document.getElementById)( for(i=0;i