Ejemplo n.º 1
0
//---------------------------------------------------------------------------
void __fastcall TFrmAlterPwd::BtnOKClick(TObject *Sender)
{

     AnsiString sqltxt = "update T_en_user set ur_Password=%s where ur_UserID=%s";


      if (Lguser.sPwd !=EdtOldPwd->Text)
      {
        ShowDlg("原密码有误",DLG_ERROR);
        EdtOldPwd->SetFocus();
        return ;
      }  
      if (EdtNewPwd->Text!=EdtComfirPwd->Text)
      {
        ShowDlg("新密码与确认密码不一致!",DLG_ERROR);
        EdtNewPwd->SetFocus();
        return ;
      }
     sqltxt  = Format(sqltxt,ARRAYOFCONST((QuotedStr(EdtNewPwd->Text),QuotedStr(Lguser.sLoginNo))));
   
     dmMain->FindBySql(sqltxt,false,NULL);
     Lguser.sPwd = EdtNewPwd->Text;
     ShowDlg("密码修改成功",DLG_INFORMATION);
     ModalResult =mrOk;
   
}
Ejemplo n.º 2
0
//---------------------------------------------------------------------------
void __fastcall TPrd3003::BtOKClick(TObject *Sender)
{
	String SQL;
	SQL = "SELECT p.cod_familia, f.den_familia,"\
					" p.cod_produto, p.den_produto,"\
					" p.qtd_estoque, p.qtd_estoque_min,"\
					" (p.preco_custo * p.qtd_estoque) valor_estoque,"\
					" p.cod_unid_medida"\
			 " FROM tbl_produto p, tbl_familia f"\
			" WHERE p.cod_familia = f.cod_familia"\
			  " AND p.controla_estoque= 'S'";
	if(cod_familia->Text.Length()) {
		SQL += " AND p.cod_familia = " + cod_familia->Text;
	}
	if(cod_produto_ini->Text.Length()) {
		SQL += " AND p.cod_produto >= " + QuotedStr(cod_produto_ini->Text);
	}
	if(cod_produto_fim->Text.Length()) {
		SQL += " AND p.cod_produto <= " + QuotedStr(cod_produto_fim->Text);
	}
	if(Abaixo->Checked) {
		SQL += " AND (p.qtd_estoque < p.qtd_estoque_min)";
	}
	SQL += " ORDER BY p.cod_familia,p.cod_produto";
	TPrd3004 *Prd3004 = new TPrd3004(Owner);
	Prd3004->QyEstoque->Close();
	Prd3004->QyEstoque->SQL->Text = SQL;
	Prd3004->QyEstoque->Active = true;
   if(Prd3004->RpRelatBase->PrepareReport(true))
      Prd3004->RpRelatBase->ShowPreparedReport();
	Close();
}
Ejemplo n.º 3
0
//---------------------------------------------------------------------------
void __fastcall TObf1003::btOKClick(TObject *Sender)
{
	TZQuery *QyImport;
   String sDateTime;
	if (num_pedido_venda == 0) {
		MessageBox(Handle,"Selecione ao menos um pedido para importação!",Caption.c_str(),APP_INFORM);
		return;
	}
	QyPedidoVenda->DisableControls();
	QyPedidoVenda->First();
   //Deve validar se foi informado a natureza de operação para importação
   while (!QyPedidoVenda->Eof) {
		if (QyPedidoVenda->FieldByName("importado")->AsString == "S") {
         if (QyPedidoVenda->FieldByName("natureza_operacao")->AsInteger == 0) {
		      MessageBox(Handle,"Não foi informado a natureza de operação!",Caption.c_str(),APP_INFORM);
            ListItens->SelectedField = QyPedidoVenda->FieldByName("natureza_operacao");
		      QyPedidoVenda->EnableControls();
            return;
         }
      }
      QyPedidoVenda->Next();
   }
	QyImport = new TZQuery(Application);
	QyImport->Connection = AppConnection;
	pnProgress->Show();
	ProgressImport->Max = num_pedido_venda;
	Application->ProcessMessages();
	QyPedidoVenda->First();
	while (!QyPedidoVenda->Eof) {
		if (QyPedidoVenda->FieldByName("importado")->AsString == "S") {
         if (!SfgDataCenter->StartTrans()) {
            MessageBox(Handle,"Erro ao iniciar uma transação no banco de dados", "Mensagem de Erro", APP_ERROR);
            break;
         }
			try {
            DateTimeToString(sDateTime, "yyyy-mm-dd hh:nn:ss", Now());
				QyImport->SQL->Text = "CALL fatura_pedido_venda(" \
                                   + QyPedidoVenda->FieldByName("cod_pedido_venda")->AsString + "," \
                                   + QuotedStr(AppUser->CodEmpresa) + "," \
                                   + QyPedidoVenda->FieldByName("natureza_operacao")->AsString + "," \
                                   + QuotedStr(AppUser->Usuario) + "," \
                                   + QuotedStr(sDateTime) + ");";
				QyImport->ExecSQL();
            SfgDataCenter->CommitTrans();
			} catch(Exception &e){
            SfgDataCenter->RollbackTrans();
				String Msg = "Ocorreu o seguinte erro ao importar o pedido de venda " + QyPedidoVenda->FieldByName("cod_pedido_venda")->AsString + ":\n";
				Msg = Msg + e.Message;
				MessageBox(NULL,Msg.c_str(), "Mensagem de Erro", APP_ERROR);
			}
			ProgressImport->StepIt();
			Application->ProcessMessages();
		}
		QyPedidoVenda->Next();
	}
	if (AfterImport != NULL)
		AfterImport();
	Close();
}
Ejemplo n.º 4
0
//---------------------------------------------------------------------------
void __fastcall TFrm1010::SaveMenuToXml()
{
   TXMLDocument *XMLSaveMenu = new TXMLDocument("");
   XMLSaveMenu->Active = true;
   XMLSaveMenu->Version = "1.0";
   XMLSaveMenu->Encoding = "utf-8";
   _di_IXMLNode pXmlNode = XMLSaveMenu->AddChild("MenuSFG");
   _di_IXMLNode pXmlItem = NULL;

   String sCmdSQL;
   TBookmark SavePlace = CadMenu->GetBookmark();
   CadMenu->DisableControls(); //Para desativar a atualização da tela
   CadMenu->First();
   while (!CadMenu->Eof) {
      pXmlItem = pXmlNode->AddChild("MenuItem");
      pXmlItem->SetAttribute("cod_rotina",OleVariant(CadMenu->FieldByName("cod_rotina")->AsString));
      sCmdSQL = "INSERT INTO tbl_menu_sistema (cod_rotina, ord_rotina, cod_rotina_pai, den_rotina, programa, ico_index, modulo) VALUES (";

      sCmdSQL += QuotedStr(CadMenu->FieldByName("cod_rotina")->AsString);
      sCmdSQL = sCmdSQL + "," + CadMenu->FieldByName("ord_rotina")->AsInteger;
      if (CadMenu->FieldByName("cod_rotina_pai")->AsString.Length() > 0)
         sCmdSQL = sCmdSQL + "," + QuotedStr(CadMenu->FieldByName("cod_rotina_pai")->AsString);
      else
         sCmdSQL += ",NULL";
      sCmdSQL = sCmdSQL + "," + QuotedStr(CadMenu->FieldByName("den_rotina")->AsString);
      if (CadMenu->FieldByName("programa")->AsString.Length() > 0)
         sCmdSQL = sCmdSQL + "," + QuotedStr(CadMenu->FieldByName("programa")->AsString);
      else
         sCmdSQL += ",NULL";
      sCmdSQL = sCmdSQL + "," + CadMenu->FieldByName("ico_index")->AsInteger;
      if (CadMenu->FieldByName("modulo")->AsInteger > 0)
         sCmdSQL = sCmdSQL + "," + CadMenu->FieldByName("modulo")->AsInteger;
      else
         sCmdSQL += ",NULL";
      sCmdSQL += ");";
      
      pXmlItem->SetText(WideString(sCmdSQL));
      
      CadMenu->Next();
   }
   CadMenu->GotoBookmark(SavePlace);
   CadMenu->FreeBookmark(SavePlace);
   CadMenu->EnableControls(); //Para ativar a atualização da tela

   XMLSaveMenu->SaveToFile("MenuPadrao.xml");

   delete XMLSaveMenu;
}
Ejemplo n.º 5
0
__fastcall TFrmPickVal::TFrmPickVal(TComponent* Owner,TPickKind PickKind,AnsiString LocalText,OleVariant cdsdata)
    : TForm(Owner)
{
    FPickKind =PickKind;
    FLocalText = LocalText;
    AnsiString Sql;
    switch  (FPickKind)
    {
        case ptpay_Accc:
            AddColumn("pbn_BankNo","行号",80);
            AddColumn("pbn_BankName","行名",300,true);
           // AddColumn("pbn_Area","",0,true);
           // AddColumn("pbn_province","",0,true);
           // AddColumn("pbn_BankCode","",0,true);
            if (FLocalText !="")
            {
            // Fcdsdata->FieldByName("PBN_PROVINCE")->AsString +" "+Fcdsdata->FieldByName("PBN_AREA")->AsString+" "+Fcdsdata->FieldByName("PBN_BANKCODE")->AsString  ))
                  DynamicArray <AnsiString> StrArr;
                  Split(FLocalText,StrArr,';');
                  if (StrArr.Length>0)
                  {
                     FLocalStr = "pbn_province="+QuotedStr(StrArr[0]);
                  }
                  if (StrArr.Length>1)
                  {
                     FLocalStr += " and pbn_Area="+QuotedStr(StrArr[1]);
                  }
                  if (StrArr.Length>2)
                  {
                     FLocalStr += " and pbn_BankCode="+QuotedStr(StrArr[2]);
                  }
                  FLocalStr = "("+FLocalStr+")";
                  StrArr.Length = 0;
                   
            }
            btnsearchClick(btnsearch);
            break;
        case ptPay_OutAcc:
            AddColumn("oa_BankAcc","银行账号",120);
            AddColumn("oa_BankAccName","银行账户名",300,true);
            Sql = CnPay_OutAcc;
            LoadData(Sql,"");
            RzPanel1->Visible =false; 
            break;
         
    }
}
Ejemplo n.º 6
0
//---------------------------------------------------------------------------
bool __fastcall TFrm1010::ValidaCampos()
{
	String SQL;
	SQL = "SELECT cod_rotina FROM tbl_menu_sistema" \
			" WHERE cod_rotina = " + QuotedStr(cod_rotina->Text);
	if(ValidacoesDB::ExistePrimaryKey(AppConnection,SQL)) {
		MessageBox(Handle, "Rotina de menu já cadastrada!",Caption.c_str(),APP_ATENTION);
		cod_rotina->SetFocus();
		return false;
	}
	return true;
}
Ejemplo n.º 7
0
void __fastcall TFrmBankNumber::GetArea()
{
    
   AnsiString tmpcode =VarToStr(edtpn_Code->Value);
   if (tmpcode=="")
   tmpcode = CdsmasterPBN_PROVINCE->AsString;
   if  (tmpcode =="")
   {
      cdsarea->Close();
   }
   else
   {
     if ((cdsarea->Active) & (cdsareapn_Code->AsString == tmpcode)) return ;
     AnsiString tmp ="select * from Pay_Area where pn_Code ="+ QuotedStr(tmpcode);
     dmMain->FindBySql(tmp,true,cdsarea);
   }
}
Ejemplo n.º 8
0
//---------------------------------------------------------------------------
void __fastcall TSup1011::CodProdutoValidate(TField *Sender)
{
	String SQL;
	String sRet;
	if(Sender->DisplayText.Length() <= 0) {
		QyFornecProduto->FieldByName("den_produto")->AsString = "";
		return;
	}
	SQL = "SELECT den_produto FROM tbl_produto" \
			" WHERE cod_produto = " + QuotedStr(Sender->DisplayText);
	sRet = ValidacoesDB::GetDenominacaoByKey(AppConnection,SQL);
	if(sRet.Length() <= 0) {
		throw Exception("Produto não cadastrado!");
	} else {
		QyFornecProduto->FieldByName("den_produto")->AsString = sRet;
	}
}
Ejemplo n.º 9
0
//---------------------------------------------------------------------------
void __fastcall TFin3002::cod_fornecedorExit(TObject *Sender)
{
	String SQL;
	String sRet;
	if(cod_fornecedor->Text.Length() <= 0) {
		den_fornecedor->Text = "";
		return;
	}
	SQL = "SELECT den_fornecedor FROM tbl_fornecedor" \
			" WHERE cod_fornecedor = " + QuotedStr(cod_fornecedor->Text);
	sRet = ValidacoesDB::GetDenominacaoByKey(AppConnection,SQL);
	if(sRet.Length() <= 0) {
		MessageBox(Handle, "Fornecedor não cadastrado!",Caption.c_str(),APP_ATENTION);
		cod_fornecedor->SetFocus();
	} else {
		den_fornecedor->Text = sRet;
	}
}
Ejemplo n.º 10
0
//---------------------------------------------------------------------------
void EscolheProdutoFornecedor(TForm *pParent, String Fornecedor, SfgBrowseReturn OnBrowseReturn)
{
   String sSQL;
	sSQL = "SELECT p.cod_produto, p.den_produto, p.ies_ativo" \
           " FROM tbl_fornecedor_produto f, tbl_produto p" \
          " WHERE f.cod_fornecedor = "+ QuotedStr(Fornecedor) + \
            " AND p.cod_produto = f.cod_produto" \
          " ORDER BY p.cod_produto";
   TSfgMetaTable *MetaTable = AddMetaTable("tbl_produto");
	TfrmBrowse *frmBrowse = new TfrmBrowse(Application);
   CreateFieldDef(MetaTable->FieldByName("cod_produto"),frmBrowse->DataSet);
   CreateFieldDef(MetaTable->FieldByName("den_produto"),frmBrowse->DataSet);
   CreateFieldDef(MetaTable->FieldByName("ies_ativo"),frmBrowse->DataSet);
   CreateFields(frmBrowse->DataSet);
	frmBrowse->SQL = sSQL;
	frmBrowse->OnBrowseReturn = OnBrowseReturn;
	frmBrowse->ShowModal();
   delete frmBrowse;
}
Ejemplo n.º 11
0
//---------------------------------------------------------------------------
void __fastcall TFrm1010::CarregaMenu(TTreeNode *pParentItem)
{
	String TextNode;
	SfgMenuInfo *MenuInfo;
	TTreeNode *pChildItem = NULL;
	TTreeNode *pFirstItem = NULL;
	CadMenu->Filtered = false;
	if (pParentItem == NULL) {
		CadMenu->Filter = "cod_rotina_pai IS NULL";
	} else {
		MenuInfo = (SfgMenuInfo*)pParentItem->Data;
		CadMenu->Filter =  "cod_rotina_pai  = " + QuotedStr(MenuInfo->cod_rotina);
	}
	CadMenu->Filtered = true;
	CadMenu->First();
	while (!CadMenu->Eof) {
      MenuInfo = new SfgMenuInfo();
		MenuInfo->cod_rotina = CadMenu->FieldByName("cod_rotina")->AsString;
      if (CadMenu->FieldByName("programa")->AsString.Length() > 0) {
		   TextNode = CadMenu->FieldByName("programa")->AsString.UpperCase() + " - " + CadMenu->FieldByName("den_rotina")->AsString;
      } else {
		   TextNode = CadMenu->FieldByName("den_rotina")->AsString;
      }
		if (pParentItem == NULL) {
			pChildItem = TreeMenu->Items->AddObject(pParentItem, TextNode, (void*)MenuInfo);
		} else {
			pChildItem = TreeMenu->Items->AddChildObject(pParentItem, TextNode, (void*)MenuInfo);
		}
      pChildItem->ImageIndex = CadMenu->FieldByName("ico_index")->AsInteger;
      pChildItem->SelectedIndex = pChildItem->ImageIndex;
		if (pFirstItem == NULL) {
			pFirstItem = pChildItem;
		}
		CadMenu->Next();
	}
	while(pFirstItem != NULL) {
		CarregaMenu(pFirstItem);
		pFirstItem = pFirstItem->getNextSibling();
	}
}
Ejemplo n.º 12
0
//---------------------------------------------------------------------------
//
//---------------------------------------------------------------------------
void  __fastcall ASEditSvr::CheckRepeat()
{
  _di_IXMLNode lParentNode,lNode;
  String lsDistinctCols,lsDistCol,lsDistValue,lsSQL;
  PCPtr<PCStringList> lList(new PCStringList());
  long lIDExist;
  PCDataSet *lDataSet= NULL;
  ASEditDataSet *lObj;
  for(int i=0;i<fDataSets->Count;i++)
  {
	if(!fDataSets->ObjByIndex[i]->SaveToDB) continue;
	lObj = fDataSets->ObjByIndex[i];
	lDataSet = lObj->DataSetSvr->DataSet;
	lParentNode  = lObj->DefNode;
	lNode = lParentNode->ChildNodes->FindNode(WideString("DISTINCTCOLSSVR"));
    lsDistinctCols =String(lNode->Text).Trim();
    if(lsDistinctCols.IsEmpty()) continue;
    lList->SeparatedString = lsDistinctCols;
    for(int i=0;i<lList->Count;i++)
    {
      lDataSet->DataSet->First();
	  lsDistCol = lList->Strings[i];
      while(!lDataSet->DataSet->Eof)
      {
         lsDistValue = lDataSet->DataSet->FieldByName(lsDistCol)->AsString;
		 lsSQL =  " select count(*) from " + lDataSet->UpdateTable  +
                   " where (" + lsDistCol +" = " + QuotedStr(lsDistValue)+" ) ";
         if(lDataSet->DataSet->UpdateStatus() != usInserted)
            lsSQL =lsSQL + " and ("+  lDataSet->IDCols + " <> " + lDataSet->DataSet->FieldByName(lDataSet->IDCols)->AsString+" ) ";
         lIDExist = DBConnection->GetValue(lsSQL).ToInt();
         if(lIDExist >0)
           throw Exception("数据输入重复"+ lDataSet->ColAtt[lsDistCol]["NAME"] + " :" + lsDistValue);
         lDataSet->DataSet->Next();
      }//While RecordNext;
	}//For ColNext
  }//DataSetNext
}
Ejemplo n.º 13
0
//---------------------------------------------------------------------------
//填充自动值
//---------------------------------------------------------------------------
void __fastcall ASEditSvr::FillAutoValue()
{
  _di_IXMLNode lParentNode,lNode,lSubNode;
  String lsSNID,lsColCode,lsSNFormat,lsDefaultNo,lsTemp,lsSNValue,lsSQL,lsLastCode;
  long lIDExist,lRepeatTimes = 0;
  bool lDistinct,lRepeatError;
  PCDataSet *lDataSet = NULL;
  ASEditDataSet *lObj;
  for(int i=0;i<fDataSets->Count;i++)
  {
	if(!fDataSets->ObjByIndex[i]->SaveToDB) continue;
	lObj = fDataSets->ObjByIndex[i];
	lDataSet     = lObj->DataSetSvr->DataSet;
	lParentNode  = lObj->DefNode;
	lNode = lParentNode->ChildNodes->FindNode(WideString("AUTONOCOL"));
	if(!lNode) return;
	for(int j=0;j<lNode->ChildNodes->Count;j++)
	{
	  lSubNode    = lNode->ChildNodes->Nodes[j];
	  if(!BLNODENAMEIS(lSubNode,"COL")) continue;
	  lsSNID      = BLNODEATT(lSubNode,"ID").Trim();
	  lsColCode   = BLNODEATT(lSubNode,"CODE").Trim();
	  lsSNFormat  = BLNODEATT(lSubNode,"FORMAT").Trim();
	  lDistinct    = BLSAMESTR(BLNODEATT(lSubNode,"DISTINCT"),"TRUE");
	  lRepeatError = BLSAMESTR(BLNODEATT(lSubNode,"REPEATERROR"),"TRUE");
	  lsDefaultNo = BLNODEATT(lSubNode,"DEFAULT").Trim();
	  lDataSet->DataSet->First();
	  while(!lDataSet->DataSet->Eof)
	  {
		if(lDataSet->DataSet->UpdateStatus() != usInserted)
		{
		   lDataSet->DataSet->Next();
		   continue; //只有新插入记录才需要自动值
		}
		lsTemp = lDataSet->DataSet->FieldByName(lsColCode)->AsString.Trim();
		if(!lsDefaultNo.IsEmpty() && !BLSAMESTR(lsTemp,lsDefaultNo)) //已经输入了值
		{
		   lDataSet->DataSet->Next();
		   continue;
        }
		lsSNValue =BLTVTOAS(lObj->DataSetSvr->Values[lsSNFormat]);
		if(lDistinct)
		{
			lsSQL = String(" select count(*) from ")  + lDataSet->UpdateTable +
					" where " + lsColCode + " = " + QuotedStr(lsSNValue);
			lIDExist = DBConnection->GetValue(lsSQL).ToInt();
			while(lIDExist >0)
			{
				if(lRepeatError)throw Exception("数据输入重复:"+lDataSet->ColAtt[lsColCode]["NAME"] + " :" +lsSNValue);
				if((BLSAMESTR(lsLastCode,lsSNValue) &&  !lsLastCode.IsEmpty()) && lRepeatTimes > 3)
					   throw Exception("数据输入重复:"+lDataSet->ColAtt[lsColCode]["NAME"] + " :" +lsSNValue);
				lsLastCode = lsSNValue;
				lRepeatTimes++;
				lsSNValue = BLTVTOAS(lObj->DataSetSvr->Values[lsSNFormat]);
				lsSQL     = String(" select count(*) from ")  + lDataSet->UpdateTable +
						    " where " + lsColCode + " = " + QuotedStr(lsSNValue);
				lIDExist  = DBConnection->GetValue(lsSQL).ToInt();
			}
		 }
		 String lsOldValue =lDataSet->DataSet->FieldByName(lsColCode)->AsString ;
		 lDataSet->DataSet->Edit();
		 lDataSet->DataSet->FieldByName(lsColCode)->AsString = lsSNValue;
		 FieldChanged(lObj->Index,lsColCode,lsOldValue,lsSNValue);
		 EditDS->ObjByIndex[i]->valueChanged(lsColCode,lsOldValue,lsSNValue); //REFCols
		 lDataSet->DataSet->Next();
	  }//While循环结束
	}//For循环结束
  } //数据集
}
Ejemplo n.º 14
0
void __fastcall TCounterpartyRouteSheet::SearchButtonClick(TObject *Sender) //Поиск по организациям
{
 Counterparty->Filtered = true;
 Counterparty->Filter = "Организация =" + QuotedStr(SearchString->Text);

}
Ejemplo n.º 15
0
//---------------------------------------------------------------------------
void __fastcall TFrm1010::execBtPadraoExecute(TObject *Sender)
{
   TStringStream *StrStream;
	HRSRC HrSql;
	HGLOBAL SqlData;
	DWORD szbf;
   String sCodRotina, sSQL;

   if (MessageBox(Handle,"Confirma a carga do menu padrão do sistema?",Caption.c_str(),APP_QUESTION|MB_DEFBUTTON2) == IDNO)
      return;

   StrStream = new TStringStream("");
	HrSql = FindResource(HInstance, "MENUPADRAO", RT_RCDATA);
	SqlData = LoadResource(HInstance, HrSql);
   szbf = SizeofResource(HInstance, HrSql);
   StrStream->Write(SqlData,szbf);
   StrStream->Seek(0, soFromBeginning);

   XMLLoadMenu->LoadFromStream(StrStream); 

	TZQuery *QyMenuItem = new TZQuery(Application);
	QyMenuItem->Connection = AppConnection;

   IXMLNodeList *NodeList = XMLLoadMenu->ChildNodes;
   NodeList = NodeList->FindNode("MenuSFG")->ChildNodes;
   IXMLNode *InstNode = NULL;
   IXMLNodeList *AtrsNode = NULL;
   IXMLNode *AtrNode = NULL;

   int iNumInsts = NodeList->GetCount();
   for (int i=0; i < iNumInsts; i++) {
      InstNode = NodeList->Nodes[i];
      if (InstNode != NULL) {
         AtrsNode = InstNode->GetAttributeNodes();
         if (AtrsNode != NULL) {
            AtrNode = AtrsNode->FindNode("cod_rotina");
            if (AtrNode != NULL) {
               sCodRotina = String(AtrNode->Text).Trim();
               sSQL = "SELECT 1 FROM tbl_menu_sistema WHERE cod_rotina = " + QuotedStr(sCodRotina);
               if (!ValidacoesDB::ExistePrimaryKey(AppConnection, sSQL)) {
                  sSQL = InstNode->Text;
                  QyMenuItem->SQL->Text = sSQL;
                  try {
                     QyMenuItem->ExecSQL();
	               }
                  catch (Exception &e) {
                     String Msg = "Ocorreu o seguinte erro:\n" + e.Message +\
                      "\nAo executar o comando de ordem " + IntToStr(i+1) + \
                      " da carga do menu padrão.";
                     MessageBox(NULL,Msg.c_str(),"Mensagem de Erro",APP_ERROR);
                  }
               }
            }
         }
      }
   }

   delete QyMenuItem;
   delete StrStream;

   //Recarrega o menu
   FreeTreeNodes(TreeMenu->Items->GetFirstNode(), -1);
   CadMenu->Refresh();
   CarregaMenu(NULL);
   CadMenu->Filtered = false;
}
void __fastcall TModifActionneur::boutonConnexionClick(TObject *Sender)
{
        MYSQL *mySQL;
        MYSQL_RES *myRES;
        char requete[500];
        mySQL = mysql_init(NULL);

        sauvegarderModification->Enabled = false;
        if( connexionServeur->Checked == true)      //si l'opérateur a coché la connexion par serveur
        {
                //connecte a la base de données
                if (!mysql_real_connect(mySQL,"127.0.0.1", "root", "", "Granulimage", 0, NULL,0))
                {
                        //Affiche l'état echec dans un StatuBar
                        MessageBox(NULL, "Connexion impossible avec la base de données", "Erreur - Connexion", MB_OK | MB_ICONERROR);
                }

                else    //si connexion ok
                {
                        MessageBox(NULL, "Connexion réussie avec la base de données", "Connexion", MB_OK | MB_ICONINFORMATION);
                        AnsiString Login = EditIdentifiant->Text;
                        AnsiString Password = EditPassword->Text;

                        //requete pour aller verifier la combinaison identifiant/password
                        sprintf(requete, "SELECT * FROM `compte_archivage` WHERE `Login` = %s AND Password = %s ",QuotedStr(Login),QuotedStr(Password));

                        /*Ce bloc de code permet de faire fonctionner la requette plus haut
                        en vérifiant que celle-ci s'est bien exécuter*/

                        if (!mysql_query(mySQL, requete))     //execute la requete
                        {
                                myRES = mysql_store_result(mySQL);
                                if (myRES)
                                {
                                        if(myRES->row_count == 0)       //si aucun resultat, mauvaise combinaison
                                        {
                                                MessageBox(NULL, "Login / Mot de passe inexistant", "Erreur - Connexion", MB_OK | MB_ICONERROR);
                                                EditPassword->Text = "";
                                                EditIdentifiant->Text = "";
                                                connexionLocal->Checked = false;
                                                connexionServeur->Checked = false;
                                        }
                                        else       //si résultat, on affiche l'outil de modification saisi du fichier de configuration
                                        {
                                                Boiteconnexion->Visible = false;
                                                Commande->Visible = true;
                                                RichEditFichierConfiguration->Visible = true;
                                        }
                                        mysql_free_result(myRES);      //on vide les resultats
                                }
                        }
                }
                mysql_close(mySQL);     //on ferme la connexion
        }
        else if( connexionLocal->Checked == true)     //si l'opérateur se connecte en local
        {
                FILE *fichierActuel;
                AnsiString Identifiant = EditIdentifiant->Text;
                AnsiString Password = EditPassword->Text;
                bool IdentifiantPassword = false;

                //on ouvre le fichier en lecture contenant les mots de passes
                fichierActuel = fopen("Archivage\\Compte\\Compte.txt", "r");

                /*si le système n'arrive pas à ouvrir le script, il affiche un message d'erreur, dans le cas contraire il va travailler dessus*/
                if(fichierActuel == NULL)
                        MessageBox(NULL, "Impossible d'ouvrir le fichier !", "Erreur - Ouverture fichier", MB_OK | MB_ICONERROR);
                else
                {
                                AnsiString intermediaire;
                                int i = 1;
                                AnsiString IdentifiantPass = Identifiant + " " + Password;
                                AnsiString IdentifiantPassFichier1, IdentifiantPassFichier2;
                                char * IdentifiantPassFichierIntermediaire1, *IdentifiantPassFichierIntermediaire2;
                                AnsiString Sauvegarde;
                                do
                                {
                                        i = i + 1;
                                        //on cherche le texte correspondant à l'identifiant dans le texte du fichier
                                        if(i == 2)
                                        {
                                                fscanf (fichierActuel,"%s",IdentifiantPassFichier1.c_str());     //on chercher un identifiant dans le fichier
                                                IdentifiantPassFichierIntermediaire1 = IdentifiantPassFichier1.c_str();
                                                Sauvegarde = IdentifiantPassFichierIntermediaire1;      //on le sauvegarde
                                        }
                                        //on cherche le texte correspondant au password dans le texte du fichier
                                        if(i == 3)
                                        {
                                                fscanf (fichierActuel,"%s",IdentifiantPassFichier1.c_str());    //on cherche le password dans le fichier
                                                IdentifiantPassFichierIntermediaire2 = IdentifiantPassFichier1.c_str();
                                                intermediaire = Sauvegarde + " " + AnsiString(IdentifiantPassFichierIntermediaire2);     //on concatene l'identifiant et le mot de passe trouvé dans le fichier
                                                if(intermediaire == IdentifiantPass)      //on le compare a celui saisi par l'opérateur, si sont equivalent, on passe le flag a true pour dire qu'on a trouvé
                                                {
                                                        IdentifiantPassword = true;
                                                }
                                                else
                                                {
                                                        i = 1;    //dans le cas contraire on continue de chercher
                                                }
                                        }


                                }while (!feof(fichierActuel) && IdentifiantPassword == false);       //on cherche tant qu'on arrive pas a la fin du fichier ou qu'on a pas trouvé la combinaison

                        //Si le système n'arrive pas a fermer le script, il affiche un message d'erreur
                        if(fclose(fichierActuel) == EOF)
                                MessageBox(NULL, "La fermeture du fichier \"Traiter.scr\" a échoué", "Erreur - Fermeture fichier", MB_OK | MB_ICONERROR);
                }

                        if(IdentifiantPassword == false)    //si pas trouve la combinaison, erreur
                        {
                                ShowMessage("Login / Mot de passe inexistant");
                                EditPassword->Text = "";
                                EditIdentifiant->Text = "";
                                connexionLocal->Checked = false;
                                connexionServeur->Checked = false;
                        }
                        else    //si combinaison trouvé, debloque l'outil de modification saisi du fichier de configuration
                        {
                                Boiteconnexion->Visible = false;
                                Commande->Visible = true;
                                RichEditFichierConfiguration->Visible = true;
                        }


        }
}
Ejemplo n.º 17
0
//---------------------------------------------------------------------------
void __fastcall TFin3002::btRelatorioClick(TObject *Sender)
{
	String SQL;
	System::TDateTime dt_data_ini, dt_data_fim;
	String str_data_ini, str_data_fim;
	String str_situacao;
	dt_data_ini = dt_data_fim = 0;

	SQL = "SELECT * FROM cns_conta_pagar WHERE 1=1";
	if (cod_fornecedor->Text.Length()) {
		SQL += " AND cod_fornecedor = " + QuotedStr(cod_fornecedor->Text);
	}
	if (cod_plano_conta_ini->Text.Length()) {
		SQL += " AND cod_plano_conta >= " + QuotedStr(cod_plano_conta_ini->Text);
	}
	if (cod_plano_conta_fim->Text.Length()) {
		SQL += " AND cod_plano_conta <= " + QuotedStr(cod_plano_conta_fim->Text);
	}
	if (cod_centro_custo_ini->Text.Length()) {
		SQL += " AND cod_centro_custo >= " + QuotedStr(cod_centro_custo_ini->Text);
	}
	if (cod_centro_custo_fim->Text.Length()) {
		SQL += " AND cod_centro_custo <= " + QuotedStr(cod_centro_custo_fim->Text);
	}
	if(data_ini->Text.Length()) {
	try {
		str_data_ini = data_ini->EditText + " 00:00:00";
		dt_data_ini = StrToDateTime(str_data_ini);
		SQL += " AND data_cadastro >= :data_ini";
	} __finally {}
	}
	if(data_fim->Text.Length()) {
	try {
		str_data_fim = data_fim->EditText + " 23:59:59";
		dt_data_fim = StrToDateTime(str_data_fim);
		SQL += " AND data_cadastro <= :data_fim";
	} __finally {}
	}
	//Verifica se foram selecionadas todas as situações
	if (!(ckPendente->Checked &&
			ckAndamento->Checked &&
			ckLiquidado->Checked &&
			ckCancelado->Checked)) {
		str_situacao = "";
		//Faz uma junção de cada situação.
		if (ckPendente->Checked)
			str_situacao += (str_situacao.Length())? ",'P'":"'P'";
		if (ckAndamento->Checked)
			str_situacao += (str_situacao.Length())? ",'A'":"'A'";
		if (ckLiquidado->Checked)
			str_situacao += (str_situacao.Length())? ",'L'":"'L'";
		if (ckCancelado->Checked)
			str_situacao += (str_situacao.Length())? ",'C'":"'C'";
		SQL += " AND ies_situacao IN (" + str_situacao + ")";
	}
	switch (rbAgrupamento->ItemIndex) {
		case 0:
			SQL += " ORDER BY cod_fornecedor, cod_conta_pagar";
			ConsultaPorFornecedor(SQL,dt_data_ini, dt_data_fim);
			break;
		case 1:
			SQL += " ORDER BY ord_situacao, cod_conta_pagar";
			ConsultaPorSitacao(SQL,dt_data_ini, dt_data_fim);
			break;
		case 2:
			SQL += " ORDER BY cod_plano_conta, cod_conta_pagar";
			ConsultaPorContaContabil(SQL,dt_data_ini, dt_data_fim);
			break;
		case 3:
			SQL += " ORDER BY cod_centro_custo, cod_conta_pagar";
			ConsultaPorCentroCusto(SQL,dt_data_ini, dt_data_fim);
			break;
		default:
			SQL += " ORDER BY cod_fornecedor, cod_conta_pagar";
			ConsultaPorFornecedor(SQL,dt_data_ini, dt_data_fim);
	}
	//Close();
}
Ejemplo n.º 18
0
AnsiString _fastcall  TSaveObj::BuildSql(TDataSet* ADS)
{
    AnsiString FieldStr, ParamStr ="";
    int i =0;
    AnsiString FieldFmt,ParamFmt;
    AnsiString tmp;
    TDateTime atime;
    AnsiString tmpstr;
    DynamicArray <AnsiString> FPrimaryKeys;
    TUpdateStatus Status = ADS->UpdateStatus();
     Field_Info tmpfield ;
    if (Status == usInserted)
    {
       FieldFmt = ",%s";
       ParamFmt = ",%s";
       for (i = 0;i < FFieldInfoArr.Length;i++)
       {
             FieldStr = FieldStr + Format(FieldFmt,ARRAYOFCONST((FFieldInfoArr[i].FieldName)));
             if  (FFieldInfoArr[i].FieldType == ftString)
                  ParamStr = ParamStr + Format(ParamFmt,ARRAYOFCONST((QuotedStr(FFieldInfoArr[i].FieldValue))));
             else if (FFieldInfoArr[i].FieldType == ftDateTime)
             {

                  TryStrToDateTime(FFieldInfoArr[i].FieldValue,atime) ;
                  AnsiString tmp = cnDateFormat;
                  tmpstr=FormatDateTime("YYYYMMDD",atime);
                  ParamStr = ParamStr + Format(ParamFmt,ARRAYOFCONST(("to_date("+QuotedStr(tmpstr)+",'"+ tmp +"')")));

             }
             else
                  ParamStr = ParamStr + Format(ParamFmt,ARRAYOFCONST((FFieldInfoArr[i].FieldValue)));
       }
       FieldStr.Delete(1,1);
       ParamStr.Delete(1,1);
       tmp = Format("insert into %s(%s) values (%s)",ARRAYOFCONST((GetTableName(),FieldStr,ParamStr)));

    }
    else if (Status == usModified)
    {
       if (FFieldInfoArr.Length ==0)
          return "";
       //    throw Exception(Format("%s没有指定要更新的字段",ARRAYOFCONST((GetTableName()))));
       //得到更新的字段
        ParamFmt = ",%s=%s";
        for (i = 0;i < FFieldInfoArr.Length;i++)
        {
           if  (FFieldInfoArr[i].FieldType == ftString)
                ParamStr = ParamStr + Format(ParamFmt,ARRAYOFCONST((FFieldInfoArr[i].FieldName,QuotedStr(FFieldInfoArr[i].FieldValue))));
           else if (FFieldInfoArr[i].FieldType == ftDateTime)
           {
               TryStrToDateTime(FFieldInfoArr[i].FieldValue,atime) ;
               AnsiString tmp = cnDateFormat;
               tmpstr=FormatDateTime("YYYYMMDD",atime);
               ParamStr = ParamStr + Format(ParamFmt,ARRAYOFCONST((FFieldInfoArr[i].FieldName,"to_date("+QuotedStr(tmpstr)+",'"+tmp+"')")));

           }
           else
                ParamStr = ParamStr + Format(ParamFmt,ARRAYOFCONST((FFieldInfoArr[i].FieldName,FFieldInfoArr[i].FieldValue)));
        }
       //得到主键值
       ADS->Prior();
       Split(GetPrimaryKey(),FPrimaryKeys);
       FieldFmt =" and %s=%s";
       for (i = 0;i < FPrimaryKeys.Length;i++)
       {
           tmpfield = AssignFieldVal(ADS,FPrimaryKeys[i]);
           if  (tmpfield.FieldType == ftString)
              FieldStr = FieldStr + Format(FieldFmt,ARRAYOFCONST((FPrimaryKeys[i],QuotedStr(tmpfield.FieldValue))));
           else
              FieldStr = FieldStr + Format(FieldFmt,ARRAYOFCONST((FPrimaryKeys[i],tmpfield.FieldValue)));
       }
       ADS->Next();
       FieldStr.Delete(1,4);
       ParamStr.Delete(1,1);
       tmp = Format("update %s set %s where %s",ARRAYOFCONST((GetTableName(),ParamStr,FieldStr)));
    }
    else if (Status == usDeleted)
    {
       Split(GetPrimaryKey(),FPrimaryKeys);
       FieldFmt =" and %s=%s";
       for (i = 0;i < FPrimaryKeys.Length;i++)
       {
            tmpfield = AssignFieldVal(ADS,FPrimaryKeys[i]);
           if  (FFieldInfoArr[i].FieldType == ftString)
              FieldStr = FieldStr + Format(FieldFmt,ARRAYOFCONST((FPrimaryKeys[i],QuotedStr(tmpfield.FieldValue))));
           else
              FieldStr = FieldStr + Format(FieldFmt,ARRAYOFCONST((FPrimaryKeys[i],tmpfield.FieldValue)));
       }
       FieldStr.Delete(1,4);
       tmp = Format("delete from %s where %s",ARRAYOFCONST((GetTableName(),FieldStr)));
    }
    FPrimaryKeys.Length = 0;
    tmp = tmp;
    return tmp;
}