Assalomu alaykum.
Ismim Muhammadjavohir. Yanvar oyidan AppSheet no-code instrumentini o'rganishni boshladim. Bu kanalda o'rganish va loyihalar tuzish davomidagi foydali ma'lumotlarni ulashib turaman.
Ismim Muhammadjavohir. Yanvar oyidan AppSheet no-code instrumentini o'rganishni boshladim. Bu kanalda o'rganish va loyihalar tuzish davomidagi foydali ma'lumotlarni ulashib turaman.
๐7
Lokalizatsiya - dastur tilini tarjima qilish
AppSheetdagi tizim atamalari va matnlarni o'zbek tiliga o'girib ko'rdim.
Atamalar tarjimalari mana bu yerda bor.
https://docs.google.com/spreadsheets/d/1O2DvKYDlQg6aCq_26YV6M-Nu1K0qN_IzWezk-ziiYiA/edit?usp=sharing
Har yangi dasturda 100+ maydon qiymatini qayta kirgazmaslik uchun o'zbek tilidagi dasturlar uchun starter app yaratib, uning localizationini to'g'rilab qo'ygan yaxshi ekan.
Shu kabi har bir loyihada takrorlanish mumkin bo'lgan vaziyatlar uchun bir universal starter/shablon loyiha tuzib uni pishitib boravergan yaxshiyov.
Bir necha tilli dastur tuzganda esa mana bu YouTube videosidagi usuldan foydalanilarkan.
https://youtu.be/Uc_mUF8DE0U?si=4iLbmQgAQsURBuod
Translations jadvali tepadagi kabi Sheetsdan olib qo'shiladi va Localizationda LOOKUP funksiyasi ishlatiladi. Lekin hali o'zim sinab ko'rmadim.
โ ๏ธ Jadvallar qo'shilgandagi actionlar tarjima qilinmas ekan. Ularning "Display name" maydonini bittama-bitta tahrirlash kerak ekan.
AppSheetdagi tizim atamalari va matnlarni o'zbek tiliga o'girib ko'rdim.
Atamalar tarjimalari mana bu yerda bor.
https://docs.google.com/spreadsheets/d/1O2DvKYDlQg6aCq_26YV6M-Nu1K0qN_IzWezk-ziiYiA/edit?usp=sharing
Har yangi dasturda 100+ maydon qiymatini qayta kirgazmaslik uchun o'zbek tilidagi dasturlar uchun starter app yaratib, uning localizationini to'g'rilab qo'ygan yaxshi ekan.
Shu kabi har bir loyihada takrorlanish mumkin bo'lgan vaziyatlar uchun bir universal starter/shablon loyiha tuzib uni pishitib boravergan yaxshiyov.
Bir necha tilli dastur tuzganda esa mana bu YouTube videosidagi usuldan foydalanilarkan.
https://youtu.be/Uc_mUF8DE0U?si=4iLbmQgAQsURBuod
Translations jadvali tepadagi kabi Sheetsdan olib qo'shiladi va Localizationda LOOKUP funksiyasi ishlatiladi. Lekin hali o'zim sinab ko'rmadim.
โ ๏ธ Jadvallar qo'shilgandagi actionlar tarjima qilinmas ekan. Ularning "Display name" maydonini bittama-bitta tahrirlash kerak ekan.
๐10โค1
Pasport validatsiyasi
Biron xodim yoki mijozning pasport ma'lumotlari kiritiladigan loyihalarda qo'l kelishi mumkin. Shu sababli chuqur tekshirilmadi.
Afsuski, dasturlashdagi kabi matnni tekshirishnin RegEx bilan bajariladigan yo'li hozircha yo'q ekan.
Validatsiya kodi:
Validatsiya bilan birga xatolik uchraganda mos xato matni ko'rsatilishi uchun "Invalid value error" maydoniga ham formula joylanishi kerak.
Biron xodim yoki mijozning pasport ma'lumotlari kiritiladigan loyihalarda qo'l kelishi mumkin. Shu sababli chuqur tekshirilmadi.
Afsuski, dasturlashdagi kabi matnni tekshirishnin RegEx bilan bajariladigan yo'li hozircha yo'q ekan.
Validatsiya kodi:
AND(
LEN([_THIS]) = 9,
COUNT(
FILTER(
"Employees",
AND(
[Passport] = [_THIS],
[_RowNumber] <> [_THISROW].[_RowNumber]
)
)
) = 0
)
Validatsiya bilan birga xatolik uchraganda mos xato matni ko'rsatilishi uchun "Invalid value error" maydoniga ham formula joylanishi kerak.
IFS(
LEN([_THIS]) <> 9, "Pasport 9 ta belgidan iborat bo'lishi kerak",
COUNT(
FILTER(
"Employees",
AND(
[Passport] = [_THIS],
[_RowNumber] <> [_THISROW].[_RowNumber]
)
)
) <> 0, "Bu pasport raqami bazada mavjud"
)
๐5
๐๐ป AppSheet va raqamlashtirish dunyosi bilan tanishuv
AppSheet bilan tanishish jarayonim 3 bosqichda bo'lgan. Yaxshi tomoni shu 3 bosqichning muhim nuqtalari YouTubeda suhbat ko'rinishida saqlab qolingan.
U videolarni ketma-ketlikda ko'rib bular haqida dastlabki to'liq kartinani tasavvur qilishingiz mumkin.
1๏ธโฃ Google Sheetsning imkoniyatlari. Google Sheetsda 15 ta kam veb ilova tuzish
https://www.youtube.com/live/DRofaw4MmyI?si=_OQm1WCqAP0hV1n7
2๏ธโฃ Kodsiz dasturlash va AppSheet imkoniyatlari bilan tanishuv
https://www.youtube.com/live/rQzfGt93now?si=_mU-Qt30Yu8WNZc6
3๏ธโฃ AppSheetda nimalar qilish mumkin? AppSheetda tuziladigan dasturlar bozori haqida
https://youtu.be/l0n10-uRKFA?si=m8myD4_O1eDfSst6
Raqamlashtirish va ilovalar tuzishga qiziquvchilarga ulashib qo'yamiz ๐๐
@appsheetpro_uz
AppSheet bilan tanishish jarayonim 3 bosqichda bo'lgan. Yaxshi tomoni shu 3 bosqichning muhim nuqtalari YouTubeda suhbat ko'rinishida saqlab qolingan.
U videolarni ketma-ketlikda ko'rib bular haqida dastlabki to'liq kartinani tasavvur qilishingiz mumkin.
1๏ธโฃ Google Sheetsning imkoniyatlari. Google Sheetsda 15 ta kam veb ilova tuzish
https://www.youtube.com/live/DRofaw4MmyI?si=_OQm1WCqAP0hV1n7
2๏ธโฃ Kodsiz dasturlash va AppSheet imkoniyatlari bilan tanishuv
https://www.youtube.com/live/rQzfGt93now?si=_mU-Qt30Yu8WNZc6
3๏ธโฃ AppSheetda nimalar qilish mumkin? AppSheetda tuziladigan dasturlar bozori haqida
https://youtu.be/l0n10-uRKFA?si=m8myD4_O1eDfSst6
Raqamlashtirish va ilovalar tuzishga qiziquvchilarga ulashib qo'yamiz ๐๐
@appsheetpro_uz
๐6๐4
Dashboard bor, lekin yo'q ๐ฑ
Shu holatni boshimdan o'tkazdim.
Loyihada dropdown qiymatlar uchun avval jadval tuzib keyin u jadval qiymatlarini kerakli nuqtada foydalanish mumkin. Shu jadvallarni bir joyda saqlash uchun dashboard tuzayotgandim.
Bu dashboardda sozlamalarga mos jadvallar bo'lgani uchun "Settings" nomini berdim.
1 marta tuzdim, previewda to'g'ri ko'rsatyapti. Loyihani saqladim. Yo'qolib qoldi.
3-4 marta qayta urindim.
Boshqa loyihamda "test" nomi bilan dashboard tuzib ko'rdim. Ishladi.
๐ก๐ก๐ก
Hamma gap "Settings" nomida ekan. Bu AppSheet tomonidan band qilingan (reserved) bo'lgani uchun uni saqlab bo'lmagan ekan.
#tip
Shu holatni boshimdan o'tkazdim.
Loyihada dropdown qiymatlar uchun avval jadval tuzib keyin u jadval qiymatlarini kerakli nuqtada foydalanish mumkin. Shu jadvallarni bir joyda saqlash uchun dashboard tuzayotgandim.
Bu dashboardda sozlamalarga mos jadvallar bo'lgani uchun "Settings" nomini berdim.
1 marta tuzdim, previewda to'g'ri ko'rsatyapti. Loyihani saqladim. Yo'qolib qoldi.
3-4 marta qayta urindim.
Boshqa loyihamda "test" nomi bilan dashboard tuzib ko'rdim. Ishladi.
๐ก๐ก๐ก
Hamma gap "Settings" nomida ekan. Bu AppSheet tomonidan band qilingan (reserved) bo'lgani uchun uni saqlab bo'lmagan ekan.
#tip
๐5๐คฏ5
"15 kun bo'ldi seni ko'rmaganimga" โ๏ธ
Ikki sana orasida necha kun borligini hisoblash ko'p uchrashi mumkin bo'lgan talablardan.
Masalan:
- keyingi buyurtmani berishga 3 kun qolganda xabarnoma yuborish
- mahsulot do'konga kelganiga 60 kundan oshsa, unga chegirma biriktirilish
- kursni sotib olganiga 90 kundan oshgan mijozga qo'shimcha xizmatlar taklif qilish
Bu kabi holatlarda hayolga birinchi keladigan usul balki mana bunday bo'lar:
Afsuski, bu ish bermaydi (kamida shaxsan mendagi holatda).
AppSheetda ikki sana orasidagi kunlarni topish uchun sanalardagi soat farqini topib, keyin natijadagi qiymatni kunga aylantirish kerak bo'ladi.
===
Bizneslarda ko'p uchraydigan sanalarga oid shu kabi qanday holatlarga misol keltira olasiz?
Ikki sana orasida necha kun borligini hisoblash ko'p uchrashi mumkin bo'lgan talablardan.
Masalan:
- keyingi buyurtmani berishga 3 kun qolganda xabarnoma yuborish
- mahsulot do'konga kelganiga 60 kundan oshsa, unga chegirma biriktirilish
- kursni sotib olganiga 90 kundan oshgan mijozga qo'shimcha xizmatlar taklif qilish
Bu kabi holatlarda hayolga birinchi keladigan usul balki mana bunday bo'lar:
[A Sana] - [B Sana]Afsuski, bu ish bermaydi (kamida shaxsan mendagi holatda).
AppSheetda ikki sana orasidagi kunlarni topish uchun sanalardagi soat farqini topib, keyin natijadagi qiymatni kunga aylantirish kerak bo'ladi.
HOUR([A Sana] - [B Sana]) / 24===
Bizneslarda ko'p uchraydigan sanalarga oid shu kabi qanday holatlarga misol keltira olasiz?
๐8๐1
App Gallery ko'rinishidagi sahifa (view)
Bir loyihani mijoz bilan muhokama qilayotgandik. Dastur imkoni boricha sodda bo'lishi, sahifalar (views) ishlatishga qulay joylashtirilishini so'rashdi.
Smartfonlardagi dasturlar ikonkalari ko'pchilikka tanish. Shu sababli unga o'xshash bo'lishi taklifi berildi.
YouTubeda mana bu videoda buning bajarish yo'li ko'rsatilgan ekan.
Undan o'rganganlarimga ko'ra men ham bosh sahifada eng ko'p ishlatiladigan amallarni (action) shu ko'rinishda joylab ko'raman.
@appsheetpro_uz
Bir loyihani mijoz bilan muhokama qilayotgandik. Dastur imkoni boricha sodda bo'lishi, sahifalar (views) ishlatishga qulay joylashtirilishini so'rashdi.
Smartfonlardagi dasturlar ikonkalari ko'pchilikka tanish. Shu sababli unga o'xshash bo'lishi taklifi berildi.
YouTubeda mana bu videoda buning bajarish yo'li ko'rsatilgan ekan.
Undan o'rganganlarimga ko'ra men ham bosh sahifada eng ko'p ishlatiladigan amallarni (action) shu ko'rinishda joylab ko'raman.
@appsheetpro_uz
YouTube
Home Screens in AppSheet Part 2: Detail View
In a previous video I demonstrated how to create a home screen using a gallery view. In this video, I'll show you how to leverage a detail view and action icons to create a different type of home screen.
View the app template:
https://www.appsheet.com/tโฆ
View the app template:
https://www.appsheet.com/tโฆ
๐6โค1
Xomashyo xaridi balansini hisoblash โ๏ธ
1-qism
Dasturdagi xomashyo sotib olish amaliga oid qismlarini tuzayotgandim. Avval faqatgina dollarda to'lov qilinadi degan yondashuvda boshladim. Sababi xomashyo uchun dollarda to'lov qilinishini aytishgandi.
Xarid balansi (yoki qarzdorlik) = Xarid narxi - Xaridga aloqador to'lovlar yig'indisi
Masala hal
[Fondagi notiq ovozi: "bu bola adashganini hali bilmasdi, muahahaha ๐"]
Korxona egasi to'lovda nafaqat dollar, balki 5 xil usul bo'lishini so'radilar: so'm (naqd|karta), dollar(naqd|karta), bank o'tkazmasi (so'mda ะฟะตัะตัะตัะปะตะฝะธะต).
"Ha, bo'ldi, tezda tayyor qilolaman" deb o'yladim.
[Tepadagi fonda aytilgan gaplar #2]
#keys
1-qism
Dasturdagi xomashyo sotib olish amaliga oid qismlarini tuzayotgandim. Avval faqatgina dollarda to'lov qilinadi degan yondashuvda boshladim. Sababi xomashyo uchun dollarda to'lov qilinishini aytishgandi.
Xarid balansi (yoki qarzdorlik) = Xarid narxi - Xaridga aloqador to'lovlar yig'indisi
Masala hal
[Fondagi notiq ovozi: "bu bola adashganini hali bilmasdi, muahahaha ๐"]
Korxona egasi to'lovda nafaqat dollar, balki 5 xil usul bo'lishini so'radilar: so'm (naqd|karta), dollar(naqd|karta), bank o'tkazmasi (so'mda ะฟะตัะตัะตัะปะตะฝะธะต).
"Ha, bo'ldi, tezda tayyor qilolaman" deb o'yladim.
[Tepadagi fonda aytilgan gaplar #2]
#keys
๐6
Xomashyo xaridi balansini hisoblash โ๏ธ
2-qism
Avvalgi holatga ko'ra to'lov jadvalida quyidagi maydonlar bor edi (keysga aloqadorlari)
- naqd dollar miqdori + mos kassa
- kartadagi dollar miqdori + mos kassa
Talabga ko'ra unga quyidagilar qo'shildi
- naqd so'm miqdori + mos kassa
- kartadagi so'm miqdori + mos kassa
- bank o'tkazmasi miqdori + mos kassa
Bu holatda balansni hisoblash uchun quyidagi formulani yozib ko'rdim. Unda xaridga aloqador so'm to'lovlari yig'indisini to'lovlardagi valyuta kursiga bo'lib davomidan dollardagi to'lovlar yig'indisini summadan ayirmoqchi bo'ldim.
So'mni dollarga o'tkazish qismini bir nechta urinishda ham to'g'ri chiqara olmadim ๐ข
Keyin esa ๐ก["tiding" ovoz effekti]
Tinchgina to'lov qatoriga "To'lovning dollardagi summasi (Total in USD)" ustunini qo'shdim. Shu usulda valyuta kursini chaqirib ishlash oson bo'ldi.
Xarid jami to'lovi va qarzdorligi dollarda hisoblangani uchun shu usul to'g'ri keldi.
Tepadagi allambalo formula o'rniga esa mana bu sodda, bir qator,shiringina, uti-puti formula yetarli bo'ldi.
#keys
2-qism
Avvalgi holatga ko'ra to'lov jadvalida quyidagi maydonlar bor edi (keysga aloqadorlari)
- naqd dollar miqdori + mos kassa
- kartadagi dollar miqdori + mos kassa
Talabga ko'ra unga quyidagilar qo'shildi
- naqd so'm miqdori + mos kassa
- kartadagi so'm miqdori + mos kassa
- bank o'tkazmasi miqdori + mos kassa
Bu holatda balansni hisoblash uchun quyidagi formulani yozib ko'rdim. Unda xaridga aloqador so'm to'lovlari yig'indisini to'lovlardagi valyuta kursiga bo'lib davomidan dollardagi to'lovlar yig'indisini summadan ayirmoqchi bo'ldim.
[Total] -
FLOOR(
(
SUM([Related RawMaterialPurchasePayments][UZSCashAmount]) +
SUM([Related RawMaterialPurchasePayments][USDCardAmount]) +
SUM([Related RawMaterialPurchasePayments][BankTransferAmount])
) /
IF(COUNT(SELECT(RawMaterialPurchasePayments[ID], TRUE)) > 0, ANY(
SELECT(
RawMaterialPurchasePayments[ExchangeRate],
AND(
[RawMaterialPurchaseID] = [ID],
[_RowNumber] = MAXROW("RawMaterialPurchasePayments", "_RowNumber")
)
)
), 12500)
) -
SUM([Related RawMaterialPurchasePayments][USDCashAmount]) -
SUM([Related RawMaterialPurchasePayments][USDCardAmount])
So'mni dollarga o'tkazish qismini bir nechta urinishda ham to'g'ri chiqara olmadim ๐ข
Keyin esa ๐ก["tiding" ovoz effekti]
Tinchgina to'lov qatoriga "To'lovning dollardagi summasi (Total in USD)" ustunini qo'shdim. Shu usulda valyuta kursini chaqirib ishlash oson bo'ldi.
Xarid jami to'lovi va qarzdorligi dollarda hisoblangani uchun shu usul to'g'ri keldi.
Tepadagi allambalo formula o'rniga esa mana bu sodda, bir qator,
[Total] - SUM([Related RawMaterialPurchasePayments][TotalInUSD])
#keys
๐7๐1
Xomashyo xaridi balansini hisoblash โ๏ธ
3-qism
Hisob-kitob tayyor. Endi ko'rinishini qulay qilishimiz kerak.
Rasmda mingliklar ajratib ko'rsatilganini payqagan bo'lishingiz mumkin. Avval undan emas va sondagi nollarni birma-bir sanab chiqish kerak bo'layotgandi.
Dastlabki formula
Mingliklarni ajratib ko'rsatish uchun ozgina docs titkiladim. E'tibor bersam,
Shu balansni hisoblashga oid yana bir qo'shimcha masala haqida keyingi postda.
#keys
3-qism
Hisob-kitob tayyor. Endi ko'rinishini qulay qilishimiz kerak.
Rasmda mingliklar ajratib ko'rsatilganini payqagan bo'lishingiz mumkin. Avval undan emas va sondagi nollarni birma-bir sanab chiqish kerak bo'layotgandi.
Dastlabki formula
CONCATENATE("Kartadagi so'm balansi: ", [UZSCardAccountBalance])Mingliklarni ajratib ko'rsatish uchun ozgina docs titkiladim. E'tibor bersam,
TEXT() funksiyasiga butun son berilganda (0.00) mingliklarga bo'lib formatlab qaytararkan. Shu usuldan foydalandim.CONCATENATE("Kartadagi so'm balansi: ", TEXT([UZSCardAccountBalance]))Shu balansni hisoblashga oid yana bir qo'shimcha masala haqida keyingi postda.
#keys
๐3๐ฅ2๐1
Xomashyo xaridi balansini hisoblash โ๏ธ
4-qism
Avval bu sahifada faqat to'lov summasini kiritish maydoni bor edi. Mantiqiy olib qarasak, bu maydonga kassadagi mavjud miqdordan ko'pini kiritish to'g'ri bo'lmaydi.
Uni faqat validation - to'g'riligini tasdiqlash orqali ham bajarish mumkin. Lekin u holatda foydalanuvchi avval maydonga son kiritadi. Agar ko'proq kiritsa, undan keyingina ogohlantirish chiqadi. Avvaldan balansni ko'rib turgani yaxshi, deb o'yladim.
Ham balansni ko'rsatib, ham validation qilish kerak. Balansni ko'rishda mana bu turdagi formula ishlatildi.
5 xil maydon uchun shu formulani moslab yozib chiqdim. Lekin ham yorliq (matn), ham validation uchun ishlatiladigan bo'lsa, 5x2=10 marta
Jadvalga kassa balansini yuqoridagi formula bilan hisoblab olib keladigan ustun qo'shdim, lekin uni ko'rinmaydigan qildim.
Balans yorlig'i (show-text) va validation uchun shu ustun qiymatidan foydalandim.
Shu bilan dastur qanchadir darajada tezroq ishlashiga hissa qo'sholdim, deb o'ylayapman.
#keys
4-qism
Avval bu sahifada faqat to'lov summasini kiritish maydoni bor edi. Mantiqiy olib qarasak, bu maydonga kassadagi mavjud miqdordan ko'pini kiritish to'g'ri bo'lmaydi.
Uni faqat validation - to'g'riligini tasdiqlash orqali ham bajarish mumkin. Lekin u holatda foydalanuvchi avval maydonga son kiritadi. Agar ko'proq kiritsa, undan keyingina ogohlantirish chiqadi. Avvaldan balansni ko'rib turgani yaxshi, deb o'yladim.
Ham balansni ko'rsatib, ham validation qilish kerak. Balansni ko'rishda mana bu turdagi formula ishlatildi.
ANY(
SELECT(
Accounts[Balance],
AND(
[Currency] = "So'm",
[CashOrCard] = "Naqd"
)
)
)
5 xil maydon uchun shu formulani moslab yozib chiqdim. Lekin ham yorliq (matn), ham validation uchun ishlatiladigan bo'lsa, 5x2=10 marta
SELECT ishlashi kerak bo'lardi. So'rovlar soni 5 taligicha qolishi uchun boshqa yo'ldan yurdim.Jadvalga kassa balansini yuqoridagi formula bilan hisoblab olib keladigan ustun qo'shdim, lekin uni ko'rinmaydigan qildim.
Balans yorlig'i (show-text) va validation uchun shu ustun qiymatidan foydalandim.
[_THIS] <= [UZSCashAccountBalance]
Shu bilan dastur qanchadir darajada tezroq ishlashiga hissa qo'sholdim, deb o'ylayapman.
#keys
๐3๐ฅ1
"Omborda qancha xomashyo qoldi?" โป๏ธ
1-qism
Tuzayotgan dasturimdagi navbatdagi boshqotirma/masala haqida yozaman. Bular jarayonda o'rganayotganlarimni eslab qolish va AppSheet o'rganayotganlarga foydasi tegar degan maqsadda yozib borilyapti.
Vaziyat:
Ishlab chiqarish uchun bir necha turdagi xomashyo sotib olinadi. Sotib olingan xomashyo sexga yetkazilganda asosiy omborga tushadi. Asosiy ombordan konveyerdagi nuqtalarga kundalik yetarli xomashyo chiqariladi. Xomashyodan foydalanish dasturga kiritib borilishi kerak.
Dastur tiliga moslangandagi asosiy amallar quyidagilar:
- omborda bor xomashyoning dastlabki balansini kiritish
- sotib olingan VA yetkazilgan xomashyo bosh ombordagi balansga qo'shiladi
- omborlar orasida xomashyo transfer qilinadi (asosan bosh ombordan konveyerdagi nuqtalarga). Xomashyo balansi yuborilgan, qabul qilingan xomashyoga ko'ra kamayib, ko'payib boradi.
- ishlatilgan xomashyo balansdan ayiriladi
Ko'rinishidan murakkab emas. Bu hisob-kitobni to'g'ri bajaradigan funksiya ham yozdim. Unda masala nimada?
โ ๏ธโ ๏ธโ ๏ธ
Afsuski, u hisob-kitob kutganimdan ko'p vaqt olyapti (o'rtacha 1-2 daqiqa). Shu holida qoldirsam ham bo'ladi. Lekin bu xomashyo ishlatilishida balans kechikib yangilangani uchun xatoliklarga sabab bo'lishi mumkin.
(davomi bor)
#keys
1-qism
Tuzayotgan dasturimdagi navbatdagi boshqotirma/masala haqida yozaman. Bular jarayonda o'rganayotganlarimni eslab qolish va AppSheet o'rganayotganlarga foydasi tegar degan maqsadda yozib borilyapti.
Vaziyat:
Ishlab chiqarish uchun bir necha turdagi xomashyo sotib olinadi. Sotib olingan xomashyo sexga yetkazilganda asosiy omborga tushadi. Asosiy ombordan konveyerdagi nuqtalarga kundalik yetarli xomashyo chiqariladi. Xomashyodan foydalanish dasturga kiritib borilishi kerak.
Dastur tiliga moslangandagi asosiy amallar quyidagilar:
- omborda bor xomashyoning dastlabki balansini kiritish
- sotib olingan VA yetkazilgan xomashyo bosh ombordagi balansga qo'shiladi
- omborlar orasida xomashyo transfer qilinadi (asosan bosh ombordan konveyerdagi nuqtalarga). Xomashyo balansi yuborilgan, qabul qilingan xomashyoga ko'ra kamayib, ko'payib boradi.
- ishlatilgan xomashyo balansdan ayiriladi
Ko'rinishidan murakkab emas. Bu hisob-kitobni to'g'ri bajaradigan funksiya ham yozdim. Unda masala nimada?
โ ๏ธโ ๏ธโ ๏ธ
Afsuski, u hisob-kitob kutganimdan ko'p vaqt olyapti (o'rtacha 1-2 daqiqa). Shu holida qoldirsam ham bo'ladi. Lekin bu xomashyo ishlatilishida balans kechikib yangilangani uchun xatoliklarga sabab bo'lishi mumkin.
(davomi bor)
#keys
๐7
