הדרכות

ברוכים הבאים להדרכות שלנו

הנהלת חשבונות עם פריוריטי

התאמות המחאות לפירעון

כדי לבצע בהנהלת חשבונות התאמות המחאות לפיראעון נבהצע את הפעולות הבאות:

ניגש למודול כספים -> הנהלת חשבונות -> התאמות -> התאמות בנקים -> הכנה לביצוע התאמה

 

תרגילים בפריוריטי

  1. כתוב תכנית שתציג את כל הלקוחות שהזמינו את פריט 001 בחודשיים האחרונים (הזמנות סגורות בלבד.)
         תשובה: 
         /* (כתוב תוכנית שתציג את כל הלקוחות שהזמינו את הפריט 001 בחודשיים אחרונים (הזמנות סגורות בילבד */
 
SELECT CUSTOMERS.CUSTNAME, CUSTOMERS.CUSTDES, ORDERS.ORDNAME, ORDERS.CURDATE, ORDERS.CLOSED, PART.PARTDES
FROM CUSTOMERS, ORDERS, ORDERITEMS, PART
WHERE ORDERS.ORD > 0
AND ORDERS.CLOSED = 'C'
AND ORDERS.CURDATE >= SQL.DATE8 – 60 * 24:00 
AND PART.PARTNAME = '001'
AND ORDERS.CUST = CUSTOMERS.CUST
AND ORDERS.ORD = ORDERITEMS.ORD
AND ORDERITEMS.PART = PART.PART
;FORMAT
 
 כתוב.י תכנית אשר תציג את סה"כ המכירות (חשבוניות) של הפריט מתחילת השנה.
SELECT PART.PARTNAME, PART.PARTDES, SUM((INVOICES.DEBIT = 'C' ? INVOICEITEMS.QPRICE * – 1 : INVOICEITEMS.QPRICE )), PART.TYPE
FROM INVOICES , INVOICEITEMS , PART 
WHERE
INVOICES.IV = INVOICEITEMS.IV
AND INVOICES.IVDATE > BEGINOFYEAR(SQL.DATE8)
AND INVOICES.TYPE IN ('A', 'C', 'E', 'F')
AND INVOICES.FINAL = 'Y'
AND INVOICES.STORNOFLAG <> 'Y'
AND INVOICEITEMS.PART = PART.PART
AND PART.PARTNAME = '001'
AND PART.PART <> 0
GROUP BY 1,2, 4
;FORMAT 
 
כתבוב.י תכנית אשר תציג את סה"כ רכש (חשבוניות) של פריט מתחילת השנה.
SELECT PART.PARTNAME, PART.PARTDES, SUM((INVOICES.DEBIT = 'C' ? INVOICEITEMS.QPRICE * -1 : INVOICEITEMS.QPRICE)), PART.TYPE
FROM INVOICES, INVOICEITEMS, PART
WHERE PART.PART <> 0
AND PART.PARTNAME = '001'
AND INVOICES.IVDATE > BEGINOFYEAR (SQL.DATE8)
AND INVOICES.IV = INVOICEITEMS.IV
AND INVOICES.TYPE IN ('P', 'Y', 'S')
AND INVOICES.FINAL = 'Y'
'AND INVOICES.STORNOFLAG <> 'Y
AND INVOICEITEMS.PART = PART.PART
GROUP BY 1, 2, 4
;FORMAT 
כתוב/י תכנית אשר תציג את סה"כ הזמנות לקוח עתידיות פתוחות.
SELECT P.PARTNAME, P.PARTDES, SUM(O.QPRICE) AS 'SUM' , 'הזמנות' AS 'TYPE'
FROM ORDERS O, ORDERITEMS OI, PART P
WHERE
O.ORD <> 0
AND O.ORD = OI.ORD
AND OI.PART = P.PART
AND OI.CLOSED <> 'C'
AND OI.DUEDATE > SQL.DATE
GROUP BY 1, 2, 4
TABS ADDTO 'C:\TMP\11QA12Q.XLS' ; 
 כתוב/י  תכנית אשר תציג את סה"כ המכירות (חשבוניות) של הפריט מתחילת השנה
כתוב/י תכנית אשר תציג את סה"כ רכש (חשבוניות) של הפריט מתחילת השנה
כתוב/י תכנית אשר תציג את סה"כ הזמנות לקוח עתידיות פתוחות.
 
/**********************SALES*************************/
SELECT P.PART, P.PARTDES, SUM((I.DEBIT = 'C' ? II.QPRICE * -1 : II.QPRICE)) AS 'SUM' , 'מכירות'  AS 'TYPE'
FROM PART P, INVOICES I, INVOICEITEMS II
WHERE 
P.PART <> 0
AND I.IV = II.IV
AND II.PART = P.PART
AND I.TYPE IN ('A', 'C', 'E', 'F')
AND I.STORNOFLAG <> 'Y'
AND I.FINAL = 'Y'
AND I.IVDATE  = BEGINOFYEAR(SQL.DATE8)  
GROUP BY 1,2, 4
;TABS 'C:\TMP\11QA12Q.XLS' 
 
/**************************PURCHASES***********************/
SELECT P.PART, P.PARTDES, SUM((I.DEBIT = 'C' ? II.QPRICE * -1 : II.QPRICE)) AS 'SUM' , 'רכש' AS 'TYPE'
FROM PART P, INVOICES I, INVOICEITEMS II
WHERE 
P.PART <> 0
AND I.IV = II.IV
AND II.PART = P.PART
AND I.TYPE IN ('P', 'Y', 'S')
AND I.STORNOFLAG <> 'Y'
AND I.FINAL = 'Y'
AND I.IVDATE  = BEGINOFYEAR(SQL.DATE8) 
GROUP BY 1,2, 4
TABS ADDTO 'C:\TMP\11QA12Q.XLS' ;
/***************************ORDERS*******************/
 
SELECT P.PARTNAME, P.PARTDES, SUM(O.QPRICE) AS 'SUM' , 'הזמנות' AS 'TYPE'
FROM ORDERS O, ORDERITEMS OI, PART P
WHERE
O.ORD <> 0
AND O.ORD = OI.ORD
AND OI.PART = P.PART
AND OI.CLOSED <> 'C'
AND OI.DUEDATE > SQL.DATE
GROUP BY 1, 2, 4
;TABS ADDTO 'C:\TMP\11QA12Q.XLS'  
 
 
 

שימוש ב TABS כדי להדפיס למסמך חיצוני

SELECT P.PARTNAME, P.PARTDES, SUM ((I.DEBIT = 'C'?II.QPRICE * – 1 : II.QPRICE )), P.TYPE
FROM INVOICES I, INVOICEITEMS II, PART P
WHERE P.PART <> 0
AND I.IV = II.IV
AND II.PART = P.PART
'AND I.FINAL = 'Y
'AND I.STORNOFLAG <> 'Y
/*AND I.IVDATE > BEGINOFYEAR(BEGINOFYEAR(SQL.DATE8)) – 24:00 */
/*AND P.PARTNAME = '001'*/
AND I.TYPE IN ('A', 'C', 'E', 'F')
GROUP BY 1, 2, 4
; 'TABS 'C:\TMP\TAQ5.Q

נקבל קובץ ב סיומת TABS

מק_ט תאור_מוצר SUM_CCOND P_R_O_טיפוס
000 מוצר כללי 4400.00 O
001 "כסא ""כרמית""" 13890.00 R
002 "כסא ""רונית""" 24435.00 R
003 "כסא ""דוד""" 8000.00 R
004 כסא גן 6273.00 R
204 סט 3 עטים-כחול,אדום,שחור 6000.00 P
תשלום לחוזה תשלום לחוזה שרות 65358.30 O

כתיבת קובץ בסיומת XLS בתוך WINDBI

'סה"כ' SELECT P.PARTNAME, P.PARTDES, SUM((I.DEBIT = 'C' ? II.QPRICE * -1 : II.QPRICE)) AS 
FROM INVOICES I, INVOICEITEMS II, PART P
WHERE
P.PART <> 0
AND I.IV = II.IV
AND II.PART = P.PART
AND I.TYPE IN ('A', 'C', 'E', 'F')
/*AND I.IVDATE > BEGINOFYEAR (SQL.DATE8)*/
'AND I.FINAL = 'Y
'AND I.STORNOFLAG <> 'Y
GROUP BY 1, 2
 ;'TABS 'C:\TMP\Q7.xls'

