📄 tiaoban2.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "TiaoBan2.h"
#include "DM1.h"
#include "stdio.h"
#include "SelectBC.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormTiaoBan2 *FormTiaoBan2;
TDate DateStartTb,DateEndTb;
int nPbfsTb,nBianhaoTb;
AnsiString sMingchengTb;
extern int nFlag;
extern AnsiString sBcXz;
//---------------------------------------------------------------------------
__fastcall TFormTiaoBan2::TFormTiaoBan2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFormTiaoBan2::FormShow(TObject *Sender)
{
char szTemp2[50];
AnsiString sKsrq,sJsrq,szTemp1;
LabelDayCount->Caption = IntToStr(DateEndTb - DateStartTb + 1);
sKsrq = FormatDateTime("yyyy-mm-dd",DateStartTb);
sJsrq = FormatDateTime("yyyy-mm-dd",DateEndTb);
LabelStart->Caption = sKsrq;
LabelEnd->Caption = sJsrq;
try
{
pBc->Open();
}
catch(...)
{
ShowMessage("基础班次表打开失败!");
BitBtnSave->Enabled = false;
}
szTemp1 = "select * from kq_paiban where riqi >= '" + sKsrq + "' and riqi <= '" + sJsrq + "'";
if (nPbfsTb == 1)
{
LabelPbfs->Caption = "全部";
szTemp2[0] = 0;
}
else if (nPbfsTb == 2)
{
LabelPbfs->Caption = "按部门";
LabelName->Caption = sMingchengTb;
sprintf(szTemp2," and bmbh = %d",nBianhaoTb);
}
else if (nPbfsTb == 3)
{
LabelPbfs->Caption = "按班组";
LabelName->Caption = sMingchengTb;
sprintf(szTemp2," and bzbh = %d",nBianhaoTb);
}
else if (nPbfsTb == 4)
{
LabelPbfs->Caption = "按个人";
LabelName->Caption = sMingchengTb;
sprintf(szTemp2," and ygbh = %d",nBianhaoTb);
}
strcat(szTemp2," order by bmbh,bzbh,ygbh");
pYg->Close();
pYg->SQL->Clear();
pYg->SQL->Add(szTemp1);
pYg->SQL->Add(szTemp2);
try
{
pYg->Open();
}
catch(...)
{
ShowMessage("排班表打开失败!");
BitBtnSave->Enabled = false;
return;
}
}
//---------------------------------------------------------------------------
void __fastcall TFormTiaoBan2::FormCreate(TObject *Sender)
{
pBc = GetQuery("QPbBc");
pYg = GetQuery("QPbYg");
DataSource1->DataSet = pYg;
FormSelectBC = new TFormSelectBC(this);
}
//---------------------------------------------------------------------------
void __fastcall TFormTiaoBan2::FormClose(TObject *Sender,
TCloseAction &Action)
{
pYg->Close();
pBc->Close();
delete FormSelectBC;
}
//---------------------------------------------------------------------------
void __fastcall TFormTiaoBan2::BitBtnSaveClick(TObject *Sender)
{
/*
AnsiString sMonday,sTuesday,sWednesday,sThursday,sFriday,sSaturday,sSunday,sDateTemp,sDateTemp2;
AnsiString sYgxm,sBmmc,sBzmc,sBanci;
WBC wbc,wbc1,wbc2,wbc3,wbc4,wbc5,wbc6,wbc7,*pWbc;
TDate daytemp;
int nWeek,nJiari,nYgbh,nKpbh,nBmbh,nBzbh,nRow,nTs,nYs;
TLocateOptions Opts;
Opts.Clear();
if (pYg->RecordCount < 1)
{
ShowMessage("没有人员参加排班!");
return;
}
nTs = LabelDayCount->Caption.ToInt();
nYs = LabelCount->Caption.ToInt();
pYg->First();
if (RadioButton1->Checked)
{
if (pGdb->RecNo < 1)
{
ShowMessage("预设排班不存在!");
return;
}
sMonday = pGdb->FieldByName("monday")->AsString;
sTuesday = pGdb->FieldByName("tuesday")->AsString;
sWednesday = pGdb->FieldByName("wednesday")->AsString;
sThursday = pGdb->FieldByName("thursday")->AsString;
sFriday = pGdb->FieldByName("friday")->AsString;
sSaturday = pGdb->FieldByName("saturday")->AsString;
sSunday = pGdb->FieldByName("sunday")->AsString;
CheckBanciNo(&wbc1,sMonday);
CheckBanciNo(&wbc2,sTuesday);
CheckBanciNo(&wbc3,sWednesday);
CheckBanciNo(&wbc4,sThursday);
CheckBanciNo(&wbc5,sFriday);
CheckBanciNo(&wbc6,sSaturday);
CheckBanciNo(&wbc7,sSunday);
}
else
{
for (int i = 1;i <StringGrid1->RowCount;i++)
{
if (StringGrid1->Cells[1][i] == "")
{
ShowMessage("班次不能为空!");
StringGrid1->Row = i;
return;
}
}
}
while (!(pYg->Eof))
{
nRow = 1;
nYgbh = pYg->FieldByName("holderno")->AsInteger;
sYgxm = pYg->FieldByName("holdername")->AsString;
nKpbh = pYg->FieldByName("cardno")->AsInteger;
nBmbh = pYg->FieldByName("departmentno")->AsInteger;
sBmmc = pYg->FieldByName("departmentname")->AsString;
nBzbh = pYg->FieldByName("groupno")->AsInteger;
sBzmc = pYg->FieldByName("groupname")->AsString;
daytemp = DateStartTb;
while (daytemp <= DateEndTb)
{
sDateTemp = FormatDateTime("yyyy-mm-dd",daytemp);
if (RadioButton1->Checked)
{
nWeek = DayOfWeek(daytemp);
switch (nWeek)
{
case 1 : pWbc = &wbc7; break;
case 2 : pWbc = &wbc1; break;
case 3 : pWbc = &wbc2; break;
case 4 : pWbc = &wbc3; break;
case 5 : pWbc = &wbc4; break;
case 6 : pWbc = &wbc5; break;
case 7 : pWbc = &wbc6; break;
}
}
else
{
sBanci = StringGrid1->Cells[1][nRow];
CheckBanciNo(&wbc,sBanci);
pWbc = &wbc;
}
pAdd->Append();
pAdd->FieldByName("ygbh")->Value = nYgbh;
pAdd->FieldByName("ygxm")->Value = sYgxm;
pAdd->FieldByName("kpbh")->Value = nKpbh;
pAdd->FieldByName("bmbh")->Value = nBmbh;
pAdd->FieldByName("bmmc")->Value = sBmmc;
pAdd->FieldByName("bzbh")->Value = nBzbh;
pAdd->FieldByName("bzmc")->Value = sBzmc;
pAdd->FieldByName("riqi")->Value = sDateTemp;
if (pJiari->Locate("HolidayDay", sDateTemp, Opts)) nJiari = 1;
else nJiari = 0;
pAdd->FieldByName("jiari")->Value = nJiari;
if (nJiari == 1) goto LABEL_END;
pAdd->FieldByName("banci")->Value = pWbc->bcmc;
pAdd->FieldByName("xiuxi")->Value = pWbc->xiuxi;
if (pWbc->xiuxi == 1) goto LABEL_END;
pAdd->FieldByName("sds")->Value = pWbc->sds;
sDateTemp2 = sDateTemp + " " + pWbc->sd11;
pAdd->FieldByName("sd11")->Value = sDateTemp2;
pAdd->FieldByName("sd11s")->Value = pWbc->sd11s;
pAdd->FieldByName("sd11e")->Value = pWbc->sd11e;
if (pWbc->sd12 <= pWbc->sd11)
sDateTemp2 = FormatDateTime("yyyy-mm-dd",daytemp + 1) + " " + pWbc->sd12;
else sDateTemp2 = sDateTemp + " " + pWbc->sd12;
pAdd->FieldByName("sd12")->Value = sDateTemp2;
pAdd->FieldByName("sd12s")->Value = pWbc->sd12s;
pAdd->FieldByName("sd12e")->Value = pWbc->sd12e;
if (pWbc->sds > 1)
{
sDateTemp2 = sDateTemp + " " + pWbc->sd21;
pAdd->FieldByName("sd21")->Value = sDateTemp2;
pAdd->FieldByName("sd21s")->Value = pWbc->sd21s;
pAdd->FieldByName("sd21e")->Value = pWbc->sd21e;
if (pWbc->sd22 <= pWbc->sd21)
sDateTemp2 = FormatDateTime("yyyy-mm-dd",daytemp + 1) + " " + pWbc->sd22;
else sDateTemp2 = sDateTemp + " " + pWbc->sd22;
pAdd->FieldByName("sd22")->Value = sDateTemp2;
pAdd->FieldByName("sd22s")->Value = pWbc->sd22s;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -