AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi dbedit feld und manuelle eingabe
Thema durchsuchen
Ansicht
Themen-Optionen

dbedit feld und manuelle eingabe

Ein Thema von mr.floppy81 · begonnen am 15. Dez 2004 · letzter Beitrag vom 16. Dez 2004
Antwort Antwort
Seite 1 von 2  1 2      
mr.floppy81

Registriert seit: 18. Nov 2004
Ort: Wismar
77 Beiträge
 
Delphi 5 Enterprise
 
#1

dbedit feld und manuelle eingabe

  Alt 15. Dez 2004, 08:35
moin,

nachdem ich meine hürden der datenbank und dbcombobox umschifft habe nun wieder ein problem, das es zu lösen gilt

Aber erstmal zum programm..

Ich habe eine form in welcher sich 1 dblookupcombobox und 5 dbedit felder befinden.
über adoconnection, adostoredproc und datasource fülle ich die dblookupcombobox und automatisch werden die db edit felder ausgefüllt...

Die werte in den dbeditfeldern werden nur für berechnungen benötigt!!!
Ich möchte keine Veränderungen an der Datenbank vornehmen!!!

Die dbeditfelder sind für das schreiben gesperrt (readonly=true) und sind ebenfalls net markierbar (enabled=false).

1. über das anklicken einer checkbox will ich nun in die dbedit felder manuell etwas eingeben können (if checkbox checked dbedit1...5.enabled; readonly=false)

das problem ist, dass er mir dann automatisch in der datenbank herumfuhrwerkt und versucht die daten in dieser zu verändern, das soll er aber net

Da steht dann: die update berechtigung für... wurde verweigert.

Wie kann ich das realisieren, dass ich über die dbeditfelder andere, also manuelle daten in den dbeditfeldern aufführe?


2. kann ich wenn die option enabled=true ist die schriftfarbe in den dbeditfeldern ändern? das grau ist ja net so schön..

lg andreas
  Mit Zitat antworten Zitat
Neelix

Registriert seit: 30. Nov 2004
Ort: Im Delta-Quadranten
84 Beiträge
 
#2

Re: dbedit feld und manuelle eingabe

  Alt 15. Dez 2004, 08:40
Hallo Andreas,

warum willst Du in ein DBEdit-Feld etwas reinschreiben, daß nicht an die Datenbank übertragen werden soll?

Ein Möglichkeit wäre mit Cached Update zu arbeiten. Da kannst Du alle Änderungen, die dann zunächst nur lokal in der Datenmenge ausgefühert werden, wieder verwerfen.
  Mit Zitat antworten Zitat
mr.floppy81

Registriert seit: 18. Nov 2004
Ort: Wismar
77 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: dbedit feld und manuelle eingabe

  Alt 15. Dez 2004, 08:48
also bei den dbeditfeldern stehen :höhe, breite, tiefe, bezeichnung1, bezeichnung2.

diese werte werden aus der datenbank übernommen.
wenn nun jemand einen artikel eingeben will, der nicht in der datenbank hinterlegt ist, eingeben möchte, soll er dafür die vereits vorhandenen dbeditfelder nutzen können...

und die werte die in den dbeditfeldern stehen, sollen später für berechnungen und ganz viel später dann für eine Druckausgabe herhalten

das sollte eigentlich der grund sein diese editfelder zu nutzen, mehr will ich damit nicht anstellen
  Mit Zitat antworten Zitat
Neelix

Registriert seit: 30. Nov 2004
Ort: Im Delta-Quadranten
84 Beiträge
 
#4

Re: dbedit feld und manuelle eingabe

  Alt 15. Dez 2004, 08:56
Dann mußt Du die Datenbank-Tabelle erst mal in den Editiermodus versetzen. Beim Einfügen eines neuen Datensatzes mit der Methode Append.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: dbedit feld und manuelle eingabe

  Alt 15. Dez 2004, 09:00
Zitat von mr.floppy81:
Die werte in den dbeditfeldern werden nur für berechnungen benötigt!!!
Ich möchte keine Veränderungen an der Datenbank vornehmen!!!

Die dbeditfelder sind für das schreiben gesperrt (readonly=true) und sind ebenfalls net markierbar (enabled=false).
Dann darfst du keine DBEdit Felder, sondern normale Edit Felder benützen.
Die Daten aus der Stored Proc musst du per Sourcecode in die Edit Felder übertragen:
Delphi-Quellcode:
ADOstoredProc1.Open;
EditBreite.text := ADOstoredProc1.FieldByName('Breite').AsFloat;
...
Andreas
  Mit Zitat antworten Zitat
mr.floppy81

Registriert seit: 18. Nov 2004
Ort: Wismar
77 Beiträge
 
Delphi 5 Enterprise
 
#6

Re: dbedit feld und manuelle eingabe

  Alt 15. Dez 2004, 09:10
ne so mein ich das net

mal angenommen in der dblookupcombobox steht Schrank1, Schrank2, Schrank3

Wenn ich nun schrank2 anwähle übernimmt er in den dbeditfeldern:
dbedit1[bezeichnung] : Eckschrank
dbedit2[material] : Kiefer
dbedit3[hoehe in mm] : 1500
dbedit4[breite in mm]: 2000
dbedit5[tiefe in mm] : 400

Mal angenommen ich will jetzt einen Schrank4 der NICHT in die db eingefügt werden soll bearbeiten.
Dann möchte ich meine checkbox anklicken, und in die dbedit felder z.B. eintragen:
dbedit1[bezeichnung] : kleiderschrank
dbedit2[material] : wurmstich
dbedit3[hoehe in mm] : 9876
dbedit4[breite in mm]: 1234
dbedit5[tiefe in mm] : 897

Diese werte brauche ich dann erstmal um zu sehen was für ein volumen die schränke haben....
x:=edit3
y:=edit4
z:=edit5

v:=x*y*z

so mit dem volumen stell ich dann weitere berechnungen an...

??? versteht ihr jetzt was ich meine ???
  Mit Zitat antworten Zitat
urs.liska

Registriert seit: 6. Aug 2003
Ort: Freiburg
195 Beiträge
 
Delphi 6 Professional
 
#7

Re: dbedit feld und manuelle eingabe

  Alt 15. Dez 2004, 09:10
Zitat von mr.floppy81:
also bei den dbeditfeldern stehen :höhe, breite, tiefe, bezeichnung1, bezeichnung2.

diese werte werden aus der datenbank übernommen.
wenn nun jemand einen artikel eingeben will, der nicht in der datenbank hinterlegt ist, eingeben möchte, soll er dafür die vereits vorhandenen dbeditfelder nutzen können...

und die werte die in den dbeditfeldern stehen, sollen später für berechnungen und ganz viel später dann für eine Druckausgabe herhalten

das sollte eigentlich der grund sein diese editfelder zu nutzen, mehr will ich damit nicht anstellen
Sehe ich das richtig: Du möchtest die DBEdit felder entweder dazu benutzen, Daten aus der DB anzuzeigen oder den Benutzer manuell Daten eingeben zu lassen; diese eingegebenen Daten sollen nicht in die DB eingetragen werden, sondern dienen nur zur Weiterverarbeitung in Deinem Programm (Druckausgabe etc.)?

Wenn das so ist, kannst Du eigentlich nicht so herangehen, wie Du es getan hast, sondern es gibt zwei Möglichkeiten:
a) Du benutzt unabhängige Controls (DBEdit und Edit) für die verschiedenen Zwecke. Diese könntest Du ja auch je nach Programmzustand sichtbar und unsichtbar machen.
b) (m.E. besser): Du benutzt gar keine DBEdits, da Du ja genau die Funktionalität, die sie eigentlich bieten – nämlich den live-Kontakt zur DB –, nicht nutzen möchtest. Besser wäre es, nur Edits zu benutzen und diese "manuell", d.h. von Deinem Programm füllen zu lassen, also z.B. im OnChange der Lookup-Komponente etwas wie
Code:
Edit1.Text := table1.Feld1.AsText;
Edit2.Text := table1.Feld2.AsText
usw.

Hoffe das hilft
Urs

P.S.
Du kannst die Farben des Edits nicht in Abhängigkeit von einer Eigenschaft wie readonly ändern. Aber Du kannst in dem Moment, in dem sich der Zustand ändert (z.B. Button "manuelle Eingabe") die Farben von Hand ändern. Sollte kein Problem sein.
  Mit Zitat antworten Zitat
urs.liska

Registriert seit: 6. Aug 2003
Ort: Freiburg
195 Beiträge
 
Delphi 6 Professional
 
#8

Re: dbedit feld und manuelle eingabe

  Alt 15. Dez 2004, 09:14
Sorry, war ein Cross-Post.

Aber shmia hat Recht. Das ist genau das was Du brauchst.
Wenn Du Deinen Schrank aus der DB auswählst, werden dessen Daten in die TEdit-Komponenten eingelesen, von wo aus Du die weiteren Berechnungen ausführen kannst.
Wenn Du einen "neuen" Schrank bearbeiten willst, kannst Du die Daten ebenfalls in die TEdits schreiben, und die DB kriegt nichts davon mit.

MfG
Urs
  Mit Zitat antworten Zitat
mr.floppy81

Registriert seit: 18. Nov 2004
Ort: Wismar
77 Beiträge
 
Delphi 5 Enterprise
 
#9

Re: dbedit feld und manuelle eingabe

  Alt 15. Dez 2004, 09:18
danke erstmal ich teste das mal aus
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#10

Re: dbedit feld und manuelle eingabe

  Alt 15. Dez 2004, 09:29
Aber du kannst doch auch die Daten solange in der Datenbank speichern, wie du sie bearbeitest. Und hinterher wieder löschen, oder nicht.
Oder aber eine zweite Datenbank in der die Vom Benutzer eingegebenen Datensätze gespeichert werden.

Ich weiß ja nicht warum oder wofür das ist. Sind ja auch nur Vorschläge.

mfg
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz