📄 datamodule.cpp
字号:
//---------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "DataModule.h"
//#include "MainHead.h"
//#include "MIDesigner.h"
#include "ReConnect.h"
//---------------------------------------------------------------------
#pragma resource "*.dfm"
TMastData *MastData;
//---------------------------------------------------------------------
__fastcall TMastData::TMastData(TComponent* AOwner)
: TDataModule(AOwner)
{
}
//-------------------------------------------
void TMastData::InitRD(void)
{
i=0;j=0;
for(i=0;i<30;i++)
{
for(j=0;j<30;j++)
{
TmpRouteDetail[i][j].ItemNo=0;
TmpRouteDetail[i][j].Parameter1="";
TmpRouteDetail[i][j].Parameter2="";
TmpRouteDetail[i][j].Parameter3="";
TmpRouteDetail[i][j].Parameter4="";
TmpRouteDetail[i][j].Parameter5="";
TmpRouteDetail[i][j].Parameter6="";
TmpRouteDetail[i][j].Parameter7="";
TmpRouteDetail[i][j].Parameter8="";
}
}
}
//---------------------------------------------
void TMastData::InsertRouteDetail(void)
{
MIRoute->First();
while(!MIRoute->Eof&&MIRouteRouteNo->Value<=RecordNo)
{
MIRoute->Next();
}
//MIRoute->Next();
InsertingRouteDetail=true;
for(j=RecordNo;j<30;j++)
{
if(MIRoute->Eof)
{
break;
}
for(i=0;i<30;i++)
{
if(TmpRouteDetail[j][i].ItemNo==0)
{
break;
}
RouteDetail->Append();
RouteDetail->Edit();
RouteDetailItemNo->Value=TmpRouteDetail[j][i].ItemNo;
RouteDetailName->Value=TmpRouteDetail[j][i].Parameter1;
RouteDetailParameter->Value=TmpRouteDetail[j][i].Parameter2;
RouteDetailMemo->Value=TmpRouteDetail[j][i].Parameter3;
RouteDetail->Post();
}
MIRoute->Next();
}
InsertingRouteDetail=false;
// RecordNo=0;
}
//-----------------------------------------------------
void TMastData::DeleteMIRouteDetail(void)
{
MIRoute->First();
while(!MIRoute->Eof&&MIRouteRouteNo->Value<RecordNo)
{
MIRoute->Next();
}
//MIRoute->Next();
InsertingRouteDetail=true;
for(j=RecordNo;j<30;j++)
{
if(MIRoute->Eof)
{
break;
}
for(i=0;i<30;i++)
{
if(TmpRouteDetail[j][i].ItemNo==0)
{
break;
}
RouteDetail->Append();
RouteDetail->Edit();
RouteDetailItemNo->Value=TmpRouteDetail[j][i].ItemNo;
RouteDetailName->Value=TmpRouteDetail[j][i].Parameter1;
RouteDetailParameter->Value=TmpRouteDetail[j][i].Parameter2;
RouteDetailMemo->Value=TmpRouteDetail[j][i].Parameter3;
RouteDetail->Post();
}
MIRoute->Next();
}
InsertingRouteDetail=false;
// RecordNo=0;
}
//-----------------------------------------------------
void TMastData::DeleteItems(TDataSet *DataSet)
{
DeletingItems=true; // Suppress recalc of totals during delete
// DataSet->DisableControls(); // for faster table traversal.
try
{
DataSet->First();
while(!DataSet->Eof)
{
DataSet->Delete();
// DataSet->Next();
}
}
catch(...)
{
DeletingItems = false;
//DataSet->EnableControls(); //always re-enable controls after disabling
return;
}
DeletingItems =false;
//DataSet->EnableControls(); //always re-enable controls after disabling
}
//--------------------------------------------------
void TMastData::DeleteRouteDetail(TDataSet *DataSet)
{
DeletingRouteDetail=true; // Suppress recalc of totals during delete
// DataSet->DisableControls(); // for faster table traversal.
try
{
DataSet->First();
while(!DataSet->Eof)
{
DataSet->Delete();
// DataSet->Next();
}
}
catch(...)
{
DeletingRouteDetail = false;
// DataSet->EnableControls(); //always re-enable controls after disabling
return;
}
DeletingRouteDetail =false;
// DataSet->EnableControls(); //always re-enable controls after disabling
}
//--------------------------------------------------
void __fastcall TMastData::MIRouteBeforeDelete(TDataSet *DataSet)
{
MIBase->Edit();
if(!DeletingItems)
{
RecordNo=MIRouteRouteNo->Value;
}
if(!(MastData->MIRouteRouteCode->Value=="FDRL"||MastData->MIRouteRouteCode->Value=="SDRL"))
{
DeleteRouteDetail(RouteDetail);
RouteDetail->ApplyUpdates();
Database->Commit();
Database->StartTransaction();
RouteDetail->CommitUpdates();
}
else
{
if(MastData->MIRouteRouteCode->Value=="FDRL")
{
MastData->MIDrill->Filtered=false;
MastData->MIDrill->Filtered=true;
MastData->MIDrill->Filter="DrillType='FDRL'";
MastData->MIDrill->First();
while(!MastData->MIDrill->Eof)
{
MastData->MIDrill->Delete();
}
}
if(MastData->MIRouteRouteCode->Value=="SDRL")
{
MastData->MIDrill->Filtered=false;
MastData->MIDrill->Filtered=true;
MastData->MIDrill->Filter="DrillType='SDRL'";
MastData->MIDrill->First();
while(!MastData->MIDrill->Eof)
{
MastData->MIDrill->Delete();
}
}
MIDrill->ApplyUpdates();
Database->Commit();
Database->StartTransaction();
MIDrill->CommitUpdates();
}
}
//---------------------------------------------------------------------------
void __fastcall TMastData::MIRouteBeforeInsert(TDataSet *DataSet)
{
MIBase->Edit();
if(!DeletingItems)
{
RecordNo=MIRouteRouteNo->Value;
}
if(!InsertingMIRoute)
{
InitRD();
InsertRoute=true;
//HaveInsertRoute=true;
if(!MIRoute->Eof&&!DeletingItems)
{
//MIRoute->DisableControls();
MIRoute->Last();
while(MIRouteRouteNo->Value>=RecordNo)
{
j=MIRouteRouteNo->Value;
i=0;
RouteDetail->First();
while(!RouteDetail->Eof)
{
TmpRouteDetail[j][i].ItemNo=RouteDetailItemNo->Value;
TmpRouteDetail[j][i].Parameter1=RouteDetailName->Value;
TmpRouteDetail[j][i].Parameter2=RouteDetailParameter->Value;
TmpRouteDetail[j][i].Parameter3=RouteDetailMemo->Value;
RouteDetail->Next();
i++;
}
DeleteRouteDetail(RouteDetail);
RouteDetail->ApplyUpdates();
Database->Commit();
Database->StartTransaction();
RouteDetail->CommitUpdates();
MIRoute->Edit();
MIRouteRouteNo->Value=MIRouteRouteNo->Value+1;
MIRoute->Post();
if(MIRouteRouteNo->Value>2&&MIRouteRouteNo->Value>RecordNo+1) //MIRouteRouteNo->Value>RecordNo+1)
{
MIRoute->Prior();
}
else
{ break; }
}
//MIRoute->EnableControls();
}
}
}
//---------------------------------------------------------------------------
void __fastcall TMastData::RouteDetailAfterDelete(TDataSet *DataSet)
{
if(!DeletingRouteDetail)
{
//RouteDetail->DisableControls();
RouteDetail->First();
while(!RouteDetail->Eof)
{
if(RouteDetailItemNo->Value>RecordNo)
{
RouteDetail->Edit();
RouteDetailItemNo->Value=RouteDetailItemNo->Value-1;
}
RouteDetail->Next();
}
//RouteDetail->EnableControls();
}
}
//---------------------------------------------------------------------------
void __fastcall TMastData::RouteDetailBeforeDelete(TDataSet *DataSet)
{
if(!DeletingRouteDetail)
{
RecordNo=RouteDetailItemNo->Value;
}
MIBase->Edit();
}
//---------------------------------------------------------------------------
void __fastcall TMastData::RouteDetailBeforeInsert(TDataSet *DataSet)
{
MIBase->Edit();
if(!InsertingRouteDetail)
{
if(!RouteDetail->Eof) //if(!DeletingItems&&!RouteDetail->Eof)
{
RouteDetail->DisableControls();
RecordNo=RouteDetailItemNo->Value;
RouteDetail->Last();
while(RouteDetailItemNo->Value>=RecordNo)
{
RouteDetail->Edit();
RouteDetailItemNo->Value=RouteDetailItemNo->Value+1;
RouteDetail->Post();
if(RouteDetailItemNo->Value>2&&RouteDetailItemNo->Value>RecordNo+1)
{ RouteDetail->Prior();}
else
break;
}
RouteDetail->EnableControls();
}
RouteDetail->ApplyUpdates();
Database->Commit();
Database->StartTransaction();
RouteDetail->CommitUpdates();
}
}
//---------------------------------------------------------------------------
void __fastcall TMastData::MIBaseAfterPost(TDataSet *DataSet)
{
try
{
MIBase->ApplyUpdates();
MIRoute->ApplyUpdates();
MIDrill->ApplyUpdates();
RouteDetail->ApplyUpdates();
Database->Commit();
Database->StartTransaction();
MIBase->CommitUpdates();
MIRoute->CommitUpdates();
MIDrill->CommitUpdates();
RouteDetail->CommitUpdates();
}
catch(...)
{
MessageBox(NULL,"您没有增加修改或删除记录的权限..","提示",MB_OK);
Database->Rollback();
Database->StartTransaction();
RouteDetail->CancelUpdates();
MIRoute->CancelUpdates();
MIDrill->CancelUpdates();
MIBase->CancelUpdates();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -