Как минусоват данные с таблицы 2 от таблицы 1

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Akramjon
Сообщения: 40
Зарегистрирован: 05 окт 2013, 20:26
Контактная информация:

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Akramjon » 05 фев 2014, 16:08

думая в этот раз сильно ругать не будете да за 2 дня многое научилься толко вот опять id по разному получить не смог дайте пинка и чут чут подтолкните пожалуйста

Код: Выделить всё

public class DBHandlerImpl extends SQLiteOpenHelper implements  DBHandler<Goods>{
    private static final int DATABASE_VERSION = 4;
    private static final String DATABASE_NAME = "app_bases";

    private static final String TABLE_USERS = "users";
    private static final String ID = "_id_users";
    private static final String GOODS = "users_goods";
    private static final String DATE = "users_date";
    private static final String AMOUNT = "users_amount";
    private static final String COST = "users_cost";

    private static final String TABLE_SELL = "sell";
    private static final String ID_SELL = "_id_sell";
    private static final String SELL_GOODS = "sell_goods";
    private static final String SELL_DATE = "sell_date";
    private static final String SELL_AMOUNT = "sell_amount";
    private static final String SELL_COST = "sell_cost";

    private static final String TABLE_RESULT = "result";
    private static final String ID_RESULT = "_id_result";
    private static final String RESULT_LAST = "result_last";
    private static final String RESULT_DATE = "result_date";
    private static final String RESULT_AMOUNT = "result_amount";
    private static final String RESULT_COST = "result_cost";


    public DBHandlerImpl(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String query = "Create Table " + TABLE_USERS + "(" + ID + "INTEGER PRIMARY KEY, " +
                                                            GOODS + " TEXT, " +
                                                            DATE + " TEXT, " +
                                                            AMOUNT + " DOUBLE NOT NULL, " +
                                                            COST + " DOUBLE NOT NULL);";
        db.execSQL(query);

         query = "Create Table " + TABLE_SELL + "(" + ID_SELL + "INTEGER PRIMARY KEY, " +
                                                             SELL_GOODS + " TEXT, " +
                                                             SELL_DATE + " TEXT, " +
                                                             SELL_AMOUNT + " DOUBLE NOT NULL, " +
                                                             SELL_COST + " DOUBLE NOT NULL);";
        db.execSQL(query);

        query = "Create Table " + TABLE_RESULT + "(" + ID_RESULT + "INTEGER PRIMARY KEY, " +
                                                            RESULT_LAST + " TEXT, " +
                                                            RESULT_DATE + " TEXT, " +
                                                            RESULT_AMOUNT + " DOUBLE NOT NULL, " +
                                                            RESULT_COST + " DOUBLE NOT NULL);";
        db.execSQL(query);

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i2) {
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_USERS);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_SELL);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_RESULT);
        onCreate(db);
    }

    @Override
    public void addPrihod(Goods goods) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        // values.put(ID, goods.getId());
        values.put(GOODS, goods.getName_goods());
        values.put(DATE, goods.getDate());
        values.put(AMOUNT, goods.getAmount());
        values.put(COST, goods.getCost());
        db.insert(TABLE_USERS, null, values);
        db.close();
    }

    @Override
    public void addRashod(Goods goods) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put(SELL_GOODS, goods.getName_goods());
        values.put(SELL_DATE, goods.getDate());
        values.put(SELL_AMOUNT, goods.getAmount());
        values.put(SELL_COST, goods.getCost());
        db.insert(TABLE_SELL, null, values);
        db.close();
    }
Вложения
sell.png
sell.png (69.33 КБ) 9131 просмотр
users.png
users.png (75.04 КБ) 9131 просмотр
table.png
table.png (88.12 КБ) 9131 просмотр

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Foenix » 05 фев 2014, 19:07

private static final String ID = "_id_users";
вот эти штуки везде (во всех таблицах) замени на
private static final String ID = "_id";
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Foenix » 05 фев 2014, 19:08

вот тут
String query = "Create Table " + TABLE_USERS + "(" + ID + "INTEGER PRIMARY KEY, " +
GOODS + " TEXT, " +
DATE + " TEXT, " +
AMOUNT + " DOUBLE NOT NULL, " +
COST + " DOUBLE NOT NULL);";
везде поставь пробел перед INTEGER!!! неужели не видно??
String query = "Create Table " + TABLE_USERS + "(" + ID + " ТУТ ПРОБЕЛ!!! INTEGER PRIMARY KEY, " +
GOODS + " TEXT, " +
DATE + " TEXT, " +
AMOUNT + " DOUBLE NOT NULL, " +
COST + " DOUBLE NOT NULL);";
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Foenix » 05 фев 2014, 19:10

типа DOUBLE в SQLITE нету
выбирай из этих
http://www.sqlite.org/datatype3.html
NULL. The value is a NULL value.


INTEGER. The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.


REAL. The value is a floating point value, stored as an 8-byte IEEE floating point number.


TEXT. The value is a text string, stored using the database encoding (UTF-8, UTF-16BE or UTF-16LE).


BLOB. The value is a blob of data, stored exactly as it was input.

и почитай данный документ ДО КОНЦА, ниже написано все про типы
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Foenix » 05 фев 2014, 19:13

если бы ты почитал уроки, как я тебе сказала, хотя бы первый по sqlite - номер 34, кажется, ты бы знал, что таблица создается примерно так

db.execSQL("create table mytable ("
+ "_id integer primary key autoincrement,"
+ "name text,"
+ "email text" + ");");
}

обрати внимание на строку, которую я выделила.

Когда это сделаешь попробуй в редакторе своем добавлять данные (ячейку _id не трогай), увидишь чудо.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Foenix » 05 фев 2014, 19:15

почему первая таблица названа users?
что такое sells? (по английски это "ячейки"). "Продажи" - будут по-другому.
почему третья таблица названа result?
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Akramjon
Сообщения: 40
Зарегистрирован: 05 окт 2013, 20:26
Контактная информация:

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Akramjon » 05 фев 2014, 20:05

Инна спасибо большое я сегодня не буду спать это точно
доделаю обрадую вас или себя

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Foenix » 05 фев 2014, 20:07

пожалуйста
делай все что я говорю
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Akramjon
Сообщения: 40
Зарегистрирован: 05 окт 2013, 20:26
Контактная информация:

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Akramjon » 06 фев 2014, 10:38

Добрый день прежде чем задавать вопрос и показывать результат опять много читал спасибо
думаю я на 80% сделал что вы сказали id уже сохраняется
вот только откуда то появилась новая таблица sqlite_sequnce я ее не создавал
в таблице TABLE_ITEMS3 я хочу получать результаты + - товаров
и поскольку еще нет определения пока столбики остаются как есть

Код: Выделить всё

public class DBHandlerImpl extends SQLiteOpenHelper implements  DBHandler<Goods>{
    private static final int DATABASE_VERSION = 4;
    private static final String DATABASE_NAME = "app_bases";

    private static final String TABLE_ITEMS = "items";
    private static final String ID = "_id";
    private static final String GOODS = "goods";
    private static final String DATE = "date";
    private static final String AMOUNT = "amount";
    private static final String COST = "cost";

    private static final String TABLE_ITEMS2 = "items2";
    private static final String ID_SELL = "_id";
    private static final String SELL_GOODS = "sell_goods";
    private static final String SELL_DATE = "sell_date";
    private static final String SELL_AMOUNT = "sell_amount";
    private static final String SELL_COST = "sell_cost";

    private static final String TABLE_ITEMS3 = "items3";
    private static final String ID_RESULT = "_id";
    private static final String RESULT_LAST = "result_last";
    private static final String RESULT_DATE = "result_date";
    private static final String RESULT_AMOUNT = "result_amount";
    private static final String RESULT_COST = "result_cost";


