Hallo!
Der Nummerkreis der Tabelle BAUF hat sich bei uns von 4 auf 5 Stellen geändert (von 9999 auf nächste Nummer 10000).
Die Prozedur P_Suchanfang für diese Tabelle zeigt jedoch weiterhin nur die letzten 200 Datensätze bis Maskenkey 9999 an.
Kann ich das auf die neue Situation anpassen - wenn ja wie?
Vielen Dank.
va
Prozedur P_SUCHANFANG
Moderator: SYNERPY
-
va
- Beiträge: 21
- Registriert: Mi Sep 03, 2008 5:35 pm
Prozedur P_SUCHANFANG
Software-Version 4.2.5.106
GDB-Version AvERP2013.05
GDB-Version AvERP2013.05
-
NPLADMIN
- Beiträge: 163
- Registriert: Di Okt 07, 2008 7:54 am
- Wohnort: Oxbüll / Wees
Nur zum Verständnis:
- Nummernkreis für BAUF in BNUM angepasst
- Angezeigt Suchbedingung >='200.Auftragsnummer'
zeigt die um eine Stelle erweiterte Nummer(@00000 statt @0000) bei mir mit an.
Wie sieht denn die Formel aus, was wurde angepasst und ist die Hinterlegung bei BAUF oder BAUF.B oder BAUF.A?
- Nummernkreis für BAUF in BNUM angepasst
- Angezeigt Suchbedingung >='200.Auftragsnummer'
zeigt die um eine Stelle erweiterte Nummer(@00000 statt @0000) bei mir mit an.
Wie sieht denn die Formel aus, was wurde angepasst und ist die Hinterlegung bei BAUF oder BAUF.B oder BAUF.A?
Gruß
KTS
AvERP-Exe: 4.2.1.6
Datenbank: AvERP2009-A.01
_________________________
Suchen heißt finden und je mehr man sucht um so mehr findet man.
KTS
AvERP-Exe: 4.2.1.6
Datenbank: AvERP2009-A.01
_________________________
Suchen heißt finden und je mehr man sucht um so mehr findet man.
-
va
- Beiträge: 21
- Registriert: Mi Sep 03, 2008 5:35 pm
Hallo NPLADMIN.
Ich habe die Nummernkreise für BAUF und BAUF.A bereits auf 5 Stellen erweitert - neue Aufträge werden somit auch richtig hochgezählt nur die Prozedur selektiert nur bis 9999.
Der Code sieht bei mir so aus:
BEGIN
/* letzter Stand: 18.11.2002 HB */
/* Protokollieren, das Aktion hier durchgelaufen ist */
IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('P_SUCHANFANG_BAUF');
/* Gibt kleinsten Feldinhalt wieder für Grundsuche */
MEINZEICHEN = '@++@';
IF (ANZAHL IS NULL) THEN ANZAHL = 200;
WHEREBEDINGUNG = 'MASKENKEY >= ';
MASKENKEY = '';
I = 0;
FOR SELECT MASKENKEY
FROM BAUF
ORDER BY MASKENKEY DESC
INTO :MASKENKEY
DO
BEGIN
I = I + 1;
IF (I >= ANZAHL) THEN
BEGIN
WHEREBEDINGUNG = WHEREBEDINGUNG || MEINZEICHEN || MASKENKEY || MEINZEICHEN;
SUSPEND;
EXIT;
END
END
IF (I < ANZAHL) THEN
WHEREBEDINGUNG = WHEREBEDINGUNG || MEINZEICHEN || MASKENKEY || MEINZEICHEN;
SUSPEND;
END
Die angezeigte Suchbedingung in der Maske BAUF im Feld MASKENKEY
lautet: >= '9801'
Gruß
va
Ich habe die Nummernkreise für BAUF und BAUF.A bereits auf 5 Stellen erweitert - neue Aufträge werden somit auch richtig hochgezählt nur die Prozedur selektiert nur bis 9999.
Der Code sieht bei mir so aus:
BEGIN
/* letzter Stand: 18.11.2002 HB */
/* Protokollieren, das Aktion hier durchgelaufen ist */
IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('P_SUCHANFANG_BAUF');
/* Gibt kleinsten Feldinhalt wieder für Grundsuche */
MEINZEICHEN = '@++@';
IF (ANZAHL IS NULL) THEN ANZAHL = 200;
WHEREBEDINGUNG = 'MASKENKEY >= ';
MASKENKEY = '';
I = 0;
FOR SELECT MASKENKEY
FROM BAUF
ORDER BY MASKENKEY DESC
INTO :MASKENKEY
DO
BEGIN
I = I + 1;
IF (I >= ANZAHL) THEN
BEGIN
WHEREBEDINGUNG = WHEREBEDINGUNG || MEINZEICHEN || MASKENKEY || MEINZEICHEN;
SUSPEND;
EXIT;
END
END
IF (I < ANZAHL) THEN
WHEREBEDINGUNG = WHEREBEDINGUNG || MEINZEICHEN || MASKENKEY || MEINZEICHEN;
SUSPEND;
END
Die angezeigte Suchbedingung in der Maske BAUF im Feld MASKENKEY
lautet: >= '9801'
Gruß
va
Software-Version 4.2.5.106
GDB-Version AvERP2013.05
GDB-Version AvERP2013.05
-
NPLADMIN
- Beiträge: 163
- Registriert: Di Okt 07, 2008 7:54 am
- Wohnort: Oxbüll / Wees
Da liegt das Problem.
Ich poste mal unseren Code, habe den 2009er etwas erweitert mit 2010er Komponenten.
In der Version2008 kann ich derzeit nicht testen, da nicht installiert.
Testen Sie die Variante mal in einer Testumgebung.
Ich poste mal unseren Code, habe den 2009er etwas erweitert mit 2010er Komponenten.
In der Version2008 kann ich derzeit nicht testen, da nicht installiert.
Testen Sie die Variante mal in einer Testumgebung.
Code: Alles auswählen
BEGIN
-- Letzter Stand 07.04.2010 11:10:04 GK
-- Protokollieren, dass Aktion hier durchgelaufen ist
IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('P_SUCHANFANG');
-- Suchvorbelegung des MASKENKEY-Felds erstellen
Gibt kleinsten Feldinhalt wieder für Grundsuche
MEINZEICHEN = '@++@';
IF (ANZAHL IS NULL) THEN ANZAHL = 200;
WHEREBEDINGUNG = 'MASKENKEY >= ';
MASKENKEY = '';
SBAUFWHERE = '';
I = 0;
-- Wenn View, dann Tabelle daraus machen
IF (F_LEFT(TABELLE, 2) = 'V_') THEN
BEGIN
IF (TABELLE = 'V_BAUF_A_') THEN
SBAUFWHERE = ' AND AUFTRAG = ' || '''' || 'N' || '''';
ELSE
IF (TABELLE = 'V_BAUF_B_') THEN
SBAUFWHERE = ' AND AUFTRAG = ' || '''' || 'J' || '''';
TABELLE = F_RIGHT(TABELLE, F_STRINGLENGTH(TABELLE) - 2);
TABELLE = F_REPLACESTRING(TABELLE, 'BAUF_A_', 'BAUF',1,1);
TABELLE = F_REPLACESTRING(TABELLE, 'BAUF_B_', 'BAUF',1,1);
IF ((TABELLE = 'BFAINFO') OR (TABELLE = 'BFAAUFG')) THEN
TABELLE = 'BFA';
END
EXECUTE PROCEDURE P_BMAND_CHECK RETURNING_VALUES (:BMAND_ID);
-- Suchanfangsexklusionen durchlaufen und zusammenbauen
MKEY_ANFANG = '';
MKEY_ANFANG_MASKE = '';
FOR SELECT A.SUCHANFANG
FROM A_TABELLEN_SUCHANF A, A_TABELLEN B
WHERE B.MASKENKEY = :TABELLE AND
A.BMAND_ID = :BMAND_ID AND
A.A_TABELLEN_ID_LINKKEY = B.ID
INTO :A_SUCHANF
DO
BEGIN
A_SUCHANF = F_LRTRIM (A_SUCHANF);
-- Prüfen, dass String nicht zu lange wird
IF (F_STRINGLENGTH4(MKEY_ANFANG) < 920) THEN
BEGIN
MKEY_ANFANG = MKEY_ANFANG || ' AND MASKENKEY NOT STARTING WITH (''' || :A_SUCHANF || ''') ';
MKEY_ANFANG_MASKE = MKEY_ANFANG_MASKE || ' AND V_' || :TABELLE || '.MASKENKEY NOT STARTING WITH (''' || :A_SUCHANF || ''') ';
END
END
-- Suchstring für die Input-Tabelle zusammenbauen
IF (TABELLE IN ('BSA8D')) THEN
MyQUERY = 'SELECT MASKENKEY ' ||
'FROM ' || TABELLE || ' ' ||
'ORDER BY MASKENKEY DESC';
ELSE
MyQUERY = 'SELECT MASKENKEY ' ||
'FROM ' || TABELLE || ' ' ||
'WHERE ((BMAND_ID = ' || CAST(BMAND_ID AS VARCHAR(16)) || ') OR (BMAND_ID IS NULL)) ' ||
' ' || MKEY_ANFANG || ' ' ||
' ' || SBAUFWHERE || ' ' ||
'ORDER BY MASKENKEY DESC';
-- Tabelle bis zum n-ten Datensatz durchlaufen
FOR EXECUTE STATEMENT MyQUERY
INTO :MASKENKEY
DO
BEGIN
I = I + 1;
-- Wenn Anzahl erreicht wurde, dann abbrechen
IF (I >= ANZAHL) THEN
BEGIN
IF (MKEY_ANFANG_MASKE = '') THEN
WHEREBEDINGUNG = WHEREBEDINGUNG || MEINZEICHEN || MASKENKEY || MEINZEICHEN;
ELSE
WHEREBEDINGUNG = 'MASKENKEY BETWEEN ''0'' AND ''Z'' AND '|| WHEREBEDINGUNG || MEINZEICHEN || MASKENKEY || MEINZEICHEN || MKEY_ANFANG_MASKE;
SUSPEND;
EXIT;
END
END
-- Suchbedingung ausgeben, wenn weniger als n Datensätze in der Tabelle sind
IF (MKEY_ANFANG_MASKE = '') THEN
WHEREBEDINGUNG = WHEREBEDINGUNG || MEINZEICHEN || MASKENKEY || MEINZEICHEN;
ELSE
WHEREBEDINGUNG = 'MASKENKEY BETWEEN ''0'' AND ''Z'' AND '|| WHEREBEDINGUNG || MEINZEICHEN || MASKENKEY || MEINZEICHEN || MKEY_ANFANG_MASKE;
SUSPEND;
ENDGruß
KTS
AvERP-Exe: 4.2.1.6
Datenbank: AvERP2009-A.01
_________________________
Suchen heißt finden und je mehr man sucht um so mehr findet man.
KTS
AvERP-Exe: 4.2.1.6
Datenbank: AvERP2009-A.01
_________________________
Suchen heißt finden und je mehr man sucht um so mehr findet man.
-
va
- Beiträge: 21
- Registriert: Mi Sep 03, 2008 5:35 pm
Hallo NPLADMIN.
Danke für Unterstützung. Funktioniert bei unserer Version leider nicht 1:1. Für eine Anpassung fehlen mir dann doch die Programmierkenntnisse.
Habs jetzt erstmal so hingebogen:
- Prozedur aus der GrundsuchSQL entfernt
- Query q_1 ergänzt -> ORDER BY ID DESC
Die Maske lädt dann eben alle Datensätze.
Falls jemand noch einen Lösungsansatz hat - gerne.
Gruß
va
Danke für Unterstützung. Funktioniert bei unserer Version leider nicht 1:1. Für eine Anpassung fehlen mir dann doch die Programmierkenntnisse.
Habs jetzt erstmal so hingebogen:
- Prozedur aus der GrundsuchSQL entfernt
- Query q_1 ergänzt -> ORDER BY ID DESC
Die Maske lädt dann eben alle Datensätze.
Falls jemand noch einen Lösungsansatz hat - gerne.
Gruß
va
Software-Version 4.2.5.106
GDB-Version AvERP2013.05
GDB-Version AvERP2013.05
-
NPLADMIN
- Beiträge: 163
- Registriert: Di Okt 07, 2008 7:54 am
- Wohnort: Oxbüll / Wees
Guten Morgen va,
entschuldigen Sie bitte, hatte ganz vergessen das es in der 2008er
noch keine getrennte Angebots - und Auftragsverwaltung gab.
Hab mal unsere alte 2008er rausgekramt und den Nummernkreis um eine Stelle erweitert.
Das System ruft mir die letzten 200 inkl. der neuen längeren Nummer auf.
Änderungen hatte ich damals dort nicht vorgenommen.
Daher fehlt mir momentan auch der Ansatz woran es liegen könnte.
Vielleicht hat ein "SYN" ne Idee.
entschuldigen Sie bitte, hatte ganz vergessen das es in der 2008er
noch keine getrennte Angebots - und Auftragsverwaltung gab.
Hab mal unsere alte 2008er rausgekramt und den Nummernkreis um eine Stelle erweitert.
Das System ruft mir die letzten 200 inkl. der neuen längeren Nummer auf.
Änderungen hatte ich damals dort nicht vorgenommen.
Daher fehlt mir momentan auch der Ansatz woran es liegen könnte.
Vielleicht hat ein "SYN" ne Idee.
Gruß
KTS
AvERP-Exe: 4.2.1.6
Datenbank: AvERP2009-A.01
_________________________
Suchen heißt finden und je mehr man sucht um so mehr findet man.
KTS
AvERP-Exe: 4.2.1.6
Datenbank: AvERP2009-A.01
_________________________
Suchen heißt finden und je mehr man sucht um so mehr findet man.