WELCOME TO ETCOMBER.COM THE HOUSE OF THE CODE

הצגת של החשבונות לקוחות ת ספקים או חשבונות ראשיים

SELECT ACCNAME, ACCDES, BALANCE1, (SECTION BETWEEN -100 AND -300 ? 1 : (SECTION BETWEEN -110 AND -1 ? 2 : 3))
FROM ACCOUNTS
ORDER BY 4
;'ASCII 'C:\TMP\Q1.txt 

הצגת קובץ פלט (ASCII)

www טנרטניאב הצפה 0.00 2
2001 מ"עב לכל םיטיהר 377.60 2
2002 מ"עב ןוחצינה יטיהר 0.00 2
2003 מ"עב וינבו השמ 2596.00 2
2101 ינידרומ יטיהר 0.00 2
2102 ןוספמות טוהיר 0.00 2
200002 םיבשחמ רקא Akr 0.00 2
400-1 מ'עממ תורוטפ תוסנכה 0.00 3
606-1 ןופלט 0.00 3
606-2 למשח 0.00 3
606-3 םימ 0.00 3
606-4 הנונרא 0.00 3
607-1 םידוביכ 0.00 3
1001 םילשורי טרוא ס"יב -8236.00 3
1002 םילשורי קרמנד ס"יב -18558.80 3
1003 ם-י תיגולונכטה הללכמה 0.00 3
1004 תויונמואו םיעדמל ס"היב -79748.29 3
1101 הנול-הד לאונמ 156387.00 3
1102 ילמוא סמות -1400.00 3

אפשר גם לשנות את המספרים ב סטריגס

SELECT ACCNAME, ACCDES, BALANCE1, (SECTION BETWEEN -100 AND -300 ? 'CUST' : (SECTION BETWEEN -110 AND -1 ? 'SUPP' : 'MAIN'))
FROM ACCOUNTS
ORDER BY 4
/* ASCII 'C:\TMP\Q1.txt' ; */
;FORMAT 

נקבל כתוצאה הפלט

חשבונות ראשים ACCOUNTS

חשבונות לקוחות

מסך ACCOUNTS_RECEIVABLE    
התנאי אומר ש כל חשבון שישתייך בין לדווך 300- ל 100- משייכים אותם בקבוצת חשבונות לקוחות ונוכל ליראות במסך בן עמודות מסך הרחבה

פקודות DML DATA MANIPULATION LANGUAGUE

בפקודות DML אנו נערוך מניפולציה על בסיסי הנתונים והבסיס הנתונים שלנו הולכים להשתנות לכן אנו צריכים להיות מאוד זהירים בפקודות אלו

טבלאות חיצוניות STACKS

משתמשים בטבלאות חיציניות STACKS כדי לבצע פקודות DML 

;SELECT * FROM STACK FORMAT 

;INSERT INTO STACK(ELEMENT) VALUES (144) 

;SELECT * FROM STACK FORMAT 

מוסיפים פקודה מחיקה שדה 121

 

;SELECT * FROM STACK FORMAT 

;INSERT INTO STACK(ELEMENT) VALUES (144) 

 ;DELETE FROM STACK WHERE ELEMENT = 121

;SELECT * FROM STACK FORMAT 

 

 

 

שימוש בפקוחודות מחיקה, הוספת בטבלאות זמניות

;DELETE FROM STACK4 WHERE KEY BETWEEN 2 AND 17 
;SELECT * FROM STACK FORMAT 
;INSERT INTO STACK(ELEMENT) VALUES (144) 
;DELETE FROM STACK WHERE ELEMENT = 121 
;SELECT * FROM STACK FORMAT 
;SELECT * FROM STACK4 FORMAT

 

ממשיכם לעבוד עם טבלאות זמניות : STACK24

תרגילי שאילתות DML (DATA MANIPULATION LANGUAGUE)

;SELECT * FROM STACK24 FORMAT 
SELECT CUSTNAME, PARTDES FROM CUSTOMERS, PART, CUSTPART
WHERE
CUSTPART.PART = PART.PART
AND CUSTOMERS.CUST = CUSTPART.CUST
;FORMAT

 

1. הכנס לטבלת  STACK24 את העמודות הבאות:

מסי לקוח ותיאור מוצר כפי שמופיעים במסך מוצרים ללקוח.

2. הכנס לטבלת STACK את כל הפריטים שקיימת לפחות הזמנה אחד עבורם.

               a. בצע אותו את אותו פעולה בתוך טבלה GENERALLOAD והצג בטלה גם את השם הפרטי, 

                   תיאורו ועלות בש"ח.

3. הכנס לטבלת STACK4 את כל הספקים שמס' ה ID שלהם שווה למס' הלקוח וגם מסי ה ID שלהם אינו זוגי.

4. הכנס לטבלת GENERALLOAD את סה"כ המחירות לפריט מתחילת השנה. (הצג שם פריט, תיאור, סה"כ).

5. בצע עידכון לשדה CHAR1 בטבלת GENERALLOAD שיהיה שווה ל Y במידה ומסי ID בטלה יהיה שווה של המוצר

בטבלת מוצרים והמוצר הוזמן לפחות פעם אחד במחיר הגדול מי 150 ש"ח.


שימוש בטבלת זמנית GENERALLOAD

;SELECT * FROM GENERALLOAD FORMAT 
SELECT CUST, CUSTNAME, CUSTDES, STATE FROM CUSTOMERS
;WHERE CUST > 0 FORMAT 
;DELETE FROM GENERALLOAD 
INSERT INTO GENERALLOAD (LINE, TEXT6, TEXT2, TEXT)
SELECT; CUST, CUSTNAME, CUSTDES, STATE FROM CUSTOMERS WHERE CUST > 0 

;SELECT LINE, TEXT6, TEXT2, TEXT FROM GENERALLOAD 

המשך שימוש בפקודות DML נוספות

/* ;SELECT * FROM GENERALLOAD FORMAT 

SELECT CUST, CUSTNAME, CUSTDES, STATE FROM CUSTOMERS
;WHERE CUST > 0 FORMAT 
;DELETE FROM GENERALLOAD 
INSERT INTO GENERALLOAD (LINE, TEXT6, TEXT2, TEXT)
;SELECT CUST, CUSTNAME, CUSTDES, STATE FROM CUSTOMERS WHERE CUST > 0  */
;SELECT LINE, TEXT6, TEXT2, TEXT FROM GENERALLOAD 
DELETE FROM GENERALLOAD ;
INSERT INTO GENERALLOAD (LINE, TEXT6, TEXT1, TEXT2)
;SELECT CUST, CUSTNAME, CUSTDES, STATE FROM CUSTOMERS WHERE CUST > 0 
;SELECT LINE, TEXT6, TEXT1, TEXT2 FROM GENERALLOAD FORMAT 
;'UPDATE GENERALLOAD SET TEXT2 = 'TEL AVIV 

;SELECT LINE, TEXT6, TEXT1, TEXT2 FROM GENERALLOAD FORMAT 

GENERALLOAD

  1. כתוב תכנית שתציג את כל הלקוחות שהזמינו את פריט 001 בחודשיים האחרונים (הזמנות סגורות בלבד.)
         תשובה: 
         /* (כתוב תוכנית שתציג את כל הלקוחות שהזמינו את הפריט 001 בחודשיים אחרונים (הזמנות סגורות בילבד */
 
SELECT CUSTOMERS.CUSTNAME, CUSTOMERS.CUSTDES, ORDERS.ORDNAME, ORDERS.CURDATE, ORDERS.CLOSED, PART.PARTDES
FROM CUSTOMERS, ORDERS, ORDERITEMS, PART
WHERE ORDERS.ORD > 0
AND ORDERS.CLOSED = 'C'
AND ORDERS.CURDATE >= SQL.DATE8 – 60 * 24:00 
AND PART.PARTNAME = '001'
AND ORDERS.CUST = CUSTOMERS.CUST
AND ORDERS.ORD = ORDERITEMS.ORD
AND ORDERITEMS.PART = PART.PART
;FORMAT
 
 כתוב.י תכנית אשר תציג את סה"כ המכירות (חשבוניות) של הפריט מתחילת השנה.
