AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TField "Sperren"?

Ein Thema von Angel4585 · begonnen am 14. Dez 2005 · letzter Beitrag vom 14. Dez 2005
Antwort Antwort
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#1

TField "Sperren"?

  Alt 14. Dez 2005, 10:29
Datenbank: Paradox • Version: 7 • Zugriff über: Table
Hallo,

ich habe eine Tabelle mit drei Feldern,

Feld[0] = Wochentag(String)
Feld[1] = Datum(TDateTime)
Feld[2] = Uhrzeit(TDateTime)

Jetzt möchte ich, das wenn in Feld[0] z.B. 'Unbestimmt' drin steht, dass mir die anderen beiden Felder nicht angezeigt werden, auch nicht wenn da jeweils ein Datum, bzw. eine Uhrzeit drin steht.

Gibt es da ne Möglicheit, dass man IsNull "setzt", obwohl ein Wert drin steht?

MfG

EDIT: Die Werte sollen in TDBEdits angezeigt werden.(=> Visible = False bringt nichts)
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.594 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: TField "Sperren"?

  Alt 14. Dez 2005, 12:28
Zitat:
=> Visible = False bringt nichts
Warum nicht?

mach es mit zwei normalen TEdits. Das Lesen und Schreiben der beiden Felder musst Du dann von Hand machen.
Sven Harazim
--
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#3

Re: TField "Sperren"?

  Alt 14. Dez 2005, 12:33
Ich habs jetzt so gemacht, das ich das "DataField" auf '' bzw. 'Feldname' setze.
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: TField "Sperren"?

  Alt 14. Dez 2005, 13:06
Alternativ hättest du mit dem Ereignis OnGetText() des Tabellenfeldes arbeiten können.

Grüße vom marabu
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#5

Re: TField "Sperren"?

  Alt 14. Dez 2005, 13:14
@marabu :
ich weis jetzt nicht ob das dass ist was ich suche, scheint kompliziert zu sein. Ich meine, auch wenn z.B.
FieldByName('Datum').AsString = '01.01.2005' soll, wenn
Delphi-Quellcode:
FieldByName('Wochentag').asstring = 'Unbestimmt'
FieldByName('Datum').AsString:='';
aber die Daten sollen gleichzeitig nicht in der Tabelle verändert werden.d.h. es soll einfach ein NULL Wert ausgegeben werden.
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#6

Re: TField "Sperren"?

  Alt 14. Dez 2005, 13:24
Zitat von Angel4585:
aber die Daten sollen gleichzeitig nicht in der Tabelle verändert werden.d.h. es soll einfach ein NULL Wert ausgegeben werden.
hmm und wenn du einfach deine DB in ein Stringgrid schreibst?
Kleine while-not-eof-Procedure die einfach die entsprechenden Felder leer lässt.
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: TField "Sperren"?

  Alt 14. Dez 2005, 13:30
Kompliziert ist das sicher nicht.

Delphi-Quellcode:
procedure TDataForm.TableDatumGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  if Lowecase(Sender.DataSet.FieldByName('Wochentag').AsString) = 'unbestimmt'
    then Text := ''
    else Text := Sender.AsString;
end;
Wenn du jetzt noch verhindern willst, dass der Benutzer Eingaben in Datum macht, dann kannst du die property ReadOnly des Feldes kontrollieren:

Delphi-Quellcode:
procedure TDataForm.DataSourceDataChange(Sender: TObject; Field: TField);
begin
  if not Assigned(Field) or (Lowercase(Field.FieldName) = 'wochentag') then
    with Field.DataSet.FieldByName('Datum') do
      ReadOnly := (Lowercase(Field.FieldName) = 'wochentag')
        and (Lowercase(Field.AsString) = 'unbestimmt');
end;
Hoffentlich habe ich nicht zu viele Fehler reingebaut...

Grüße vom marabu
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#8

Re: TField "Sperren"?

  Alt 14. Dez 2005, 13:43
Hmm... mein Prob ist mom noch das die Tabelle in einem Thread ist und ich die ereignisse zur Laufzeit zuwesen muss.. ist normalerweise kein Problem aber irgendwie funzt das nicht richtig:
Delphi-Quellcode:
.
.
TDataSet(FTable).AfterOpen:=FTableAfterOpen;
.
.
procedure TWVThread.OnDatumGetText(Sender: TField; var Text: string;
  DisplayText: Boolean);
begin
if Sender.DataSet.FieldByName('WV_Wochentag').AsString = 'Unbestimmtthen
  Text:=''
else Text:= Sender.AsString;
end;
{******************************************************************************}
procedure TWVThread.OnUhrzeitGetText(Sender: TField; var Text: string;
    DisplayText: Boolean);
begin
if Sender.AsString = '23:59:59then
 Text:=''
else Text:= Sender.AsString;
end;
{******************************************************************************}
procedure TWVThread.FTableAfterOpen(DataSet: TDataSet);
begin
FTable.FieldByName('WV_Datum').OnGetText:=OnDatumGetText;
FTable.FieldByName('WV_Uhrzeit').OnGetText:=OnUhrzeitGetText;
end;
Weis jemand wo da mein Fehler ist?
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:16 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