Firedac VCL - Hinzufügen einer Master -Datensatz -Brennungsdetail -Tabelle AnzeigeC++

Programme in C++. Entwicklerforum
Anonymous
 Firedac VCL - Hinzufügen einer Master -Datensatz -Brennungsdetail -Tabelle Anzeige

Post by Anonymous »

Kontext:
  • Ich verwende c ++ Builder vcl mit FireDac .
  • Ich habe zwei Tabellen: Recette (Recipe) und Ladung (last). Detailtabelle mit Recette durch das Feld ID_RECETTE verlinkt. DataSources und dbgrids, die zur Anzeige der Werte verwendet werden, befinden sich in derselben Form. Rufen Sie append () in der Tabelle Recette auf, um ein neues Rezept zu erstellen. Die verknüpfte Gebühren dataset löscht visuell oder synchronisiert . />"Dataset not in edit or insert mode"

    I've tried:

    Temporarily disabling MasterSource,
  • Using DisableControls() / EnableControls () ,
  • Aufrufen von socalate () nach dem Posten,
  • Erzwingen Sie eine Refresh () im Detail -Datensatz (detailliertes Datensatz (

    Code: Select all

    Chargement
    ),
… aber entweder der Beitrag () funktioniert nicht, die Anzeige kehrt nicht zurück oder nichts passiert.

Code: Select all

///"new" button click
void __fastcall TFMenuChargement::btRecetteClick(TObject* Sender)
{
New(dsRecette, GroupBox4);
}
///function to create the record
void __fastcall TFMenuChargement::New(TDataSource *ds, TGroupBox *gb)
{
ds->DataSet->Open();
ds->DataSet->Append();
gb->Caption = "Nouveau";
gb->SetFocus();
}
///"validate" button click
void __fastcall TFMenuChargement::btRecValiderClick(TObject* Sender)
{
//TFDTable* tableChargement = static_cast(dsChargement->DataSet);
//TFDTable* tableRecette = static_cast(dsRecette->DataSet);

//int lastId = tableRecette->FieldByName("UID_RECETTE")->AsInteger;

//tableChargement->MasterSource = nullptr;
//tableChargement->DisableControls();

Validate(dsRecette);

//tableRecette->Locate("UID_RECETTE", lastId, TLocateOptions());

//tableChargement->MasterSource = dsRecette;
//tableChargement->EnableControls();
//tableChargement->Refresh();
}
///function to post changes
void __fastcall TFMenuChargement::Validate(TDataSource *ds)
{
ds->DataSet->Open();
try {
ds->DataSet->Post();
} catch (const EDatabaseError &e) {
return;
} catch (const Exception &E) {
ShowMessage("Erreur lors de l'insertion : " + E.Message);
return;
}
ShowMessage("Modifications enregistrées");
}

Ich habe auch versucht, Mastersource auf nullptr zurückzusetzen, und es führt häufig dazu, dass Daten verschwinden oder die Synchronisation vollständig abstürzen.

Code: Select all

Recette
) ohne das verknüpfte Detaildisplay zu brechen (

Code: Select all

Chargement
)?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post