    public DBHandlerImpl(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String query = "create table " + TABLE_ITEMS + "(" + ID + " integer primary key autoincrement, " +
                                                            GOODS + " TEXT, " +
                                                            DATE + " TEXT, " +
                                                            AMOUNT + " INTEGER, " +
                                                            COST + " INTEGER);";
        db.execSQL(query);

         query = "create table " + TABLE_ITEMS2 + "(" + ID_SELL + " integer primary key autoincrement, " +
                                                           SELL_GOODS + " TEXT, " +
                                                             SELL_DATE + " TEXT, " +
                                                             SELL_AMOUNT + " INTEGER, " +
                                                             SELL_COST + " INTEGER);";
        db.execSQL(query);

        query = "create table " + TABLE_ITEMS3 + "(" + ID_RESULT + " integer primary key autoincrement, " +
                                                            RESULT_LAST + " TEXT, " +
                                                            RESULT_DATE + " TEXT, " +
                                                            RESULT_AMOUNT + " INTEGER, " +
                                                            RESULT_COST + " INTEGER);";
        db.execSQL(query);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i2) {
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_ITEMS);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_ITEMS2);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_ITEMS3);
        onCreate(db);
    }

    @Override
    public void addPrihod(Goods goods) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put(GOODS, goods.getName_goods());
        values.put(DATE, goods.getDate());
        values.put(AMOUNT, goods.getAmount());
        values.put(COST, goods.getCost());
        db.insert(TABLE_ITEMS, null, values);
        db.close();
    }

    @Override
    public void addRashod(Goods goods) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put(SELL_GOODS, goods.getName_goods());
        values.put(SELL_DATE, goods.getDate());
        values.put(SELL_AMOUNT, goods.getAmount());
        values.put(SELL_COST, goods.getCost());
        db.insert(TABLE_ITEMS2, null, values);
        db.close();
    }
Вложения
items.png
items.png (88.19 КБ) 9119 просмотров
sequnce.png
sequnce.png (80.72 КБ) 9119 просмотров
table.png
table.png (86.26 КБ) 9119 просмотров

Akramjon
Сообщения: 40
Зарегистрирован: 05 окт 2013, 20:26
Контактная информация:

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Akramjon » 06 фев 2014, 10:40

остальные фотки
Вложения
items3.png
items3.png (69.38 КБ) 9119 просмотров
items2.png
items2.png (80.95 КБ) 9119 просмотров

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Foenix » 06 фев 2014, 12:58

1. удалить из справочника товаров с именем goods, все кроме
_id name
2. добавить в остальные таблицы вместо поля name или что там у тебя поле id_goods - ссылка на справочник товаров, целое число.
3. переименовать остальные таблицы осмысленно как ПРИХОД , РАСХОД. Я не знаю как это по бухгалтерски, но можно INPUT и OUTPUT.

(т.е. в результате у тебя будет 3 таблицы - справочник товаров, приход товара, расход товара)

4. расскажи, зачем тебе таблица РЕЗУЛЬТАТ? так не делать не принято. Результат (ОСТАТКИ ТОВАРА) не хранят в базе данных, а только показывают на экране, т.к. велика вероятность того, что у тебя при каком-то сбое таблица РЕЗУЛЬТАТ будет не соответствовать таблицам ПРИХОД и РАСХОД.

5. Не обращай внимание, у тебя создалась служебная таблица, ее не трогай.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Akramjon
Сообщения: 40
Зарегистрирован: 05 окт 2013, 20:26
Контактная информация:

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Akramjon » 06 фев 2014, 15:28

Хот убейте но пришлось написать если не спрошу дальше не смогу двинуться
я действительно понял о справочнике (я так думаю) сейчас хочу показать как я понял
например
в приходе тетради
id1 goods=тетради
в расходе карандаши
id3 sell_goods=карандаши
теперь в справочнике я должен вывести их id
id 1 это тетради
id 3 это карандаш
(если так значит я правильно понял)
но я не смог написать код чтобы их вывести
я знаю что неправильно написал но все таки посмотрите

Код: Выделить всё

public class DBHandlerImpl extends SQLiteOpenHelper implements  DBHandler<Goods>{
    private static final int DATABASE_VERSION = 4;
    private static final String DATABASE_NAME = "app_bases";

    private static final String TABLE_ITEMS = "items";
    private static final String ID = "_id";

    private static final String TABLE_PRIHOD = "items2";
    private static final String ID_PRIHOD = "_id";
    private static final String GOODS = "goods";
    private static final String DATE = "date";
    private static final String AMOUNT = "amount";
    private static final String COST = "cost";

    private static final String TABLE_RASHOD = "items3";
    private static final String ID_PRODANO = "_id";
    private static final String PRODANO = "prodano";
    private static final String PRODANO_DATE = "prodano_date";
    private static final String PRODANO_AMOUNT = "prodano_amount";
    private static final String PRODANO_COST = "prodano_cost";


    public DBHandlerImpl(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String query = "create table " + TABLE_ITEMS + "(" + ID + " integer primary key autoincrement);";

        db.execSQL(query);

         query = "create table " + TABLE_PRIHOD + "(" + ID_PRIHOD + " integer primary key autoincrement, " +
                                                         GOODS + " TEXT, " +
                                                         DATE + " TEXT, " +
                                                         AMOUNT + " INTEGER, " +
                                                         COST + " INTEGER);";
        db.execSQL(query);

        query = "create table " + TABLE_RASHOD + "(" + ID_PRODANO + " integer primary key autoincrement, " +
                                                        PRODANO + " TEXT, " +
                                                        PRODANO_DATE + " TEXT, " +
                                                        PRODANO_AMOUNT + " INTEGER, " +
                                                        PRODANO_COST + " INTEGER);";
        db.execSQL(query);

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i2) {
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_ITEMS);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_PRIHOD);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_RASHOD);
        onCreate(db);
    }

    @Override
    public void addItemsId(Goods goods) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put(ID_PRIHOD, goods.getId());
        values.put(ID_PRODANO, goods.getId());
        db.insert(TABLE_ITEMS, null, values);
        db.close();
    }

    @Override
    public void addPrihod(Goods goods) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put(GOODS, goods.getName_goods());
        values.put(DATE, goods.getDate());
        values.put(AMOUNT, goods.getAmount());
        values.put(COST, goods.getCost());
        db.insert(TABLE_PRIHOD, null, values);
        db.close();
    }

    @Override
    public void addRashod(Goods goods) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put(PRODANO, goods.getName_goods());
        values.put(PRODANO_DATE, goods.getDate());
        values.put(PRODANO_AMOUNT, goods.getAmount());
        values.put(PRODANO_COST, goods.getCost());
        db.insert(TABLE_RASHOD, null, values);
        db.close();
    }
на счет Result я понял неправильно думал и все было ошибкой

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Foenix » 06 фев 2014, 15:37

зачем ты все поменял? таблицы неправильно!
ох
1 таблица - справочник товаров GOODS
в ней поля: _id, name
данные:
1 карандаш
2 ластик
3 ручка

2 таблица - приход INPUT
в ней поля: _id, id_goods, date, num, price
в ней данные (у нас только рубли, копеек нет, поэтому price целое, либо если есть копейки, то price в копейках)
1 1 20140130 40 5
2 1 20140131 35 4
3 2 20140130 33 400
эти две строки обозначают:
1 что 30 января 2014 года пришло 40 карандашей по 5 рублей
2 что 31 января 2014 года пришло 35 карандашей по 4 рубля.
3 что 30 января 2014 года пришло 33 ластика по 400 рублей

Другие таблицы аналогично!!!
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Foenix » 06 фев 2014, 15:40

в первую таблицу можно добавить еще свойства товара, как цвет, вид, артикул, штрихкод, из чего сделан и так далее. это справочник товара.
В другие таблицы ты вписываешь поле id_goods и заполняешь его цифрами, из строчек первой таблицы.
Короче, тебе нужно идти и учить основы самые элементарные баз данных.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198


Akramjon
Сообщения: 40
Зарегистрирован: 05 окт 2013, 20:26
Контактная информация:

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Akramjon » 06 фев 2014, 15:55

почитаю это уж точно
потом исправлю
а потом спрошу заново

Akramjon
Сообщения: 40
Зарегистрирован: 05 окт 2013, 20:26
Контактная информация:

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Akramjon » 11 фев 2014, 14:41

Всем добрый день
после мучительных чтений наконецто я понял о чем шла речь выше в теме и чего хотели мне обьяснить добрые форумчане
я многое уже понял но не хватает теперь практики написать правильный код для справочника товаров
правда для начало все очень приметивно и дублируется но для новичка пойдет
в самом начале когда сохраняю в приход GOODS первоначально она должна сохраниться в TABLE_ITEMS в столб ID_GOODS а потом уже
ее id а то есть ID_GOODS должна сохраняться в TABLE_PRIHOD
я думаю по теории я правильно высказался
если так то некоторые поля надо будет поменять
но прежде хотел узнать ваше мнения
пожалуйста
спасибо
здесь методы

Код: Выделить всё

public interface DBHandler<T> {
    public void addItemsId(T t);
    public void addPrihod(T t);
    public void addRashod(T t);
    public T getPrihod(int id);
    public T getRashod(int id);
    public List<T> getAllPrihod();
    public List<T> getAllRashod();
    public T getByNamePrihod(String name);
    public T getByNameRashod(String name);
    public int updatePrihod(T t);
    public int updateRashod(T t);
    public void deletePrihod(T t);
    public void deleteRashod(T t);
    public void deleteAllPrihod();
    public void deleteAllRashod();
}
здесь реализую методы

Код: Выделить всё

public class DBHandlerImpl extends SQLiteOpenHelper implements  DBHandler<Goods>{
    private static final int DATABASE_VERSION = 4;
    private static final String DATABASE_NAME = "app_bases";

    private static final String TABLE_ITEMS = "items";
    private static final String ID = "_id";
    private static final String ID_GOODS = "id_goods";


    private static final String TABLE_PRIHOD = "prihod";
    private static final String ID_PRIHOD = "_id";
    private static final String GOODS = "goods";
    private static final String DATE = "date";
    private static final String AMOUNT = "amount";
    private static final String COST = "cost";

    private static final String TABLE_RASHOD = "rashod";
    private static final String ID_PRODANO = "_id";
    private static final String PRODANO = "prodano";
    private static final String PRODANO_DATE = "prodano_date";
    private static final String PRODANO_AMOUNT = "prodano_amount";
    private static final String PRODANO_COST = "prodano_cost";


    public DBHandlerImpl(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String query = "create table " + TABLE_ITEMS + "(" + ID + " integer primary key autoincrement, " +
                ID_GOODS + " integer);";
        db.execSQL(query);

         query = "create table " + TABLE_PRIHOD + "(" + ID_PRIHOD + " integer primary key autoincrement, " +
                                                         GOODS + " TEXT, " +
                                                         DATE + " TEXT, " +
                                                         AMOUNT + " INTEGER, " +
                                                         COST + " INTEGER);";
        db.execSQL(query);

        query = "create table " + TABLE_RASHOD + "(" + ID_PRODANO + " integer primary key autoincrement, " +
                                                        PRODANO + " TEXT, " +
                                                        PRODANO_DATE + " TEXT, " +
                                                        PRODANO_AMOUNT + " INTEGER, " +
                                                        PRODANO_COST + " INTEGER);";
        db.execSQL(query);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i2) {
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_ITEMS);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_PRIHOD);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_RASHOD);
        onCreate(db);
    }

    @Override
    public void addItemsId(Goods goods) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put(GOODS, goods.getName_goods());
        db.insert(TABLE_ITEMS, null, values);
        db.close();
    }

    @Override
    public void addPrihod(Goods goods) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put(GOODS, goods.getName_goods());
        values.put(DATE, goods.getDate());
        values.put(AMOUNT, goods.getAmount());
        values.put(COST, goods.getCost());
        db.insert(TABLE_PRIHOD, null, values);
        db.close();
    }

    @Override
    public void addRashod(Goods goods) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put(PRODANO, goods.getName_goods());
        values.put(PRODANO_DATE, goods.getDate());
        values.put(PRODANO_AMOUNT, goods.getAmount());
        values.put(PRODANO_COST, goods.getCost());
        db.insert(TABLE_RASHOD, null, values);
        db.close();
    }
здесь в Приход активити сохраняю приходы

Код: Выделить всё