SELECT PART.PARTNAME, PART.PARTDES, SUM((INVOICES.DEBIT = 'C' ? INVOICEITEMS.QPRICE * – 1 : INVOICEITEMS.QPRICE )), PART.TYPE
FROM INVOICES , INVOICEITEMS , PART 
WHERE
INVOICES.IV = INVOICEITEMS.IV
AND INVOICES.IVDATE > BEGINOFYEAR(SQL.DATE8)
AND INVOICES.TYPE IN ('A', 'C', 'E', 'F')
AND INVOICES.FINAL = 'Y'
AND INVOICES.STORNOFLAG <> 'Y'
AND INVOICEITEMS.PART = PART.PART
AND PART.PARTNAME = '001'
AND PART.PART <> 0
GROUP BY 1,2, 4
;FORMAT 
 
כתבוב.י תכנית אשר תציג את סה"כ רכש (חשבוניות) של פריט מתחילת השנה.
SELECT PART.PARTNAME, PART.PARTDES, SUM((INVOICES.DEBIT = 'C' ? INVOICEITEMS.QPRICE * -1 : INVOICEITEMS.QPRICE)), PART.TYPE
FROM INVOICES, INVOICEITEMS, PART
WHERE PART.PART <> 0
AND PART.PARTNAME = '001'
AND INVOICES.IVDATE > BEGINOFYEAR (SQL.DATE8)
AND INVOICES.IV = INVOICEITEMS.IV
AND INVOICES.TYPE IN ('P', 'Y', 'S')
AND INVOICES.FINAL = 'Y'
'AND INVOICES.STORNOFLAG <> 'Y
AND INVOICEITEMS.PART = PART.PART
GROUP BY 1, 2, 4
;FORMAT 
 
SELECT P.PARTNAME, P.PARTDES, SUM(O.QPRICE) AS 'SUM' , 'הזמנות' AS 'TYPE'
FROM ORDERS O, ORDERITEMS OI, PART P
WHERE
O.ORD <> 0
AND O.ORD = OI.ORD
AND OI.PART = P.PART
AND OI.CLOSED <> 'C'
AND OI.DUEDATE > SQL.DATE
GROUP BY 1, 2, 4
TABS ADDTO 'C:\TMP\11QA12Q.XLS
 
 
 

 כתוב/י  תכנית אשר תציג את סה"כ המכירות (חשבוניות) של הפריט מתחילת השנה

כתוב/י תכנית אשר תציג את סה"כ רכש (חשבוניות) של הפריט מתחילת השנה
כתוב/י תכנית אשר תציג את סה"כ הזמנות לקוח עתידיות פתוחות.
 
/**********************SALES*************************/
SELECT P.PART, P.PARTDES, SUM((I.DEBIT = 'C' ? II.QPRICE * -1 : II.QPRICE)) AS 'SUM' , 'מכירות'  AS 'TYPE'
FROM PART P, INVOICES I, INVOICEITEMS II
WHERE 
P.PART <> 0
AND I.IV = II.IV
AND II.PART = P.PART
AND I.TYPE IN ('A', 'C', 'E', 'F')
AND I.STORNOFLAG <> 'Y'
AND I.FINAL = 'Y'
AND I.IVDATE  = BEGINOFYEAR(SQL.DATE8)  
GROUP BY 1,2, 4
TABS 'C:\TMP\11QA12Q.XLS' ;
 
/**************************PURCHASES***********************/
SELECT P.PART, P.PARTDES, SUM((I.DEBIT = 'C' ? II.QPRICE * -1 : II.QPRICE)) AS 'SUM' , 'רכש' AS 'TYPE'
FROM PART P, INVOICES I, INVOICEITEMS II
WHERE 
P.PART <> 0
AND I.IV = II.IV
AND II.PART = P.PART
AND I.TYPE IN ('P', 'Y', 'S')
AND I.STORNOFLAG <> 'Y'
AND I.FINAL = 'Y'
AND I.IVDATE  = BEGINOFYEAR(SQL.DATE8) 
GROUP BY 1,2, 4
TABS ADDTO 'C:\TMP\11QA12Q.XLS' ;
/***************************ORDERS*******************/
 
