//--------------------------------------------------------------------------- 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; }
//--------------------------------------------------------------------------- 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(); }
//--------------------------------------------------------------------------- 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(); }
//--------------------------------------------------------------------------- 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; }
__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; } }
//--------------------------------------------------------------------------- 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; }
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); } }
//--------------------------------------------------------------------------- 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; } }
//--------------------------------------------------------------------------- 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; } }
//--------------------------------------------------------------------------- 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; }
//--------------------------------------------------------------------------- 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(); } }
//--------------------------------------------------------------------------- // //--------------------------------------------------------------------------- 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 }
//--------------------------------------------------------------------------- //填充自动值 //--------------------------------------------------------------------------- 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循环结束 } //数据集 }
void __fastcall TCounterpartyRouteSheet::SearchButtonClick(TObject *Sender) //Поиск по организациям { Counterparty->Filtered = true; Counterparty->Filter = "Организация =" + QuotedStr(SearchString->Text); }
//--------------------------------------------------------------------------- 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; } } }
//--------------------------------------------------------------------------- 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(); }
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; }