public class Prihod extends Activity{
    private DBHandler<Goods> db;
    private Goods goods;
    private EditText edtTovar;
    private EditText editDate;
    private EditText editAmount;
    private EditText editCost;
    private Button btn_save;
    private Button btn_info;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.prihod);
        TextView textTovar = (TextView)findViewById(R.id.textTovar);
        TextView textDate = (TextView)findViewById(R.id.textDate);
        TextView textAmount = (TextView)findViewById(R.id.textAmount);
        TextView textCost = (TextView)findViewById(R.id.textCost);
        edtTovar = (EditText)findViewById(R.id.edtTovar);
        editDate = (EditText)findViewById(R.id.editDate);
        editAmount = (EditText)findViewById(R.id.editAmount);
        editCost = (EditText)findViewById(R.id.editCost);
        btn_save = (Button)findViewById(R.id.btn_save);
        btn_info = (Button)findViewById(R.id.btn_info);
        db = new DBHandlerImpl(this);

    }

    public void saveTovar(View v){
        AlertDialog.Builder builder = new AlertDialog.Builder(Prihod.this);
        builder.setTitle("Потдвердить сохранение...");
        builder.setMessage("Вы уверены, что хотите сохранить?");
        builder.setIcon(R.drawable.save);
        builder.setPositiveButton("Да", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
               goods = new Goods(1,edtTovar.getText().toString(),
                                    editDate.getText().toString(),
                                    editAmount.getText().toString(),
                                    editCost.getText().toString());
                db.addPrihod(goods);
                Toast.makeText(getApplicationContext(), "Новый товар сохранен!", Toast.LENGTH_SHORT).show();
            }
        });

        builder.setNegativeButton("Нет", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.cancel();
            }
        });

        builder.show();
    }
здесь в Расход активити сохраняю приходы

Код: Выделить всё

public class Rashod extends Activity{
    private DBHandler<Goods> db;
    private Goods goods;
    private EditText editRashod;
    private EditText editDateRashod;
    private EditText editAmountRashod;
    private EditText editCostRashod;
    private Button btn_rashod_save;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.rashod);
        TextView textTovar = (TextView)findViewById(R.id.textTovar);
        TextView textDate = (TextView)findViewById(R.id.textDate);
        TextView textAmount = (TextView)findViewById(R.id.textAmount);
        TextView textCost = (TextView)findViewById(R.id.textCost);
        editRashod = (EditText)findViewById(R.id.editRashod);
        editDateRashod = (EditText)findViewById(R.id.editDateRashod);
        editAmountRashod = (EditText)findViewById(R.id.editAmountRashod);
        editCostRashod = (EditText)findViewById(R.id.editCostRashod);
        btn_rashod_save = (Button)findViewById(R.id.btn_rashod_save);
        db = new DBHandlerImpl(this);
    }

        public void saveRashod(View v){
        AlertDialog.Builder builder = new AlertDialog.Builder(Rashod.this);
        builder.setTitle("Потдвердить сохранение...");
        builder.setMessage("Вы уверены, что хотите сохранить?");
        builder.setIcon(R.drawable.save);
        builder.setPositiveButton("Да", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                goods = new Goods(1,
                        editRashod.getText().toString(),
                        editDateRashod.getText().toString(),
                        editAmountRashod.getText().toString(),
                        editCostRashod.getText().toString());
                db.addRashod(goods);
                Toast.makeText(getApplicationContext(), "Новый расход сохранен!", Toast.LENGTH_SHORT).show();
            }
        });

        builder.setNegativeButton("Нет", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.cancel();
            }
        });

        builder.show();
    }
Вложения
table.png
table.png (79.95 КБ) 9068 просмотров
table_items.png
table_items.png (69.49 КБ) 9068 просмотров

Akramjon
Сообщения: 40
Зарегистрирован: 05 окт 2013, 20:26
Контактная информация:

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Akramjon » 11 фев 2014, 14:42

остальные фотки
Вложения
table_prihod.png
table_prihod.png (77.94 КБ) 9067 просмотров
table_rashod.png
table_rashod.png (69.31 КБ) 9067 просмотров

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Foenix » 12 фев 2014, 06:45

и ничего-то ты не понял...
очень жаль.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Akramjon
Сообщения: 40
Зарегистрирован: 05 окт 2013, 20:26
Контактная информация:

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Akramjon » 12 фев 2014, 08:49

пожалуйста поправь меня где я ошибся снова буду читать и практиковаться
потом спрошу

Ответить