SELECT P.PARTNAME, P.PARTDES, SUM(O.QPRICE) AS 'SUM' , 'הזמנות' AS 'TYPE'
FROM ORDERS O, ORDERITEMS OI, PART P
WHERE
O.ORD <> 0
AND O.ORD = OI.ORD
AND OI.PART = P.PART
AND OI.CLOSED <> 'C'
AND OI.DUEDATE > SQL.DATE
GROUP BY 1, 2, 4
TABS ADDTO 'C:\TMP\11QA12Q.XLS' 
 
 
 ;SELECT CUST, CUSTNAME, CUSTDES, STATE FROM CUSTOMERS  WHERE CUST > 0 FORMAT
;DELETE FROM GENERALLOAD 
INSERT INTO GENERALLOAD (LINE, TEXT6, TEXT1, TEXT2)
SELECT CUST, CUSTNAME, CUSTDES, STATE 
;FROM CUSTOMERS WHERE CUST > 0 
;SELECT LINE, TEXT6, TEXT1, TEXT2 FROM GENERALLOAD FORMAT 
 
 

עדכון טבלא באמצעות פקודה UPDATE

כדי לעשות עדכון כלשהו קודם כל צריך להיות נתונים בטבלה, אחרי שמוודים שיש נתונים בטבלה אנו מחליטים מה לשנות או לעדכן על סמך איזו תנאים אני מציין שאם ביצענו עדכון שטבלה או עמודה מסויימת ואם לא הגדרנו תנאי כל הרשומות יעדכנו במשהו אנו נעדכן אותו עמודה למשל אם בטבלה של לקוחות אם אנו נעדכן את העמודה  העיר "תל אביב"  ולא הגדרנו תנאי  WHERE  יעדכנו כל השדות  של לקוחות בעיר תל אביב. שאנו נירצה להגדיר מספר רשומות  צריך לדעת מי האוכלוסיה שלו שאנו מדבברים על אוכלוסיה ספציפית מדובר בכמה רשומות שחזרו מי קבוצת טבלאות לפי השאיתלתה שכתבנו  ככל שנרחיב את התנאים האוכלוסיה תילך  ותיקטן וכל שנו נוריד תנאים האוכלוסיה תילך ותיגדל למשל אם תירשום SELECT CUST FROM CUSTOMERS  האולוסיה יכול את כל ה CUST של CUSTOMERS ואם אנו נגיד SELECT ORD FROM CUSTOMERS WHERE STATE = 'JERUSALEM אז נקבל רק את האולוסיה שבעמודה עיר כתוב זאת אומר בין אלו שחזרו נקבל את האוכלוסיה JERUSALEM גם במיקרה שתרגיל הבאה נצטרך לדעת מה האוכלוסיה שלו תמיד מומלץ לפצל את השאילתות לישבור אותם צריך להתחיל ב SELECT רגיל ליראות מי האוכלוסיה שאמורה לקבל עידכון האם האוכלוסיה מתקיימת ואם יש אוכלוסיה כזו שולפים ורואים את הנתונים ואז נבצע את העידכון וניראה את התוצאות.

תרגיל 5. 

בצע עדכון לשדה CHAR1  בטבלת  GENERALLOAD   שיהיה שווה ל Y במידה ומספר ID בטבלה שווה למספר ID של המוצר  בטבלת  מוצרים  והמוצר הוזמן לפחות פעם אחת  במחיר הגדול מי 150 ש"ח  

 

מה אומרת הסטודנטית המאושרת שלנו:
יפה שתיקה לחכמים, קל וחומר לטפשים
Elena Miles
Student

Massa amet, at dolor tellus pellentesque aenean in eget massa tincidunt habitasse volutpat adipiscing sed id sit auctor eu vivamus nulla.

Emma Hart

עָבַרְנוּ אֶת פַּרְעֹה, נַעֲבֹר גַּם אֶת זֶה

מה אומר הסטודנט שלנו