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

📄 system.cpp

📁 邮 电 公 司 erp源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:

void TsdField::RestoreValue()
{
    m_FieldName=b_FieldName;
    m_FieldTableName=b_FieldTableName;
    m_FieldNo=b_FieldNo;
    m_FieldDesc=b_FieldDesc;
    m_FieldMemo=b_FieldMemo;
    m_FieldType=b_FieldType;
    m_FieldWidth=b_FieldWidth;
    m_FieldDecimal=b_FieldDecimal;
    m_FieldPrimaryKey=b_FieldPrimaryKey;
    m_FieldForeignKey=b_FieldForeignKey;;
    m_FieldReferTableName=b_FieldReferTableName;
    m_FieldReferFieldName=b_FieldReferFieldName;
    m_FieldIdentity=b_FieldIdentity;
    m_FieldNull=b_FieldNull;
    m_FieldDefault=b_FieldDefault;
    m_FieldHandWriting=b_FieldHandWriting;
    m_FieldStyle=b_FieldStyle;
    m_FieldAutoNo=b_FieldAutoNo;
    m_FieldNumbering=b_FieldNumbering;
}

void TsdField::EmptyValue(int Index)
{
  switch(Index)
  {
    case 0:
      m_FieldName="";
      m_FieldTableName="";
      m_FieldNo=0;
      m_FieldDesc="";
      m_FieldMemo="";
      m_FieldType="";
      m_FieldWidth=0;
      m_FieldDecimal=0;
      m_FieldPrimaryKey=0;
      m_FieldForeignKey=0;
      m_FieldReferTableName="";
      m_FieldReferFieldName="";
      m_FieldIdentity=0;
      m_FieldNull=0;
      m_FieldDefault="";
      m_FieldHandWriting=0;
      m_FieldStyle=0;
      m_FieldAutoNo=0;
      m_FieldNumbering=0;
      break;
    case 1:
      b_FieldName="";
      b_FieldTableName="";
      b_FieldNo=0;
      b_FieldDesc="";
      b_FieldMemo="";
      b_FieldType="";
      b_FieldWidth=0;
      b_FieldDecimal=0;
      b_FieldPrimaryKey=0;
      b_FieldForeignKey=0;
      b_FieldReferTableName="";
      b_FieldReferFieldName="";
      b_FieldIdentity=0;
      b_FieldNull=0;
      b_FieldDefault="";
      b_FieldHandWriting=0;
      b_FieldStyle=0;
      b_FieldAutoNo=0;
      b_FieldNumbering=0;
      break;
  }
}


void TsdField::BatchLetValue()
{
      m_FieldName=m_Query->FieldValues["FieldName"];
      m_FieldTableName=m_Query->FieldValues["FieldTableName"];
      m_FieldNo=m_Query->FieldValues["FieldNo"];
      m_FieldDesc=m_Query->FieldValues["FieldDesc"];
      m_FieldMemo=m_Query->FieldValues["FieldMemo"];
      m_FieldType=m_Query->FieldValues["FieldType"];
      m_FieldWidth=m_Query->FieldValues["FieldWidth"];
      m_FieldDecimal=m_Query->FieldValues["FieldDecimal"];
      m_FieldPrimaryKey=m_Query->FieldValues["FieldPrimaryKey"];
      m_FieldForeignKey=m_Query->FieldValues["FieldForeignKey"];
      m_FieldReferTableName=m_Query->FieldValues["FieldReferTableName"];
      m_FieldReferFieldName=m_Query->FieldValues["FieldReferFieldName"];
      m_FieldIdentity=m_Query->FieldValues["FieldIdentity"];
      m_FieldNull=m_Query->FieldValues["FieldNull"];
      m_FieldDefault=m_Query->FieldValues["FieldDefault"];
      m_FieldHandWriting=m_Query->FieldValues["FieldHandWriting"];
      m_FieldStyle=m_Query->FieldValues["FieldStyle"];
      m_FieldAutoNo=m_Query->FieldValues["FieldAutoNo"];
      m_FieldNumbering=m_Query->FieldValues["FieldNumbering"];
      BackupValue();
}


void TsdField::AssignValue()
{
    TsdField *p=(TsdField *)Records(CurRecNo);
    Assign(p);
}

void TsdField::Update()
{
  if(CurStatus==0||CurStatus==1)
    throw Exception("当前不是编辑状态,不能进行存盘操作!");
  if(m_FieldName.IsEmpty()==true)
    throw Exception("字段名不能为空!");
  if(m_FieldTableName.IsEmpty()==true)
    throw Exception("表名称不能为空!");
  m_StoredProc->Close();
  if(CurStatus==2||CurStatus==4)
  {
    m_StoredProc->ProcedureName="sdField_Insert";
    m_StoredProc->Parameters->Clear();
    m_StoredProc->Parameters->CreateParameter("@FieldName",ftString,pdInput,30,m_FieldName);
    m_StoredProc->Parameters->CreateParameter("@FieldTableName",ftString,pdInput,30,m_FieldTableName);
    m_StoredProc->Parameters->CreateParameter("@FieldNo",ftInteger,pdInput,10,m_FieldNo);
    m_StoredProc->Parameters->CreateParameter("@FieldDesc",ftString,pdInput,40,m_FieldDesc);
    m_StoredProc->Parameters->CreateParameter("@FieldMemo",ftString,pdInput,255,m_FieldMemo);
    m_StoredProc->Parameters->CreateParameter("@FieldType",ftString,pdInput,10,m_FieldType);
    m_StoredProc->Parameters->CreateParameter("@FieldWidth",ftInteger,pdInput,20,m_FieldWidth);
    m_StoredProc->Parameters->CreateParameter("@FieldDecimal",ftInteger,pdInput,20,m_FieldDecimal);
    m_StoredProc->Parameters->CreateParameter("@FieldPrimaryKey",ftSmallint,pdInput,10,m_FieldPrimaryKey);
    m_StoredProc->Parameters->CreateParameter("@FieldForeignKey",ftSmallint,pdInput,10,m_FieldForeignKey);
    m_StoredProc->Parameters->CreateParameter("@FieldReferTableName",ftString,pdInput,30,m_FieldReferTableName);
    m_StoredProc->Parameters->CreateParameter("@FieldReferFieldName",ftString,pdInput,30,m_FieldReferFieldName);
    m_StoredProc->Parameters->CreateParameter("@FieldIdentity",ftSmallint,pdInput,10,m_FieldIdentity);
    m_StoredProc->Parameters->CreateParameter("@FieldNull",ftSmallint,pdInput,10,m_FieldNull);
    m_StoredProc->Parameters->CreateParameter("@FieldDefault",ftString,pdInput,255,m_FieldDefault);
    m_StoredProc->Parameters->CreateParameter("@FieldHandWriting",ftSmallint,pdInput,10,m_FieldHandWriting);
    m_StoredProc->Parameters->CreateParameter("@FieldStyle",ftSmallint,pdInput,10,m_FieldStyle);
    m_StoredProc->Parameters->CreateParameter("@FieldAutoNo",ftSmallint,pdInput,10,m_FieldAutoNo);
    m_StoredProc->Parameters->CreateParameter("@FieldNumbering",ftSmallint,pdInput,10,m_FieldNumbering);
    m_StoredProc->ExecProc();

  }
  else
  {
    m_StoredProc->ProcedureName="sdField_Update";
    m_StoredProc->Parameters->Clear();
    m_StoredProc->Parameters->CreateParameter("@W_FieldName",ftString,pdInput,30,b_FieldName);
    m_StoredProc->Parameters->CreateParameter("@FieldName",ftString,pdInput,30,m_FieldName);
    m_StoredProc->Parameters->CreateParameter("@FieldTableName",ftString,pdInput,30,m_FieldTableName);
    m_StoredProc->Parameters->CreateParameter("@FieldNo",ftInteger,pdInput,10,m_FieldNo);
    m_StoredProc->Parameters->CreateParameter("@FieldDesc",ftString,pdInput,40,m_FieldDesc);
    m_StoredProc->Parameters->CreateParameter("@FieldMemo",ftString,pdInput,255,m_FieldMemo);
    m_StoredProc->Parameters->CreateParameter("@FieldType",ftString,pdInput,10,m_FieldType);
    m_StoredProc->Parameters->CreateParameter("@FieldWidth",ftInteger,pdInput,20,m_FieldWidth);
    m_StoredProc->Parameters->CreateParameter("@FieldDecimal",ftInteger,pdInput,20,m_FieldDecimal);
    m_StoredProc->Parameters->CreateParameter("@FieldPrimaryKey",ftSmallint,pdInput,10,m_FieldPrimaryKey);
    m_StoredProc->Parameters->CreateParameter("@FieldForeignKey",ftSmallint,pdInput,10,m_FieldForeignKey);
    m_StoredProc->Parameters->CreateParameter("@FieldReferTableName",ftString,pdInput,30,m_FieldReferTableName);
    m_StoredProc->Parameters->CreateParameter("@FieldReferFieldName",ftString,pdInput,30,m_FieldReferFieldName);
    m_StoredProc->Parameters->CreateParameter("@FieldIdentity",ftSmallint,pdInput,10,m_FieldIdentity);
    m_StoredProc->Parameters->CreateParameter("@FieldNull",ftSmallint,pdInput,10,m_FieldNull);
    m_StoredProc->Parameters->CreateParameter("@FieldDefault",ftString,pdInput,255,m_FieldDefault);
    m_StoredProc->Parameters->CreateParameter("@FieldHandWriting",ftSmallint,pdInput,10,m_FieldHandWriting);
    m_StoredProc->Parameters->CreateParameter("@FieldStyle",ftSmallint,pdInput,10,m_FieldStyle);
    m_StoredProc->Parameters->CreateParameter("@FieldAutoNo",ftSmallint,pdInput,10,m_FieldAutoNo);
    m_StoredProc->Parameters->CreateParameter("@FieldNumbering",ftSmallint,pdInput,10,m_FieldNumbering);

    m_StoredProc->ExecProc();

  }
  TsdField *p=new TsdField();
  SetActionID(1);
  p->Assign(this);
  ChangeRecord((void *)p,p->FieldName,this->FieldName);
}

