واجهة مستخدم المستند باستخدام QuantumGrid (TCXGrid) من المطور Express

StackOverflow https://stackoverflow.com/questions/1928321

  •  20-09-2019
  •  | 
  •  

سؤال

أحتاج إلى إنشاء واجهة مستخدم لإدخال مستند مبيعات (مثل الفاتورة). أحاول استخدام مكونات "Developer Express" على وجه التحديد مكون QuantumGrid (TCXGrid). لقد رأيت العروض التوضيحية لمكونات Master Detail وأبحث في مركز دعم DevexPress ، لكن لم يساعدني أي منها لأن جميع شبكتين للتعامل مع علاقة Master Detail ، وتعديل سجلات متعددة في وقت واحد.

أنا فقط بحاجة إلى تحرير سجل (مستند) في وقت واحد واستخدام زوج من كائنات مكونات DataWare (على سبيل المثال tdbedit) في الرأس وشبكة للتعامل مع التفاصيل.

شيء من هذا القبيل

alt text

أين يمكنني العثور على مثال أساسي لاستخدام هذه المكونات بهذه الطريقة؟

هل كانت مفيدة؟

المحلول

تم تصميم خصائص Master/Child في QuantumGrid بشكل أساسي لتشكيل عناصر متعددة في الشبكة. إذا قمت بإعداد العلاقة في مكونات البيانات ، فيمكنك ببساطة ربط عناصر التحكم حتى مصدر البيانات الصحيحة وسيعمل كل شيء.

لذلك إذا كان لديك اثنين من مجموعات البيانات العميل والفاتورة. فاتورة Master DataSource هي مصدر بيانات العملاء. ثم عند تحريرك ، تشير إلى بيانات بيانات العملاء وتوجه الشبكة إلى مصدر بيانات الفاتورة.

إذا كنت تفكر في علاقة Master/Detail Depanial ، فستقوم حقًا بتصفية السجلات على مجموعة بيانات التفاصيل لمطابقة السجل الحالي في مجموعة البيانات الرئيسية. ستعرض عناصر تحكم التحرير الفردية السجل "الحالي" دائمًا في مجموعة البيانات التي يتم توصيلها بها. ستعرض الشبكات جميع السجلات المرئية في مجموعة البيانات التي تتصل بها.

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

ومع ذلك ، بمجرد أن أحصل على شاشة التحرير ، أجد أنه يجعل الأمور eaiser. الآن لا داعي للقلق بشأن علاقة التفاصيل الرئيسية في المستوى الأعلى. إذا كانت الفاتورة لها علاقات ماجستير/تفصيلية داخلية ، فيمكنك التعامل معها فقط ، لكنك تعلم أن مجموعات البيانات لديها فقط بيانات هذه الفاتورة - وليس كل شيء في قاعدة البيانات.

في حالة النموذج الخاص بك إذا قمت بحد البيانات في مجموعات البيانات ، يمكنك فقط ربط كل شيء مباشرة ويجب أن تعمل كما تتوقع. سيكون لديك سجل واحد فقط في مجموعة بيانات العملاء وستكون للفاتورة فقط السجلات لهذه الفاتورة.

نصائح أخرى

أعتقد أنك ستحتاج إلى رعاية علاقات Master Detail في مكونات ClientDataSource الخاصة بك. ستتبع الشبكة هذه العلاقة.

لماذا لا تسأل هذا على support@devexpress.com؟

السبب في أن لدي اشتراك VCL ، بصرف النظر عن جودة المكونات بالطبع ، لأن لديهم موقع دعم كبير وموظفين؟

هناك تسألها مباشرة للأشخاص الذين كتبوا الأشياء ، وعلى الأرجح يسعدهم تزويدك ببرنامج عينة (على الأقل تلقيت الكثير من العينات على مر السنين).

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top