AppSheet Pro
367 subscribers
41 photos
30 links
AppSheetni oʻrganish uchun kerakli hammasi
AppSheetPro.uz
Download Telegram
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
👍61
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
👍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.

[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, shiringina, uti-puti formula yetarli bo'ldi.
[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
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.
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
👍7
"Foydalanuvchi qiymatni o'zgartira olmasin, lekin o'zgartira olsin" 🤔

Tuzayotgan dasturimda sotib olingan xomashyo omborga yetkazilganligini belgilash ustuni bor. Bu ustundagi qiymat dastlab "Sotib olindi", keyin faqat "Yetkazildi"ga teng bo'lishi mumkin.

Uning qiymati foydalanuvchi tomonidan dastlabki holatga qaytarilmasligi uchun uning "Editable" - tahrirlash xususiyatini cheklashim kerak edi: action bilan o'zgartira olay, oddiy usulda emas.

Mana bu muhokamaga asosan bu natija uchun "Editable" xususiyatini FALSE qiymatga tenglash kerak bo'lar ekan. E'tibor bering - to'liq o'chirib qo'yish emas, FALSEga tenglash.

Shu yo'l bilan mo'ljaldagi natijaga erisha oldim 😎

#tip

@appsheetpro_uz
👍8🔥1
AppSheetdagi bugungi o'zgarish. Column order interfeysi ancha qulaylashibdi

@appsheetpro_uz
🔥4
Buyurtma bo'yicha bir nechta korxonalar boshqaruvidagi aka uchun ichki tizim dasturini tuzyapman. Jarayonni erkin ko'rinishda ko'rsatish uchun videochatni yoqyapman.

Biron savol bo'lsa, izohlarda yozib qoldiring.
Live stream started
Live stream finished (1 hour)
Ba'zi inline jadvallardagi qo'shish amalini ko'rsatmaslik kerak bo'ladigan vaziyatlar bo'ladi. Masalan, menda vazifa statusi o'zgarishi faqat action yordamida yaratiladi.

Uni to'liq o'chirib qo'yish uchun asosiy "Add" actionni hide, ya'ni berkitish mumkin. Agarda qo'shish funksiyasi vaziyatga ko'ra ba'zida ko'rinib, ba'zida ko'rinmasligi kerak bo'lsa, ota jadvaldagi yangi ochilgan actionni shu amalni bajarish uchun moslasa bo'larkan.

Manba

#quick_tip
👍5
AppSheet ifodalar oynasidagi o'zgarishni sezdingizmi?

Oldin bu maydon bo'yi doim o'zgarmas, zaruratga qarab o'zingiz katta-kichik qilishingiz kerak bo'lardi.

Hozir e'tibor bersam, yozilgan ifodaga mos bo'y bilan ko'rsatyapti.

Kichkina o'zgarish-u, lekin yoqimli :)
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
🔥3
AppSheet Pro
Video message
"Yana shunaqa laypxakladan bo'sin" deganlardan izohlarda + kutamiz 😎😉
😁9👍3
Live stream scheduled for
Live stream started
Live stream finished (1 hour)
Dasturga biron yangi Action qo'shyapsiz. Masalan, buyurtmaning holatini "Jarayonda"ga o'zgartiradigan Action.

Bunday holatlarda "Data: set the values of the column in this row" - shu qatordagi qiymatni o'zgartirish turini tanlamang. Balki, "Grouped: execute a sequence of actions"ni tanlang, ya'ni "bir nechta amallarni ketma-ketlikda bajarish".

Odatda qatordagi biron qiymat o'zgarsa, dasturda shu holatga ko'ra yana biron boshqa ish bajarilishi kerak bo'ladi. Tepadagi misolga ko'ra "Jarayonda"ga o'zgarish bo'lganda mijozga xabar yuborish yoki menejer uchun qandaydir ogohlantirish borishi mumkin.

Tavsiya qilingan usulning foydasi shunda bilinadi. Qo'shimcha actionni ro'yxatga qo'shasiz - masala tamom.
👍14