void TsdField::Delete()
{
    if(CurStatus!=1)
      throw Exception("当前状态不能进行删除操作!");
    if(m_FieldName.IsEmpty()==true)
      throw Exception("当前没有记录可以删除!");
    m_StoredProc->ProcedureName="sdField_Delete";
    m_StoredProc->Parameters->Clear();
    m_StoredProc->Parameters->CreateParameter("@W_FieldName",ftString,pdInput,30,b_FieldName);

    m_StoredProc->ExecProc();
    DeleteRecord(this->b_FieldName);
}

void TsdField::Assign(TsdField *p)
{
    this->SetActionID(p->CurStatus);
    this->m_FieldName=p->m_FieldName;
    this->m_FieldTableName=p->m_FieldTableName;
    this->m_FieldNo=p->m_FieldNo;
    this->m_FieldDesc=p->m_FieldDesc;
    this->m_FieldMemo=p->m_FieldMemo;
    this->m_FieldType=p->m_FieldType;
    this->m_FieldWidth=p->m_FieldWidth;
    this->m_FieldDecimal=p->m_FieldDecimal;
    this->m_FieldPrimaryKey=p->m_FieldPrimaryKey;
    this->m_FieldForeignKey=p->m_FieldForeignKey;
    this->m_FieldReferTableName=p->m_FieldReferTableName;
    this->m_FieldReferFieldName=p->m_FieldReferFieldName;
    this->m_FieldIdentity=p->m_FieldIdentity;
    this->m_FieldNull=p->m_FieldNull;
    this->m_FieldDefault=p->m_FieldDefault;
    this->m_FieldHandWriting=p->m_FieldHandWriting;
    this->m_FieldStyle=p->m_FieldStyle;
    this->m_FieldAutoNo=p->m_FieldAutoNo;
    this->m_FieldNumbering=p->m_FieldNumbering;

    if(this->CurStatus==3)
    {
        this->b_FieldName=p->b_FieldName;
        this->b_FieldTableName=p->b_FieldTableName;
        this->b_FieldNo=p->b_FieldNo;
        this->b_FieldDesc=p->b_FieldDesc;
        this->b_FieldMemo=p->b_FieldMemo;
        this->b_FieldType=p->b_FieldType;
        this->b_FieldWidth=p->b_FieldWidth;
        this->b_FieldDecimal=p->b_FieldDecimal;
        this->b_FieldPrimaryKey=p->b_FieldPrimaryKey;
        this->b_FieldForeignKey=p->b_FieldForeignKey;
        this->b_FieldReferTableName=p->b_FieldReferTableName;
        this->b_FieldReferFieldName=p->b_FieldReferFieldName;
        this->b_FieldIdentity=p->b_FieldIdentity;
        this->b_FieldNull=p->b_FieldNull;
        this->b_FieldDefault=p->b_FieldDefault;
        this->b_FieldHandWriting=p->b_FieldHandWriting;
        this->b_FieldStyle=p->b_FieldStyle;
        this->b_FieldAutoNo=p->b_FieldAutoNo;
        this->b_FieldNumbering=p->b_FieldNumbering;
    }
    else
      this->BackupValue();
}



