Тема: Задача WINAPI створення аналогу Exel
Я недавно почав працювати на фрілансі, місяць тому. Мені прийшли 2 замовлення, і обидва я провалив. І обидва цих замовлення пов'язані зі створенням забезпечення для ведення бухгалтерського обліку. Я дуже довго (4 дні) шукав, як зробити ці програми, але все ж не знайшов і відмовився від замовлень. Точніше, я не хотів покривати збитки замовникам.
Задача була приблизно такою:
На ОС Android/Windows створити програму бухгалтерського обліку на основі БД SQLite,
Меню:
Диски
Ланцюги
Лопати
...
Ну і кожен пункт має виводити на таке вікно, в якому є таблиця схожа на exel, і там мають бути стовпці
Товар ПІП Дата .... Кнопки
Диск Іванов Іван 03.08.2019 перенести редагувати видалити
ну і от натискання на кнопку перенести має переносити запис з однієї таблиці SQLite в іншу і от така задача. Ну ви сподіваюсь зрозуміли
Ну я клієнтам сказав, звичайно, що це ізі. Що це звичайна БД і я без проблем справлюся з завданням.
У мене почалися проблеми вже на EditText, тобто кожна ячейка це має бути EditText (в андроїді в в віндовсі він зветься однаково). Ну, припустимо я створюю масив із дескрипторів на таблицю мегабайтів 3, скільки це пам'яті буде? На андроїді - ще гірше. Пристрої мають замало ресурсів, а JVM множить ресурси програми на 6.
Потім - в кожному рядку цієї таблиці по бажанню замовника мають бути кнопки.
А це треба на кожну кнопку робити switch (case) ну і припустимо в таблиці 5000 рядків і треба проаналізувати 3 кнопки * 5000 = 15000 кнопок, ідентифікатори звичайно числові ну тобто без #define.
Потім там ще мають бути чекбокси для можливості одночасного перенесення чи видалення.
Загальний алгоритм такий:
1. відкриваємо базу
2. визначаємо кількість записів одного із стовпців
3. створюємо масив дескрипторів, який дорівнює (операція 2)*(3кнопки+1чекбокс+кількість стовпців_відома_для_кожного_вікнаокремо)
4. створюємо потік + прогресбар і заповнюємо наш масив з БД і кнопками
5. програма завершується невдало хоч на віндовс хоч на андроїд, після перевершення ліміту ресурсів, а на андроїді взагалі одразу після запуску
Код тут писати дуже довго, вибачайте.
як вирішити цю проблему?