› פורומים › אפיון ופיתוח פריוריטי › שורות כפולות במסך
- This topic has 4 תגובות, 2 משתתפים, and was last updated לפני 11 שנים, חודש 1 by דן בר.
- Post
-
- אוקטובר 9, 2013 בשעה 10:22 am
שלום רב
בניתי מסך חדש , כל הרשומות מופיעות חמש פעמים כל רשומה , זו אינה מכפלה קרטזית כי לו זוז היתה אז מספר המופעים לכל שורה היה כמה עשרות , בדוח כל רשומה מופיעה פעם אחת וכך גם כאשר צופים בקובץ דרך windbi , יש לציין שזהו מסך שבניתי לפני זמן מה ועבד יפה , הוספתי לו join ל USERSB ובחירה דרך שדה XXX_SNAME עם CHOOS-FIELD ואז ארעה התקלה , לא ברור לי למה חמש פעמים ולמה זה קורה למשהו יש רעיון
- Replies
-
- אוקטובר 9, 2013 בשעה 12:06 pm
חמש נגד עין הרע :laugh:כנראה שחסר שם JOIN כלשהו. תפתח כלים>הפעלה>WINDBI
תעשה DUMP ו FORM תכניס את שם המסך ותעלה את הפלט לפורום- אוקטובר 9, 2013 בשעה 12:44 pm
מצ"ב הפלט : (אני מניח שזה הרבה שורות אבל בוודאי ניתן למצוא את הכשל ב join(
בכל מקרה תודהFORM : KORD_IT2
—————
DECLARE FILL24067 CURSOR FOR
SELECT KORD_IT.KORD_SNAME, SERNUMBERS.SERNUM, KORD_IT.KORD_DEPT,
KORD_IT.KORD_PROVINCE, KORD_IT.KORD_ITID, KORD_IT.KORD_LDPM,
KORD_IT.KORD_TYPE, KORD_IT.KORD_INPAST, KORD_IT.KORD_CNAME, KORD_IT.KORD_OS,
KORD_IT.KORD_DOMAIN, KORD_IT.KORD_DETAILS, KORD_IT.KORD_STATUS,
PART.PARTNAME, PART.PARTDES, 's', KORD_IT.KORD_USERB, SERNUMBERS.SERN,
SERNUMBERS.PART, KORD_IT.KORD_SERN
FROM USERSB , PART , SERNUMBERS , KORD_IT
WHERE KORD_IT.KORD_USERB = USERSB.USER
AND SERNUMBERS.PART = PART.PART
AND KORD_IT.KORD_SERN = SERNUMBERS.SERN
ORDER BY 2 ASCKEYS :
——
KEY 1 (U): KORD_SERNKORD_IT2/INSERT TRIGGER:
————————
SELECT 'X' FROM SERNUMBERS WHERE SERNUM = :KORD_IT2.SERNUM AND PART = :KORD_IT2.PART
;
SELECT 193,2 INTO :SCREENMSG,:SCREENMSGPOS FROM DUMMY WHERE :RETVAL = 0;
SELECT 'X' FROM SERNUMBERS WHERE SERN = :KORD_IT2.NSCUST AND SERN = :KORD_IT2.SERN
;
SELECT 193,18 INTO :SCREENMSG,:SCREENMSGPOS FROM DUMMY WHERE :RETVAL =
0;
SET TRANSACTION;
INSERT INTO KORD_IT ( KORD_SNAME, KORD_DEPT, KORD_PROVINCE, KORD_ITID,
KORD_LDPM, KORD_TYPE, KORD_INPAST, KORD_CNAME, KORD_OS, KORD_DOMAIN, KORD_DETAILS,
KORD_STATUS, KORD_USERB, KORD_SERN)
VALUES ( :KORD_IT2.KORD_SNAME, :KORD_IT2.DEPARTMENT, :KORD_IT2.KORD_PROVINCE,
:KORD_IT2.KORD_ITID, :KORD_IT2.KORD_LDPM, :KORD_IT2.KORD_TYPE, :KORD_IT2.KORD_INPAST,
:KORD_IT2.KORD_CNAME, :KORD_IT2.KORD_OS, :KORD_IT2.KORD_DOMAIN, :KORD_IT2.KORD_DETAILS,
:KORD_IT2.KORD_STATUS, :KORD_IT2.KORD_USERSB, :KORD_IT2.SERN);SELECT 189 INTO :SCREENMSG FROM DUMMY WHERE :RETVAL = 0;
:NEXTPATTERNFLAG = 0;
COMMIT;KORD_IT2/UPDATE TRIGGER:
————————
SELECT 'X' FROM SERNUMBERS WHERE SERNUM = :KORD_IT2.SERNUM AND PART = :KORD_IT2.PART
;
SELECT 193,2 INTO :SCREENMSG,:SCREENMSGPOS FROM DUMMY WHERE :RETVAL = 0;
SELECT 'X' FROM SERNUMBERS WHERE SERN = :KORD_IT2.NSCUST AND SERN = :KORD_IT2.SERN
;
SELECT 193,18 INTO :SCREENMSG,:SCREENMSGPOS FROM DUMMY WHERE :RETVAL =
0;
SET TRANSACTION;
UPDATE KORD_IT
SET KORD_SNAME = :KORD_IT2.KORD_SNAME ,
KORD_DEPT = :KORD_IT2.DEPARTMENT ,
KORD_PROVINCE = :KORD_IT2.KORD_PROVINCE ,
KORD_ITID = :KORD_IT2.KORD_ITID ,
KORD_LDPM = :KORD_IT2.KORD_LDPM ,
KORD_TYPE = :KORD_IT2.KORD_TYPE ,
KORD_INPAST = :KORD_IT2.KORD_INPAST ,
KORD_CNAME = :KORD_IT2.KORD_CNAME ,
KORD_OS = :KORD_IT2.KORD_OS ,
KORD_DOMAIN = :KORD_IT2.KORD_DOMAIN ,
KORD_DETAILS = :KORD_IT2.KORD_DETAILS ,
KORD_STATUS = :KORD_IT2.KORD_STATUS ,
KORD_USERB = :KORD_IT2.KORD_USERSB ,
KORD_SERN = :KORD_IT2.SERN
WHERE KORD_SNAME = :KORD_IT21.KORD_SNAME
AND KORD_DEPT = :KORD_IT21.DEPARTMENT
AND KORD_PROVINCE = :KORD_IT21.KORD_PROVINCE
AND KORD_ITID = :KORD_IT21.KORD_ITID
AND KORD_LDPM = :KORD_IT21.KORD_LDPM
AND KORD_TYPE = :KORD_IT21.KORD_TYPE
AND KORD_INPAST = :KORD_IT21.KORD_INPAST
AND KORD_CNAME = :KORD_IT21.KORD_CNAME
AND KORD_OS = :KORD_IT21.KORD_OS
AND KORD_DOMAIN = :KORD_IT21.KORD_DOMAIN
AND KORD_DETAILS = :KORD_IT21.KORD_DETAILS
AND KORD_STATUS = :KORD_IT21.KORD_STATUS
AND KORD_USERB = :KORD_IT21.KORD_USERSB
AND KORD_SERN = :KORD_IT21.SERN ;SELECT (:RETVAL = 0 ? 190 : (:RETVAL < 0 ? 50 : 0)) INTO :SCREENMSG FROM
DUMMY ;
:NEXTPATTERNFLAG = 0;
COMMIT;KORD_IT2/DELETE TRIGGER:
————————
SET TRANSACTION;
DELETE FROM KORD_IT
WHERE KORD_SNAME = :KORD_IT21.KORD_SNAME
AND KORD_DEPT = :KORD_IT21.DEPARTMENT
AND KORD_PROVINCE = :KORD_IT21.KORD_PROVINCE
AND KORD_ITID = :KORD_IT21.KORD_ITID
AND KORD_LDPM = :KORD_IT21.KORD_LDPM
AND KORD_TYPE = :KORD_IT21.KORD_TYPE
AND KORD_INPAST = :KORD_IT21.KORD_INPAST
AND KORD_CNAME = :KORD_IT21.KORD_CNAME
AND KORD_OS = :KORD_IT21.KORD_OS
AND KORD_DOMAIN = :KORD_IT21.KORD_DOMAIN
AND KORD_DETAILS = :KORD_IT21.KORD_DETAILS
AND KORD_STATUS = :KORD_IT21.KORD_STATUS
AND KORD_SERN = :KORD_IT21.SERN ;SELECT (:RETVAL = 0 ? 191 : (:RETVAL < 0 ? 50 : 0)) INTO :SCREENMSG FROM
DUMMY ;
COMMIT;KORD_IT2/PRE-FORM TRIGGER:
————————–
:TABFORM = 24067; SELECT PARTDES,SERNUM
FROM SERNUMBERS,PART,VCLINFO !
WHERE SERNUMBERS.PART = PART.PART
AND SERNUMBERS.SERN = VCLINFO.SERN
ORDER BY 1;KORD_IT2/KORD_SNAME/CHOOSE-FIELD TRIGGER:
—————————————–
DECLARE FILL_CHOOSE_F24067_KORD_SNAME CURSOR FOR
SELECT IDNUMBER , SNAME
FROM USERSB ;KORD_IT2/SERNUM/CHECK-FIELD TRIGGER:
————————————
GOTO 1 WHERE :KORD_IT2.SERNUM = '';
SELECT 'X'
FROM SERNUMBERS
WHERE SERNUM = :KORD_IT2.SERNUM;
SELECT 192 INTO :SCREENMSG
FROM DUMMY WHERE :RETVAL = 0;
LABEL 1;KORD_IT2/SERNUM/POST-FIELD TRIGGER:
———————————–
SET TRANSACTION ;
SELECT SERN, SERN
INTO :KORD_IT2.NSCUST, :KORD_IT2.SERN
FROM SERNUMBERS
WHERE SERNUM = :KORD_IT2.SERNUM
AND PART = :KORD_IT2.PART ;
:TABFORM = 24067; GOTO 9 WHERE :$.SERNUM = '' ;
SELECT MAX(SERN),COUNT(*) INTO :SERN,:COUNT
FROM SERNUMBERS
WHERE SERNUM = :$.SERNUM AND CANCELDATE = 0;
GOTO 9 WHERE :COUNT 1 ;
SELECT PARTNAME INTO :$.PARTNAME
FROM PART WHERE PART =
(SELECT PART FROM SERNUMBERS WHERE SERN = :SERN) ;
LABEL 9;COMMIT;
KORD_IT2/SERNUM/CHOOSE-FIELD TRIGGER:
————————————-
DECLARE FILL_CHOOSE_F24067_SERNUM CURSOR FOR
SELECT PARTDES,SERNUM
FROM SERNUMBERS,PART,KORD_IT !
WHERE SERNUMBERS.PART = PART.PART
AND SERNUMBERS.SERN = KORD_IT.KORD_SERN
AND PARTNAME = 'ItPart'
ORDER BY 1;KORD_IT2/PARTNAME/POST-FIELD TRIGGER:
————————————-
SET TRANSACTION ;
SELECT PARTDES, PART
INTO :KORD_IT2.PARTDES, :KORD_IT2.PART
FROM PART
WHERE PARTNAME = :KORD_IT2.PARTNAME ;
:TABFORM = 24067; :TABFORM = 5943; GOTO 19 WHERE :$.PARTNAME = " ;
SELECT PART,MPART INTO :PART,:MPART
FROM PART WHERE PARTNAME = :$.PARTNAME ;
SELECT TEXT1, TEXT2, TEXT3
INTO :PAR1, :PAR2, :PAR3
FROM PARTMSG WHERE PART = :PART ;
GOTO 18 WHERE :RETVAL > 0
AND (:PAR1 " OR :PAR2 " OR :PAR3 ") ;
SELECT TEXT1, TEXT2, TEXT3
INTO :PAR1, :PAR2, :PAR3
FROM PARTMSG WHERE PART = :MPART ;
GOTO 18 WHERE :RETVAL > 0
AND (:PAR1 " OR :PAR2 " OR :PAR3 ") ;
GOTO 19 ;
LABEL 18;
WRNMSG 210 ;
LABEL 19;:TABFORM = 24067;
COMMIT;KORD_IT2/PARTNAME/CHOOSE-FIELD TRIGGER:
—————————————
DECLARE FILL_CHOOSE_F24067_PARTNAME CURSOR FOR
SELECT PARTDES , PARTNAME
FROM PART
WHERE PARTNAME = 'ItPart' ;KORD_IT2/NSCUST/POST-FIELD TRIGGER:
———————————–
SET TRANSACTION ;
:KORD_IT2.SERN = :KORD_IT2.NSCUST;
SELECT SERNUM, PART
INTO :KORD_IT2.SERNUM, :KORD_IT2.PART
FROM SERNUMBERS
WHERE SERN = :KORD_IT2.NSCUST
AND SERN = :KORD_IT2.SERN ;COMMIT;
KORD_IT2/PART/POST-FIELD TRIGGER:
———————————
SET TRANSACTION ;
SELECT SERN, SERN
INTO :KORD_IT2.NSCUST, :KORD_IT2.SERN
FROM SERNUMBERS
WHERE SERNUM = :KORD_IT2.SERNUM
AND PART = :KORD_IT2.PART ;
SELECT PARTNAME, PARTDES
INTO :KORD_IT2.PARTNAME, :KORD_IT2.PARTDES
FROM PART
WHERE PART = :KORD_IT2.PART ;COMMIT;
KORD_IT2/SERN/POST-FIELD TRIGGER:
———————————
SET TRANSACTION ;
GOTO 9 WHERE :NEXTPATTERNFLAG = 1;
SELECT KORD_SNAME, KORD_DEPT, KORD_PROVINCE, KORD_ITID, KORD_LDPM,
KORD_TYPE, KORD_INPAST, KORD_CNAME, KORD_OS, KORD_DOMAIN, KORD_DETAILS,
KORD_STATUS, KORD_USERB
INTO :KORD_IT2.KORD_SNAME, :KORD_IT2.DEPARTMENT, :KORD_IT2.KORD_PROVINCE,
:KORD_IT2.KORD_ITID, :KORD_IT2.KORD_LDPM, :KORD_IT2.KORD_TYPE,
:KORD_IT2.KORD_INPAST, :KORD_IT2.KORD_CNAME, :KORD_IT2.KORD_OS,
:KORD_IT2.KORD_DOMAIN, :KORD_IT2.KORD_DETAILS, :KORD_IT2.KORD_STATUS,
:KORD_IT2.KORD_USERSB
FROM KORD_IT
WHERE KORD_SERN = :KORD_IT2.SERN ;
LABEL 9 ;
:KORD_IT2.NSCUST = :KORD_IT2.SERN;
SELECT SERNUM, PART
INTO :KORD_IT2.SERNUM, :KORD_IT2.PART
FROM SERNUMBERS
WHERE SERN = :KORD_IT2.NSCUST
AND SERN = :KORD_IT2.SERN ;COMMIT;
- אוקטובר 9, 2013 בשעה 12:52 pm
אני חושב שזה ה JOIN
KORD_IT.KORD_USERB USERSB.USERUSERSB היא טבלת עובדים ו USER הוא שם המשתמש של העובד. המפתח של USERSB הוא USERB
ובכלל לאיזה צורך אתה עושה JOIN ל USERSB אם אין לך אף שדה במסך שמציג נתונים ממנה
- יש להתחבר למערכת על מנת להגיב.