int TsdField::Query()
{
  AnsiString m_SqlStr;
  m_SqlStr=QueryString;
  if(FilterString.IsEmpty()==false)
    m_SqlStr=m_SqlStr+" where "+FilterString;
  if(OrderString.IsEmpty()==false)
    m_SqlStr=m_SqlStr+" Order by "+OrderString;
  m_Query->Close();
  m_Query->SQL->Clear();
  m_Query->SQL->Add(m_SqlStr);
  m_Query->Open();
  ClearRecord();
  if(m_Query->RecordCount>0)
  {
    m_Query->First();
    while(!m_Query->Eof)
    {
      BatchLetValue();
      TsdField *p=new TsdField();
      SetActionID(1);
      p->Assign(this);
      AddRecord((void *)p,p->FieldName);
      m_Query->Next();
    }
    MoveFirst();
  }
  m_Query->Close();
  return Count;
}

bool TsdField::Find(AnsiString WhereStr)
{
  AnsiString m_SqlStr;
  if(WhereStr.IsEmpty()==true)
    throw Exception("查找表达式不能为空");
  m_SqlStr="select * from sdField where "+WhereStr;
  m_Query->Close();
  m_Query->SQL->Clear();
  m_Query->SQL->Add(m_SqlStr);
  m_Query->Open();
  if(m_Query->RecordCount!=1)
  {
    m_Query->Close();
    return false;
  }
  else
  {
    BatchLetValue();
    m_Query->Close();
    return true;
  }
}

AnsiString TsdField::GetFieldValue(euField sdFieldName)
{
    switch(sdFieldName)
    {
      case fiFieldName:
        return FieldName;
      case fiFieldTableName:
        return FieldTableName;
      case fiFieldNo:
        return FieldNo;
      case fiFieldDesc:
        return FieldDesc;
      case fiFieldMemo:
        return FieldMemo;
      case fiFieldType:
        return FieldType;
      case fiFieldWidth:
        return AnsiString(FieldWidth);
      case fiFieldDecimal:
        return AnsiString(FieldDecimal);
      case fiFieldPrimaryKey:
        return AnsiString(FieldPrimaryKey);
      case fiFieldForeignKey:
        return AnsiString(FieldForeignKey);
      case fiFieldReferTableName:
        return FieldReferTableName;
      case fiFieldReferFieldName:
        return FieldReferFieldName;
      case fiFieldIdentity:
        return AnsiString(FieldIdentity);
      case fiFieldNull:
        return AnsiString(FieldNull);
      case fiFieldDefault:
        return FieldDefault;
      case fiFieldHandWriting:
        return AnsiString(FieldHandWriting);
      case fiFieldStyle:
        return AnsiString(FieldStyle);
      case fiFieldAutoNo:
        return AnsiString(FieldAutoNo);
      case fiFieldNumbering:
        return AnsiString(FieldNumbering);
      default:
        throw Exception("当前字段未定义成可取值");
    }
}


AnsiString TsdField::GetOldFieldValue(euField sdFieldName)
{
    switch(sdFieldName)
    {
      case fiFieldName:
        return b_FieldName;
      case fiFieldTableName:
        return b_FieldTableName;
      case fiFieldNo:
        return b_FieldNo;
      case fiFieldDesc:
        return b_FieldDesc;
      case fiFieldMemo:
        return b_FieldMemo;
      case fiFieldType:
        return b_FieldType;
      case fiFieldWidth:
        return AnsiString(b_FieldWidth);
      case fiFieldDecimal:
        return AnsiString(b_FieldDecimal);
      case fiFieldPrimaryKey:
        return AnsiString(b_FieldPrimaryKey);
      case fiFieldForeignKey:
        return AnsiString(b_FieldForeignKey);
      case fiFieldReferTableName:
        return b_FieldReferTableName;
      case fiFieldReferFieldName:
        return b_FieldReferFieldName;
      case fiFieldIdentity:
        return AnsiString(b_FieldIdentity);
      case fiFieldNull:
        return AnsiString(b_FieldNull);
      case fiFieldDefault:
        return FieldDefault;
      case fiFieldHandWriting:
        return AnsiString(b_FieldHandWriting);
      case fiFieldStyle:
        return AnsiString(b_FieldStyle);
      case fiFieldAutoNo:
        return AnsiString(b_FieldAutoNo);
      case fiFieldNumbering:
        return AnsiString(b_FieldNumbering);
      default:
        throw Exception("当前字段未定义成可取值");
    }
}

void TsdField::SetFieldValue(euField sdFieldName, AnsiString Value)
{
    switch(sdFieldName)
    {
      case fiFieldName:
        FieldName=Value;
        break;
      case fiFieldTableName:
        FieldTableName=Value;
        break;
      case fiFieldNo:
        FieldNo=Value.ToInt();
        break;
      case fiFieldDesc:
        FieldDesc=Value;
        break;
      case fiFieldMemo:
        FieldMemo=Value;
        break;
      case fiFieldType:
        FieldType=Value;
        break;
      case fiFieldWidth:
        FieldWidth=Value.ToInt();
        break;
      case fiFieldDecimal:
        FieldDecimal=Value.ToInt();
        break;
      case fiFieldPrimaryKey:
        FieldPrimaryKey=Value.ToInt();
        break;
      case fiFieldForeignKey:
        FieldForeignKey=Value.ToInt();
        break;
      case fiFieldReferTableName:
        FieldReferTableName=Value;
        break;
      case fiFieldReferFieldName:
        FieldReferFieldName=Value;
        break;
      case fiFieldIdentity:
        FieldIdentity=Value.ToInt();
        break;
      case fiFieldNull:
        FieldNull=Value.ToInt();
        break;
      case fiFieldDefault:
        FieldDefault=Value;
        break;
      case fiFieldHandWriting:
        FieldHandWriting=Value.ToInt();
        break;
      case fiFieldStyle:
        FieldStyle=Value.ToInt();
        break;
      case fiFieldAutoNo:
        FieldAutoNo=Value.ToInt();
        break;
      case fiFieldNumbering:
        FieldNumbering=Value.ToInt();
        break;
      default:
        throw Exception("当前字段未定义成可赋值");        
    }
}

⌨️ 快捷键说明

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