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

📄 rpt.cpp

📁 邮 电 公 司 erp源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
//---------------------------------------------------------------------------
bool TsdReport::Find(AnsiString WhereStr)
{
    AnsiString m_SqlStr;
    if(WhereStr.IsEmpty()==true)
        throw Exception("查找表达式不能为空");
    m_SqlStr="select * from sdReport 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;
    }
}
//**************************************
//     TsdRptTempleth
//**************************************
//--------------------------------------------------------------
void __fastcall TsdRptTempleth:: SetRptTemplethCode(AnsiString value)
  {
       if(value.IsEmpty())
       throw Exception("报表模板代码不能为空");
       if(value.Length()>18)
       throw Exception("报表模板代码长度不能大于18字节");
       if(value.UpperCase()!=m_RptTemplethCode.UpperCase())
       {
        m_Query->Close();
        m_Query->SQL->Clear();
        m_Query->SQL->Add("select RptTemplethCode from sdRptTempleth where RptTemplethCode='"+value+"'");
        m_Query->Open();
        if(m_Query->RecordCount>0)
        {
           m_Query->Close();
           throw Exception("该报表模板编号:'"+value+"'已经存在!");
        }
        m_Query->Close();
       }
       m_RptTemplethCode=value;
 }
void __fastcall TsdRptTempleth:: SetRptTemplethName(AnsiString value)
  {
       if(value.IsEmpty())
       throw Exception("报表模板名称不能为空");
      m_RptTemplethName=value;
 }
void __fastcall TsdRptTempleth:: SetRptTemplethDesc(AnsiString value)
  {
      m_RptTemplethDesc=value;
 }
void __fastcall TsdRptTempleth:: SetRptTemplethClassID(AnsiString value)
  {
       if(value.IsEmpty())
          throw Exception("报表模板所属模块不能为空");
       m_RptTemplethClassID=value;
 }
void __fastcall TsdRptTempleth:: SetRptTemplethView(AnsiString value)
  {
       if(value.IsEmpty())
        throw Exception("报表模板视图不能为空");
       if(value!=m_RptTemplethView)
       {
        m_Query->Close();
        m_Query->SQL->Clear();
        m_Query->SQL->Add("select ViewClassID from sdView where ViewName='"+value+"'");
        m_Query->Open();
        if(m_Query->RecordCount>0)
         {
          m_RptTemplethView=value;
          m_RptTemplethClassID=m_Query->FieldValues["ViewClassID"];
          m_Query->Close();
         }
        else
         throw Exception("该视图未注册或不存在");
       }
 }
void __fastcall TsdRptTempleth:: SetRptTemplethUser(AnsiString value)
  {
      m_RptTemplethUser=value;
 }
//---------------------------------------------------------------------------
AnsiString TsdRptTempleth::GetFieldValue(euRptTempleth sdFieldName)
{
    switch(sdFieldName)
    {
      case fiRptTemplethCode:
           return  RptTemplethCode;
      case fiRptTemplethName:
           return  RptTemplethName;
      case fiRptTemplethDesc:
           return  RptTemplethDesc;
      case fiRptTemplethClassID:
           return  RptTemplethClassID;
      case fiRptTemplethView:
           return  RptTemplethView;
      case fiRptTemplethUser:
           return  RptTemplethUser;
      case fiRptTemplethSysDate:
           return  RptTemplethSysDate;
        default:
            throw Exception("当前字段未定义可取值");  
    }
}
//---------------------------------------------------------------------------
void TsdRptTempleth::SetFieldValue(euRptTempleth sdFieldName, AnsiString value)
{
     value=Trim(value);
    switch(sdFieldName)
    {
     case fiRptTemplethCode:
             RptTemplethCode=value;
           break;
     case fiRptTemplethName:
             RptTemplethName=value;
           break;
     case fiRptTemplethDesc:
             RptTemplethDesc=value;
           break;
     case fiRptTemplethClassID:
             RptTemplethClassID=value;
           break;
     case fiRptTemplethView:
             RptTemplethView=value;
           break;
     case fiRptTemplethUser:
             RptTemplethUser=value;
           break;
      default: 
        throw Exception("当前字段未定义可赋值");  
           
    }
}
//---------------------------------------------------------------------------
TsdRptTempleth::TsdRptTempleth(TDataComm *DC)
                :TsdHead(DC)
{
    try
    {
/*        m_Query=new TQuery(Application);
        m_Query->SessionName=pSessionName;
        m_Query->DatabaseName=pDatabaseName;

        m_StoredProc=new TStoredProc(Application);
        m_StoredProc->SessionName =pSessionName;
        m_StoredProc->DatabaseName=pDatabaseName;

        m_SessionName=pSessionName;
        m_DatabaseName=pDatabaseName;*/
        QueryString="SELECT * FROM sdRptTempleth";
        FilterString="";
        OrderString="RptTemplethCode";
        EmptyValue(0);
        EmptyValue(1);

    }
    catch(Exception &e)
    {
        ShowMessage(e.Message);
    }
}
TsdRptTempleth::TsdRptTempleth()
                :TsdHead()
{
    try
    {
/*        m_Query=new TQuery(Application);
        m_Query->SessionName=pSessionName;
        m_Query->DatabaseName=pDatabaseName;

        m_StoredProc=new TStoredProc(Application);
        m_StoredProc->SessionName =pSessionName;
        m_StoredProc->DatabaseName=pDatabaseName;

        m_SessionName=pSessionName;
        m_DatabaseName=pDatabaseName;*/
        QueryString="SELECT * FROM sdRptTempleth";
        FilterString="";
        OrderString="RptTemplethCode";
        EmptyValue(0);
        EmptyValue(1);

    }
    catch(Exception &e)
    {
        ShowMessage(e.Message);
    }
}

//---------------------------------------------------------------------------
TsdRptTempleth::~TsdRptTempleth()
{
  try{
//    delete m_Query;
//    delete m_StoredProc;
    for(int i=0;i<this->Count;i++)
    {
      this->LocateByIndex(i);
      this->AssignValue();
      delete m_sdRptTempletd;
     }

  }
  catch(...)
  {
    throw Exception("析构函数出错");
  }
}
//---------------------------------------------------------------------------
void TsdRptTempleth::Update()
{
    if(CurStatus==0||CurStatus==1)
        throw Exception("当前不是编辑状态,不能进行存盘操作!");
    if(m_RptTemplethCode.IsEmpty()==true)
    throw Exception("单号不能为空!");
    if(ItemCount<=0)
        throw Exception("单没有定义明细字段");
    m_StoredProc->Close();
    switch(CurStatus)
    {
    case 2:
    case 4:
        m_StoredProc->ProcedureName="sdRptTempleth_Insert";
        m_StoredProc->Parameters->Clear();
        m_StoredProc->Parameters->CreateParameter("@RptTemplethCode",ftString,pdInputOutput,18,m_RptTemplethCode);
        m_StoredProc->Parameters->CreateParameter("@RptTemplethName",ftString,pdInput,20,m_RptTemplethName);
        m_StoredProc->Parameters->CreateParameter("@RptTemplethDesc",ftString,pdInput,40,m_RptTemplethDesc);
        m_StoredProc->Parameters->CreateParameter("@RptTemplethClassID",ftString,pdInput,18,m_RptTemplethClassID);
        m_StoredProc->Parameters->CreateParameter("@RptTemplethView",ftString,pdInput,20,m_RptTemplethView);
        m_StoredProc->Parameters->CreateParameter("@RptTemplethUser",ftString,pdInput,18,m_RptTemplethUser);
        m_StoredProc->Parameters->CreateParameter("@RptTemplethSysDate",ftString,pdOutput,30,m_RptTemplethSysDate);

        m_StoredProc->ExecProc();
        m_RptTemplethCode=m_StoredProc->Parameters->ParamValues["@RptTemplethCode"];
        m_RptTemplethSysDate=m_StoredProc->Parameters->ParamValues["@RptTemplethSysDate"];
       for(int i=0;i<ItemCount;i++)
        {
            LocateItemByIndex(i);
//            if(m_sdRptTempletd->CurStatus==2||m_sdRptTempletd->CurStatus==3)
                m_sdRptTempletd->SetFieldValue(fiRptTempletdCode,m_RptTemplethCode);
                AddToObject();
                m_sdRptTempletd->Update();
        }
      break;
    case 3:
        m_StoredProc->ProcedureName="sdRptTempleth_Update";
        m_StoredProc->Parameters->Clear();

        m_StoredProc->Parameters->CreateParameter("@W_RptTemplethCode",ftString,pdInput,18,b_RptTemplethCode);
        m_StoredProc->Parameters->CreateParameter("@RptTemplethCode",ftString,pdInput,18,m_RptTemplethCode);
        m_StoredProc->Parameters->CreateParameter("@RptTemplethName",ftString,pdInput,20,m_RptTemplethName);
        m_StoredProc->Parameters->CreateParameter("@RptTemplethDesc",ftString,pdInput,40,m_RptTemplethDesc);
        m_StoredProc->Parameters->CreateParameter("@RptTemplethClassID",ftString,pdInput,18,m_RptTemplethClassID);
        m_StoredProc->Parameters->CreateParameter("@RptTemplethView",ftString,pdInput,20,m_RptTemplethView);
        m_StoredProc->Parameters->CreateParameter("@RptTemplethUser",ftString,pdInput,18,m_RptTemplethUser);
        m_StoredProc->Parameters->CreateParameter("@RptTemplethSysDate",ftString,pdOutput,30,m_RptTemplethSysDate);

       m_StoredProc->ExecProc();
       m_RptTemplethSysDate=m_StoredProc->Parameters->ParamValues["@RptTemplethSysDate"];

      break;
    case 5:
    case 6:
        for(int i=0;i<ItemCount;i++)
          {
            LocateItemByIndex(i);
            if(m_sdRptTempletd->CurStatus==2||m_sdRptTempletd->CurStatus==3)
               m_sdRptTempletd->Update();
           }
        break;
    }
    TsdRptTempleth *p=new TsdRptTempleth();
    if(CurStatus==2)
       {
        SetActionID(1);
        p->Assign(this);
        AddRecord((void *)p,p->RptTemplethCode);
        }
    else
       {
        SetActionID(1);
        p->Assign(this);
        ChangeRecord((void *)p,p->RptTemplethCode,this->b_RptTemplethCode);
       }
}
//---------------------------------------------------------------------------
void TsdRptTempleth::Delete()
{
    if(CurStatus!=1)
        throw Exception("当前状态不能进行删除操作!");
    if(m_RptTemplethCode.IsEmpty()==true)
        throw Exception("当前没有记录可以删除!");
    m_StoredProc->Close();
    m_StoredProc->ProcedureName="sdRptTempleth_Delete";
    m_StoredProc->Parameters->Clear();
        m_StoredProc->Parameters->CreateParameter("@W_RptTemplethCode",ftString,pdInput,18,b_RptTemplethCode);
    m_StoredProc->ExecProc();
    DeleteRecord(this->b_RptTemplethCode);
}
//---------------------------------------------------------------------------
void TsdRptTempleth::AddItem()
{
    m_sdRptTempletd->AddNew();
    if(CurStatus!=2)
        SetActionID(5);
}
//---------------------------------------------------------------------------
void TsdRptTempleth::InsertItem()
{
/*  m_sdField->AddNew();
  TsdField *p=new TsdField(DataComm);
  p->Assign(m_sdField);
  if(CurStatus==2)
    m_sdField->AddRecord((void *)p,p->GetFieldValue(fiFieldName));
  else
    m_sdField->Update();
*/
}
//---------------------------------------------------------------------------
void TsdRptTempleth::EditItem()
{

    if(CurStatus==1)
       {
        m_sdRptTempletd->Edit();
        SetActionID(6);
        }
}
//---------------------------------------------------------------------------
void TsdRptTempleth::DeleteItem()
{
    if(CurStatus==2||CurStatus==5)
        m_sdRptTempletd->DeleteRecord(m_sdRptTempletd->Key);
    else
        m_sdRptTempletd->Delete();
}
//---------------------------------------------------------------------------
void TsdRptTempleth::RemoveItem()
{
    if(CurStatus==2||CurStatus==5)
        m_sdRptTempletd->RemoveRecord(m_sdRptTempletd->Index);
    else
        m_sdRptTempletd->Delete();
}
//---------------------------------------------------------------------------
void TsdRptTempleth::ClearItem()
{
    int iCount;
    if(CurStatus==2)
        m_sdRptTempletd->ClearRecord();
    else
    {
        iCount=m_sdRptTempletd->Count;
        for(int i=0;i<iCount;i++)
        {
            m_sdRptTempletd->LocateByIndex(0);
            m_sdRptTempletd->Delete();
        }
    }
}
//---------------------------------------------------------------------------
void TsdRptTempleth::CancelItem()
{
    m_sdRptTempletd->Cancel();
}
//---------------------------------------------------------------------------
void TsdRptTempleth::AddToObject()
{
    TsdRptTempletd *p=new TsdRptTempletd();
    p->Assign(m_sdRptTempletd);
    if(m_sdRptTempletd->FindKey(m_sdRptTempletd->GetOldFieldValue(fiRptTempletdField)))
        m_sdRptTempletd->ChangeRecord((void*)p,p->GetFieldValue(fiRptTempletdField),m_sdRptTempletd->GetOldFieldValue(fiRptTempletdField));
    else
        m_sdRptTempletd->AddRecord((void *)p,p->GetFieldValue(fiRptTempletdField));
}
//---------------------------------------------------------------------------
bool TsdRptTempleth::LocateItemByIndex(int Index)
{
    return m_sdRptTempletd->LocateByIndex(Index);
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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