![]() |
dbnavigator ändern
ich möchte im Quellcode die Anzeige meines DBNavigators ändern, habe dies versucht:
Delphi-Quellcode:
aber bekomme die Fehlermeldung: Array-Typ erforderlich! Was muss ich tun?
procedure TMainForm.InsertPurchasingPlanning1Click(Sender: TObject);
var nbinsert,nbdelete: string; begin showdbview('select Client,tipo as "Group",Order as "Order",Article as "Style",Pieces,' +'planfabric,planacess,finaldate as "Delivery Date",observations as "Remarks"' +'from orders where planfabric is null or planacess is null ','Insert Purchasing Planning',true,true); dbview.dbnavigator1.VisibleButtons[nbinsert,nbdelete]:=false; end; |
Re: dbnavigator ändern
Guten Morgen.
So könnte es funktionieren:
Delphi-Quellcode:
Grüße vom marabu
procedure TMainForm.InsertPurchasingPlanning1Click(Sender: TObject);
const sel = 'select Client, tipo as "Group", Order as "Order", ' + 'Article as "Style", Pieces, planfabric, planacess, ' + 'finaldate as "Delivery Date", observations as "Remarks" ' + 'from orders where planfabric is null or planacess is null ' ; begin ShowDBView(sel, 'Insert Purchasing Planning', True, True); with DBView.DBNavigator1 do VisibleButtons := VisibleButtons - [nbinsert, nbdelete]; end; |
Re: dbnavigator ändern
Hallo Marabu, zunächst mal vielen Dank für Deine Hilfe...
leider geht es noch nicht, zuerst kam die Meldung der nicht definierten nbdelete und nbdelete... habe dann versucht, sie als boolean zu definieren, bekam aber dann die Meldung siehe Bild (TNavigateBtn und Boolean inkompatible Typen! Sicher ist es nur eine Kleinigkeit Schau mal ![]() |
Re: dbnavigator ändern
Der Aufzählungstyp TNavigateBtn ist bei mir zusammen mit der Komponente TDBNavigator in der gleichen Unit deklariert: DBCtrls. Du darfst nbInsert und nbDelete nicht einfach selbst deklarieren. Hast du schon einmal erwogen deine Delphi Version in dein DP-Profil einzutragen?
Freundliche Grüße |
Re: dbnavigator ändern
Zitat:
Zitat:
Warum? nbDelete, nbInsert etc sind vom Typ TNavigateBtn und somit schon mal 'reservierte' Bezeichnungen der NavigationButtons. Nimm die VariablenDeklarierung raus und schon funktioniert der Code von marabu :) |
Re: dbnavigator ändern
maribu, ich habe meine Version (7-Enterprise) in meinem DP-profil aktualisiert.
Es geht halt einfach nicht.... Sicher hat es nicht damit zu tun, dass ich meiner Form dies deklariert habe, oder?
Delphi-Quellcode:
Hier nochmals die Fehlermeldung, die es gibt:
procedure TDBViewForm.FormResize(Sender: TObject);
begin DBNavigator1.Width:=self.Width-120; end; ![]() |
Re: dbnavigator ändern
Moin :)
Erstens: Die Anweisung im OnResize() ist nicht die Fehlerursache. Zweitens: Aus der Fehlermeldung geht eindeutig hervor, dass in deinem Code irgendwo noch nbinsert, nbdelete als Integer-Variable deklariert. Wie ich bereits in meinem Posting #5 geschrieben habe, darf das nicht sein! Und marabu hat dir das in #4 auch schon gesagt... Also forsche deinen Code dahingehend mal durch, ob nicht doch irgendwo diese falschen Deklarierungen drin sind :!: //EDIT Tippselfehler beseitigt... Wieso sieht man die immer erst dann, wenn der Beitrag abgeschickt wurde :gruebel: |
Re: dbnavigator ändern
Hallo Tom,
halte doch einfach mal die STRG-Taste gedrückt und klicke auf nbInsert in der vom Compiler angemeckerten Zeile 1122. Du solltest dann eigentlich zu der fehlerhaften Deklaration von nbInsert geführt werden. Freundliche Grüße |
Re: dbnavigator ändern
Ich versteh nicht, wo der Fehler liegt, habe mit Strg-Taste so kontrolliert, wie marabu es sagte, es passiert aber nichts, der Cursor bleibt auf nbinsert, bzw. nbdelete...
auch habe ich nach diesen Begriffen gesucht, ob es irgendwo sonst noch deklariert ist, aber auch nichts gefunden...nur in der Zeile, wo der Fehler liegt! ![]() Kann es an meiner Komponente DBNavigator liegen?? |
Re: dbnavigator ändern
Möglich, aber unwahrscheinlich.
Ich vermute eher, dass du die Unit DBCtrls immer noch nicht in die Uses-Anweisung deiner MainForm aufgenommen hast. Freundliche Grüße |
Re: dbnavigator ändern
mein Gott, hatte wirklich "Tomaten auf den Augen", sorry marabu, jetzt klapt's, das war der Grund...
danke für Deine Geduld! |
Re: dbnavigator ändern
marabua, jetzt brauch ich doch nochmals deine Hilfe.
Habe deine Form an einer anderen Stelle noch verwendet:
Delphi-Quellcode:
kommt jetzt aber die Fehlermeldung "Konstantenausdruck erwartet".
procedure TMainForm.Prepairings1Click(Sender: TObject);
const sel = 'select Order as "Order",Client,Article as "Style",pieces,prepair,prepconfirm as "HK conf.", ' + 'prepout as "Prep.fin.",plancutting,plansewing,planfinishing, ' + 'observations as "Remarks" ' + 'from orders where prepair <> '+QuotedStr('no')+' and sewingout is null ' ; begin ShowDBView(sel, 'Prepairings - inside + outside', True, True); with DBView.DBNavigator1 do VisibleButtons := VisibleButtons - [nbinsert, nbdelete]; end; {showdbview('select Order as "Order",Client,Article as "Style",Pieces,prepair,prepconfirm as "HK conf.",prepout as "prep.fin.",' +'plancutting,cuttingout,plansewing,observations as "Remarks"' +'from orders where prepair <> '+QuotedStr('no')+' and sewingout is null','Prepairings - inside + outside',true,true);} Es ist sicher wegen dem ... '+QuotedStr('no')...?? wie muss ich korrigieren, habe schon etliches probiert... in meinem alten Code (siehe darunter mit {} ) funktioniert es... |
Re: dbnavigator ändern
Du kannst eine Konstante nur aus Konstanten zusammensetzen - und QuotedStr() ist eine Funktion. Wenn du dein SQL-Statement als Konstante vorhalten willst, dann so:
Delphi-Quellcode:
BTW warum speicherst du Literale wie 'no' in deiner Datenbank? Wäre da ein boolean nicht besser geeignet?
const
sel = 'select Order as "Order", Client, Article as "Style", pieces, prepair, prepconfirm as "HK conf.", ' + 'prepout as "Prep.fin.", plancutting, plansewing, planfinishing, observations as "Remarks" ' + 'from orders where prepair <> ''no'' and sewingout is null ' ; Freundliche Grüße |
Re: dbnavigator ändern
super, vielen Dank, marabu, klappt wunderbar!!
ich habe eine produktions-programm, wo ich neue Aufträge erstelle und zu dem Zeitpunkt, noch nicht weiss, ob ich welche Vorarbeiten habe. Später wird dann aus dem no eine Zahl, die dann die Art der Vorarbeit darstellt. Um mit einem Query die Aufträge zu bekommen, bei denen die Vorarbeit schon definiert ist, mache ich diese Abfrage. Die DB ist jetzt schon so aufgebaut, das Field ist ein String, müsste die DB dann auf boolean umstellen...schwieriger. Danke aber dennoch für Deinen Tip! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz