⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 productresultlist.h

📁 这是一个工厂的生产线的仓库管理.有计划,实绩,库存等
💻 H
📖 第 1 页 / 共 5 页
字号:
#pragma once

#include "DBBase.h"
#include "infClass.h"

using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;


namespace FAP
{
	
	public __gc class DataGridTextColumnInherit : public DataGridTextBoxColumn {
    private:
        SolidBrush*  trueBrush;
        SolidBrush*  falseBrush;
        DataColumn* expressionColumn;
        static int  count = 0;

    public:
        DataGridTextColumnInherit() : DataGridTextBoxColumn() {
            trueBrush = dynamic_cast<SolidBrush*>(Brushes::Yellow);
			falseBrush = dynamic_cast<SolidBrush*>(Brushes::LightSlateGray);
            expressionColumn = 0;
            count ++;
        }
        __property Color get_FalseColor() {
                return falseBrush->Color;
            }

        __property void set_FalseColor(Color value) {
            falseBrush = new System::Drawing::SolidBrush(value);
                Invalidate();
            }

        __property Color get_TrueColor() {
                return trueBrush->Color;
            }

        __property void set_TrueColor(Color value) {
                trueBrush = new System::Drawing::SolidBrush(value);
                Invalidate();
            }

        // This will work only with a DataSet or DataTable.
        // The code is not compatible with IBindingList* implementations.
        __property String* get_Expression() {
                return this->expressionColumn == 0 ? String::Empty : 
                this->expressionColumn->Expression;
            }

        __property void set_Expression(String* value) {
                if (expressionColumn == 0)
                    AddExpressionColumn(value);
                else 
                    expressionColumn->Expression = value;
                if (expressionColumn != 0 && 
                    expressionColumn->Expression->Equals(value))
                    return;
                Invalidate();
            }

    private:
        void AddExpressionColumn(String* value) {
            // Get the grid's data source. First check for a 0 
            // table or data grid.
            if (this->DataGridTableStyle == 0 || 
                this->DataGridTableStyle->DataGrid == 0)
                return;

            DataGrid* myGrid = this->DataGridTableStyle->DataGrid;
            DataView* myDataView = dynamic_cast<DataView*>(
                (dynamic_cast<CurrencyManager*>(
                myGrid->BindingContext->Item[myGrid->DataSource, 
                myGrid->DataMember]))->List);

            // This works only with System::Data::DataTable.
            if (myDataView == 0)
                return;

            // If the user already added a column with the name 
            // then exit. Otherwise, add the column and set the 
            // expression to the value passed to this function.
            DataColumn* col = 
                myDataView->Table->Columns->Item[S"__Computed__Column__"];
            if (col != 0)
                return;
            col = new DataColumn(String::Concat(
                S"__Computed__Column__", __box(count)));

            myDataView->Table->Columns->Add(col);
            col->Expression = value;
            expressionColumn = col;
        }

        //  the OnPaint method to paint the cell based on the expression.
    protected:
        void Paint(Graphics* g, Rectangle bounds,
            CurrencyManager* source, int rowNum,
            Brush* backBrush, Brush* foreBrush,
            bool alignToRight) {
                bool trueExpression = false;
                bool hasExpression = false;
                DataRowView* drv = dynamic_cast<DataRowView*>(source->List->Item[rowNum]);

                hasExpression = this->expressionColumn != 0 && 
                    this->expressionColumn->Expression != 0 && 
                    !this->expressionColumn->Expression->Equals(String::Empty);

                Console::WriteLine(String::Format(S"hasExpressionValue {0}", __box(hasExpression)));
                // Get the value from the expression column.
                // For simplicity, we assume a True/False value for the 
                // expression column.
                if (hasExpression) {
                    Object* expr = drv->Row->Item[expressionColumn->ColumnName];
                    trueExpression = expr->Equals(S"True");
                }

                // Let the DataGridBoolColumn do the painting.
                if (!hasExpression)
                    DataGridTextBoxColumn::Paint(g, bounds, source, rowNum, 
                    backBrush, foreBrush, alignToRight);

                // Paint using the expression color for true or false, as calculated.
                if (trueExpression)
                    DataGridTextBoxColumn::Paint(g, bounds, source, rowNum, 
                    trueBrush, foreBrush, alignToRight);
                else
                    DataGridTextBoxColumn::Paint(g, bounds, source, rowNum, 
                    falseBrush, foreBrush, alignToRight);
            }
    };


	public __gc class DataGridBoolColumnInherit : public DataGridTextBoxColumn {
    private:
        SolidBrush*  trueBrush;
        SolidBrush*  falseBrush;
        DataColumn* expressionColumn;
        static int  count = 0;

    public:
        DataGridBoolColumnInherit() : DataGridTextBoxColumn() {
            trueBrush = dynamic_cast<SolidBrush*>(Brushes::Yellow);
			falseBrush = dynamic_cast<SolidBrush*>(Brushes::CadetBlue);
            expressionColumn = 0;
            count ++;
        }
        __property Color get_FalseColor() {
                return falseBrush->Color;
            }

        __property void set_FalseColor(Color value) {
            falseBrush = new System::Drawing::SolidBrush(value);
                Invalidate();
            }

        __property Color get_TrueColor() {
                return trueBrush->Color;
            }

        __property void set_TrueColor(Color value) {
                trueBrush = new System::Drawing::SolidBrush(value);
                Invalidate();
            }

        // This will work only with a DataSet or DataTable.
        // The code is not compatible with IBindingList* implementations.
        __property String* get_Expression() {
                return this->expressionColumn == 0 ? String::Empty : 
                this->expressionColumn->Expression;
            }

        __property void set_Expression(String* value) {
                if (expressionColumn == 0)
                    AddExpressionColumn(value);
                else 
                    expressionColumn->Expression = value;
                if (expressionColumn != 0 && 
                    expressionColumn->Expression->Equals(value))
                    return;
                Invalidate();
            }

    private:
        void AddExpressionColumn(String* value) {
            // Get the grid's data source. First check for a 0 
            // table or data grid.
            if (this->DataGridTableStyle == 0 || 
                this->DataGridTableStyle->DataGrid == 0)
                return;

            DataGrid* myGrid = this->DataGridTableStyle->DataGrid;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -