Beispiel #1
0
int main(void)
{
    LONG result = RETURN_OK;

    do
    {
        dt.dat_Stamp.ds_Days = days;
        dt.dat_Format = FORMAT_DOS;
        dt.dat_StrDate = s;

        DateToStr(&dt);

        dt.dat_Stamp.ds_Days = -1;
        StrToDate(&dt);

        //printf("date \"%s\" day = %ld\n", s, days);

        if (dt.dat_Stamp.ds_Days != days)
        {
            printf("Bad results for date \"%s\" (day #%ld). "
                "StrToDate thought it was day #%ld\n", s, (long)days,
                (long)dt.dat_Stamp.ds_Days);
            result = RETURN_ERROR;
        }

        days++;

    }
    while (!CheckSignal(SIGBREAKF_CTRL_C) && (days < 36525));
        /* 2078-01-01: same as 1978 in FORMAT_DOS */

    return result;
}
void __fastcall TMainFrm::RetrievePOPHeaders(int inMsgCount )
{
  AnsiString  stTemp;
  AnsiString stformat;
  int intIndex;
  TListItem *itm;

   stTemp = StatusBar1->Panels->Items[1]->Text;
   lvHeaders->Items->Clear();

   for (intIndex = 1;intIndex<= inMsgCount ;intIndex++)
   {

         // Clear the message properties
         ShowStatus(stformat.sprintf("Messsage %d of %d", intIndex, inMsgCount));
         Application->ProcessMessages();
         Msg->Clear();
         POP->RetrieveHeader(intIndex, Msg);
         // Add info to ListView
         itm = lvHeaders->Items->Add();
         itm->ImageIndex = 5;
         itm->Caption = Msg->Subject;
         itm->SubItems->Add(Msg->From->Text);
         itm->SubItems->Add(DateToStr(Msg->Date));
         itm->SubItems->Add(IntToStr(POP->RetrieveMsgSize(intIndex)));
         itm->SubItems->Add("n/a");
//         itm.SubItems.Add(POP.RetrieveUIDL(intIndex));
   }
   ShowStatus(stTemp);
}
void TJvNTEventLogMainForm::ReadEvents(void)
{
  TListItem *pItem;

  ListView1->Items->BeginUpdate();
  Screen->Cursor = crHourGlass;
  __try
  {
    ListView1->Items->Clear();

    JvNTEventLog1->First();
    while( !JvNTEventLog1->Eof() )
    {
      pItem = ListView1->Items->Add();
      pItem->Caption = JvNTEventLog1->EventRecord->EventType;
      pItem->SubItems->Add(DateToStr(JvNTEventLog1->EventRecord->DateTime));
      pItem->SubItems->Add(TimeToStr(JvNTEventLog1->EventRecord->DateTime));
      pItem->SubItems->Add(JvNTEventLog1->EventRecord->Source);
      pItem->SubItems->Add(IntToStr(JvNTEventLog1->EventRecord->Category));
      pItem->SubItems->Add(IntToStr(JvNTEventLog1->EventRecord->ID & 0x0FFFFFFF));
      pItem->SubItems->Add(JvNTEventLog1->EventRecord->UserName);
      pItem->SubItems->Add(JvNTEventLog1->EventRecord->Computer);
      JvNTEventLog1->Next();
    }
  }
  __finally
  {
    ListView1->Items->EndUpdate();
    Screen->Cursor = crDefault;
  }
}
void __fastcall TTimelineMainForm::TimeLine1Click(TObject *Sender)
{
  if( TimeLine1->Selected != NULL )
  {                                
    Caption = Format("%s (%s)",
      OPENARRAY(TVarRec, ( TimeLine1->Selected->Caption, DateToStr(TimeLine1->Selected->Date) ) ) );
  }
}
Beispiel #5
0
void pgDatabase::AppendSchemaChange(const wxString &sql)
{
	wxDateTime dt;
	dt.Now();
	schemaChanges.Append(wxT("-- ") + DateToStr(dt) + wxT("\n"));
	schemaChanges.Append(sql);
	schemaChanges.Append(wxT("\n\n"));
}
Beispiel #6
0
int main(void)
{
    UtilityBase = (struct UtilityBase *)OpenLibrary("utility.library", 0);
    if (UtilityBase)
    {
	dt.dat_StrDate = "31-dec-2000";
	dt.dat_Format = FORMAT_DOS;
	
	if (StrToDate(&dt))
	{
	    dt.dat_StrDate = s;
	    if (DateToStr(&dt))
	    {
	    	printf("Verified date: \"%s\" days = %ld min = %ld tick = %ld\n",
		    	s,
		    	dt.dat_Stamp.ds_Days,
			dt.dat_Stamp.ds_Minute,
			dt.dat_Stamp.ds_Tick);
	    	
		Amiga2Date(dt.dat_Stamp.ds_Days * 60 * 60 * 24 + 
		    	   dt.dat_Stamp.ds_Minute * 60 +
			   dt.dat_Stamp.ds_Tick / 50, &cd);
			   
		printf("\nAmiga2Date says:\n\n");
		printf("sec   = %d\n", cd.sec);
		printf("min   = %d\n", cd.min);
		printf("hour  = %d\n", cd.hour);
		printf("mday  = %d\n", cd.mday);
		printf("month = %d\n", cd.month);
		printf("year  = %d\n", cd.year);
		printf("wday  = %d\n", cd.wday);

    	    	printf("\n-------- One day later -----------\n\n");
		
		Amiga2Date((dt.dat_Stamp.ds_Days + 1) * 60 * 60 * 24 + 
		    	   dt.dat_Stamp.ds_Minute * 60 +
			   dt.dat_Stamp.ds_Tick / 50, &cd);
			   
		printf("\nAmiga2Date says:\n\n");
		printf("sec   = %d\n", cd.sec);
		printf("min   = %d\n", cd.min);
		printf("hour  = %d\n", cd.hour);
		printf("mday  = %d\n", cd.mday);
		printf("month = %d\n", cd.month);
		printf("year  = %d\n", cd.year);
		printf("wday  = %d\n", cd.wday);

	    }
	    else puts("DateToStr failed!");
	}
	else puts("StrToDate failed!");
	
    	CloseLibrary((struct Library *)UtilityBase);
    }

    return 0;
}
Beispiel #7
0
//---------------------------------------------------------------------------
AnsiString __fastcall TFormReport::DateReplace(AnsiString str)
{
   AnsiString result = str;
   result =
      StringReplace(result, "[DateStart]",
         DateToStr(DateStart->Date), TReplaceFlags() <<rfReplaceAll<< rfIgnoreCase);
   result =
      StringReplace(result, "[DateEnd]",
         DateToStr(DateEnd->Date), TReplaceFlags() <<rfReplaceAll<< rfIgnoreCase);
   AnsiString s = "";
   result =
      StringReplace(result, "[Pokupatel]",
         (id_partner > 0) ? " and id_partner="+IntToStr(id_partner) : s, TReplaceFlags() <<rfReplaceAll<< rfIgnoreCase);
   result =
      StringReplace(result, "[Grupa]",
         (id_group > 0) ? " and id_group="+IntToStr(id_group) : s, TReplaceFlags() <<rfReplaceAll<< rfIgnoreCase);
   return result;
}
Beispiel #8
0
void __fastcall TForm1::FormCreate(TObject *Sender)
{
        TDateTime today;
	today = Now();
        dateNow = DateToStr(today);
        if(Form1->setDatePublication->Text == 0) {
                Form1->setDatePublication->Text = dateNow;
        }


}
void __fastcall TTimelineMainForm::Move1Click(TObject *Sender)
{
  AnsiString S;

  if( TimeLine1->Selected != NULL )
  {
    S = DateToStr(TimeLine1->Selected->Date);
    if( InputQuery("Move item", "Move to new date:", S) )
    {
      TimeLine1->Selected->Date = StrToDate(S);
    }
  }
}
Beispiel #10
0
void ProfileClass::FormatSQL( TQuery* query )
{
    // common SQL code for new and updated record
    query->ParamByName("tpid")->AsInteger = ProfileID;
    query->ParamByName("name")->AsString = theName;
    query->ParamByName("descr")->AsString = Description;
    DateMod->PutDateToDatabase( query, "date", DateToStr(DateMod->GetToday()) );
    query->ParamByName("note")->AsSmallInt = NoteExists;
    if ( !theProject->isBeforeVersion( 2, 1 ) )
    {
        query->ParamByName("flag")->AsInteger = ProfileFlag;
    }
}
Beispiel #11
0
/*
** Configure wake up for  RTC alarm  interrupt
*/
void configWakeRTC(void)
{
    unsigned int currTime = 0;
    unsigned int alarmTime = 0x00002000; /* 20 Seconds for RTC Wake */
    unsigned int alarmDate = 0;
    unsigned char time[9]= {0};
    unsigned char date[9]= {0};

    /*	Force RTC into 24hr format	*/
    RTCHourModeSet(RTC_INST_BASE, RTC_24HOUR_MODE);

    /*	get current time	*/
    currTime = RTCTimeGet(RTC_INST_BASE);

    /*	get current date	*/
    alarmDate = RTCCalendarGet(RTC_INST_BASE);

    TimeToStr(currTime, time);
    DateToStr(alarmDate, date);
    ConsoleUtilsPrintf("\n\r Current Time & Date: %s, %s", time, date);

    /*	Add alarm time to current time	*/
    alarmTime = addTime(alarmTime, currTime, &alarmDate);

    /*	Set alarm Time	*/
    RTCAlarmTimeSet(RTC_INST_BASE, alarmTime);

    /*	Set alarm Date	*/
    RTCAlarmCalendarSet(RTC_INST_BASE, alarmDate);

    TimeToStr(alarmTime, time);
    DateToStr(alarmDate, date);
    ConsoleUtilsPrintf("\n\r RTC Alarm Wake Time & Date: %s, %s", time, date);

    /* Run the RTC. The seconds tick from now on.*/
    RTCRun(RTC_INST_BASE);
}
Beispiel #12
0
// ---------------------------------------------------------------------------
void __fastcall TStdDataForm::FilterOnRadioGroupClick(TObject *Sender) {

	FilterOnLabel->Caption = "Records where " +
		FilterOnRadioGroup->Items->Strings[FilterOnRadioGroup->ItemIndex] + " >=";
	switch (FilterOnRadioGroup->ItemIndex) {
	case 0:
		Orders->OnFilterRecord = OrdersFilterOnDate;
		FilterCriteria->Text = DateToStr(FLastDate);
		break;
	case 1:
		Orders->OnFilterRecord = OrdersFilterOnAmount;
		FilterCriteria->Text = FloatToStr(FLastAmount);
		break;
	}
	ActiveControl = FilterCriteria;
}
Beispiel #13
0
/*
** Displays the Time and Date on the UART console
*/
void RtcTimeCalDisplay(void)
{
    unsigned int time = 0;
    unsigned int cal = 0;
    unsigned char strTime[9] = {'\0'};
    unsigned char strDate[9] = {'\0'};

    time = RTCTimeGet(SOC_RTC_0_REGS);
    cal = RTCCalendarGet(SOC_RTC_0_REGS);
    TimeToStr(time, strTime);
    DateToStr(cal, strDate);
    ConsoleUtilsPrintf("\rCurrent Time And Date: %s, %s, ", strTime, strDate);

    switch(cal & MASK_DOTW)
    {
        case 0x00:
             ConsoleUtilsPrintf("Sun");
        break;

        case 0x01:
             ConsoleUtilsPrintf("Mon");
        break;

        case 0x02:
             ConsoleUtilsPrintf("Tue");
        break;

        case 0x03:
             ConsoleUtilsPrintf("Wed");
        break;

        case 0x04:
             ConsoleUtilsPrintf("Thu");
        break;

        case 0x05:
             ConsoleUtilsPrintf("Fri");
        break;

        case 0x06:
             ConsoleUtilsPrintf("Sat");

        default:
        break;

    }
}
void __fastcall TTimelineMainForm::TimeLine1DragDrop(TObject *Sender,
      TObject *Source, int X, int Y)
{
  AnsiString S;

  if( (Sender == Source) && (TimeLine1->Selected != NULL ) )
  {
    S = DateToStr(TimeLine1->DateAtPos(X));

    if( InputQuery("Confirm move", Format("Move \"%s\" to new date:", OPENARRAY(TVarRec, (TimeLine1->Selected->Caption) ) ), S ) )
    {
      TimeLine1->Selected->Date  = StrToDate(S);
      TimeLine1->Selected->Level = TimeLine1->LevelAtPos(Y);
    }
  }

}
void __fastcall TTimelineMainForm::TimeLine1ItemMoved(TObject *Sender,
      TJvTimeItem *Item, TDateTime &NewStartDate, int &NewLevel)
{
 AnsiString S;

  if( TimeLine1->Dragging() )
  {
     return;
  }

  S = DateToStr(NewStartDate);
  if( !InputQuery("Confirm move", Format("Move \"%s\" to new date:", OPENARRAY(TVarRec ,(Item->Caption) ) ), S) )
  {
     NewStartDate = Item->Date;
     NewLevel     = Item->Level;
  }
}
Beispiel #16
0
void writelog(char *file, char *text) {
	BPTR fh;
	struct DateTime dt;
	char datebuf[14],timebuf[10],utbuf[100];
	DateStamp(&dt.dat_Stamp);
	dt.dat_Format = FORMAT_INT;
	dt.dat_Flags = 0;
	dt.dat_StrDay = NULL;
	dt.dat_StrDate = datebuf;
	dt.dat_StrTime = timebuf;
	DateToStr(&dt);
	sprintf(utbuf,"%s %s - %s\n",datebuf,timebuf,text);
	if(!(fh=Open(file,MODE_OLDFILE)))
		if(!(fh=Open(file,MODE_NEWFILE))) return;
	Seek(fh,0,OFFSET_END);
	FPuts(fh,utbuf);
	Close(fh);
}
Beispiel #17
0
void __fastcall TfrmRaporSecimi::MuaddelRaporOncesiHazirlik(void)
{
    // Muaddel Cetveli için üretim reçetesi oluþturulur...
    frmStokKarti->UretimRecetesiSifirla();
    frmStokKarti->UretimRecetesiOlustur(comboDepartmanBaslangic->Text+editBaslangicStokKodu->Text);

    // Muaddel Cetveli için paraflar atanýyor...
    frmMuaddelCetveli->qrlabelYETKILI1ADI->Caption = comboYETKILI1->Text;
    frmMuaddelCetveli->qrlabelYETKILI1RUTBE->Caption = editYETKILI1RUTBE->Text;
    frmMuaddelCetveli->qrlabelYETKILI1GOREVI->Caption = editYETKILI1GOREVI->Text;

    frmMuaddelCetveli->qrlabelYETKILI2ADI->Caption = comboYETKILI2->Text;
    frmMuaddelCetveli->qrlabelYETKILI2RUTBE->Caption = editYETKILI2RUTBE->Text;
    frmMuaddelCetveli->qrlabelYETKILI2GOREVI->Caption = editYETKILI2GOREVI->Text;

    frmMuaddelCetveli->qrlabelYETKILI3ADI->Caption = comboYETKILI3->Text;
    frmMuaddelCetveli->qrlabelYETKILI3RUTBE->Caption = editYETKILI3RUTBE->Text;
    frmMuaddelCetveli->qrlabelYETKILI3GOREVI->Caption = editYETKILI3GOREVI->Text;

    frmMuaddelCetveli->qrlabelYETKILI4ADI->Caption = comboYETKILI4->Text;
    frmMuaddelCetveli->qrlabelYETKILI4RUTBE->Caption = editYETKILI4RUTBE->Text;
    frmMuaddelCetveli->qrlabelYETKILI4GOREVI->Caption = editYETKILI4GOREVI->Text;

    frmMuaddelCetveli->qrlabelYETKILI5ADI->Caption = comboYETKILI5->Text;
    frmMuaddelCetveli->qrlabelYETKILI5RUTBE->Caption = editYETKILI5RUTBE->Text;
    frmMuaddelCetveli->qrlabelYETKILI5GOREVI->Caption = editYETKILI5GOREVI->Text;

    // Ýþletme Adý tanýmlanýyor.....
    frmMuaddelCetveli->qrlabelISLETME_ADI->Caption = comboDepartmanBaslangic->Text;

    // Kaç kopya alýnacaðý ayarlanýyor . . .
    frmMuaddelCetveli->QuickRep1->PrinterSettings->Copies
        = StrToFloat(editKopyaSayisi->Text);
    // Rapor tarihi atanýyor . . .
    frmMuaddelCetveli->qrlabelTARIH->Caption = DateToStr(DateTimePicker2->Date);
    frmMuaddelCetveli->queryURETIMRECETESI->Close();
    frmMuaddelCetveli->tblSTOKKARTI->Close();
    frmMuaddelCetveli->tblSTOKKARTI->Filtered = true;
    frmMuaddelCetveli->tblSTOKKARTI->Filter = "[INDEKS] = '"
        + comboDepartmanBaslangic->Text + editBaslangicStokKodu->Text + "'";
    frmMuaddelCetveli->tblSTOKKARTI->Open();
    frmMuaddelCetveli->queryURETIMRECETESI->Open();
}
Beispiel #18
0
void ProfileClass::LogRecord( AnsiString Text )
{
    AnsiString LogText;

    LogText = Text + " test_profile_description: (Part 1) ";
    LogText += "test_profile_id=" + IntToStr( ProfileID ) + ",";
    LogText += "test_profile_name=" + theName + ",";
    LogText += "test_profile_description=" + Description;
    LogMod->LogProjectDb( TLogMod::LOGLOCAL, LogText );

    LogText = Text + " test_profile_description: (Part 2) ";
    LogText += "date_last_modified=" + DateToStr(DateLastModified) + ",";
    LogText += "note_exists=" + IntToStr(NoteExists) + ",";
    if ( !theProject->isBeforeVersion( 2, 1 ) )
    {
        LogText += "profile_flags=" + IntToStr(ProfileFlag) + ",";
    }
    LogMod->LogProjectDb( TLogMod::LOGLOCAL, LogText );
}
Beispiel #19
0
//---------------------------------------------------------------------------
void __fastcall TfrmRaporSecimi::FiyatListesiRaporOncesiHazirlik(void)
{
    frmFiyatListesi->qrlabelISLETME_ADI->Caption = comboDepartmanBaslangic->Text;
    frmFiyatListesi->qrlabelTARIH->Caption = DateToStr(DateTimePicker2->Date);
    // Ýmza Bilgisi Geliyor....
    frmFiyatListesi->qrlabelYETKILI_ADI->Caption = comboYETKILI1->Text;
    frmFiyatListesi->qrlabelYETKILI_RUTBESI->Caption = editYETKILI1RUTBE->Text;
    frmFiyatListesi->qrlabelYETKILI_GOREVI->Caption = editYETKILI1GOREVI->Text;

    frmFiyatListesi->QRImage1->Picture->LoadFromFile(frmAnaMenu->Database->Directory + "LOGO.BMP");
    frmFiyatListesi->querySTOKLISTESI->Active = false;
    frmFiyatListesi->querySTOKLISTESI->ParamByName("BASLANGIC_KOD")->AsFloat =
        StrToFloat(editBaslangicStokKodu->Text);
    frmFiyatListesi->querySTOKLISTESI->ParamByName("BITIS_KOD")->AsFloat =
        StrToFloat(editBitisStokKodu->Text);
    frmFiyatListesi->querySTOKLISTESI->ParamByName("DEPARTMAN")->AsString =
        comboDepartmanBaslangic->Text;
    frmFiyatListesi->querySTOKLISTESI->ParamByName("CINSI")->AsString =
        "%"+comboStokCinsiBaslangic->Text+"%";
    frmFiyatListesi->querySTOKLISTESI->Active = true;
}
Beispiel #20
0
void __fastcall TfrmRaporSecimi::GunlukSatisRaporuOncesiHazirlik(void)
{
    // Günlük Satýþ Cetveli için paraflar atanýyor...
    frmGunlukSatisCizelgesi->qrlabelYETKILI1ADI->Caption = comboYETKILI1->Text;
    frmGunlukSatisCizelgesi->qrlabelYETKILI1RUTBE->Caption = editYETKILI1RUTBE->Text;
    frmGunlukSatisCizelgesi->qrlabelYETKILI1GOREVI->Caption = editYETKILI1GOREVI->Text;

    frmGunlukSatisCizelgesi->qrlabelYETKILI2ADI->Caption = comboYETKILI2->Text;
    frmGunlukSatisCizelgesi->qrlabelYETKILI2RUTBE->Caption = editYETKILI2RUTBE->Text;
    frmGunlukSatisCizelgesi->qrlabelYETKILI2GOREVI->Caption = editYETKILI2GOREVI->Text;

    frmGunlukSatisCizelgesi->qrlabelYETKILI3ADI->Caption = comboYETKILI3->Text;
    frmGunlukSatisCizelgesi->qrlabelYETKILI3RUTBE->Caption = editYETKILI3RUTBE->Text;
    frmGunlukSatisCizelgesi->qrlabelYETKILI3GOREVI->Caption = editYETKILI3GOREVI->Text;

    frmGunlukSatisCizelgesi->qrlabelYETKILI4ADI->Caption = comboYETKILI4->Text;
    frmGunlukSatisCizelgesi->qrlabelYETKILI4RUTBE->Caption = editYETKILI4RUTBE->Text;
    frmGunlukSatisCizelgesi->qrlabelYETKILI4GOREVI->Caption = editYETKILI4GOREVI->Text;

    frmGunlukSatisCizelgesi->qrlabelYETKILI5ADI->Caption = comboYETKILI5->Text;
    frmGunlukSatisCizelgesi->qrlabelYETKILI5RUTBE->Caption = editYETKILI5RUTBE->Text;
    frmGunlukSatisCizelgesi->qrlabelYETKILI5GOREVI->Caption = editYETKILI5GOREVI->Text;

    // Ýþletme Adý tanýmlanýyor.....
    frmGunlukSatisCizelgesi->qrlabelISLETME_ADI->Caption = comboDepartmanBaslangic->Text
     + " GÜNLÜK SATIÞ LÝSTESÝ";
    // Kaç kopya alýnacaðý ayarlanýyor . . .
    frmGunlukSatisCizelgesi->QuickRep1->PrinterSettings->Copies
        = StrToFloat(editKopyaSayisi->Text);
    // Rapor tarihi atanýyor . . .
    frmGunlukSatisCizelgesi->qrlabelTARIH->Caption = DateToStr(DateTimePicker2->Date);

    // tblSATIS_CETVELI Table Burada filtreleniyor...
    frmGunlukSatisCizelgesi->tblSATIS_CETVELI->Active = false;
    frmGunlukSatisCizelgesi->tblSATIS_CETVELI->Filtered = true;
    frmGunlukSatisCizelgesi->tblSATIS_CETVELI->Filter = "[TARIH] = "+DateTimePicker2->DateTime.DateString()
        +" AND "+"[DEPARTMAN] = '"+comboDepartmanBaslangic->Text+"'";
    frmGunlukSatisCizelgesi->tblSATIS_CETVELI->Active = true;
}
Beispiel #21
0
///-----------------------------------------------------------------------------
void SaveLogFile(AnsiString Patch){
 char* time_ptr;
 AnsiString LogPatch;
 AnsiString cur_time;
 AnsiString cur_date;
 cur_date += DateToStr(Date());
 cur_date += " ";
 cur_time = TimeToStr(Time());
 if((time_ptr = strchr(cur_time.c_str(),':')) != NULL){
  *time_ptr = '.';
  time_ptr++;
  if((time_ptr = strchr(cur_time.c_str(),':')) != 0x00){
   *time_ptr = '.';
  }
 }
 cur_time += " ";
 LogPatch  = Patch;
 LogPatch += "Hammer Log File At ";
 LogPatch += cur_date;
 LogPatch += cur_time;
 LogPatch += ".log";
 LogList->SaveToFile(LogPatch);
 return;
}
bool __fastcall TMemoEditFrm_Edit(TStrings* Lines, TDateTime ADate, TIcon* Icon)
{
 TMemoEditFrm* f;
 bool flResult;

  f = new TMemoEditFrm(Application);
  try
  {
    f->Icon = Icon;
    f->Caption = Format(f->Caption,OPENARRAY(TVarRec,(DateToStr(ADate) ) ) );
    f->reLines->Lines = Lines;
    flResult = (f->ShowModal() == mrOk);
    if( flResult )
    {
      Lines->Assign(f->reLines->Lines);
    }
  }
  __finally
  {
    delete  f;
  }

  return flResult;
}
Beispiel #23
0
//---------------------------------------------------------------------------
void __fastcall TDForm::DateTimePicker2Change(TObject *Sender)
{
	Label7->Caption = DateToStr(DateTimePicker2->Date.DateString());
}
void __fastcall TResendLostCardnewFRM::cxButton2Click(TObject *Sender)
{
	enableGS = false;
	int kh = StrToInt(cxTextEdit14->Text);
	String sql = "select * from CARD where BH='";
	sql = sql + cxTextEdit5->Text + "'";
	InDatabaseADOQuery->Close();
	InDatabaseADOQuery->SQL->Clear();
	InDatabaseADOQuery->SQL->Add(sql);
	InDatabaseADOQuery->Open();
	if(!InDatabaseADOQuery->IsEmpty())
	{
		InDatabaseADOQuery->Edit();
		InDatabaseADOQuery->FieldByName("ZT")->AsString = "挂失";
		InDatabaseADOQuery->Post();
	}
    else
    {

    }

	sql = "select * from CARD_F where BH='" + cxTextEdit5->Text + "'";
	InDatabaseADOQuery->Close();
	InDatabaseADOQuery->SQL->Clear();
	InDatabaseADOQuery->SQL->Add(sql);
	InDatabaseADOQuery->Open();
	if(!InDatabaseADOQuery->IsEmpty())
	{
		InDatabaseADOQuery->Edit();
		InDatabaseADOQuery->FieldByName("ZT")->AsString = "挂失";
		InDatabaseADOQuery->Post();
	}
	else
		ShowMessage("此卡信息不在CARD_F表中,请确认!");

	sql = "select * from KZT where BH='" + cxTextEdit5->Text + "'";
	InDatabaseADOQuery->Close();
	InDatabaseADOQuery->SQL->Clear();
	InDatabaseADOQuery->SQL->Add(sql);
	InDatabaseADOQuery->Open();
	if(!InDatabaseADOQuery->IsEmpty())
	{
		InDatabaseADOQuery->Edit();
		InDatabaseADOQuery->FieldByName("GS")->AsInteger = 1;
		InDatabaseADOQuery->Post();
	}
	else
		ShowMessage("此卡信息不在KZT表中,请确认!");

	sql = "insert into GS values(:BH,:KH,:GSRQ,:USERNAME)";
	InDatabaseADOQuery->Close();
	InDatabaseADOQuery->SQL->Clear();
	InDatabaseADOQuery->SQL->Add(sql);
	InDatabaseADOQuery->Parameters->ParamByName("BH")->Value = cxTextEdit5->Text;
	InDatabaseADOQuery->Parameters->ParamByName("KH")->Value = kh;
	InDatabaseADOQuery->Parameters->ParamByName("GSRQ")->Value = DateToStr(Date());
	InDatabaseADOQuery->Parameters->ParamByName("USERNAME")->Value = OperatorName;
	InDatabaseADOQuery->ExecSQL();

	InDatabaseADOQuery->Close();
	InDatabaseADOQuery->SQL->Clear();
	sql = "select * from SFJPARAM";
	InDatabaseADOQuery->SQL->Add(sql);
	InDatabaseADOQuery->Open();
	if(!InDatabaseADOQuery->IsEmpty())
	{
		int pos[2000];
		int port[2000];
		int i = 0;
		InDatabaseADOQuery->First();
		while(!InDatabaseADOQuery->Eof)
		{
			pos[i] = InDatabaseADOQuery->FieldByName("JH")->AsInteger;
			port[i] = InDatabaseADOQuery->FieldByName("SFJPORT")->AsInteger;
			i++;
			InDatabaseADOQuery->Next();
		}
		int posnum = i;

		InDatabaseADOQuery->Close();
		InDatabaseADOQuery->SQL->Clear();
		sql = "delete from CMDLIST where PARA=";
        sql += kh;
		sql += " and status=0";
		InDatabaseADOQuery->SQL->Add(sql);
		InDatabaseADOQuery->ExecSQL();
		InDatabaseADOQuery->Close();

		InDatabaseADOQuery->SQL->Clear();
		sql = "insert into CMDLIST values(:SFJPORT,:SFJD,:CMD,:PARA,:STATUS,:SENDTIME)";
		InDatabaseADOQuery->SQL->Add(sql);
		for(i = 0; i < posnum; i++)
		{
			InDatabaseADOQuery->Parameters->ParamByName("SFJPORT")->Value = port[i];
			InDatabaseADOQuery->Parameters->ParamByName("SFJD")->Value = pos[i];
			InDatabaseADOQuery->Parameters->ParamByName("CMD")->Value = 1;
			InDatabaseADOQuery->Parameters->ParamByName("PARA")->Value = kh;
			InDatabaseADOQuery->Parameters->ParamByName("STATUS")->Value = 0;
			InDatabaseADOQuery->Parameters->ParamByName("SENDTIME")->Value = NULL;
			InDatabaseADOQuery->ExecSQL();
		}
		InDatabaseADOQuery->Close();

		//填写操作记录表
		InDatabaseADOQuery->SQL->Clear();
		sql =  "insert into OperationList values(:BH,:KH,:JE,:YE,:LX,:Operator,:DateTime)";
		InDatabaseADOQuery->SQL->Add(sql);
		InDatabaseADOQuery->Parameters->ParamByName("BH")->Value = cxTextEdit5->Text;
		InDatabaseADOQuery->Parameters->ParamByName("KH")->Value = kh;
		InDatabaseADOQuery->Parameters->ParamByName("JE")->Value = 0;
		InDatabaseADOQuery->Parameters->ParamByName("YE")->Value = StrToFloat(cxTextEdit17->Text);
		InDatabaseADOQuery->Parameters->ParamByName("LX")->Value = "挂失";
		InDatabaseADOQuery->Parameters->ParamByName("Operator")->Value = OperatorName;
		InDatabaseADOQuery->Parameters->ParamByName("DateTime")->Value = DateTimeToStr(Date());
		InDatabaseADOQuery->ExecSQL();
		InDatabaseADOQuery->Close();

		cxButton2->Enabled = false;
		cxButton3->Enabled = true;
		enableGS = true;
		if(mrOk == MessageBox(this->Handle, "登记挂失信息成功,是否将单条挂失记录下传!", "请选择", MB_OKCANCEL|MB_ICONQUESTION))
		{
			SingleGSForm->cxTextEdit1->Text = cxTextEdit14->Text;
			SingleGSForm->ShowModal();
		}
	}
	else
	{
		ShowMessage("登记挂失信息成功,该收费系统中没有入库的POS机!");
		InDatabaseADOQuery->Close();
		cxButton2->Enabled = false;
		cxButton3->Enabled = false;
		enableGS = true;
	}
}
void __fastcall TResendLostCardnewFRM::cxButton3Click(TObject *Sender)
{
	//New Card
/*	ADOQuery2->Close();
	ADOQuery2->SQL->Clear();
	ADOQuery2->SQL->Add("select min(KH) as maxkh from KZT where SY='N' and GS=0");
	ADOQuery2->Open();
	if(!ADOQuery2->IsEmpty())
	{
		cxTextEdit18->Text = ADOQuery2->FieldByName("maxkh")->AsInteger; */
	if(cxTextEdit18->Text.IsEmpty())
	{
		ShowMessage("必须输入补卡号!");
		return;
	}
	int tmpbkh = StrToInt(cxTextEdit18->Text);
	if(tmpbkh > 189999)
	{
		ShowMessage("补卡号不能大于189999!");
		return;
	}

    int middlekh;
	ADOQuery2->Close();
	ADOQuery2->SQL->Clear();
	String tmpsqlstr = "select * from KZT where KH=";
	tmpsqlstr += cxTextEdit18->Text;
	tmpsqlstr += " and SY='N' and GS='0'";
	ADOQuery2->SQL->Add(tmpsqlstr);
	ADOQuery2->Open();

	if(!ADOQuery2->IsEmpty())
	{
		ADOQuery2->Edit();
		ADOQuery2->FieldByName("KH")->AsInteger = -1;
		ADOQuery2->Post();

		//launchnewcard
		WORD status;
		int tmpbalance;
		int tmpkh,tmpsycs;
		double tmpintye;
		double tmpye;
		unsigned char keymode,secnum,Delayms,mode;
		unsigned char key[6];
		unsigned char dwmm[6];
		unsigned char daytime[4];
		unsigned char kh[4];
		unsigned char balance[4];
		unsigned char cardtype[1];
		unsigned char czmm[3];
		unsigned char synum[3];
	//	unsigned char readcomno[5] = "";

		Delayms = DelaySecond;
		keymode = CARDPasswordEdition;
		secnum = UsingSecNUM;

		key[0] = CARDPassword[0];
		key[1] = CARDPassword[1];
		key[2] = CARDPassword[2];
		key[3] = CARDPassword[3];
		key[4] = CARDPassword[4];
		key[5] = CARDPassword[5];

		if(LoadHModule)
		{
			if(readwatercardinfo)//readcardinfo)
			{
			//	status = readcardinfo(readcomno,keymode,secnum,key,kh,balance,dwmm,synum,daytime,cardtype,czmm,Delayms);
            	status = readwatercardinfo(readcomno,keymode,secnum,key,kh,balance,dwmm,daytime,cardtype,Delayms);
				if(status > 99)
				{
					ShowMessage("通讯错误!");
                    ADOQuery2->Edit();
                    ADOQuery2->FieldByName("KH")->AsInteger = StrToInt(cxTextEdit18->Text);
                    ADOQuery2->Post();
				}
				else if (1 == status)
				{
					ShowMessage("请把卡片放好!");
                    ADOQuery2->Edit();
                    ADOQuery2->FieldByName("KH")->AsInteger = StrToInt(cxTextEdit18->Text);
                    ADOQuery2->Post();
				}
				else if (2 == status)
				{
					ShowMessage("卡号大于192000或等于0!");
                    cxButton3->Enabled = false;
                    ADOQuery2->Edit();
                    ADOQuery2->FieldByName("KH")->AsInteger = StrToInt(cxTextEdit18->Text);
                    ADOQuery2->Post();
				}
				else if (4 == status)
				{
					ShowMessage("卡片密码不对!");
                    cxButton3->Enabled = false;
                    ADOQuery2->Edit();
                    ADOQuery2->FieldByName("KH")->AsInteger = StrToInt(cxTextEdit18->Text);
                    ADOQuery2->Post();
				}
				else if (5 == status)
				{
					ShowMessage("读写卡不稳定!");
                    cxButton3->Enabled = false;
                    ADOQuery2->Edit();
                    ADOQuery2->FieldByName("KH")->AsInteger = StrToInt(cxTextEdit18->Text);
                    ADOQuery2->Post();
				}
				else if (0 == status)
				{
					ShowMessage("此卡不能做为新卡发行,请更换新卡!");
                    cxButton3->Enabled = false;
                    ADOQuery2->Edit();
                    ADOQuery2->FieldByName("KH")->AsInteger = StrToInt(cxTextEdit18->Text);
                    ADOQuery2->Post();
				}
				else
				{
					unsigned char writesynum[2];
					writesynum[0] = 0x00;
					writesynum[1] = 0x00;

					int maxsycs1 = 0;
					int maxsycs2 = 0;
					int maxsycs;
					String maxsycssqlstr = "select MAX(sycs) as maxsycs from MX where BH='";
					maxsycssqlstr += cxTextEdit5->Text;
					maxsycssqlstr += "'";
					ADOQuery3->Close();
					ADOQuery3->SQL->Clear();
					ADOQuery3->SQL->Add(maxsycssqlstr);
					ADOQuery3->Open();
					if(!ADOQuery3->IsEmpty())
					{
						maxsycs1 = ADOQuery3->FieldByName("maxsycs")->AsInteger;
					}
					ADOQuery3->Close();
					maxsycssqlstr = "select MAX(sycs) as maxsycs from MXBAK where BH='";
					maxsycssqlstr += cxTextEdit5->Text;
					maxsycssqlstr += "'";
					ADOQuery3->SQL->Clear();
					ADOQuery3->SQL->Add(maxsycssqlstr);
					ADOQuery3->Open();
					if(!ADOQuery3->IsEmpty())
					{
						maxsycs2 = ADOQuery3->FieldByName("maxsycs")->AsInteger;
					}
					ADOQuery3->Close();
					if(maxsycs1 < maxsycs2)
						maxsycs = maxsycs2;
					else
						maxsycs = maxsycs1;

					writesynum[0] = (unsigned char)(maxsycs/256);
					writesynum[1] = (unsigned char)(maxsycs%256);

					WORD writestatus;
					unsigned char writedaytime[4];
					unsigned char writebalance[4];
					unsigned char writeczmm[3];
					unsigned char writecardtype[1];
					unsigned char writekh[4];
					int writetmpkh = atoi(cxTextEdit18->Text.t_str());
					writekh[0] = (char)(writetmpkh/256/256/256);
					writekh[1] = (char)((writetmpkh%(256*256*256))/256/256);
					writekh[2] = (char)((writetmpkh%(256*256))/256);
					writekh[3] = (char)writetmpkh;

					unsigned char writereadcomno[5] = readcomno;
					unsigned char writekeymode = keymode;
					unsigned char writesecnum = secnum;

					unsigned char writekey[6];// = key;
					writekey[0] = CARDPassword[0];
					writekey[1] = CARDPassword[1];
					writekey[2] = CARDPassword[2];
					writekey[3] = CARDPassword[3];
					writekey[4] = CARDPassword[4];
					writekey[5] = CARDPassword[5];

					unsigned char writedwmm[2];
					writedwmm[0] = DWPassword[0];
					writedwmm[1] = DWPassword[1];

					unsigned char writemode = 0x00;
					unsigned char writeDelayms = DelaySecond;

					String writetmpstr = DateToStr(UseDateEdit->Date);
					char* writetmpdatestr = writetmpstr.t_str();
					writedaytime[0] = char(((int)writetmpdatestr[2]-48)*16+((int)writetmpdatestr[3]-48));
					writedaytime[1] = char(((int)writetmpdatestr[5]-48)*16+((int)writetmpdatestr[6]-48));
					writedaytime[2] = char(((int)writetmpdatestr[8]-48)*16+((int)writetmpdatestr[9]-48));
					writedaytime[3] = 0x00;

		 //			ShowMessage(PrepayTextEdit->Text.t_str());

					double writetmpbalance = StrToFloat(cxTextEdit17->Text);
					writetmpbalance *= 100;
					writebalance[0] = 0x00;
					writebalance[1] = (char)((int)writetmpbalance/65536);
					writetmpbalance = (int)writetmpbalance%65536;
					writebalance[2] = (char)((int)writetmpbalance/256);
					writetmpbalance = (int)writetmpbalance%256;
					writebalance[3] = (char)writetmpbalance;

					unsigned char writetmpczmm[5];
					strcpy(writetmpczmm, cxTextEdit12->Text.t_str());
					writetmpczmm[0] = writetmpczmm[0]<<4;
					writetmpczmm[1] = writetmpczmm[1]<<4;
					writetmpczmm[1] = writetmpczmm[1]>>4;
					writeczmm[0] = writetmpczmm[0] + writetmpczmm[1];
					writetmpczmm[2] = writetmpczmm[2]<<4;
					writetmpczmm[3] = writetmpczmm[3]<<4;
					writetmpczmm[3] = writetmpczmm[3]>>4;
					writeczmm[1] = writetmpczmm[2]+writetmpczmm[3];
					writeczmm[2] = 0x00;

					writecardtype[0] = atoi(cxTextEdit13->Text.t_str());

					if(LaunchWaterNewCard)//LaunchNewCard)
					{
					/*	writestatus = LaunchNewCard(writereadcomno,
													writekeymode,
													writesecnum,
													writekey,
													writekh,
													writebalance,
													writedwmm,
													writesynum,
													writedaytime,
													writecardtype,
													writeczmm,
													writemode,
													writeDelayms);   */

                    	writestatus = LaunchWaterNewCard(writereadcomno,
                        								 writekeymode,
                                                         writesecnum,
                                                         writekey,
                                                         writekh,
                                                         writebalance,
                                                         writedwmm,
                                                         writedaytime,
                                                         writecardtype,
                                                         writemode,
                                                         writeDelayms);
						if(writestatus)
						{
							ShowMessage("写卡失败!");
                            ADOQuery2->Edit();
                            ADOQuery2->FieldByName("KH")->AsInteger = StrToInt(cxTextEdit18->Text);
                            ADOQuery2->Post();
						}
						else
						{
							String tmpsql;
							String tmpsql2 = "insert into CARD_F values(:BH,:KH,:BKH,:XM,:XB,";;

                            //填写退卡表
							tmpsql = "insert into CARD_T values(:BH,:KH,:BKH,:XM,:XB,";
							tmpsql = tmpsql+":SFZH,:BM,:BZ,:ZB,:ZW,:JB,:RQ,:TKRQ,:YJ,:TYJ,"+
											":ZT,:GRMM,:BTBZ,:BT_YE,:BTYEDT,:BTSYCS,:SF_YE,"+
											":SFYEDT,:SYCS,:FKSK,:SF_FL,:GLF,:FKJE,:TKJE,:TKBT,"+
											":SF_KL,:USERNAME,:YW,:TKCB,:BKCB,:TKOperator)";

							tmpsql2 = tmpsql2 + ":SFZH,:BM,:BZ,:ZB,:ZW,:JB,:RQ,:TKRQ,:YJ,:TYJ,"+
												":ZT,:GRMM,:BTBZ,:BT_YE,:BTYEDT,:BTSYCS,:SF_YE,"+
												":SFYEDT,:SYCS,:FKSK,:SF_FL,:GLF,:FKJE,:TKJE,:TKBT,"+
												":SF_KL,:USERNAME)";
							ADOQuery3->Close();
							ADOQuery3->SQL->Clear();
							ADOQuery3->SQL->Add(tmpsql);

                            ADOQuery2->Close();
							ADOQuery2->SQL->Clear();
							String stmpsql = "select * from CARD where BH='" + cxTextEdit5->Text + "'";
							ADOQuery2->SQL->Add(stmpsql);
							ADOQuery2->Open();
                            if(!ADOQuery2->IsEmpty())
							{
								//补发卡不计退卡记录
								ADOQuery3->Parameters->ParamByName("BH")->Value = ADOQuery2->FieldByName("BH")->Value;
								ADOQuery3->Parameters->ParamByName("KH")->Value = ADOQuery2->FieldByName("KH")->Value;
								ADOQuery3->Parameters->ParamByName("BKH")->Value = ADOQuery2->FieldByName("BKH")->Value;
								ADOQuery3->Parameters->ParamByName("XM")->Value = ADOQuery2->FieldByName("XM")->Value;
								ADOQuery3->Parameters->ParamByName("XB")->Value = ADOQuery2->FieldByName("XB")->Value;
								ADOQuery3->Parameters->ParamByName("SFZH")->Value = ADOQuery2->FieldByName("SFZH")->Value;
								ADOQuery3->Parameters->ParamByName("BM")->Value = ADOQuery2->FieldByName("BM")->Value;
								ADOQuery3->Parameters->ParamByName("BZ")->Value = ADOQuery2->FieldByName("BZ")->Value;
								ADOQuery3->Parameters->ParamByName("ZB")->Value = ADOQuery2->FieldByName("ZB")->Value;
								ADOQuery3->Parameters->ParamByName("ZW")->Value = ADOQuery2->FieldByName("ZW")->Value;
								ADOQuery3->Parameters->ParamByName("JB")->Value = ADOQuery2->FieldByName("JB")->Value;
								ADOQuery3->Parameters->ParamByName("RQ")->Value = ADOQuery2->FieldByName("RQ")->Value;
								ADOQuery3->Parameters->ParamByName("TKRQ")->Value = DateTimeToStr(Now());
								ADOQuery3->Parameters->ParamByName("YJ")->Value = ADOQuery2->FieldByName("YJ")->Value;
								ADOQuery3->Parameters->ParamByName("TYJ")->Value = ADOQuery2->FieldByName("TYJ")->Value;
								ADOQuery3->Parameters->ParamByName("ZT")->Value = "挂补";//ADOQuery2->FieldByName("ZT")->Value;
                                ADOQuery3->Parameters->ParamByName("GRMM")->Value = ADOQuery2->FieldByName("GRMM")->Value;
                                ADOQuery3->Parameters->ParamByName("BTBZ")->Value = ADOQuery2->FieldByName("BTBZ")->Value;
                                ADOQuery3->Parameters->ParamByName("BT_YE")->Value = ADOQuery2->FieldByName("BT_YE")->Value;
                                ADOQuery3->Parameters->ParamByName("BTYEDT")->Value = ADOQuery2->FieldByName("BTYEDT")->Value;
                                ADOQuery3->Parameters->ParamByName("BTSYCS")->Value = ADOQuery2->FieldByName("BTSYCS")->Value;
                                ADOQuery3->Parameters->ParamByName("SF_YE")->Value = ADOQuery2->FieldByName("SF_YE")->Value;
                                ADOQuery3->Parameters->ParamByName("SFYEDT")->Value = ADOQuery2->FieldByName("SFYEDT")->Value;
                                ADOQuery3->Parameters->ParamByName("SYCS")->Value = ADOQuery2->FieldByName("SYCS")->Value;
                                ADOQuery3->Parameters->ParamByName("FKSK")->Value = ADOQuery2->FieldByName("FKSK")->Value;
                                ADOQuery3->Parameters->ParamByName("SF_FL")->Value = ADOQuery2->FieldByName("SF_FL")->Value;
                                ADOQuery3->Parameters->ParamByName("GLF")->Value = ADOQuery2->FieldByName("GLF")->Value;
                                ADOQuery3->Parameters->ParamByName("FKJE")->Value = ADOQuery2->FieldByName("FKJE")->Value;
                                ADOQuery3->Parameters->ParamByName("TKJE")->Value = 0;//ADOQuery2->FieldByName("TKJE")->Value;
                                ADOQuery3->Parameters->ParamByName("TKBT")->Value = 0;//ADOQuery2->FieldByName("TKBT")->Value;
                                ADOQuery3->Parameters->ParamByName("SF_KL")->Value = ADOQuery2->FieldByName("SF_KL")->Value;
                                ADOQuery3->Parameters->ParamByName("USERNAME")->Value = ADOQuery2->FieldByName("USERNAME")->Value;
                                ADOQuery3->Parameters->ParamByName("YW")->Value = 0;
                                ADOQuery3->Parameters->ParamByName("TKCB")->Value = 0;
                                ADOQuery3->Parameters->ParamByName("BKCB")->Value = StrToInt(cxTextEdit20->Text);
								ADOQuery3->Parameters->ParamByName("TKOperator")->Value = OperatorName;
                                ADOQuery3->ExecSQL();
								ADOQuery3->Close();
                            }

							//Wallet修改大钱包数据
							ADOQuery2->Close();
							ADOQuery2->SQL->Clear();
							tmpsql = "select * from CARD where BH='" + cxTextEdit5->Text + "'";
							ADOQuery2->SQL->Add(tmpsql);
							ADOQuery2->Open();
							if(!ADOQuery2->IsEmpty())
							{
								ADOQuery2->Edit();
								ADOQuery2->FieldByName("KH")->AsInteger = StrToInt(cxTextEdit18->Text);
								ADOQuery2->Post();
							}

							//CARD
							ADOQuery2->Close();
							ADOQuery2->SQL->Clear();
							tmpsql = "select * from CARD where BH='" + cxTextEdit5->Text + "'";
							ADOQuery2->SQL->Add(tmpsql);
							ADOQuery2->Open();

							ADOQuery2->Edit();
							ADOQuery2->FieldByName("KH")->AsInteger = atoi(cxTextEdit18->Text.t_str());
							ADOQuery2->FieldByName("ZT")->AsString = "发卡";
							ADOQuery2->Post();


							//CARD_F
							ADOQuery2->Close();
							ADOQuery2->SQL->Clear();
							tmpsql = "select * from CARD_F where BH='" + cxTextEdit5->Text + "'";
							ADOQuery2->SQL->Add(tmpsql);
							ADOQuery2->Open();

							ADOQuery3->SQL->Clear();
							ADOQuery3->SQL->Add(tmpsql2);
							ADOQuery3->Parameters->ParamByName("BH")->Value = ADOQuery2->FieldByName("BH")->Value;
							ADOQuery3->Parameters->ParamByName("KH")->Value = ADOQuery2->FieldByName("KH")->Value;
							ADOQuery3->Parameters->ParamByName("BKH")->Value = ADOQuery2->FieldByName("BKH")->Value;
							ADOQuery3->Parameters->ParamByName("XM")->Value = ADOQuery2->FieldByName("XM")->Value;
							ADOQuery3->Parameters->ParamByName("XB")->Value = ADOQuery2->FieldByName("XB")->Value;
							ADOQuery3->Parameters->ParamByName("SFZH")->Value = ADOQuery2->FieldByName("SFZH")->Value;
							ADOQuery3->Parameters->ParamByName("BM")->Value = ADOQuery2->FieldByName("BM")->Value;
							ADOQuery3->Parameters->ParamByName("BZ")->Value = ADOQuery2->FieldByName("BZ")->Value;
							ADOQuery3->Parameters->ParamByName("ZB")->Value = ADOQuery2->FieldByName("ZB")->Value;
							ADOQuery3->Parameters->ParamByName("ZW")->Value = ADOQuery2->FieldByName("ZW")->Value;
							ADOQuery3->Parameters->ParamByName("JB")->Value = ADOQuery2->FieldByName("JB")->Value;
							ADOQuery3->Parameters->ParamByName("RQ")->Value = ADOQuery2->FieldByName("RQ")->Value;
							ADOQuery3->Parameters->ParamByName("TKRQ")->Value = DateTimeToStr(Now());
							ADOQuery3->Parameters->ParamByName("YJ")->Value = ADOQuery2->FieldByName("YJ")->Value;
							ADOQuery3->Parameters->ParamByName("TYJ")->Value = ADOQuery2->FieldByName("TYJ")->Value;
							ADOQuery3->Parameters->ParamByName("ZT")->Value = ADOQuery2->FieldByName("ZT")->Value;
							ADOQuery3->Parameters->ParamByName("GRMM")->Value = ADOQuery2->FieldByName("GRMM")->Value;
							ADOQuery3->Parameters->ParamByName("BTBZ")->Value = ADOQuery2->FieldByName("BTBZ")->Value;
							ADOQuery3->Parameters->ParamByName("BT_YE")->Value = ADOQuery2->FieldByName("BT_YE")->Value;
							ADOQuery3->Parameters->ParamByName("BTYEDT")->Value = ADOQuery2->FieldByName("BTYEDT")->Value;
							ADOQuery3->Parameters->ParamByName("BTSYCS")->Value = ADOQuery2->FieldByName("BTSYCS")->Value;
							ADOQuery3->Parameters->ParamByName("SF_YE")->Value = ADOQuery2->FieldByName("SF_YE")->Value;
							ADOQuery3->Parameters->ParamByName("SFYEDT")->Value = ADOQuery2->FieldByName("SFYEDT")->Value;
							ADOQuery3->Parameters->ParamByName("SYCS")->Value = ADOQuery2->FieldByName("SYCS")->Value;
							ADOQuery3->Parameters->ParamByName("FKSK")->Value = ADOQuery2->FieldByName("FKSK")->Value;
							ADOQuery3->Parameters->ParamByName("SF_FL")->Value = ADOQuery2->FieldByName("SF_FL")->Value;
							ADOQuery3->Parameters->ParamByName("GLF")->Value = ADOQuery2->FieldByName("GLF")->Value;
							ADOQuery3->Parameters->ParamByName("FKJE")->Value = ADOQuery2->FieldByName("FKJE")->Value;
							ADOQuery3->Parameters->ParamByName("TKJE")->Value = ADOQuery2->FieldByName("TKJE")->Value;
							ADOQuery3->Parameters->ParamByName("TKBT")->Value = ADOQuery2->FieldByName("TKBT")->Value;
							ADOQuery3->Parameters->ParamByName("SF_KL")->Value = ADOQuery2->FieldByName("SF_KL")->Value;
							ADOQuery3->Parameters->ParamByName("USERNAME")->Value = ADOQuery2->FieldByName("USERNAME")->Value;

							ADOQuery2->Edit();
							ADOQuery2->FieldByName("KH")->AsInteger = atoi(cxTextEdit18->Text.t_str());
							ADOQuery2->FieldByName("ZT")->AsString = "发卡";
							ADOQuery2->Post();
							ADOQuery3->ExecSQL();
							ADOQuery3->Close();

							//KZT
							ADOQuery2->Close();
							ADOQuery2->SQL->Clear();
							tmpsql = "select * from KZT where BH='" + cxTextEdit5->Text + "'";
							ADOQuery2->SQL->Add(tmpsql);
							ADOQuery2->Open();
							ADOQuery2->Edit();
							ADOQuery2->FieldByName("KH")->AsInteger = atoi(cxTextEdit18->Text.t_str());
							ADOQuery2->FieldByName("GS")->AsInteger = 0;
							ADOQuery2->FieldByName("SY")->AsString = "Y";
							ADOQuery2->FieldByName("FKRQ")->AsString = DateTimeToStr(Now());
							ADOQuery2->Post();

							ADOQuery2->Close();
							ADOQuery2->SQL->Clear();
							tmpsql = "select * from KZT where KH=-1";
							ADOQuery2->SQL->Add(tmpsql);
							ADOQuery2->Open();
							ADOQuery2->Edit();
							ADOQuery2->FieldByName("KH")->AsInteger = StrToInt(cxTextEdit14->Text);
							ADOQuery2->FieldByName("GS")->AsInteger = 1;
							ADOQuery2->Post();

							//填写操作记录表
							ADOQuery2->Close();
							ADOQuery2->SQL->Clear();
							tmpsql = "insert into OperationList values(:BH,:KH,:JE,:YE,:LX,:Operator,:DateTime)";
							ADOQuery2->SQL->Add(tmpsql);
							ADOQuery2->Parameters->ParamByName("BH")->Value = cxTextEdit5->Text;
							ADOQuery2->Parameters->ParamByName("KH")->Value = atoi(cxTextEdit18->Text.t_str());
							ADOQuery2->Parameters->ParamByName("JE")->Value = 0;
							ADOQuery2->Parameters->ParamByName("YE")->Value = StrToFloat(cxTextEdit17->Text);;
							ADOQuery2->Parameters->ParamByName("LX")->Value = "补发卡";
							ADOQuery2->Parameters->ParamByName("Operator")->Value = OperatorName;
							ADOQuery2->Parameters->ParamByName("DateTime")->Value = DateTimeToStr(Now());
							ADOQuery2->ExecSQL();
							ADOQuery2->Close();

                            //补发卡明细
                 /*           ADOQuery2->Close();
							ADOQuery2->SQL->Clear();
							tmpsql = "insert into BFKMX values(:BH,:KH,:BKH,:JE,:YE,:LX,:Operator,:DateTime)";
							ADOQuery2->SQL->Add(tmpsql);
							ADOQuery2->Parameters->ParamByName("BH")->Value = cxTextEdit5->Text;
							ADOQuery2->Parameters->ParamByName("KH")->Value = atoi(cxTextEdit14->Text.t_str());
                            ADOQuery2->Parameters->ParamByName("KH")->Value = atoi(cxTextEdit18->Text.t_str());
							ADOQuery2->Parameters->ParamByName("JE")->Value = 0;
							ADOQuery2->Parameters->ParamByName("YE")->Value = StrToFloat(cxTextEdit17->Text);;
							ADOQuery2->Parameters->ParamByName("LX")->Value = "补发卡";
							ADOQuery2->Parameters->ParamByName("Operator")->Value = OperatorName;
							ADOQuery2->Parameters->ParamByName("DateTime")->Value = DateTimeToStr(Now());
							ADOQuery2->ExecSQL();
							ADOQuery2->Close();      */

							//MX
							ADOQuery2->Close();
							ADOQuery2->SQL->Clear();
							tmpsql = "insert into MX values(:BH,:KH,:SF_YE,";
							tmpsql = tmpsql + ":SFJE,:SYCS,:SFRQ,:JYNO,";
							tmpsql = tmpsql + ":GZZID,:SFLX,:CZY,:SCRQ)";
							ADOQuery2->SQL->Add(tmpsql);
							ADOQuery2->Parameters->ParamByName("BH")->Value = cxTextEdit5->Text;
							ADOQuery2->Parameters->ParamByName("KH")->Value = atoi(cxTextEdit18->Text.t_str());
							ADOQuery2->Parameters->ParamByName("SF_YE")->Value = StrToFloat(cxTextEdit17->Text);
							ADOQuery2->Parameters->ParamByName("SFJE")->Value = 0;//atoi(cxTextEdit20->Text.t_str());
							ADOQuery2->Parameters->ParamByName("SYCS")->Value = 0;
							ADOQuery2->Parameters->ParamByName("SFRQ")->Value = DateTimeToStr(Now());
							ADOQuery2->Parameters->ParamByName("JYNO")->Value = 0;
							ADOQuery2->Parameters->ParamByName("GZZID")->Value = 1;
							ADOQuery2->Parameters->ParamByName("SFLX")->Value = "F";
							ADOQuery2->Parameters->ParamByName("CZY")->Value = OperatorName;
							ADOQuery2->Parameters->ParamByName("SCRQ")->Value = DateTimeToStr(Now());
							ADOQuery2->ExecSQL();
							ADOQuery2->Close();

							int bkf = 0;
							if(!cxTextEdit20->Text.IsEmpty())
								bkf = StrToInt(cxTextEdit20->Text);
							//补卡费
							ADOQuery2->Close();
							ADOQuery2->SQL->Clear();
							tmpsql = "insert into MX values(:BH,:KH,:SF_YE,";
							tmpsql = tmpsql + ":SFJE,:SYCS,:SFRQ,:JYNO,";
							tmpsql = tmpsql + ":GZZID,:SFLX,:CZY,:SCRQ)";
							ADOQuery2->SQL->Add(tmpsql);
							ADOQuery2->Parameters->ParamByName("BH")->Value = cxTextEdit5->Text;
							ADOQuery2->Parameters->ParamByName("KH")->Value = atoi(cxTextEdit18->Text.t_str());
							ADOQuery2->Parameters->ParamByName("SF_YE")->Value = 0;
							ADOQuery2->Parameters->ParamByName("SFJE")->Value = bkf;
							ADOQuery2->Parameters->ParamByName("SYCS")->Value = 0;
							ADOQuery2->Parameters->ParamByName("SFRQ")->Value = DateTimeToStr(Now());
							ADOQuery2->Parameters->ParamByName("JYNO")->Value = 0;
							ADOQuery2->Parameters->ParamByName("GZZID")->Value = 1;
							ADOQuery2->Parameters->ParamByName("SFLX")->Value = "G";
							ADOQuery2->Parameters->ParamByName("CZY")->Value = OperatorName;
							ADOQuery2->Parameters->ParamByName("SCRQ")->Value = DateTimeToStr(Now());
							ADOQuery2->ExecSQL();
							ADOQuery2->Close();

							//MXBAK
/*							ADOQuery2->SQL->Clear();
							tmpsql = "insert into MXBAK values(:BH,:KH,:SF_YE,";
							tmpsql = tmpsql + ":SFJE,:SYCS,:SFRQ,:JYNO,";
							tmpsql = tmpsql + ":GZZID,:SFLX,:CZY,:SCRQ)";
							ADOQuery2->SQL->Add(tmpsql);
							ADOQuery2->Parameters->ParamByName("BH")->Value = cxTextEdit5->Text;
							ADOQuery2->Parameters->ParamByName("KH")->Value = atoi(cxTextEdit18->Text.t_str());
							ADOQuery2->Parameters->ParamByName("SF_YE")->Value = StrToFloat(cxTextEdit17->Text.t_str());
							ADOQuery2->Parameters->ParamByName("SFJE")->Value = 0;//atoi(cxTextEdit20->Text.t_str());
							ADOQuery2->Parameters->ParamByName("SYCS")->Value = 0;
							ADOQuery2->Parameters->ParamByName("SFRQ")->Value = DateTimeToStr(Now());
							ADOQuery2->Parameters->ParamByName("JYNO")->Value = 0;
							ADOQuery2->Parameters->ParamByName("GZZID")->Value = 1;
							ADOQuery2->Parameters->ParamByName("SFLX")->Value = "F";
							ADOQuery2->Parameters->ParamByName("CZY")->Value = OperatorName;
							ADOQuery2->Parameters->ParamByName("SCRQ")->Value = DateTimeToStr(Now());
							ADOQuery2->ExecSQL();
							ADOQuery2->Close();

							ADOQuery2->SQL->Clear();
							tmpsql = "insert into MXBAK values(:BH,:KH,:SF_YE,";
							tmpsql = tmpsql + ":SFJE,:SYCS,:SFRQ,:JYNO,";
							tmpsql = tmpsql + ":GZZID,:SFLX,:CZY,:SCRQ)";
							ADOQuery2->SQL->Add(tmpsql);
							ADOQuery2->Parameters->ParamByName("BH")->Value = cxTextEdit5->Text;
							ADOQuery2->Parameters->ParamByName("KH")->Value = atoi(cxTextEdit18->Text.t_str());
							ADOQuery2->Parameters->ParamByName("SF_YE")->Value = 0;
							ADOQuery2->Parameters->ParamByName("SFJE")->Value = atoi(cxTextEdit20->Text.t_str());
							ADOQuery2->Parameters->ParamByName("SYCS")->Value = 0;
							ADOQuery2->Parameters->ParamByName("SFRQ")->Value = DateTimeToStr(Now());
							ADOQuery2->Parameters->ParamByName("JYNO")->Value = 0;
							ADOQuery2->Parameters->ParamByName("GZZID")->Value = 1;
							ADOQuery2->Parameters->ParamByName("SFLX")->Value = "G";
							ADOQuery2->Parameters->ParamByName("CZY")->Value = OperatorName;
							ADOQuery2->Parameters->ParamByName("SCRQ")->Value = DateTimeToStr(Now());
							ADOQuery2->ExecSQL();
							ADOQuery2->Close();         */


                            beepofreaddll(readcomno, '10');
							ShowMessage("挂失补发新卡成功!");

							ADOQuery1->Close();
							InDatabaseADOQuery->Close();
						//	this->Close();
						}
					}
				}
			}
		}
	}
Beispiel #26
0
//---------------------------------------------------------------------------
void __fastcall TFormMain::Calendar1Change(TObject *Sender)
{
  Caption = "Calendar Browser   " + DateToStr(Calendar1->CalendarDate);        
}
Beispiel #27
0
//---------------------------------------------------------------------------
// Guarda en el fichero ema.cfg la configuracion presente en la ventana de configuracion.
//---------------------------------------------------------------------------
void __fastcall TFConfigMeteo::BAjustes_MeteoClick(TObject *Sender)
{

  if(Application->MessageBox("¿Desea guardar ajustes?", "ATENCION", MB_OKCANCEL ) == IDCANCEL )
  {
     return;
  }
   strcpy(&ConfMeteo[0], "cfg:");
   strncpy(&ConfMeteo[5], EKPluvio->Text.c_str(),3);
   strncpy(&ConfMeteo[9], ELimiteNubes->Text.c_str(),3);
   strncpy(&ConfMeteo[13], EOffset_Bar->Text.c_str(),3);
   strncpy(&ConfMeteo[17], EAltura_Bar->Text.c_str(),3);

   strncpy(&ConfMeteo[21], Ezener1->Text.c_str(),3);
   strncpy(&ConfMeteo[25], Ezener2->Text.c_str(),3);
   strncpy(&ConfMeteo[29], Ezener3->Text.c_str(),3);
   strncpy(&ConfMeteo[33], Ezener4->Text.c_str(),3);
   strncpy(&ConfMeteo[37], Ezener5->Text.c_str(),3);
   strncpy(&ConfMeteo[41], Ezener6->Text.c_str(),3);

//   strncpy(&ConfMeteo[45], EMinFichero->Text.c_str(),1);

   strncpy(&ConfMeteo[49], EOffset_IR->Text.c_str(),3);
   strncpy(&ConfMeteo[53], EOffset_UV->Text.c_str(),3);
   strncpy(&ConfMeteo[58], EKAnem_mec->Text.c_str(),3);
   strncpy(&ConfMeteo[62], EK1Anem_term->Text.c_str(),4);
   strncpy(&ConfMeteo[67], EK2Anem_term->Text.c_str(),4);

   strcpy(&ConfMeteo[80], TimeToStr(Time()).c_str());
   strcpy(&ConfMeteo[90], DateToStr(Date()).c_str());

   strcpy(&ConfMeteo[110], EDirectorio->Text.c_str() );
   strcpy(&ConfMeteo[210], Ejpg->Text.c_str() );

  strcpy(temp,  dir_trab);
  strcat(temp, "ema.cfg");

   if((conf_ema = fopen(temp, "wt")) != NULL)
   {
      fwrite(ConfMeteo, sizeof(ConfMeteo), 1, conf_ema);
      fclose(conf_ema);
   }

   //Refresca la matriz de configuracion con los nuevos datos
   confEMA.kpluvio = atoi(EKPluvio->Text.c_str());
   confEMA.alerta_nube = atoi(ELimiteNubes->Text.c_str());
   confEMA.bar_ofset = atoi(EOffset_Bar->Text.c_str());
   confEMA.bar_altura = atoi(EAltura_Bar->Text.c_str());

   for (int sens = 0; sens<6; sens++) // se actualiza Referencia
   {
    // Referencia[sens] = Ref[sens];
     confEMA.RefZener[sens] = Ref[sens];
   }
   confEMA.luzIR_ofset = atoi(EOffset_IR->Text.c_str());
   confEMA.luzUV_ofset = atoi(EOffset_UV->Text.c_str());
   confEMA.kmecanico = atoi(EKAnem_mec->Text.c_str());
   confEMA.k1termico = atoi(EK1Anem_term->Text.c_str());
   confEMA.k2termico = atoi(EK2Anem_term->Text.c_str());
   strcpy(confEMA.direc_datos,  EDirectorio->Text.c_str());
   strcpy(confEMA.direc_jpg,  Ejpg->Text.c_str());
}
Beispiel #28
0
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// Блок действий с работой/доплатой
//------------------------------------------------------------------------------
//=====================================================================
// добавление/редактирование работы
TWork* TController::addWork()
{
	bool payment = false;	// добавляется доплата или работа
	if(formWork->rgType->ItemIndex == 1)
		payment = true;
	//--------------------------------------------------------------------------
	/* 1) проверяются, заполнены ли все поля  */
	if((Trim(formWork->edtNumber->Text) == "") || (Trim(formWork->memoTitle->Text) == ""))
	{
		ShowMessage("Не все поля заполнены!");
		return NULL;
	}
	//--------------------------------------------------------------------------
	// если добавляется доплата, смотрим, есть ли такая работа
	if(payment)
	{
		bool flag = false; // есть ли такая работа
		int wnum = 0;
		for(int i=0; i<selectedKHR->Works.size(); i++)
		{
			if(StrToInt(formWork->edtNumber->Text) == selectedKHR->Works[i]->ulWorkNum)
			{
				flag = true;
				wnum = i;
			}
		}
		if(!flag)
		{
			ShowMessage("Нет работы, к которой добавляется доплата.");
			return NULL;
		}
		else if (selectedKHR->Works[wnum]->havePayment && selectedWork == NULL)
		{
			ShowMessage("У этой работы уже есть доплата.");
			return NULL;
		}
	}
	else
	/* проверка на наличие такой работы */
	{
		for(int i=0; i<selectedKHR->Works.size(); i++)
		{
			// собственный номер работы пропускается
			if((selectedWork != NULL) && (selectedWork->ulWorkNum == selectedKHR->Works[i]->ulWorkNum))
				break;
			else if(StrToInt(formWork->edtNumber->Text) == selectedKHR->Works[i]->ulWorkNum && (!payment))
			{
				ShowMessage("Работа с таким номером существует!");
				return NULL;
			}
		}
	}
	//--------------------------------------------------------------------------
	/* проверка правильности ввода дат начала и окончания */
	if((int)formWork->dtStartDate->Date > (int)formWork->dtEndDate->Date)
	{
		ShowMessage("Работа не может начинаться раньше, чем заканчивается!");
		return NULL;
	}
	//--------------------------------------------------------------------------
	/* заполнение информации о работе */
	TWork *newWork = new TWork;
	newWork->ulWorkNum = StrToInt(formWork->edtNumber->Text);
	if(payment)
		newWork->bPayment = true;
	else
		newWork->bPayment = false;
	newWork->szTitle = STR(formWork->memoTitle->Text);
	for (int i=0; i < formWork->sgWorks->RowCount; i++)
	{
		if(formWork->sgWorks->Cells[0][i] != "")
		{
			if(StrToInt(formWork->sgWorks->Cells[0][i]) != newWork->ulWorkNum)
			{
				if(Model->existWork(selectedKHR, StrToInt(formWork->sgWorks->Cells[0][i])))
				{
					// добавить проверку на наличие такой работы в КХР
					TDependance *dep=new TDependance;
					dep->ulWork = StrToInt(formWork->sgWorks->Cells[0][i]);
					if(formWork->listReq->Items->Item[i]->Checked == true)
						dep->bNeedToStart = true;
					else
						dep->bNeedToStart = false;
					newWork->WorkDep.push_back(dep);
				}
				else
				{
					ShowMessage("Нет работы с номером, указанным в зависимости!");
					delete newWork;
					return NULL;
				}
			}
			else
			{
				ShowMessage("У работы не может быть связь от самой себя!");
				delete newWork;
				return NULL;
			}
		}
	}
	newWork->dtStart = StrToDate(DateToStr(formWork->dtStartDate->Date));
	newWork->dtEnd	 = StrToDate(DateToStr(formWork->dtEndDate->Date));
	newWork->ulLength = Model->numWorkDays(newWork->dtStart, newWork->dtEnd);
	newWork->center.x = workCoord.x;
	newWork->center.y = workCoord.y;

	/* 	в случае если происходит редактирование работы,
		её состояние и координаты должны сохраняться */
	if(!formMain->AddOrEdit)
		newWork->eWorkState = selectedWork->eWorkState;
	else
		newWork->eWorkState = E_WS_OPEN;


	//--------------------------------------------------------------------------
	/* 3) проверка на корректность связей: для доплаты проверка не производится */
	if (formWork->cbCorrect->Checked == true && !payment)
	{
		if(!checkWork(selectedKHR, newWork))
		{
			ShowMessage("Связи некорректны! ");
			delete newWork;
			return NULL;
		}
	}
	//--------------------------------------------------------------------------
	/* 4) проверка на наличие исполнителей */
	for (int i=0; i < formWork->sgVolume->RowCount; i++)
	{
		if(formWork->sgVolume->Cells[0][i] != "") //если строчка заполнена
		{
			// проверка на наличие исполнителя
			if(!Model->checkExecutor(selectedKHR, STR(formWork->sgVolume->Cells[0][i])))
			{
				if(MessageDlg("Такого исполнителя: " + formWork->sgVolume->Cells[0][i]+ " - не существует! Добавить в список?",
					mtInformation, TMsgDlgButtons() << mbNo << mbYes , 7) == 7)
				{
					// нажата кнопка "Отмена"
					delete newWork;
					return NULL;
				}
				else
				{
					// добавление нового исполнителя в список
					Model->addExecutor(selectedKHR, STR(formWork->sgVolume->Cells[0][i]));

					TWorkVolume *vol = new TWorkVolume;
					int id = Model->executorByName(selectedKHR, STR(formWork->sgVolume->Cells[0][i]));
					vol->ulExecutor = id;
					for(int j=1; j<formWork->sgVolume->ColCount; j++)
					{
						if(formWork->sgVolume->Cells[j][i] != "")
						{
							if(StrToFloat(Trim(formWork->sgVolume->Cells[j][i])) != 0)
							{
								bool k = Model->checkQuart(j, newWork->dtStart, newWork->dtEnd);
								if(!k)
								{
									ShowMessage("Неправильно распределена трудоёмкость по кварталам!");
									delete newWork;
									return NULL;
								}
							}
							vol->ulVolume[j-1] = StrToInt(formWork->sgVolume->Cells[j][i]);
						}
						else
							vol->ulVolume[j-1] = 0;
					}
					newWork->WorkVolume.push_back(vol);
				}
			}
			else
			{
				// исполнитель существует
				TWorkVolume *vol = new TWorkVolume;
				int id = Model->executorByName(selectedKHR, STR(formWork->sgVolume->Cells[0][i]));
				vol->ulExecutor = id;

				for(int j=1; j<formWork->sgVolume->ColCount; j++)
				{
					if(formWork->sgVolume->Cells[j][i] != "")
					{
						if(StrToFloat(Trim(formWork->sgVolume->Cells[j][i])) != 0)
						{
							bool k = Model->checkQuart(j, newWork->dtStart, newWork->dtEnd);
							if(!k)
							{
								ShowMessage("Неправильно распределена трудоёмкость по кварталам!");
								delete newWork;
								return NULL;
							}
						}
						vol->ulVolume[j-1] = StrToInt(formWork->sgVolume->Cells[j][i]);
					}
					else
						vol->ulVolume[j-1] = 0;
				}
				newWork->WorkVolume.push_back(vol);
		 	}
		}
	}
    // установка связи доплаты с работой при редактировании доплаты
	if(payment)
		if(!formMain->AddOrEdit)
		{
			for(int i = 0;i < selectedKHR->Works.size(); i ++)
			{
				if(selectedKHR->Works[i]->ulWorkNum == newWork->ulWorkNum)
				{
					selectedKHR->Works[i]->havePayment = true;
					Model->addPayment(selectedKHR->Works[i], selectedWork);
				}
				if(selectedKHR->Works[i]->ulWorkNum == selectedWork->ulWorkNum)
				{
					selectedKHR->Works[i]->connectPayment.clear();
					selectedKHR->Works[i]->havePayment = false;
				}
			}
		}
	// Изменение номера редактируемой работы у связанных с ней работ, доплат, вех
	if(!formMain->AddOrEdit)
		if(selectedWork->ulWorkNum != newWork->ulWorkNum)
		{
			vector <TWork*> workNext = Model->getNext(selectedKHR, selectedWork);
			vector <TWork*> workPrev;
			for(int t = 0; t < workNext.size(); t ++)
				for(int i = 0; i < selectedKHR->Works.size(); i++)
					if(selectedKHR->Works[i]->ulWorkNum == workNext[t]->ulWorkNum)
					{
						for(int j = 0; j < selectedKHR->Works[i]->WorkDep.size(); j++)
							if(selectedKHR->Works[i]->WorkDep[j]->ulWork == selectedWork->ulWorkNum)
								selectedKHR->Works[i]->WorkDep[j]->ulWork = newWork->ulWorkNum;
					}
			for(int i = 0; i < selectedKHR->Payments.size(); i++)
				if(selectedKHR->Payments[i]->ulWorkNum == selectedWork->ulWorkNum)
					selectedKHR->Payments[i]->ulWorkNum = newWork->ulWorkNum;
			for(int i = 0; i < selectedKHR->Stages.size(); i++)
				if(selectedKHR->Stages[i]->ulStageNum == selectedWork->ulWorkNum)
					selectedKHR->Stages[i]->ulStageNum = newWork->ulWorkNum;
			for(int i =0; i < selectedKHR->Connects.size(); i++)
				if(selectedKHR->Connects[i]->begin == selectedWork->ulWorkNum)
					selectedKHR->Connects[i]->begin = newWork->ulWorkNum;
		}
	/* проверки пройдены, работа включается в список
	   новая работа => добавление */
	if(formMain->AddOrEdit)
	{
		selectedWork = newWork;
		if(formWork->rgType->ItemIndex == 0)
		{
			selectedKHR->Works.push_back(newWork);
			Model->addConnections(selectedKHR, selectedWork);
		}
		else
		{
			// нужно изменить информацию о работе, к кот. добавляется доплата
			TWork* pwork = getWorkByNum(selectedKHR, newWork->ulWorkNum);
			pwork->havePayment = true;
			Model->addPayment(pwork, newWork);
			selectedKHR->Payments.push_back(newWork);
		}
	}
	else
	{
		newWork->center.x = selectedWork->center.x ;
		newWork->center.y = selectedWork->center.y ;
		Model->editWork(selectedWork, newWork);
		if(!selectedWork->bPayment)
			Model->addConnections(selectedKHR, selectedWork);
		coordClear();
		delete newWork;
	}
 //	clearSelected();	// ни работа, ни КХР не выбрана
	return selectedWork;
}
Beispiel #29
0
wxString dlgRole::GetSql()
{
	int pos;
	wxString sql;
	wxString name = GetName();

	wxString passwd = txtPasswd->GetValue();
	bool createDB = chkCreateDB->GetValue(),
	     createRole = chkCreateRole->GetValue(),
	     superuser = chkSuperuser->GetValue(),
	     inherits = chkInherits->GetValue(),
	     canLogin = chkCanLogin->GetValue(),
	     replication = chkReplication->GetValue();

	if (role)
	{
		// Edit Mode

		AppendNameChange(sql, wxT("ROLE ") + role->GetQuotedFullIdentifier());


		wxString options;
		if (canLogin != role->GetCanLogin())
		{
			if (canLogin)
				options = wxT(" LOGIN");
			else
				options = wxT(" NOLOGIN");
		}
		if (canLogin && !passwd.IsEmpty())
			options += wxT(" ENCRYPTED PASSWORD ") + qtDbString(connection->EncryptPassword(name, passwd));

		if (createDB != role->GetCreateDatabase() || createRole != role->GetCreateRole()
		        || superuser != role->GetSuperuser() || inherits != role->GetInherits()
		        || replication != role->GetReplication())
		{
			options += wxT("\n ");

			if (superuser != role->GetSuperuser())
			{
				if (superuser)
					options += wxT(" SUPERUSER");
				else
					options += wxT(" NOSUPERUSER");
			}
			if (inherits != role->GetInherits())
			{
				if (inherits)
					options += wxT(" INHERIT");
				else
					options += wxT(" NOINHERIT");
			}
			if (createDB != role->GetCreateDatabase())
			{
				if (createDB)
					options += wxT(" CREATEDB");
				else
					options += wxT(" NOCREATEDB");
			}
			if (createRole != role->GetCreateRole())
			{
				if (createRole)
					options += wxT(" CREATEROLE");
				else
					options += wxT(" NOCREATEROLE");
			}
			if (connection->BackendMinimumVersion(9, 1))
			{
				if (replication != role->GetReplication())
				{
					if (replication)
						options += wxT(" REPLICATION");
					else
						options += wxT(" NOREPLICATION");
				}
			}
		}
		if (!datValidUntil->GetValue().IsValid() || DateToStr(datValidUntil->GetValue() + timValidUntil->GetValue()) != DateToStr(role->GetAccountExpires()))
		{
			if (datValidUntil->GetValue().IsValid())
				options += wxT("\n   VALID UNTIL ") + qtDbString(DateToAnsiStr(datValidUntil->GetValue() + timValidUntil->GetValue()));
			else if (!role->GetIsValidInfinity() && role->GetAccountExpires().GetValue() != -1)
				options += wxT("\n   VALID UNTIL 'infinity'");
		}

		if (txtConnectionLimit->GetValue().Length() == 0)
		{
			if (role->GetConnectionLimit() != -1)
			{
				options += wxT(" CONNECTION LIMIT -1");
			}
		}
		else
		{
			if (txtConnectionLimit->GetValue() != NumToStr(role->GetConnectionLimit()))
			{
				options += wxT(" CONNECTION LIMIT ") + txtConnectionLimit->GetValue();
			}
		}

		if (!options.IsNull())
			sql += wxT("ALTER ROLE ") + qtIdent(name) + options + wxT(";\n");

		if (!connection->BackendMinimumVersion(9, 5) &&
				chkUpdateCat->GetValue() != role->GetUpdateCatalog())
		{
			if (!connection->HasPrivilege(wxT("Table"), wxT("pg_authid"), wxT("update")))
				sql += wxT(" -- Can't update 'UpdateCatalog privilege: can't write to pg_authid.\n")
				       wxT("-- ");

			sql += wxT("UPDATE pg_authid SET rolcatupdate=") + BoolToStr(chkUpdateCat->GetValue())
			       + wxT(" WHERE OID=") + role->GetOidStr() + wxT(";\n");
		}
		int cnt = lbRolesIn->GetCount();
		wxArrayString tmpRoles = role->GetRolesIn();

		// check for added roles
		for (pos = 0 ; pos < cnt ; pos++)
		{
			wxString roleName = lbRolesIn->GetString(pos);

			int index = tmpRoles.Index(roleName);
			if (index >= 0)
			{
				// role membership unchanged
				tmpRoles.RemoveAt(index);
			}
			else
			{
				bool admin = false;
				if (roleName.Right(PGROLE_ADMINOPTION_LEN) == PGROLE_ADMINOPTION)
				{
					admin = true;
					roleName = roleName.Left(roleName.Length() - PGROLE_ADMINOPTION_LEN);
				}
				else
				{
					// new role membership without admin option
					index = tmpRoles.Index(roleName + PGROLE_ADMINOPTION);
					if (index >= 0)
					{
						// old membership with admin option
						tmpRoles.RemoveAt(index);
						sql += wxT("REVOKE ADMIN OPTION FOR ") + qtIdent(roleName)
						       + wxT(" FROM ") + qtIdent(name) + wxT(";\n");
						continue;
					}
				}

				index = tmpRoles.Index(roleName);
				if (index >= 0)
				{
					// admin option added to existing membership
					tmpRoles.RemoveAt(index);
				}

				sql += wxT("GRANT ") + qtIdent(roleName)
				       +  wxT(" TO ") + qtIdent(name);

				if (admin)
					sql += wxT(" WITH ADMIN OPTION");

				sql += wxT(";\n");
			}
		}

		// check for removed roles
		for (pos = 0 ; pos < (int)tmpRoles.GetCount() ; pos++)
		{
			sql += wxT("REVOKE ") + qtIdent(tmpRoles.Item(pos))
			       +  wxT(" FROM ") + qtIdent(name) + wxT(";\n");
		}
	}
	else
	{
		// Create Mode
		sql = wxT(
		          "CREATE ROLE ") + qtIdent(name);
		if (canLogin)
		{
			sql += wxT(" LOGIN");
			if (!passwd.IsEmpty())
				sql += wxT(" ENCRYPTED PASSWORD ") + qtDbString(connection->EncryptPassword(name, passwd));
		}

		if (createDB || createRole || !inherits || superuser)
			sql += wxT("\n ");
		if (superuser)
			sql += wxT(" SUPERUSER");
		if (!inherits)
			sql += wxT(" NOINHERIT");
		if (createDB)
			sql += wxT(" CREATEDB");
		if (createRole)
			sql += wxT(" CREATEROLE");
		if (connection->BackendMinimumVersion(9, 1))
		{
			if (replication)
				sql += wxT(" REPLICATION");
		}
		if (datValidUntil->GetValue().IsValid())
			sql += wxT("\n   VALID UNTIL ") + qtDbString(DateToAnsiStr(datValidUntil->GetValue() + timValidUntil->GetValue()));
		else
			sql += wxT("\n   VALID UNTIL 'infinity'");

		if (txtConnectionLimit->GetValue().Length() > 0)
		{
			sql += wxT(" CONNECTION LIMIT ") + txtConnectionLimit->GetValue();
		}

		int cnt = lbRolesIn->GetCount();
		wxString grants;

		if (cnt)
		{
			wxString roleName;

			for (pos = 0 ; pos < cnt ; pos++)
			{
				bool admin = false;
				roleName = lbRolesIn->GetString(pos);
				if (roleName.Right(PGROLE_ADMINOPTION_LEN) == PGROLE_ADMINOPTION)
				{
					roleName = roleName.Left(roleName.Length() - PGROLE_ADMINOPTION_LEN);
					admin = true;

				}
				grants += wxT("GRANT ") + qtIdent(roleName)
				          +  wxT(" TO ") + qtIdent(name);

				if (admin)
					grants += wxT(" WITH ADMIN OPTION;\n");
				else
					grants += wxT(";\n");
			}
		}
		sql += wxT(";\n") + grants;

		if (superuser && !chkUpdateCat->GetValue() &&
			!connection->BackendMinimumVersion(9, 5))
			sql += wxT("UPDATE pg_authid SET rolcatupdate=false WHERE rolname=") + qtDbString(name) + wxT(";\n");
	}

	wxArrayString vars;
	wxString dbname;
	wxString parameter;
	wxString value;

	size_t index;

	if (role)
	{
		for (index = 0 ; index < role->GetVariables().GetCount() ; index++)
			vars.Add(role->GetVariables().Item(index));
	}

	int cnt = lstVariables->GetItemCount();

	// check for changed or added vars
	for (pos = 0 ; pos < cnt ; pos++)
	{
		wxString newDb = lstVariables->GetText(pos);
		wxString newVar = lstVariables->GetText(pos, 1);
		wxString newVal = lstVariables->GetText(pos, 2);

		wxString oldVal;

		for (index = 0 ; index < vars.GetCount() ; index += 3)
		{
			dbname = vars.Item(index);
			parameter = vars.Item(index + 1);
			value = vars.Item(index + 2);

			if (newDb == dbname && newVar == parameter)
			{
				oldVal = value;
				vars.RemoveAt(index);
				vars.RemoveAt(index);
				vars.RemoveAt(index);
				break;
			}
		}
		if (oldVal != newVal)
		{
			if (newDb.Length() == 0)
				sql += wxT("ALTER ROLE ") + qtIdent(name);
			else
				sql += wxT("ALTER ROLE ") + qtIdent(name) + wxT(" IN DATABASE ") + newDb;

			if (newVar != wxT("search_path") && newVar != wxT("temp_tablespaces"))
			{
				sql += wxT("\n  SET ") + newVar + wxT(" = '") + newVal + wxT("';\n");
			}
			else
			{
				sql += wxT("\n  SET ") + newVar + wxT(" = ") + newVal + wxT(";\n");
			}
		}
	}

	// check for removed vars
	for (pos = 0 ; pos < (int)vars.GetCount() ; pos += 3)
	{
		dbname = vars.Item(pos);
		parameter = vars.Item(pos + 1);
		value = vars.Item(pos + 2);

		if (dbname.Length() == 0)
		{
			sql += wxT("ALTER ROLE ") + qtIdent(name)
			       +  wxT(" RESET ") + parameter
			       + wxT(";\n");
		}
		else
		{
			sql += wxT("ALTER ROLE ") + qtIdent(name) + wxT(" IN DATABASE ") + dbname
			       +  wxT(" RESET ") + parameter + wxT(";\n");
		}
	}

	AppendComment(sql, wxT("ROLE"), 0, role);

	if (seclabelPage && connection->BackendMinimumVersion(9, 2))
		sql += seclabelPage->GetSqlForSecLabels(wxT("ROLE"), qtIdent(name));

	return sql;
}
Beispiel #30
0
//---------------------------------------------------------------------------
void __fastcall TDForm::FormCreate(TObject *Sender)
{
	Label6->Caption = DateToStr(DateTimePicker1->Date.DateString());
	Label7->Caption = DateToStr(DateTimePicker2->Date.DateString());
	Label12->Caption = DateToStr(DateTimePicker3->Date.DateString());
}